On 05/31/2013 07:55 AM, Michal Simek wrote:
quoted hunk ↗ jump to hunk
diff --git a/drivers/video/xilinxfb.c b/drivers/video/xilinxfb.c
index f3d4a69..e27a4f6 100644
--- a/drivers/video/xilinxfb.c
+++ b/drivers/video/xilinxfb.c
@@ -131,7 +131,7 @@ struct xilinxfb_drvdata {
dcr_host_t dcr_host;
unsigned int dcr_len;
#endif
- void *fb_virt; /* virt. address of the frame buffer */
+ void __iomem *fb_virt; /* virt. address of the frame buffer */
dma_addr_t fb_phys; /* phys. address of the frame buffer */
int fb_alloced; /* Flag, was the fb memory alloced? */
@@ -273,8 +273,10 @@ static int xilinxfb_assign(struct platform_device *pdev,
drvdata->fb_virt = ioremap(pdata->fb_phys, fbsize);
} else {
drvdata->fb_alloced = 1;
- drvdata->fb_virt = dma_alloc_coherent(dev, PAGE_ALIGN(fbsize),
- &drvdata->fb_phys, GFP_KERNEL);
+ drvdata->fb_virt = (__force void __iomem *)
+ dma_alloc_coherent(dev, PAGE_ALIGN(fbsize),
+ &drvdata->fb_phys,
+ GFP_KERNEL);
I think this is wrong. At least, it would be on PowerPC.
dma_alloc_coherent() allocates regular RAM, not I/O memory. So it
should not be __iomem.
--
Timur Tabi