All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Antonino A. Daplas" <adaplas@hotpop.com>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Linux Fbdev development list
	<linux-fbdev-devel@lists.sourceforge.net>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Linux Kernel list <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@osdl.org>
Subject: Re: [Linux-fbdev-devel] Re: [PATCH] fbdev: Fix IO access in rivafb
Date: Tue, 9 Nov 2004 04:02:19 +0800	[thread overview]
Message-ID: <200411090402.22696.adaplas@hotpop.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0411080719460.24286@ppc970.osdl.org>

On Monday 08 November 2004 23:21, Linus Torvalds wrote:
> On Mon, 8 Nov 2004, Antonino A. Daplas wrote:
> > How about this patch?  This is almost the original macro in riva_hw.h,
> > with the __force annotation.
>
> Why not just use __raw_readl/__raw_writel?
>

Ok.

Tony

In big endian machines, the read*/write* accessors do a byteswap for an
inherently little endian PCI bus.  However, rivafb puts the hardwire in big
endian register access, thus the byteswap is not needed. So, instead of
read*/write*, use __raw_read*/__raw_write*.
 
Signed-off-by: Antonino Daplas <adaplas@pol.net>
---

diff -Nru a/drivers/video/riva/riva_hw.h b/drivers/video/riva/riva_hw.h
--- a/drivers/video/riva/riva_hw.h	2004-11-09 03:45:55 +08:00
+++ b/drivers/video/riva/riva_hw.h	2004-11-09 03:50:32 +08:00
@@ -77,14 +77,18 @@
 #include <asm/io.h>
 #define NV_WR08(p,i,d)	out_8(p+i, d)
 #define NV_RD08(p,i)	in_8(p+i)
+#define NV_WR16(p,i,d)  (__raw_writew((d), (u16 __iomem *)(p) + (i)/2))
+#define NV_RD16(p,i)    (__raw_readw((u16 __iomem *)(p) + (i)/2))
+#define NV_WR32(p,i,d)  (__raw_writel((d), (u32 __iomem *)(p) + (i)/4))
+#define NV_RD32(p,i)    (__raw_readl((u32 __iomem *)(p) + (i)/4))
 #else
 #define NV_WR08(p,i,d)  (writeb((d), (u8 __iomem *)(p) + (i)))
 #define NV_RD08(p,i)    (readb((u8 __iomem *)(p) + (i)))
-#endif
 #define NV_WR16(p,i,d)  (writew((d), (u16 __iomem *)(p) + (i)/2))
 #define NV_RD16(p,i)    (readw((u16 __iomem *)(p) + (i)/2))
 #define NV_WR32(p,i,d)  (writel((d), (u32 __iomem *)(p) + (i)/4))
 #define NV_RD32(p,i)    (readl((u32 __iomem *)(p) + (i)/4))
+#endif
 #define VGA_WR08(p,i,d) NV_WR08(p,i,d)
 #define VGA_RD08(p,i)   NV_RD08(p,i)
 

WARNING: multiple messages have this Message-ID (diff)
From: "Antonino A. Daplas" <adaplas@hotpop.com>
To: linux-fbdev-devel@lists.sourceforge.net,
	Linus Torvalds <torvalds@osdl.org>
Cc: Linux Fbdev development list 
	<linux-fbdev-devel@lists.sourceforge.net>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Linux Kernel list <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@osdl.org>
Subject: Re: [Linux-fbdev-devel] Re: [PATCH] fbdev: Fix IO access in rivafb
Date: Tue, 9 Nov 2004 04:02:19 +0800	[thread overview]
Message-ID: <200411090402.22696.adaplas@hotpop.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0411080719460.24286@ppc970.osdl.org>

On Monday 08 November 2004 23:21, Linus Torvalds wrote:
> On Mon, 8 Nov 2004, Antonino A. Daplas wrote:
> > How about this patch?  This is almost the original macro in riva_hw.h,
> > with the __force annotation.
>
> Why not just use __raw_readl/__raw_writel?
>

Ok.

Tony

In big endian machines, the read*/write* accessors do a byteswap for an
inherently little endian PCI bus.  However, rivafb puts the hardwire in big
endian register access, thus the byteswap is not needed. So, instead of
read*/write*, use __raw_read*/__raw_write*.
 
Signed-off-by: Antonino Daplas <adaplas@pol.net>
---

diff -Nru a/drivers/video/riva/riva_hw.h b/drivers/video/riva/riva_hw.h
--- a/drivers/video/riva/riva_hw.h	2004-11-09 03:45:55 +08:00
+++ b/drivers/video/riva/riva_hw.h	2004-11-09 03:50:32 +08:00
@@ -77,14 +77,18 @@
 #include <asm/io.h>
 #define NV_WR08(p,i,d)	out_8(p+i, d)
 #define NV_RD08(p,i)	in_8(p+i)
