提交 c0ca41a2 编写于 作者: M Magnus Damm 提交者: Paul Mundt

sh: fix ioreadN_rep and iowriteN_rep

This patch is a fix to make sure readsN/writesN are used over insN/outsN for
ioreadN_rep/iowriteN_rep.

The current state of the sh io code is that mmio operations like readN/writeN
and ioreadN/iowriteN are unaffected by the value of generic_io_base. This is
different fom port based io like inN/outN which gets adjusted using the value
in generic_io_base.

Without this patch ioreadN_rep/iowriteN_rep get their addresses adjusted.
The address for mmio access is adjusted using generic_io_base. This is wrong.
The ata core code currently crashes if generic_io_base is set.

This patch changes ioreadN_rep/iowriteN_rep to follow the same rules as the
rest of the mmio operations, ie don't adjust using generic_io_base.
Signed-off-by: NMagnus Damm <damm@igel.co.jp>
Acked-by: NKatsuya MATSUBARA <matsu@igel.co.jp>
Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
上级 e036eaa6
...@@ -182,13 +182,13 @@ __BUILD_MEMORY_STRING(w, u16) ...@@ -182,13 +182,13 @@ __BUILD_MEMORY_STRING(w, u16)
#define iowrite32(v,a) writel((v),(a)) #define iowrite32(v,a) writel((v),(a))
#define iowrite32be(v,a) __raw_writel(cpu_to_be32((v)),(a)) #define iowrite32be(v,a) __raw_writel(cpu_to_be32((v)),(a))
#define ioread8_rep(a,d,c) insb((a),(d),(c)) #define ioread8_rep(a, d, c) readsb((a), (d), (c))
#define ioread16_rep(a,d,c) insw((a),(d),(c)) #define ioread16_rep(a, d, c) readsw((a), (d), (c))
#define ioread32_rep(a,d,c) insl((a),(d),(c)) #define ioread32_rep(a, d, c) readsl((a), (d), (c))
#define iowrite8_rep(a,s,c) outsb((a),(s),(c)) #define iowrite8_rep(a, s, c) writesb((a), (s), (c))
#define iowrite16_rep(a,s,c) outsw((a),(s),(c)) #define iowrite16_rep(a, s, c) writesw((a), (s), (c))
#define iowrite32_rep(a,s,c) outsl((a),(s),(c)) #define iowrite32_rep(a, s, c) writesl((a), (s), (c))
#define mmiowb() wmb() /* synco on SH-4A, otherwise a nop */ #define mmiowb() wmb() /* synco on SH-4A, otherwise a nop */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册