diff options
author | Antony Pavlov <antonynpavlov@gmail.com> | 2015-04-29 11:56:58 +0300 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2015-04-30 08:12:57 +0200 |
commit | 377d261708d3057200c7ad9647fddb15169fea78 (patch) | |
tree | 9334590c4a63ec0b4ea01b91a7adc627a1ceb699 /drivers/gpio | |
parent | 92207cde490261c52cc804588561d8f3117cdf87 (diff) | |
download | barebox-377d261708d3057200c7ad9647fddb15169fea78.tar.gz barebox-377d261708d3057200c7ad9647fddb15169fea78.tar.xz |
of: use 'const void *' for struct of_device_id.data
Since 2011 barebox' of_device_id struct uses unsigned long type for data field:
struct of_device_id {
char *compatible;
unsigned long data;
};
Almost always struct of_device_id.data field are used as pointer
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- }, {
Here is of_device_id struct in linux kernel v4.0:
struct of_device_id {
char name[32];
char type[32];
char compatible[128];
const void *data;
};
Changing of_device_id.data type to 'const void *data' will increase
barebox' linux kernel compatibility and decrease number of 'unsigned
long' casts.
Part of the patch was done using the 'coccinelle' tool with the
following semantic patch:
@rule1@
identifier dev;
identifier type;
identifier func;
@@
func(...) {
<...
- dev_get_drvdata(dev, (unsigned long *)&type)
+ dev_get_drvdata(dev, (const void **)&type)
...>
}
@rule2@
identifier dev;
identifier type;
identifier func;
identifier data;
@@
func(...) {
<...
- dev_get_drvdata(dev, (unsigned long *)&type->data)
+ dev_get_drvdata(dev, (const void **)&type->data)
...>
}
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/gpio')
-rw-r--r-- | drivers/gpio/gpio-generic.c | 2 | ||||
-rw-r--r-- | drivers/gpio/gpio-imx.c | 18 | ||||
-rw-r--r-- | drivers/gpio/gpio-mxs.c | 6 | ||||
-rw-r--r-- | drivers/gpio/gpio-omap.c | 6 | ||||
-rw-r--r-- | drivers/gpio/gpio-pca953x.c | 2 | ||||
-rw-r--r-- | drivers/gpio/gpio-tegra.c | 6 |
6 files changed, 20 insertions, 20 deletions
diff --git a/drivers/gpio/gpio-generic.c b/drivers/gpio/gpio-generic.c index 1524a3304b..c6202fc651 100644 --- a/drivers/gpio/gpio-generic.c +++ b/drivers/gpio/gpio-generic.c @@ -370,7 +370,7 @@ static int bgpio_dev_probe(struct device_d *dev) if (err) return err; - dev_get_drvdata(dev, &flags); + dev_get_drvdata(dev, (const void **)&flags); bgc = xzalloc(sizeof(struct bgpio_chip)); if (!bgc) diff --git a/drivers/gpio/gpio-imx.c b/drivers/gpio/gpio-imx.c index d32638cf0b..6311db22fe 100644 --- a/drivers/gpio/gpio-imx.c +++ b/drivers/gpio/gpio-imx.c @@ -136,7 +136,7 @@ static int imx_gpio_probe(struct device_d *dev) struct imx_gpio_regs *regs; int ret; - ret = dev_get_drvdata(dev, (unsigned long *)®s); + ret = dev_get_drvdata(dev, (const void **)®s); if (ret) return ret; @@ -164,28 +164,28 @@ static int imx_gpio_probe(struct device_d *dev) static __maybe_unused struct of_device_id imx_gpio_dt_ids[] = { { .compatible = "fsl,imx1-gpio", - .data = (unsigned long)®s_imx1, + .data = ®s_imx1, }, { .compatible = "fsl,imx21-gpio", - .data = (unsigned long)®s_imx1, + .data = ®s_imx1, }, { .compatible = "fsl,imx27-gpio", - .data = (unsigned long)®s_imx1, + .data = ®s_imx1, }, { .compatible = "fsl,imx31-gpio", - .data = (unsigned long)®s_imx31, + .data = ®s_imx31, }, { .compatible = "fsl,imx35-gpio", - .data = (unsigned long)®s_imx31, + .data = ®s_imx31, }, { .compatible = "fsl,imx51-gpio", - .data = (unsigned long)®s_imx31, + .data = ®s_imx31, }, { .compatible = "fsl,imx53-gpio", - .data = (unsigned long)®s_imx31, + .data = ®s_imx31, }, { .compatible = "fsl,imx6q-gpio", - .data = (unsigned long)®s_imx31, + .data = ®s_imx31, }, { /* sentinel */ } diff --git a/drivers/gpio/gpio-mxs.c b/drivers/gpio/gpio-mxs.c index 30f9589831..b2b3ad3ac6 100644 --- a/drivers/gpio/gpio-mxs.c +++ b/drivers/gpio/gpio-mxs.c @@ -112,7 +112,7 @@ static int mxs_gpio_probe(struct device_d *dev) struct mxs_gpio_regs *regs; int ret, id; - ret = dev_get_drvdata(dev, (unsigned long *)®s); + ret = dev_get_drvdata(dev, (const void **)®s); if (ret) return ret; @@ -150,10 +150,10 @@ static int mxs_gpio_probe(struct device_d *dev) static __maybe_unused struct of_device_id mxs_gpio_dt_ids[] = { { .compatible = "fsl,imx23-gpio", - .data = (unsigned long)®s_mxs23, + .data = ®s_mxs23, }, { .compatible = "fsl,imx28-gpio", - .data = (unsigned long)®s_mxs28, + .data = ®s_mxs28, }, { /* sentinel */ } diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c index ff31b15dcd..43449df45b 100644 --- a/drivers/gpio/gpio-omap.c +++ b/drivers/gpio/gpio-omap.c @@ -144,7 +144,7 @@ static int omap_gpio_probe(struct device_d *dev) struct omap_gpio_chip *omapgpio; struct omap_gpio_drvdata *drvdata = NULL; - dev_get_drvdata(dev, (unsigned long *)&drvdata); + dev_get_drvdata(dev, (const void **)&drvdata); omapgpio = xzalloc(sizeof(*omapgpio)); omapgpio->base = dev_request_mem_region(dev, 0); @@ -176,10 +176,10 @@ static int omap_gpio_probe(struct device_d *dev) static __maybe_unused struct of_device_id omap_gpio_dt_ids[] = { { .compatible = "ti,omap4-gpio", - .data = (unsigned long)&gpio_omap4_drvdata, + .data = &gpio_omap4_drvdata, }, { .compatible = "ti,omap3-gpio", - .data = (unsigned long)&gpio_omap3_drvdata, + .data = &gpio_omap3_drvdata, }, { } }; diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c index aabbb09eb8..3c952301a1 100644 --- a/drivers/gpio/gpio-pca953x.c +++ b/drivers/gpio/gpio-pca953x.c @@ -431,7 +431,7 @@ static int pca953x_probe(struct device_d *dev) } else { int err; - err = dev_get_drvdata(dev, &driver_data); + err = dev_get_drvdata(dev, (const void **)&driver_data); if (err) return err; diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c index d4eea4e572..e2cc3f4a8c 100644 --- a/drivers/gpio/gpio-tegra.c +++ b/drivers/gpio/gpio-tegra.c @@ -142,7 +142,7 @@ static int tegra_gpio_probe(struct device_d *dev) { int i, j, ret; - ret = dev_get_drvdata(dev, (unsigned long *)&config); + ret = dev_get_drvdata(dev, (const void **)&config); if (ret) { dev_err(dev, "dev_get_drvdata failed: %d\n", ret); return ret; @@ -184,10 +184,10 @@ static struct tegra_gpio_soc_config tegra30_gpio_config = { static __maybe_unused struct of_device_id tegra_gpio_dt_ids[] = { { .compatible = "nvidia,tegra20-gpio", - .data = (unsigned long)&tegra20_gpio_config + .data = &tegra20_gpio_config }, { .compatible = "nvidia,tegra30-gpio", - .data = (unsigned long)&tegra30_gpio_config + .data = &tegra30_gpio_config }, { /* sentinel */ }, |