Files
android_kernel_xiaomi_sm8450/include/asm-generic
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
..
2009-06-11 21:02:15 +02:00
2010-10-07 14:08:55 +01:00
2008-05-01 08:03:58 -07:00
2009-06-11 21:02:42 +02:00
2005-04-16 15:20:36 -07:00
2011-03-17 09:19:04 +08:00
2012-01-04 11:37:42 -07:00
2010-10-07 14:08:55 +01:00
2005-04-16 15:20:36 -07:00
2008-08-12 16:07:31 -07:00
2011-11-28 21:12:42 +02:00
2010-10-07 14:08:55 +01:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-01-13 17:32:47 -08:00
2012-01-31 23:19:47 +02:00
2009-09-09 13:29:18 -07:00
2010-09-10 10:56:51 +02:00
2007-05-11 08:29:34 -07:00
2009-06-11 21:02:15 +02:00
2011-03-31 11:26:23 -03:00
2009-06-11 21:02:15 +02:00
2011-03-17 09:19:04 +08:00
2009-06-11 21:02:15 +02:00
2010-08-09 16:48:44 -04:00
2009-06-11 21:02:15 +02:00
2009-06-11 21:02:15 +02:00
2012-01-12 20:13:08 -08:00
2012-01-03 22:55:17 -05:00
2011-10-06 19:47:12 -04:00
2009-06-11 21:02:42 +02:00
2011-05-20 12:50:29 -07:00