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>
1 parent 92207cd commit 377d261708d3057200c7ad9647fddb15169fea78
@Antony Pavlov Antony Pavlov authored on 29 Apr 2015
Sascha Hauer committed on 30 Apr 2015
Showing 53 changed files
View
arch/arm/mach-imx/clocksource.c
View
arch/arm/mach-imx/esdctl.c
View
arch/arm/mach-imx/iim.c
View
drivers/ata/sata-imx.c
View
drivers/base/driver.c
View
drivers/bus/imx-weim.c
View
drivers/bus/mvebu-mbus.c
View
drivers/clk/mvebu/common.c
View
drivers/dma/apbh_dma.c
View
drivers/eeprom/at24.c
View
drivers/gpio/gpio-generic.c
View
drivers/gpio/gpio-imx.c
View
drivers/gpio/gpio-mxs.c
View
drivers/gpio/gpio-omap.c
View
drivers/gpio/gpio-pca953x.c
View
drivers/gpio/gpio-tegra.c
View
drivers/i2c/busses/i2c-at91.c
View
drivers/i2c/busses/i2c-mv64xxx.c
View
drivers/i2c/busses/i2c-omap.c
View
drivers/i2c/busses/i2c-tegra.c
View
drivers/mci/omap_hsmmc.c
View
drivers/mfd/mc13xxx.c
View
drivers/mtd/nand/nand_mxs.c
View
drivers/net/designware.c
View
drivers/net/fec_imx.c
View
drivers/pci/pci-mvebu.c
View
drivers/pci/pci-tegra.c
View
drivers/pinctrl/mvebu/armada-370.c
View
drivers/pinctrl/mvebu/armada-xp.c
View
drivers/pinctrl/mvebu/dove.c
View
drivers/pinctrl/mvebu/kirkwood.c
View
drivers/pinctrl/pinctrl-at91.c
View
drivers/pinctrl/pinctrl-rockchip.c
View
drivers/pinctrl/pinctrl-tegra-xusb.c
View
drivers/pinctrl/pinctrl-tegra30.c
View
drivers/pwm/pwm-imx.c
View
drivers/rtc/rtc-ds1307.c
View
drivers/serial/serial_cadence.c
View
drivers/serial/serial_imx.c
View
drivers/serial/serial_ns16550.c
View
drivers/spi/imx_spi.c
View
drivers/spi/mvebu_spi.c
View
drivers/spi/omap3_spi.c
View
drivers/usb/imx/imx-usb-misc.c
View
drivers/usb/musb/musb_dsps.c
View
drivers/usb/musb/phy-am335x-control.c
View
drivers/video/imx-ipu-v3/imx-hdmi.c
View
drivers/video/imx-ipu-v3/imx-ldb.c
View
drivers/video/imx-ipu-v3/ipu-common.c
View
drivers/watchdog/imxwd.c
View
include/driver.h
View
include/linux/clk.h
View
include/of.h