linux/drivers/platform/x86
Hitoshi Mitake 797a796a13 asm-generic: architecture independent readq/writeq for 32bit environment
This provides unified readq()/writeq() helper functions for 32-bit
drivers.

For some cases, readq/writeq without atomicity is harmful, and order of
io access has to be specified explicitly.  So in this patch, new two
header files which contain non-atomic readq/writeq are added.

 - <asm-generic/io-64-nonatomic-lo-hi.h> provides non-atomic readq/
   writeq with the order of lower address -> higher address

 - <asm-generic/io-64-nonatomic-hi-lo.h> provides non-atomic readq/
   writeq with reversed order

This allows us to remove some readq()s that were added drivers when the
default non-atomic ones were removed in commit dbee8a0aff ("x86:
remove 32-bit versions of readq()/writeq()")

The drivers which need readq/writeq but can do with the non-atomic ones
must add the line:

  #include <asm-generic/io-64-nonatomic-lo-hi.h> /* or hi-lo.h */

But this will be nop in 64-bit environments, and no other #ifdefs are
required.  So I believe that this patch can solve the problem of
 1. driver-specific readq/writeq
 2. atomicity and order of io access

This patch is tested with building allyesconfig and allmodconfig as
ARCH=x86 and ARCH=i386 on top of tip/master.

Cc: Kashyap Desai <Kashyap.Desai@lsi.com>
Cc: Len Brown <lenb@kernel.org>
Cc: Ravi Anand <ravi.anand@qlogic.com>
Cc: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Cc: Matthew Garrett <mjg@redhat.com>
Cc: Jason Uhlenkott <juhlenko@akamai.com>
Cc: James Bottomley <James.Bottomley@parallels.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Roland Dreier <roland@purestorage.com>
Cc: James Bottomley <jbottomley@parallels.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Matthew Wilcox <matthew.r.wilcox@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Hitoshi Mitake <h.mitake@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-02-21 16:47:28 -08:00
..
acer-wmi.c acer-wmi: replaced the hard coded bitmap by the communication devices bitmap from SMBIOS 2011-10-24 16:52:42 +02:00
acerhdf.c acerhdf.c: spaces in aliased changed to * 2011-08-05 15:21:51 -04:00
asus_acpi.c switch procfs to umode_t use 2012-01-03 22:54:56 -05:00
asus-laptop.c switch ->is_visible() to returning umode_t 2012-01-03 22:54:55 -05:00
asus-nb-wmi.c asus-wmi: add CWAP support and clarify the meaning of WAPF bits 2011-08-05 14:46:04 -04:00
asus-wmi.c switch ->is_visible() to returning umode_t 2012-01-03 22:54:55 -05:00
asus-wmi.h asus-wmi: add CWAP support and clarify the meaning of WAPF bits 2011-08-05 14:46:04 -04:00
classmate-laptop.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
compal-laptop.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
dell-laptop.c platform/x86: fix dell-laptop function prototypes 2011-11-17 10:29:02 -02:00
dell-wmi-aio.c dell: Convert printks to pr_<level> 2011-05-27 12:35:47 -04:00
dell-wmi.c dell-wmi: Add keys for Dell XPS L502X 2011-08-05 15:21:47 -04:00
eeepc-laptop.c platform-drivers-x86: eeepc-laptop: fix wrong test for successful registered led_classdev 2011-10-24 16:52:38 +02:00
eeepc-wmi.c asus-wmi: add CWAP support and clarify the meaning of WAPF bits 2011-08-05 14:46:04 -04:00
fujitsu-laptop.c fujitsu-laptop: Convert printks to pr_<level> 2011-05-27 12:35:47 -04:00
hdaps.c hdaps: Convert printks to pr_<level> 2011-05-27 12:35:48 -04:00
hp_accel.c Merge branch 'akpm' (Andrew's incoming) 2011-10-31 17:46:07 -07:00
hp-wmi.c hp-wmi: fix use after free 2011-07-11 09:52:35 -04:00
ibm_rtl.c asm-generic: architecture independent readq/writeq for 32bit environment 2012-02-21 16:47:28 -08:00
ideapad-laptop.c switch ->is_visible() to returning umode_t 2012-01-03 22:54:55 -05:00
intel_ips.c asm-generic: architecture independent readq/writeq for 32bit environment 2012-02-21 16:47:28 -08:00
intel_ips.h drm/i915, intel_ips: When i915 loads after IPS, make IPS relink to i915. 2010-12-23 09:51:36 +00:00
intel_menlow.c switch sysfs attr->mode to umode_t 2012-01-03 22:54:55 -05:00
intel_mid_powerbtn.c platform/x86: Simplify intel_mid_powerbtn 2011-05-27 12:36:46 -04:00
intel_mid_thermal.c platform-drivers-x86: intel_mid_thermal: fix memory leak 2011-08-05 14:46:11 -04:00
intel_oaktrail.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
intel_pmic_gpio.c intel_pmic_gpio: Convert printks to pr_<level> 2011-05-27 12:35:50 -04:00
intel_rar_register.c platform-drivers-x86: intel_rar_register: convert to DEFINE_PCI_DEVICE_TABLE 2011-08-05 14:46:14 -04:00
intel_scu_ipc.c driver-core: remove sysdev.h usage. 2011-12-21 16:26:03 -08:00
intel_scu_ipcutil.c intel_scu_ipcutil: fix major device number handling 2011-10-24 16:52:39 +02:00
Kconfig x86/intel/scu/ipc: Match the changes in the x86 configuration 2011-12-18 09:16:07 +01:00
Makefile Platform: Samsung Q10 backlight driver 2011-08-05 14:46:17 -04:00
msi-laptop.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
msi-wmi.c x86: fix up files really needing to include module.h 2011-10-31 19:30:36 -04:00
mxm-wmi.c mxm/wmi: add MXMX interface entry point. 2011-05-09 11:40:38 +10:00
panasonic-laptop.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
samsung-laptop.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
samsung-q10.c platform-drivers-x86: samsung-q10: make dmi_check_callback return 1 2011-08-05 15:21:47 -04:00
sony-laptop.c sony-laptop:irq: Remove IRQF_DISABLED 2011-10-24 16:52:42 +02:00
tc1100-wmi.c tc1100-wmi: Add pr_fmt, use pr_<level> 2011-05-27 12:35:51 -04:00
thinkpad_acpi.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
topstar-laptop.c topstar-latop: ignore 0x82 event 2011-10-24 16:52:37 +02:00
toshiba_acpi.c toshiba_acpi: Fix machines that don't support HCI_SYSTEM_EVENT 2011-12-05 13:07:28 -05:00
toshiba_bluetooth.c toshiba: Convert printks to pr_<level> 2011-05-27 12:35:52 -04:00
wmi.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
xo1-rfkill.c Add OLPC XO-1 rfkill driver 2010-10-21 10:10:44 -04:00
xo15-ebook.c xo15-ebook: Use pr_<level> 2011-05-27 12:35:53 -04:00