9
0
Fork 0
barebox/drivers/clk
Antony Pavlov 377d261708 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>
2015-04-30 08:12:57 +02:00
..
mvebu of: use 'const void *' for struct of_device_id.data 2015-04-30 08:12:57 +02:00
mxs drivers: remove unnecessary mach/imx-regs.h include 2015-01-05 11:30:59 +01:00
rockchip ARM: Rockchip: Update clk driver from Linux kernel for use with newer DTS 2015-03-05 15:19:28 +01:00
tegra clk: tegra: don't enable UART clocks by default 2014-11-04 12:16:52 +01:00
Kconfig clk: Add Altera SoCFPGA clk support 2013-09-23 08:40:31 +02:00
Makefile CLK: Add fractional divider clock support from Linux kernel 2015-03-05 09:11:33 +01:00
clk-ar933x.c resource: Let dev_request_mem_region return an error pointer 2014-09-16 08:32:10 +02:00
clk-composite.c CLK: Add support for composite clock from Linux kernel 2015-03-05 09:11:33 +01:00
clk-divider.c clk: clk-divider: fix _get_maxdiv for table based divider 2015-03-12 12:01:17 +01:00
clk-fixed-factor.c clk: fixed-factor: add DT init function 2014-04-29 08:11:28 +02:00
clk-fixed.c drivers/clk/clk-fixed.c: Fix sparse warning 2014-02-17 08:21:22 +01:00
clk-fractional-divider.c clk: fractional-divider: fix build with CONFIG_MODULES 2015-03-26 07:47:48 +01:00
clk-gate.c clk: gate: remove superfluous code 2014-10-21 13:08:46 +02:00
clk-mux.c CLK: clk-mux: Respect CLK_MUX_HIWORD_MASK flag 2015-03-05 09:11:34 +01:00
clk.c Merge branch 'for-next/rockchip' 2015-03-09 08:30:35 +01:00
clkdev.c clk: avoid possible NULL ptr deref 2014-02-10 08:49:55 +01:00
socfpga.c resource: Let dev_request_mem_region return an error pointer 2014-09-16 08:32:10 +02:00