RFC: of_device_id: use pointer for the data field

Antony Pavlov antonynpavlov at gmail.com
Mon Apr 27 02:17:31 PDT 2015


On Mon, 27 Apr 2015 08:00:59 +0200
Sascha Hauer <s.hauer at pengutronix.de> wrote:

> On Sun, Apr 26, 2015 at 05:38:31PM +0300, Antony Pavlov wrote:
> > Hi!
> > 
> > Just now barebox' of_device_id struct uses unsigned long type for data field:
> > 
> >   struct of_device_id {
> >           char *compatible;
> >           unsigned long data;
> >   };
> > 
> > Here is of_device_id struct in linux kernel:
> > 
> >   struct of_device_id {
> >           char name[32];
> >           char type[32];
> >           char compatible[128];
> >           const void *data;
> >   };
> > 
> > Just all data fields are used as pointers and need 'unsigned long' casting.
> > E.g. see 'git grep -A 4 of_device_id drivers/' output:
> > 
> >   drivers/ata/sata-imx.c:static __maybe_unused struct of_device_id imx_sata_dt_ids[] = {
> >   drivers/ata/sata-imx.c- {
> >   drivers/ata/sata-imx.c-         .compatible = "fsl,imx6q-ahci",
> >   drivers/ata/sata-imx.c-         .data = (unsigned long)&data_imx6,
> >   drivers/ata/sata-imx.c- }, {
> > 
> > Could we use 'const void *' type for data field as linux kernel does?
> 
> Yes, good idea.

Ok, I'll try to prepare the patch in several days.

-- 
Best regards,
  Antony Pavlov



More information about the barebox mailing list