+#define NV_WR16(p,i,d)  (__raw_writew((d), (u16 __iomem *)(p) + (i)/2))
+#define NV_RD16(p,i)    (__raw_readw((u16 __iomem *)(p) + (i)/2))
+#define NV_WR32(p,i,d)  (__raw_writel((d), (u32 __iomem *)(p) + (i)/4))
+#define NV_RD32(p,i)    (__raw_readl((u32 __iomem *)(p) + (i)/4))
 #else
 #define NV_WR08(p,i,d)  (writeb((d), (u8 __iomem *)(p) + (i)))
 #define NV_RD08(p,i)    (readb((u8 __iomem *)(p) + (i)))
-#endif
 #define NV_WR16(p,i,d)  (writew((d), (u16 __iomem *)(p) + (i)/2))
 #define NV_RD16(p,i)    (readw((u16 __iomem *)(p) + (i)/2))
 #define NV_WR32(p,i,d)  (writel((d), (u32 __iomem *)(p) + (i)/4))
 #define NV_RD32(p,i)    (readl((u32 __iomem *)(p) + (i)/4))
+#endif
 #define VGA_WR08(p,i,d) NV_WR08(p,i,d)
 #define VGA_RD08(p,i)   NV_RD08(p,i)
 



  reply	other threads:[~2004-11-08 20:02 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200411080521.iA85LbG6025914@hera.kernel.org>
2004-11-08  5:57 ` [PATCH] fbdev: Fix IO access in rivafb Benjamin Herrenschmidt
2004-11-08  8:33   ` [Linux-fbdev-devel] " Antonino A. Daplas
2004-11-08  8:33     ` Antonino A. Daplas
2004-11-08 21:50     ` Benjamin Herrenschmidt
2004-11-08 22:18       ` Antonino A. Daplas
2004-11-08  9:06   ` Antonino A. Daplas
2004-11-08  9:06     ` [Linux-fbdev-devel] " Antonino A. Daplas
2004-11-08  9:55     ` Geert Uytterhoeven
2004-11-08 15:21     ` Linus Torvalds
2004-11-08 15:21       ` [Linux-fbdev-devel] " Linus Torvalds
2004-11-08 20:02       ` Antonino A. Daplas [this message]
2004-11-08 20:02         ` Antonino A. Daplas
2004-11-08 20:13         ` Linus Torvalds
2004-11-08 22:08           ` Antonino A. Daplas
2004-11-08 22:08             ` Antonino A. Daplas
2004-11-08 22:25             ` Linus Torvalds
2004-11-12 12:51               ` Guido Guenther
2004-11-12 12:51                 ` [Linux-fbdev-devel] " Guido Guenther
2004-11-12 16:01                 ` Linus Torvalds
2004-11-12 19:18                   ` Guido Guenther
2004-11-12 19:18                     ` [Linux-fbdev-devel] " Guido Guenther
2004-11-12 19:32                     ` Linus Torvalds
2004-11-13 12:57                       ` Guido Guenther
2004-11-13 12:57                         ` [Linux-fbdev-devel] " Guido Guenther
2004-11-13  1:39                     ` Benjamin Herrenschmidt
2004-11-13  1:39                       ` [Linux-fbdev-devel] " Benjamin Herrenschmidt
2004-11-13 11:22                       ` Guido Guenther
2004-11-13 11:22                         ` [Linux-fbdev-devel] " Guido Guenther
2004-11-13 12:00                         ` Antonino A. Daplas
2004-11-13 12:00                           ` [Linux-fbdev-devel] " Antonino A. Daplas
2004-11-13 13:02                           ` Guido Guenther
2004-11-13 13:02                             ` [Linux-fbdev-devel] " Guido Guenther
2004-11-13 18:00                           ` Linus Torvalds
2004-11-13 21:29                             ` Antonino A. Daplas
2004-11-13 21:29                               ` [Linux-fbdev-devel] " Antonino A. Daplas
2004-11-13 22:54                               ` Guido Guenther
2004-11-13 22:54                                 ` [Linux-fbdev-devel] " Guido Guenther
2004-11-13 23:52                               ` Benjamin Herrenschmidt
2004-11-13 23:52                                 ` [Linux-fbdev-devel] " Benjamin Herrenschmidt
2004-11-13 23:49                         ` Benjamin Herrenschmidt
2004-11-13 23:49                           ` [Linux-fbdev-devel] " Benjamin Herrenschmidt
2004-11-13 12:20       ` Yasushi SHOJI
2004-11-19  1:48         ` readl/writel: swap or not to swap (was: [PATCH] fbdev: Fix IO access in rivafb) Yasushi SHOJI
2004-11-19  4:09           ` readl/writel: swap or not to swap Jeff Garzik
2004-11-19  7:24             ` Yasushi SHOJI
2004-11-08 21:52     ` [Linux-fbdev-devel] Re: [PATCH] fbdev: Fix IO access in rivafb Benjamin Herrenschmidt
2004-11-08 23:07       ` Giuseppe Bilotta
2004-11-13 23:22         ` Guido Guenther
2004-11-13 23:22           ` [Linux-fbdev-devel] " Guido Guenther

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200411090402.22696.adaplas@hotpop.com \
    --to=adaplas@hotpop.com \
    --cc=adaplas@pol.net \
    --cc=akpm@osdl.org \
    --cc=benh@kernel.crashing.org \
    --cc=linux-fbdev-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.