Re: [PATCH v3 7/8] video: xilinxfb: Fix sparse warnings
From: Michal Simek <monstr@monstr.eu>
Date: 2013-05-31 13:38:05
Also in:
lkml
On 05/31/2013 03:26 PM, Timur Tabi wrote:
On 05/31/2013 07:55 AM, Michal Simek wrote:quoted
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.
The same is for Microblaze. Driver shares fb_virt for IO memory and for allocated memory. The purpose of this driver wasn't to change the driver logic just resolved sparse warnings. The other way is also wrong. I have compiled this driver with ppc toolchain and it should remove sparse warnings for PPC. Thanks, Michal -- Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91 w: www.monstr.eu p: +42-0-721842854 Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/ Maintainer of Linux kernel - Xilinx Zynq ARM architecture Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform
Attachments
- signature.asc [application/pgp-signature] 263 bytes