[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4DB81B9E.3000401@pengutronix.de>
Date: Wed, 27 Apr 2011 15:35:26 +0200
From: Marc Kleine-Budde <mkl@...gutronix.de>
To: Subhasish Ghosh <subhasish@...tralsolutions.com>
CC: Russell King - ARM Linux <linux@....linux.org.uk>,
sachi@...tralsolutions.com,
davinci-linux-open-source@...ux.davincidsp.com,
Samuel Ortiz <sameo@...ux.intel.com>, nsekhar@...com,
open list <linux-kernel@...r.kernel.org>, m-watkins@...com,
linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH v4 01/11] mfd: add pruss mfd driver.
On 04/27/2011 03:18 PM, Subhasish Ghosh wrote:
> My problem is, I am doing something like this:
>
> s32 pruss_writel_multi(struct device *dev, u32 offset,
> u32 *pdatatowrite, u16 wordstowrite)
> {
> struct pruss_priv *pruss = dev_get_drvdata(dev->parent);
> u32 __iomem *paddresstowrite;
> u16 i;
>
> paddresstowrite = pruss->ioaddr + offset;
>
> for (i = 0; i < wordstowrite; i++)
> iowrite32(*pdatatowrite++, paddresstowrite++);
>
> return 0;
> }
>
> So, if I make paddresstowrite as void, it will not work. The above
> implementation does not generate any sparse errors though.
Incrementing a u32 pointer will result in increasing the address by 4
bytes. Incrementing a void pointer will result in increasing the address
by just one byte. (Pointer arithmetic on void * is a gnu extension but
IMHO a pretty nice one, though)
regards, Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
Download attachment "signature.asc" of type "application/pgp-signature" (263 bytes)
Powered by blists - more mailing lists