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>
WIP_next-LS
master
next
stable/v2017.05
stable/v2017.06
stable/v2017.07
stable/v2017.11
stable/v2018.07
stable/v2018.09
stable/v2018.12
work/fit-support
v2020.07.0
v2020.06.0
v2020.05.0
v2020.04.0
v2020.03.0
v2020.02.0
v2020.01.0
v2019.12.0
v2019.11.0
v2019.10.0
v2019.09.0
v2019.08.1
v2019.08.0
v2019.07.0
v2019.06.1
v2019.06.0
v2019.05.0
v2019.04.0
v2019.03.0
v2019.02.0
v2019.01.0
v2018.12.0
v2018.11.0
v2018.10.0
v2018.09.1
v2018.09.0
v2018.08.1
v2018.08.0
v2018.07.2
v2018.07.1
v2018.07.0
v2018.06.0
v2018.05.0
v2018.04.0
v2018.03.0
v2018.02.0
v2018.01.0
v2017.12.0
v2017.11.0
v2017.10.0
v2017.09.0
v2017.08.0
v2017.07.1
v2017.07.0
v2017.06.2
v2017.06.1
v2017.06.0
v2017.05.4
v2017.05.3
v2017.05.2
v2017.05.1
v2017.05.0
v2017.04.0
v2017.03.0
v2017.02.0
v2017.01.0
v2016.11.0
v2016.10.0
v2016.09.0
v2016.08.0
v2016.07.0
v2016.06.0
v2016.05.0
v2016.04.0
v2016.03.0
v2016.02.0
v2016.01.0
v2015.12.0
v2015.11.0
v2015.10.0
v2015.09.0
v2015.08.0
v2015.07.0
v2015.06.0
|
---|
|
arch/arm/mach-imx/clocksource.c |
---|
arch/arm/mach-imx/esdctl.c |
---|
arch/arm/mach-imx/iim.c |
---|
drivers/ata/sata-imx.c |
---|
drivers/base/driver.c |
---|
drivers/bus/imx-weim.c |
---|
drivers/bus/mvebu-mbus.c |
---|
drivers/clk/mvebu/common.c |
---|
drivers/dma/apbh_dma.c |
---|
drivers/eeprom/at24.c |
---|
drivers/gpio/gpio-generic.c |
---|
drivers/gpio/gpio-imx.c |
---|
drivers/gpio/gpio-mxs.c |
---|
drivers/gpio/gpio-omap.c |
---|
drivers/gpio/gpio-pca953x.c |
---|
drivers/gpio/gpio-tegra.c |
---|
drivers/i2c/busses/i2c-at91.c |
---|
drivers/i2c/busses/i2c-mv64xxx.c |
---|
drivers/i2c/busses/i2c-omap.c |
---|
drivers/i2c/busses/i2c-tegra.c |
---|
drivers/mci/omap_hsmmc.c |
---|
drivers/mfd/mc13xxx.c |
---|
drivers/mtd/nand/nand_mxs.c |
---|
drivers/net/designware.c |
---|
drivers/net/fec_imx.c |
---|
drivers/pci/pci-mvebu.c |
---|
drivers/pci/pci-tegra.c |
---|
drivers/pinctrl/mvebu/armada-370.c |
---|
drivers/pinctrl/mvebu/armada-xp.c |
---|
drivers/pinctrl/mvebu/dove.c |
---|
drivers/pinctrl/mvebu/kirkwood.c |
---|
drivers/pinctrl/pinctrl-at91.c |
---|
drivers/pinctrl/pinctrl-rockchip.c |
---|
drivers/pinctrl/pinctrl-tegra-xusb.c |
---|
drivers/pinctrl/pinctrl-tegra30.c |
---|
drivers/pwm/pwm-imx.c |
---|
drivers/rtc/rtc-ds1307.c |
---|
drivers/serial/serial_cadence.c |
---|
drivers/serial/serial_imx.c |
---|
drivers/serial/serial_ns16550.c |
---|
drivers/spi/imx_spi.c |
---|
drivers/spi/mvebu_spi.c |
---|
drivers/spi/omap3_spi.c |
---|
drivers/usb/imx/imx-usb-misc.c |
---|
drivers/usb/musb/musb_dsps.c |
---|
drivers/usb/musb/phy-am335x-control.c |
---|
drivers/video/imx-ipu-v3/imx-hdmi.c |
---|
drivers/video/imx-ipu-v3/imx-ldb.c |
---|
drivers/video/imx-ipu-v3/ipu-common.c |
---|
drivers/watchdog/imxwd.c |
---|
include/driver.h |
---|
include/linux/clk.h |
---|
include/of.h |
---|