summaryrefslogtreecommitdiffstats
path: root/drivers/bus
diff options
context:
space:
mode:
authorAntony Pavlov <antonynpavlov@gmail.com>2015-04-29 11:56:58 +0300
committerSascha Hauer <s.hauer@pengutronix.de>2015-04-30 08:12:57 +0200
commit377d261708d3057200c7ad9647fddb15169fea78 (patch)
tree9334590c4a63ec0b4ea01b91a7adc627a1ceb699 /drivers/bus
parent92207cde490261c52cc804588561d8f3117cdf87 (diff)
downloadbarebox-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/bus')
-rw-r--r--drivers/bus/imx-weim.c12
-rw-r--r--drivers/bus/mvebu-mbus.c18
2 files changed, 15 insertions, 15 deletions
diff --git a/drivers/bus/imx-weim.c b/drivers/bus/imx-weim.c
index 9b8848d0ad..bc090cf191 100644
--- a/drivers/bus/imx-weim.c
+++ b/drivers/bus/imx-weim.c
@@ -48,22 +48,22 @@ static struct of_device_id weim_id_table[] = {
{
/* i.MX1/21 */
.compatible = "fsl,imx1-weim",
- .data = (unsigned long)&imx1_weim_devtype,
+ .data = &imx1_weim_devtype,
}, {
/* i.MX25/27/31/35 */
.compatible = "fsl,imx27-weim",
- .data = (unsigned long)&imx27_weim_devtype,
+ .data = &imx27_weim_devtype,
}, {
/* i.MX50/53/6Q */
.compatible = "fsl,imx50-weim",
- .data = (unsigned long)&imx50_weim_devtype,
+ .data = &imx50_weim_devtype,
}, {
/* i.MX51 */
.compatible = "fsl,imx51-weim",
- .data = (unsigned long)&imx51_weim_devtype,
+ .data = &imx51_weim_devtype,
}, {
.compatible = "fsl,imx6q-weim",
- .data = (unsigned long)&imx50_weim_devtype,
+ .data = &imx50_weim_devtype,
}, {
}
};
@@ -134,7 +134,7 @@ static int weim_probe(struct device_d *dev)
struct imx_weim *weim;
int ret;
- ret = dev_get_drvdata(dev, (unsigned long *)&devtype);
+ ret = dev_get_drvdata(dev, (const void **)&devtype);
if (ret)
return ret;
diff --git a/drivers/bus/mvebu-mbus.c b/drivers/bus/mvebu-mbus.c
index 9dc43011b9..87a4a0cea6 100644
--- a/drivers/bus/mvebu-mbus.c
+++ b/drivers/bus/mvebu-mbus.c
@@ -454,31 +454,31 @@ mv78xx0_mbus_data __maybe_unused = {
static struct of_device_id mvebu_mbus_dt_ids[] = {
#if defined(CONFIG_ARCH_ARMADA_370) || defined(CONFIG_ARCH_ARMADA_XP)
{ .compatible = "marvell,armada370-mbus",
- .data = (u32)&armada_370_xp_mbus_data, },
+ .data = &armada_370_xp_mbus_data, },
{ .compatible = "marvell,armadaxp-mbus",
- .data = (u32)&armada_370_xp_mbus_data, },
+ .data = &armada_370_xp_mbus_data, },
#endif
#if defined(CONFIG_ARCH_DOVE)
{ .compatible = "marvell,dove-mbus",
- .data = (u32)&dove_mbus_data, },
+ .data = &dove_mbus_data, },
#endif
#if defined(CONFIG_ARCH_KIRKWOOD)
{ .compatible = "marvell,kirkwood-mbus",
- .data = (u32)&kirkwood_mbus_data, },
+ .data = &kirkwood_mbus_data, },
#endif
#if defined(CONFIG_ARCH_ORION5X)
{ .compatible = "marvell,orion5x-88f5281-mbus",
- .data = (u32)&orion5x_4win_mbus_data, },
+ .data = &orion5x_4win_mbus_data, },
{ .compatible = "marvell,orion5x-88f5182-mbus",
- .data = (u32)&orion5x_2win_mbus_data, },
+ .data = &orion5x_2win_mbus_data, },
{ .compatible = "marvell,orion5x-88f5181-mbus",
- .data = (u32)&orion5x_2win_mbus_data, },
+ .data = &orion5x_2win_mbus_data, },
{ .compatible = "marvell,orion5x-88f6183-mbus",
- .data = (u32)&orion5x_4win_mbus_data, },
+ .data = &orion5x_4win_mbus_data, },
#endif
#if defined(CONFIG_ARCH_MV78XX0)
{ .compatible = "marvell,mv78xx0-mbus",
- .data = (u32)&mv78xx0_mbus_data, },
+ .data = &mv78xx0_mbus_data, },
#endif
{ },
};