Message ID | 1406051719-17354-1-git-send-email-pawel.moll@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, 2014-07-22 at 18:55 +0100, Pawel Moll wrote: > * replaced references to platform_bus.dev with NULL > in places where it shouldn't make any difference So now the leftovers... > diff --git a/arch/arm/mach-imx/devices/devices.c b/arch/arm/mach-imx/devices/devices.c > index 1b4366a..48c3817 100644 > --- a/arch/arm/mach-imx/devices/devices.c > +++ b/arch/arm/mach-imx/devices/devices.c > @@ -24,12 +24,12 @@ > > struct device mxc_aips_bus = { > .init_name = "mxc_aips", > - .parent = &platform_bus, > + .parent = &platform_bus.dev, > }; > > struct device mxc_ahb_bus = { > .init_name = "mxc_ahb", > - .parent = &platform_bus, > + .parent = &platform_bus.dev, > }; > > int __init mxc_device_init(void) Seems that the author meant to have those two bus devices hanging from the platform_bus in device hierarchy. Seems fair enough to me. > diff --git a/drivers/char/tile-srom.c b/drivers/char/tile-srom.c > index bd37747..4e4b7a2 100644 > --- a/drivers/char/tile-srom.c > +++ b/drivers/char/tile-srom.c > @@ -350,7 +350,7 @@ static int srom_setup_minor(struct srom_dev *srom, int index) > SROM_PAGE_SIZE_OFF, sizeof(srom->page_size)) < 0) > return -EIO; > > - dev = device_create(srom_class, &platform_bus, > + dev = device_create(srom_class, &platform_bus.dev, > MKDEV(srom_major, index), srom, "%d", index); > return PTR_ERR_OR_ZERO(dev); > } Again, non-platform device placed in the hierarchy. > diff --git a/drivers/mmc/host/sdhci-pltfm.c b/drivers/mmc/host/sdhci-pltfm.c > index 7e834fb..9a2b0d0 100644 > --- a/drivers/mmc/host/sdhci-pltfm.c > +++ b/drivers/mmc/host/sdhci-pltfm.c > @@ -137,7 +137,7 @@ struct sdhci_host *sdhci_pltfm_init(struct platform_device *pdev, > dev_err(&pdev->dev, "Invalid iomem size!\n"); > > /* Some PCI-based MFD need the parent here */ > - if (pdev->dev.parent != &platform_bus && !np) > + if (pdev->dev.parent != &platform_bus.dev && !np) > host = sdhci_alloc_host(pdev->dev.parent, > sizeof(struct sdhci_pltfm_host) + priv_size); > else Special treatment for non-platform devices. > diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c > index 3cbb57a..c14c36f 100644 > --- a/drivers/scsi/hosts.c > +++ b/drivers/scsi/hosts.c > @@ -218,7 +218,7 @@ int scsi_add_host_with_dma(struct Scsi_Host *shost, struct device *dev, > goto fail; > > if (!shost->shost_gendev.parent) > - shost->shost_gendev.parent = dev ? dev : &platform_bus; > + shost->shost_gendev.parent = dev ? dev : &platform_bus.dev; > if (!dma_dev) > dma_dev = shost->shost_gendev.parent; > shost_gendev is a generic (as in struct device, non-platform one) device, that is being explicitly placed in the hierarchy. So it makes it 4, not 3 ;-) places where referencing platform_bus *maybe* makes some sense. Pawel
On Tue, Jul 22, 2014 at 07:01:09PM +0100, Pawel Moll wrote: > On Tue, 2014-07-22 at 18:55 +0100, Pawel Moll wrote: > > * replaced references to platform_bus.dev with NULL > > in places where it shouldn't make any difference > > So now the leftovers... > > > diff --git a/arch/arm/mach-imx/devices/devices.c b/arch/arm/mach-imx/devices/devices.c > > index 1b4366a..48c3817 100644 > > --- a/arch/arm/mach-imx/devices/devices.c > > +++ b/arch/arm/mach-imx/devices/devices.c > > @@ -24,12 +24,12 @@ > > > > struct device mxc_aips_bus = { > > .init_name = "mxc_aips", > > - .parent = &platform_bus, > > + .parent = &platform_bus.dev, > > }; > > > > struct device mxc_ahb_bus = { > > .init_name = "mxc_ahb", > > - .parent = &platform_bus, > > + .parent = &platform_bus.dev, > > }; > > > > int __init mxc_device_init(void) > > Seems that the author meant to have those two bus devices hanging from > the platform_bus in device hierarchy. Seems fair enough to me. No, not at all, this is a different bus, put the root bus at the root of the sysfs tree, not at some "arbritrary" point on a platform device. > > diff --git a/drivers/char/tile-srom.c b/drivers/char/tile-srom.c > > index bd37747..4e4b7a2 100644 > > --- a/drivers/char/tile-srom.c > > +++ b/drivers/char/tile-srom.c > > @@ -350,7 +350,7 @@ static int srom_setup_minor(struct srom_dev *srom, int index) > > SROM_PAGE_SIZE_OFF, sizeof(srom->page_size)) < 0) > > return -EIO; > > > > - dev = device_create(srom_class, &platform_bus, > > + dev = device_create(srom_class, &platform_bus.dev, > > MKDEV(srom_major, index), srom, "%d", index); > > return PTR_ERR_OR_ZERO(dev); > > } > > Again, non-platform device placed in the hierarchy. Again, not ok. If it's a platform device, it's a platform device, and make it one. If it isn't, like this one, make it a virtual device and pass NULL here. > > diff --git a/drivers/mmc/host/sdhci-pltfm.c b/drivers/mmc/host/sdhci-pltfm.c > > index 7e834fb..9a2b0d0 100644 > > --- a/drivers/mmc/host/sdhci-pltfm.c > > +++ b/drivers/mmc/host/sdhci-pltfm.c > > @@ -137,7 +137,7 @@ struct sdhci_host *sdhci_pltfm_init(struct platform_device *pdev, > > dev_err(&pdev->dev, "Invalid iomem size!\n"); > > > > /* Some PCI-based MFD need the parent here */ > > - if (pdev->dev.parent != &platform_bus && !np) > > + if (pdev->dev.parent != &platform_bus.dev && !np) > > host = sdhci_alloc_host(pdev->dev.parent, > > sizeof(struct sdhci_pltfm_host) + priv_size); > > else > > Special treatment for non-platform devices. Ugh, why should you care? I don't understand the logic here. > > diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c > > index 3cbb57a..c14c36f 100644 > > --- a/drivers/scsi/hosts.c > > +++ b/drivers/scsi/hosts.c > > @@ -218,7 +218,7 @@ int scsi_add_host_with_dma(struct Scsi_Host *shost, struct device *dev, > > goto fail; > > > > if (!shost->shost_gendev.parent) > > - shost->shost_gendev.parent = dev ? dev : &platform_bus; > > + shost->shost_gendev.parent = dev ? dev : &platform_bus.dev; > > if (!dma_dev) > > dma_dev = shost->shost_gendev.parent; > > > > shost_gendev is a generic (as in struct device, non-platform one) > device, that is being explicitly placed in the hierarchy. Then make it a virtual device, as that's what it is, replace this with NULL. > So it makes it 4, not 3 ;-) places where referencing platform_bus > *maybe* makes some sense. Nope, see above :) thanks, greg k-h
Hi, On Tue, Jul 22, 2014 at 10:55 AM, Pawel Moll <pawel.moll@arm.com> wrote: > ... describing the root of the device tree, so one can write > a platform driver initializing the platform. > > There has been a lot of references to platform_bus device where > it didn't make any sense, because simply using NULL as a parent > will make the device be adopted by the top level anyway. > > Signed-off-by: Pawel Moll <pawel.moll@arm.com> > --- > Changes since v2: > > * replaced references to platform_bus.dev with NULL > in places where it shouldn't make any difference > > Changes since v1: > > * rebased on top of v3.16-rc6 > > * fixed up all new explicit references to platform_bus, > with majority in mach-shmobile; 99% of them seem completely > useless and I was *very* tempted to replace them with > NULL - all reasons for and against this are welcomed > > arch/arm/mach-bcm/board_bcm21664.c | 3 +-- > arch/arm/mach-bcm/board_bcm281xx.c | 3 +-- > arch/arm/mach-clps711x/board-edb7211.c | 6 +++--- > arch/arm/mach-clps711x/board-p720t.c | 6 +++--- > arch/arm/mach-imx/devices/devices.c | 4 ++-- > arch/arm/mach-imx/mach-mx27ads.c | 2 +- > arch/arm/mach-shmobile/board-ape6evm.c | 14 +++++++------- > arch/arm/mach-shmobile/board-bockw.c | 19 ++++++++---------- > arch/arm/mach-shmobile/board-genmai.c | 5 ++--- > arch/arm/mach-shmobile/board-koelsch.c | 26 ++++++++++++------------- > arch/arm/mach-shmobile/board-lager.c | 34 ++++++++++++++------------------- > arch/arm/mach-shmobile/board-marzen.c | 1 - > arch/arm/mach-shmobile/setup-r7s72100.c | 2 +- > arch/arm/mach-shmobile/setup-r8a73a4.c | 8 ++++---- > arch/arm/mach-shmobile/setup-r8a7778.c | 13 ++++++------- > arch/arm/mach-shmobile/setup-r8a7779.c | 6 +++--- > arch/arm/mach-shmobile/setup-r8a7790.c | 10 +++++----- > arch/arm/mach-shmobile/setup-r8a7791.c | 8 ++++---- > arch/unicore32/kernel/puv3-core.c | 2 +- > arch/unicore32/kernel/puv3-nb0916.c | 6 +++--- > drivers/base/platform.c | 18 +++++++++++------ > drivers/char/tile-srom.c | 2 +- > drivers/mmc/host/sdhci-pltfm.c | 2 +- > drivers/scsi/hosts.c | 2 +- > include/linux/platform_device.h | 2 +- > 25 files changed, 97 insertions(+), 107 deletions(-) > > diff --git a/arch/arm/mach-bcm/board_bcm21664.c b/arch/arm/mach-bcm/board_bcm21664.c > index f0521cc..82ad568 100644 > --- a/arch/arm/mach-bcm/board_bcm21664.c > +++ b/arch/arm/mach-bcm/board_bcm21664.c > @@ -60,8 +60,7 @@ static void bcm21664_restart(enum reboot_mode mode, const char *cmd) > > static void __init bcm21664_init(void) > { > - of_platform_populate(NULL, of_default_bus_match_table, NULL, > - &platform_bus); > + of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); > kona_l2_cache_init(); > } > > diff --git a/arch/arm/mach-bcm/board_bcm281xx.c b/arch/arm/mach-bcm/board_bcm281xx.c > index 1ac59fc..2e367bd 100644 > --- a/arch/arm/mach-bcm/board_bcm281xx.c > +++ b/arch/arm/mach-bcm/board_bcm281xx.c > @@ -58,8 +58,7 @@ static void bcm281xx_restart(enum reboot_mode mode, const char *cmd) > > static void __init bcm281xx_init(void) > { > - of_platform_populate(NULL, of_default_bus_match_table, NULL, > - &platform_bus); > + of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); > kona_l2_cache_init(); > } > > diff --git a/arch/arm/mach-clps711x/board-edb7211.c b/arch/arm/mach-clps711x/board-edb7211.c > index f9828f8..6144fb5 100644 > --- a/arch/arm/mach-clps711x/board-edb7211.c > +++ b/arch/arm/mach-clps711x/board-edb7211.c > @@ -158,16 +158,16 @@ static void __init edb7211_init_late(void) > gpio_request_array(edb7211_gpios, ARRAY_SIZE(edb7211_gpios)); > > platform_device_register(&edb7211_flash_pdev); > - platform_device_register_data(&platform_bus, "platform-lcd", 0, > + platform_device_register_data(NULL, "platform-lcd", 0, > &edb7211_lcd_power_pdata, > sizeof(edb7211_lcd_power_pdata)); > - platform_device_register_data(&platform_bus, "generic-bl", 0, > + platform_device_register_data(NULL, "generic-bl", 0, > &edb7211_lcd_backlight_pdata, > sizeof(edb7211_lcd_backlight_pdata)); > platform_device_register_simple("video-clps711x", 0, NULL, 0); > platform_device_register_simple("cs89x0", 0, edb7211_cs8900_resource, > ARRAY_SIZE(edb7211_cs8900_resource)); > - platform_device_register_data(&platform_bus, "i2c-gpio", 0, > + platform_device_register_data(NULL, "i2c-gpio", 0, > &edb7211_i2c_pdata, > sizeof(edb7211_i2c_pdata)); > } > diff --git a/arch/arm/mach-clps711x/board-p720t.c b/arch/arm/mach-clps711x/board-p720t.c > index 0cf0e51..96bcc76 100644 > --- a/arch/arm/mach-clps711x/board-p720t.c > +++ b/arch/arm/mach-clps711x/board-p720t.c > @@ -348,14 +348,14 @@ static void __init p720t_init_late(void) > { > WARN_ON(gpio_request_array(p720t_gpios, ARRAY_SIZE(p720t_gpios))); > > - platform_device_register_data(&platform_bus, "platform-lcd", 0, > + platform_device_register_data(NULL, "platform-lcd", 0, > &p720t_lcd_power_pdata, > sizeof(p720t_lcd_power_pdata)); > - platform_device_register_data(&platform_bus, "generic-bl", 0, > + platform_device_register_data(NULL, "generic-bl", 0, > &p720t_lcd_backlight_pdata, > sizeof(p720t_lcd_backlight_pdata)); > platform_device_register_simple("video-clps711x", 0, NULL, 0); > - platform_device_register_data(&platform_bus, "leds-gpio", 0, > + platform_device_register_data(NULL, "leds-gpio", 0, > &p720t_gpio_led_pdata, > sizeof(p720t_gpio_led_pdata)); > } > diff --git a/arch/arm/mach-imx/devices/devices.c b/arch/arm/mach-imx/devices/devices.c > index 1b4366a..48c3817 100644 > --- a/arch/arm/mach-imx/devices/devices.c > +++ b/arch/arm/mach-imx/devices/devices.c > @@ -24,12 +24,12 @@ > > struct device mxc_aips_bus = { > .init_name = "mxc_aips", > - .parent = &platform_bus, > + .parent = &platform_bus.dev, > }; > > struct device mxc_ahb_bus = { > .init_name = "mxc_ahb", > - .parent = &platform_bus, > + .parent = &platform_bus.dev, > }; > > int __init mxc_device_init(void) > diff --git a/arch/arm/mach-imx/mach-mx27ads.c b/arch/arm/mach-imx/mach-mx27ads.c > index 2f834ce..eb1c347 100644 > --- a/arch/arm/mach-imx/mach-mx27ads.c > +++ b/arch/arm/mach-imx/mach-mx27ads.c > @@ -245,7 +245,7 @@ static void __init mx27ads_regulator_init(void) > vchip->set = vgpio_set; > gpiochip_add(vchip); > > - platform_device_register_data(&platform_bus, "reg-fixed-voltage", > + platform_device_register_data(NULL, "reg-fixed-voltage", > PLATFORM_DEVID_AUTO, > &mx27ads_lcd_regulator_pdata, > sizeof(mx27ads_lcd_regulator_pdata)); > diff --git a/arch/arm/mach-shmobile/board-ape6evm.c b/arch/arm/mach-shmobile/board-ape6evm.c > index fe071a9..7ab99a4 100644 > --- a/arch/arm/mach-shmobile/board-ape6evm.c > +++ b/arch/arm/mach-shmobile/board-ape6evm.c > @@ -248,29 +248,29 @@ static void __init ape6evm_add_standard_devices(void) > > regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies)); > > - platform_device_register_resndata(&platform_bus, "smsc911x", -1, > + platform_device_register_resndata(NULL, "smsc911x", -1, > lan9220_res, ARRAY_SIZE(lan9220_res), > &lan9220_data, sizeof(lan9220_data)); > > regulator_register_always_on(1, "MMC0 Vcc", vcc_mmc0_consumers, > ARRAY_SIZE(vcc_mmc0_consumers), 2800000); > - platform_device_register_resndata(&platform_bus, "sh_mmcif", 0, > + platform_device_register_resndata(NULL, "sh_mmcif", 0, > mmcif0_resources, ARRAY_SIZE(mmcif0_resources), > &mmcif0_pdata, sizeof(mmcif0_pdata)); > - platform_device_register_data(&platform_bus, "reg-fixed-voltage", 2, > + platform_device_register_data(NULL, "reg-fixed-voltage", 2, > &vcc_sdhi0_info, sizeof(vcc_sdhi0_info)); > - platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 0, > + platform_device_register_resndata(NULL, "sh_mobile_sdhi", 0, > sdhi0_resources, ARRAY_SIZE(sdhi0_resources), > &sdhi0_pdata, sizeof(sdhi0_pdata)); > regulator_register_always_on(3, "SDHI1 Vcc", vcc_sdhi1_consumers, > ARRAY_SIZE(vcc_sdhi1_consumers), 3300000); > - platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 1, > + platform_device_register_resndata(NULL, "sh_mobile_sdhi", 1, > sdhi1_resources, ARRAY_SIZE(sdhi1_resources), > &sdhi1_pdata, sizeof(sdhi1_pdata)); > - platform_device_register_data(&platform_bus, "gpio-keys", -1, > + platform_device_register_data(NULL, "gpio-keys", -1, > &ape6evm_keys_pdata, > sizeof(ape6evm_keys_pdata)); > - platform_device_register_data(&platform_bus, "leds-gpio", -1, > + platform_device_register_data(NULL, "leds-gpio", -1, > &ape6evm_leds_pdata, > sizeof(ape6evm_leds_pdata)); > } > diff --git a/arch/arm/mach-shmobile/board-bockw.c b/arch/arm/mach-shmobile/board-bockw.c > index f444be2..3ec82a4 100644 > --- a/arch/arm/mach-shmobile/board-bockw.c > +++ b/arch/arm/mach-shmobile/board-bockw.c > @@ -177,7 +177,7 @@ static struct renesas_usbhs_platform_info usbhs_info __initdata = { > #define USB1_DEVICE "renesas_usbhs" > #define ADD_USB_FUNC_DEVICE_IF_POSSIBLE() \ > platform_device_register_resndata( \ > - &platform_bus, "renesas_usbhs", -1, \ > + NULL, "renesas_usbhs", -1, \ > usbhsf_resources, \ > ARRAY_SIZE(usbhsf_resources), \ > &usbhs_info, sizeof(struct renesas_usbhs_platform_info)) > @@ -236,7 +236,6 @@ static struct sh_eth_plat_data ether_platform_data __initdata = { > }; > > static struct platform_device_info ether_info __initdata = { > - .parent = &platform_bus, > .name = "r8a777x-ether", > .id = -1, > .res = ether_resources, > @@ -322,7 +321,6 @@ static struct resource vin##idx##_resources[] __initdata = { \ > }; \ > \ > static struct platform_device_info vin##idx##_info __initdata = { \ > - .parent = &platform_bus, \ > .name = "r8a7778-vin", \ > .id = idx, \ > .res = vin##idx##_resources, \ > @@ -621,10 +619,10 @@ static void __init bockw_init(void) > /* VIN1 has a pin conflict with Ether */ > if (!IS_ENABLED(CONFIG_SH_ETH)) > platform_device_register_full(&vin1_info); > - platform_device_register_data(&platform_bus, "soc-camera-pdrv", 0, > + platform_device_register_data(NULL, "soc-camera-pdrv", 0, > &iclink0_ml86v7667, > sizeof(iclink0_ml86v7667)); > - platform_device_register_data(&platform_bus, "soc-camera-pdrv", 1, > + platform_device_register_data(NULL, "soc-camera-pdrv", 1, > &iclink1_ml86v7667, > sizeof(iclink1_ml86v7667)); > > @@ -637,12 +635,12 @@ static void __init bockw_init(void) > r8a7778_pinmux_init(); > > platform_device_register_resndata( > - &platform_bus, "sh_mmcif", -1, > + NULL, "sh_mmcif", -1, > mmc_resources, ARRAY_SIZE(mmc_resources), > &sh_mmcif_plat, sizeof(struct sh_mmcif_plat_data)); > > platform_device_register_resndata( > - &platform_bus, "rcar_usb_phy", -1, > + NULL, "rcar_usb_phy", -1, > usb_phy_resources, > ARRAY_SIZE(usb_phy_resources), > &usb_phy_platform_data, > @@ -668,7 +666,7 @@ static void __init bockw_init(void) > iowrite16(val, fpga + IRQ0MR); > > platform_device_register_resndata( > - &platform_bus, "smsc911x", -1, > + NULL, "smsc911x", -1, > smsc911x_resources, ARRAY_SIZE(smsc911x_resources), > &smsc911x_data, sizeof(smsc911x_data)); > } > @@ -685,7 +683,7 @@ static void __init bockw_init(void) > iounmap(base); > > platform_device_register_resndata( > - &platform_bus, "sh_mobile_sdhi", 0, > + NULL, "sh_mobile_sdhi", 0, > sdhi0_resources, ARRAY_SIZE(sdhi0_resources), > &sdhi0_info, sizeof(struct sh_mobile_sdhi_info)); > } > @@ -700,7 +698,7 @@ static void __init bockw_init(void) > "ak4554-adc-dac", 1, NULL, 0); > > pdev = platform_device_register_resndata( > - &platform_bus, "rcar_sound", -1, > + NULL, "rcar_sound", -1, > rsnd_resources, ARRAY_SIZE(rsnd_resources), > &rsnd_info, sizeof(rsnd_info)); > > @@ -710,7 +708,6 @@ static void __init bockw_init(void) > > for (i = 0; i < ARRAY_SIZE(rsnd_card_info); i++) { > struct platform_device_info cardinfo = { > - .parent = &platform_bus, > .name = "asoc-simple-card", > .id = i, > .data = &rsnd_card_info[i], > diff --git a/arch/arm/mach-shmobile/board-genmai.c b/arch/arm/mach-shmobile/board-genmai.c > index c94201e..37184ff 100644 > --- a/arch/arm/mach-shmobile/board-genmai.c > +++ b/arch/arm/mach-shmobile/board-genmai.c > @@ -46,7 +46,6 @@ static const struct resource ether_resources[] __initconst = { > }; > > static const struct platform_device_info ether_info __initconst = { > - .parent = &platform_bus, > .name = "r7s72100-ether", > .id = -1, > .res = ether_resources, > @@ -76,7 +75,7 @@ static const struct rspi_plat_data rspi_pdata __initconst = { > }; > > #define r7s72100_register_rspi(idx) \ > - platform_device_register_resndata(&platform_bus, "rspi-rz", idx, \ > + platform_device_register_resndata(NULL, "rspi-rz", idx, \ > rspi##idx##_resources, \ > ARRAY_SIZE(rspi##idx##_resources), \ > &rspi_pdata, sizeof(rspi_pdata)) > @@ -118,7 +117,7 @@ R7S72100_SCIF(6, 0xe800a000, gic_iid(245)); > R7S72100_SCIF(7, 0xe800a800, gic_iid(249)); > > #define r7s72100_register_scif(index) \ > - platform_device_register_resndata(&platform_bus, "sh-sci", index, \ > + platform_device_register_resndata(NULL, "sh-sci", index, \ > scif##index##_resources, \ > ARRAY_SIZE(scif##index##_resources), \ > &scif##index##_platform_data, \ > diff --git a/arch/arm/mach-shmobile/board-koelsch.c b/arch/arm/mach-shmobile/board-koelsch.c > index c6c6889..d3aa6ae 100644 > --- a/arch/arm/mach-shmobile/board-koelsch.c > +++ b/arch/arm/mach-shmobile/board-koelsch.c > @@ -118,7 +118,6 @@ static const struct resource ether_resources[] __initconst = { > }; > > static const struct platform_device_info ether_info __initconst = { > - .parent = &platform_bus, > .name = "r8a7791-ether", > .id = -1, > .res = ether_resources, > @@ -230,7 +229,6 @@ static const struct resource sata0_resources[] __initconst = { > }; > > static const struct platform_device_info sata0_info __initconst = { > - .parent = &platform_bus, > .name = "sata-r8a7791", > .id = 0, > .res = sata0_resources, > @@ -439,13 +437,13 @@ static void __init koelsch_add_standard_devices(void) > r8a7791_pinmux_init(); > r8a7791_add_standard_devices(); > platform_device_register_full(ðer_info); > - platform_device_register_data(&platform_bus, "leds-gpio", -1, > + platform_device_register_data(NULL, "leds-gpio", -1, > &koelsch_leds_pdata, > sizeof(koelsch_leds_pdata)); > - platform_device_register_data(&platform_bus, "gpio-keys", -1, > + platform_device_register_data(NULL, "gpio-keys", -1, > &koelsch_keys_pdata, > sizeof(koelsch_keys_pdata)); > - platform_device_register_resndata(&platform_bus, "qspi", 0, > + platform_device_register_resndata(NULL, "qspi", 0, > qspi_resources, > ARRAY_SIZE(qspi_resources), > &qspi_pdata, sizeof(qspi_pdata)); > @@ -460,28 +458,28 @@ static void __init koelsch_add_standard_devices(void) > koelsch_add_i2c(4); > koelsch_add_i2c(5); > > - platform_device_register_data(&platform_bus, "reg-fixed-voltage", 0, > + platform_device_register_data(NULL, "reg-fixed-voltage", 0, > &vcc_sdhi0_info, sizeof(struct fixed_voltage_config)); > - platform_device_register_data(&platform_bus, "reg-fixed-voltage", 1, > + platform_device_register_data(NULL, "reg-fixed-voltage", 1, > &vcc_sdhi1_info, sizeof(struct fixed_voltage_config)); > - platform_device_register_data(&platform_bus, "reg-fixed-voltage", 2, > + platform_device_register_data(NULL, "reg-fixed-voltage", 2, > &vcc_sdhi2_info, sizeof(struct fixed_voltage_config)); > - platform_device_register_data(&platform_bus, "gpio-regulator", 0, > + platform_device_register_data(NULL, "gpio-regulator", 0, > &vccq_sdhi0_info, sizeof(struct gpio_regulator_config)); > - platform_device_register_data(&platform_bus, "gpio-regulator", 1, > + platform_device_register_data(NULL, "gpio-regulator", 1, > &vccq_sdhi1_info, sizeof(struct gpio_regulator_config)); > - platform_device_register_data(&platform_bus, "gpio-regulator", 2, > + platform_device_register_data(NULL, "gpio-regulator", 2, > &vccq_sdhi2_info, sizeof(struct gpio_regulator_config)); > > - platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 0, > + platform_device_register_resndata(NULL, "sh_mobile_sdhi", 0, > sdhi0_resources, ARRAY_SIZE(sdhi0_resources), > &sdhi0_info, sizeof(struct sh_mobile_sdhi_info)); > > - platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 1, > + platform_device_register_resndata(NULL, "sh_mobile_sdhi", 1, > sdhi1_resources, ARRAY_SIZE(sdhi1_resources), > &sdhi1_info, sizeof(struct sh_mobile_sdhi_info)); > > - platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 2, > + platform_device_register_resndata(NULL, "sh_mobile_sdhi", 2, > sdhi2_resources, ARRAY_SIZE(sdhi2_resources), > &sdhi2_info, sizeof(struct sh_mobile_sdhi_info)); > > diff --git a/arch/arm/mach-shmobile/board-lager.c b/arch/arm/mach-shmobile/board-lager.c > index f8b1e05..d182961 100644 > --- a/arch/arm/mach-shmobile/board-lager.c > +++ b/arch/arm/mach-shmobile/board-lager.c > @@ -277,7 +277,6 @@ static const struct resource ether_resources[] __initconst = { > }; > > static const struct platform_device_info ether_info __initconst = { > - .parent = &platform_bus, > .name = "r8a7790-ether", > .id = -1, > .res = ether_resources, > @@ -354,7 +353,6 @@ static void __init lager_add_vin_device(unsigned idx, > struct rcar_vin_platform_data *pdata) > { > struct platform_device_info vin_info = { > - .parent = &platform_bus, > .name = "r8a7790-vin", > .id = idx, > .res = &vin_resources[idx * 2], > @@ -391,7 +389,7 @@ LAGER_CAMERA(1, "adv7180", 0x20, NULL, RCAR_VIN_BT656); > > static void __init lager_add_camera1_device(void) > { > - platform_device_register_data(&platform_bus, "soc-camera-pdrv", 1, > + platform_device_register_data(NULL, "soc-camera-pdrv", 1, > &cam1_link, sizeof(cam1_link)); > lager_add_vin_device(1, &vin1_pdata); > } > @@ -403,7 +401,6 @@ static const struct resource sata1_resources[] __initconst = { > }; > > static const struct platform_device_info sata1_info __initconst = { > - .parent = &platform_bus, > .name = "sata-r8a7790", > .id = 1, > .res = sata1_resources, > @@ -533,7 +530,7 @@ static struct usbhs_private usbhs_priv __initdata = { > static void __init lager_register_usbhs(void) > { > usb_bind_phy("renesas_usbhs", 0, "usb_phy_rcar_gen2"); > - platform_device_register_resndata(&platform_bus, > + platform_device_register_resndata(NULL, > "renesas_usbhs", -1, > usbhs_resources, > ARRAY_SIZE(usbhs_resources), > @@ -608,7 +605,6 @@ static struct asoc_simple_card_info rsnd_card_info = { > static void __init lager_add_rsnd_device(void) > { > struct platform_device_info cardinfo = { > - .parent = &platform_bus, > .name = "asoc-simple-card", > .id = -1, > .data = &rsnd_card_info, > @@ -620,7 +616,7 @@ static void __init lager_add_rsnd_device(void) > ARRAY_SIZE(i2c2_devices)); > > platform_device_register_resndata( > - &platform_bus, "rcar_sound", -1, > + NULL, "rcar_sound", -1, > rsnd_resources, ARRAY_SIZE(rsnd_resources), > &rsnd_info, sizeof(rsnd_info)); > > @@ -663,7 +659,6 @@ static const struct resource pci1_resources[] __initconst = { > }; > > static const struct platform_device_info pci1_info __initconst = { > - .parent = &platform_bus, > .name = "pci-rcar-gen2", > .id = 1, > .res = pci1_resources, > @@ -684,7 +679,6 @@ static const struct resource pci2_resources[] __initconst = { > }; > > static const struct platform_device_info pci2_info __initconst = { > - .parent = &platform_bus, > .name = "pci-rcar-gen2", > .id = 2, > .res = pci2_resources, > @@ -795,16 +789,16 @@ static void __init lager_add_standard_devices(void) > r8a7790_pinmux_init(); > > r8a7790_add_standard_devices(); > - platform_device_register_data(&platform_bus, "leds-gpio", -1, > + platform_device_register_data(NULL, "leds-gpio", -1, > &lager_leds_pdata, > sizeof(lager_leds_pdata)); > - platform_device_register_data(&platform_bus, "gpio-keys", -1, > + platform_device_register_data(NULL, "gpio-keys", -1, > &lager_keys_pdata, > sizeof(lager_keys_pdata)); > regulator_register_always_on(fixed_regulator_idx++, > "fixed-3.3V", fixed3v3_power_consumers, > ARRAY_SIZE(fixed3v3_power_consumers), 3300000); > - platform_device_register_resndata(&platform_bus, "sh_mmcif", 1, > + platform_device_register_resndata(NULL, "sh_mmcif", 1, > mmcif1_resources, ARRAY_SIZE(mmcif1_resources), > &mmcif1_pdata, sizeof(mmcif1_pdata)); > > @@ -812,27 +806,27 @@ static void __init lager_add_standard_devices(void) > > lager_add_du_device(); > > - platform_device_register_resndata(&platform_bus, "qspi", 0, > + platform_device_register_resndata(NULL, "qspi", 0, > qspi_resources, > ARRAY_SIZE(qspi_resources), > &qspi_pdata, sizeof(qspi_pdata)); > spi_register_board_info(spi_info, ARRAY_SIZE(spi_info)); > > - platform_device_register_data(&platform_bus, "reg-fixed-voltage", fixed_regulator_idx++, > + platform_device_register_data(NULL, "reg-fixed-voltage", fixed_regulator_idx++, > &vcc_sdhi0_info, sizeof(struct fixed_voltage_config)); > - platform_device_register_data(&platform_bus, "reg-fixed-voltage", fixed_regulator_idx++, > + platform_device_register_data(NULL, "reg-fixed-voltage", fixed_regulator_idx++, > &vcc_sdhi2_info, sizeof(struct fixed_voltage_config)); > > - platform_device_register_data(&platform_bus, "gpio-regulator", gpio_regulator_idx++, > + platform_device_register_data(NULL, "gpio-regulator", gpio_regulator_idx++, > &vccq_sdhi0_info, sizeof(struct gpio_regulator_config)); > - platform_device_register_data(&platform_bus, "gpio-regulator", gpio_regulator_idx++, > + platform_device_register_data(NULL, "gpio-regulator", gpio_regulator_idx++, > &vccq_sdhi2_info, sizeof(struct gpio_regulator_config)); > > lager_add_camera1_device(); > > platform_device_register_full(&sata1_info); > > - platform_device_register_resndata(&platform_bus, "usb_phy_rcar_gen2", > + platform_device_register_resndata(NULL, "usb_phy_rcar_gen2", > -1, usbhs_phy_resources, > ARRAY_SIZE(usbhs_phy_resources), > &usbhs_phy_pdata, > @@ -843,10 +837,10 @@ static void __init lager_add_standard_devices(void) > > lager_add_rsnd_device(); > > - platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 0, > + platform_device_register_resndata(NULL, "sh_mobile_sdhi", 0, > sdhi0_resources, ARRAY_SIZE(sdhi0_resources), > &sdhi0_info, sizeof(struct sh_mobile_sdhi_info)); > - platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 2, > + platform_device_register_resndata(NULL, "sh_mobile_sdhi", 2, > sdhi2_resources, ARRAY_SIZE(sdhi2_resources), > &sdhi2_info, sizeof(struct sh_mobile_sdhi_info)); > } > diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c > index d832a44..6ed324c 100644 > --- a/arch/arm/mach-shmobile/board-marzen.c > +++ b/arch/arm/mach-shmobile/board-marzen.c > @@ -272,7 +272,6 @@ static struct resource vin##idx##_resources[] __initdata = { \ > }; \ > \ > static struct platform_device_info vin##idx##_info __initdata = { \ > - .parent = &platform_bus, \ > .name = "r8a7779-vin", \ > .id = idx, \ > .res = vin##idx##_resources, \ > diff --git a/arch/arm/mach-shmobile/setup-r7s72100.c b/arch/arm/mach-shmobile/setup-r7s72100.c > index 412e179..3885a59 100644 > --- a/arch/arm/mach-shmobile/setup-r7s72100.c > +++ b/arch/arm/mach-shmobile/setup-r7s72100.c > @@ -33,7 +33,7 @@ static struct resource mtu2_resources[] __initdata = { > }; > > #define r7s72100_register_mtu2() \ > - platform_device_register_resndata(&platform_bus, "sh-mtu2", \ > + platform_device_register_resndata(NULL, "sh-mtu2", \ > -1, mtu2_resources, \ > ARRAY_SIZE(mtu2_resources), \ > NULL, 0) > diff --git a/arch/arm/mach-shmobile/setup-r8a73a4.c b/arch/arm/mach-shmobile/setup-r8a73a4.c > index 9333770..aaaaf6e 100644 > --- a/arch/arm/mach-shmobile/setup-r8a73a4.c > +++ b/arch/arm/mach-shmobile/setup-r8a73a4.c > @@ -68,7 +68,7 @@ R8A73A4_SCIFB(4, 0xe6ce0000, gic_spi(150)); /* SCIFB2 */ > R8A73A4_SCIFB(5, 0xe6cf0000, gic_spi(151)); /* SCIFB3 */ > > #define r8a73a4_register_scif(index) \ > - platform_device_register_resndata(&platform_bus, "sh-sci", index, \ > + platform_device_register_resndata(NULL, "sh-sci", index, \ > scif##index##_resources, \ > ARRAY_SIZE(scif##index##_resources), \ > &scif##index##_platform_data, \ > @@ -149,7 +149,7 @@ static const struct resource irqc1_resources[] = { > }; > > #define r8a73a4_register_irqc(idx) \ > - platform_device_register_resndata(&platform_bus, "renesas_irqc", \ > + platform_device_register_resndata(NULL, "renesas_irqc", \ > idx, irqc##idx##_resources, \ > ARRAY_SIZE(irqc##idx##_resources), \ > &irqc##idx##_data, \ > @@ -179,7 +179,7 @@ static struct resource cmt1_resources[] = { > }; > > #define r8a7790_register_cmt(idx) \ > - platform_device_register_resndata(&platform_bus, "sh-cmt-48-gen2", \ > + platform_device_register_resndata(NULL, "sh-cmt-48-gen2", \ > idx, cmt##idx##_resources, \ > ARRAY_SIZE(cmt##idx##_resources), \ > &cmt##idx##_platform_data, \ > @@ -280,7 +280,7 @@ static struct resource dma_resources[] = { > }; > > #define r8a73a4_register_dmac() \ > - platform_device_register_resndata(&platform_bus, "sh-dma-engine", 0, \ > + platform_device_register_resndata(NULL, "sh-dma-engine", 0, \ > dma_resources, ARRAY_SIZE(dma_resources), \ > &dma_pdata, sizeof(dma_pdata)) > > diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c > index d311ef9..5de7b33 100644 > --- a/arch/arm/mach-shmobile/setup-r8a7778.c > +++ b/arch/arm/mach-shmobile/setup-r8a7778.c > @@ -64,7 +64,7 @@ R8A7778_SCIF(4, 0xffe44000, gic_iid(0x6a)); > R8A7778_SCIF(5, 0xffe45000, gic_iid(0x6b)); > > #define r8a7778_register_scif(index) \ > - platform_device_register_resndata(&platform_bus, "sh-sci", index, \ > + platform_device_register_resndata(NULL, "sh-sci", index, \ > scif##index##_resources, \ > ARRAY_SIZE(scif##index##_resources), \ > &scif##index##_platform_data, \ > @@ -84,7 +84,7 @@ static struct resource sh_tmu0_resources[] = { > > #define r8a7778_register_tmu(idx) \ > platform_device_register_resndata( \ > - &platform_bus, "sh-tmu", idx, \ > + NULL, "sh-tmu", idx, \ > sh_tmu##idx##_resources, \ > ARRAY_SIZE(sh_tmu##idx##_resources), \ > &sh_tmu##idx##_platform_data, \ > @@ -173,7 +173,6 @@ static struct resource ohci_resources[] __initdata = { > > #define USB_PLATFORM_INFO(hci) \ > static struct platform_device_info hci##_info __initdata = { \ > - .parent = &platform_bus, \ > .name = #hci "-platform", \ > .id = -1, \ > .res = hci##_resources, \ > @@ -212,7 +211,7 @@ R8A7778_GPIO(4); > > #define r8a7778_register_gpio(idx) \ > platform_device_register_resndata( \ > - &platform_bus, "gpio_rcar", idx, \ > + NULL, "gpio_rcar", idx, \ > r8a7778_gpio##idx##_resources, \ > ARRAY_SIZE(r8a7778_gpio##idx##_resources), \ > &r8a7778_gpio##idx##_platform_data, \ > @@ -496,8 +495,8 @@ static struct resource hpb_dmae_resources[] __initdata = { > > static void __init r8a7778_register_hpb_dmae(void) > { > - platform_device_register_resndata(&platform_bus, "hpb-dma-engine", -1, > - hpb_dmae_resources, > + platform_device_register_resndata(NULL, "hpb-dma-engine", > + -1, hpb_dmae_resources, > ARRAY_SIZE(hpb_dmae_resources), > &dma_platform_data, > sizeof(dma_platform_data)); > @@ -565,7 +564,7 @@ void __init r8a7778_init_irq_extpin(int irlm) > r8a7778_init_irq_extpin_dt(irlm); > if (irlm) > platform_device_register_resndata( > - &platform_bus, "renesas_intc_irqpin", -1, > + NULL, "renesas_intc_irqpin", -1, > irqpin_resources, ARRAY_SIZE(irqpin_resources), > &irqpin_platform_data, sizeof(irqpin_platform_data)); > } > diff --git a/arch/arm/mach-shmobile/setup-r8a7779.c b/arch/arm/mach-shmobile/setup-r8a7779.c > index aba4ed6..9c79182 100644 > --- a/arch/arm/mach-shmobile/setup-r8a7779.c > +++ b/arch/arm/mach-shmobile/setup-r8a7779.c > @@ -123,7 +123,7 @@ void __init r8a7779_init_irq_extpin(int irlm) > r8a7779_init_irq_extpin_dt(irlm); > if (irlm) > platform_device_register_resndata( > - &platform_bus, "renesas_intc_irqpin", -1, > + NULL, "renesas_intc_irqpin", -1, > irqpin0_resources, ARRAY_SIZE(irqpin0_resources), > &irqpin0_platform_data, sizeof(irqpin0_platform_data)); > } > @@ -632,8 +632,8 @@ static struct resource hpb_dmae_resources[] __initdata = { > > static void __init r8a7779_register_hpb_dmae(void) > { > - platform_device_register_resndata(&platform_bus, "hpb-dma-engine", -1, > - hpb_dmae_resources, > + platform_device_register_resndata(NULL, "hpb-dma-engine", > + -1, hpb_dmae_resources, > ARRAY_SIZE(hpb_dmae_resources), > &dma_platform_data, > sizeof(dma_platform_data)); > diff --git a/arch/arm/mach-shmobile/setup-r8a7790.c b/arch/arm/mach-shmobile/setup-r8a7790.c > index 6bd08b1..10e6768 100644 > --- a/arch/arm/mach-shmobile/setup-r8a7790.c > +++ b/arch/arm/mach-shmobile/setup-r8a7790.c > @@ -113,7 +113,7 @@ static struct resource r8a7790_audio_dmac_resources[] = { > > #define r8a7790_register_audio_dmac(id) \ > platform_device_register_resndata( \ > - &platform_bus, "sh-dma-engine", id, \ > + NULL, "sh-dma-engine", id, \ > &r8a7790_audio_dmac_resources[id * 3], 3, \ > &r8a7790_audio_dmac_platform_data, \ > sizeof(r8a7790_audio_dmac_platform_data)) > @@ -149,7 +149,7 @@ R8A7790_GPIO(4); > R8A7790_GPIO(5); > > #define r8a7790_register_gpio(idx) \ > - platform_device_register_resndata(&platform_bus, "gpio_rcar", idx, \ > + platform_device_register_resndata(NULL, "gpio_rcar", idx, \ > r8a7790_gpio##idx##_resources, \ > ARRAY_SIZE(r8a7790_gpio##idx##_resources), \ > &r8a7790_gpio##idx##_platform_data, \ > @@ -227,7 +227,7 @@ R8A7790_HSCIF(8, 0xe62c0000, gic_spi(154)); /* HSCIF0 */ > R8A7790_HSCIF(9, 0xe62c8000, gic_spi(155)); /* HSCIF1 */ > > #define r8a7790_register_scif(index) \ > - platform_device_register_resndata(&platform_bus, "sh-sci", index, \ > + platform_device_register_resndata(NULL, "sh-sci", index, \ > scif##index##_resources, \ > ARRAY_SIZE(scif##index##_resources), \ > &scif##index##_platform_data, \ > @@ -246,7 +246,7 @@ static const struct resource irqc0_resources[] __initconst = { > }; > > #define r8a7790_register_irqc(idx) \ > - platform_device_register_resndata(&platform_bus, "renesas_irqc", \ > + platform_device_register_resndata(NULL, "renesas_irqc", \ > idx, irqc##idx##_resources, \ > ARRAY_SIZE(irqc##idx##_resources), \ > &irqc##idx##_data, \ > @@ -273,7 +273,7 @@ static struct resource cmt0_resources[] = { > }; > > #define r8a7790_register_cmt(idx) \ > - platform_device_register_resndata(&platform_bus, "sh-cmt-48-gen2", \ > + platform_device_register_resndata(NULL, "sh-cmt-48-gen2", \ > idx, cmt##idx##_resources, \ > ARRAY_SIZE(cmt##idx##_resources), \ > &cmt##idx##_platform_data, \ > diff --git a/arch/arm/mach-shmobile/setup-r8a7791.c b/arch/arm/mach-shmobile/setup-r8a7791.c > index 04a96dd..fd54437 100644 > --- a/arch/arm/mach-shmobile/setup-r8a7791.c > +++ b/arch/arm/mach-shmobile/setup-r8a7791.c > @@ -65,7 +65,7 @@ R8A7791_GPIO(6, 0xe6055400, 32); > R8A7791_GPIO(7, 0xe6055800, 26); > > #define r8a7791_register_gpio(idx) \ > - platform_device_register_resndata(&platform_bus, "gpio_rcar", idx, \ > + platform_device_register_resndata(NULL, "gpio_rcar", idx, \ > r8a7791_gpio##idx##_resources, \ > ARRAY_SIZE(r8a7791_gpio##idx##_resources), \ > &r8a7791_gpio##idx##_platform_data, \ > @@ -122,7 +122,7 @@ R8A7791_SCIFA(13, 0xe6c78000, gic_spi(30)); /* SCIFA4 */ > R8A7791_SCIFA(14, 0xe6c80000, gic_spi(31)); /* SCIFA5 */ > > #define r8a7791_register_scif(index) \ > - platform_device_register_resndata(&platform_bus, "sh-sci", index, \ > + platform_device_register_resndata(NULL, "sh-sci", index, \ > scif##index##_resources, \ > ARRAY_SIZE(scif##index##_resources), \ > &scif##index##_platform_data, \ > @@ -138,7 +138,7 @@ static struct resource cmt0_resources[] = { > }; > > #define r8a7791_register_cmt(idx) \ > - platform_device_register_resndata(&platform_bus, "sh-cmt-48-gen2", \ > + platform_device_register_resndata(NULL, "sh-cmt-48-gen2", \ > idx, cmt##idx##_resources, \ > ARRAY_SIZE(cmt##idx##_resources), \ > &cmt##idx##_platform_data, \ > @@ -163,7 +163,7 @@ static struct resource irqc0_resources[] = { > }; > > #define r8a7791_register_irqc(idx) \ > - platform_device_register_resndata(&platform_bus, "renesas_irqc", \ > + platform_device_register_resndata(NULL, "renesas_irqc", \ > idx, irqc##idx##_resources, \ > ARRAY_SIZE(irqc##idx##_resources), \ > &irqc##idx##_data, \ > diff --git a/arch/unicore32/kernel/puv3-core.c b/arch/unicore32/kernel/puv3-core.c > index 254adee..438dd2e 100644 > --- a/arch/unicore32/kernel/puv3-core.c > +++ b/arch/unicore32/kernel/puv3-core.c > @@ -272,7 +272,7 @@ void __init puv3_core_init(void) > platform_device_register_simple("PKUnity-v3-UART", 1, > puv3_uart1_resources, ARRAY_SIZE(puv3_uart1_resources)); > platform_device_register_simple("PKUnity-v3-AC97", -1, NULL, 0); > - platform_device_register_resndata(&platform_bus, "musb_hdrc", -1, > + platform_device_register_resndata(NULL, "musb_hdrc", -1, > puv3_usb_resources, ARRAY_SIZE(puv3_usb_resources), > &puv3_usb_plat, sizeof(puv3_usb_plat)); > } > diff --git a/arch/unicore32/kernel/puv3-nb0916.c b/arch/unicore32/kernel/puv3-nb0916.c > index 0c6618e..46ebfdc 100644 > --- a/arch/unicore32/kernel/puv3-nb0916.c > +++ b/arch/unicore32/kernel/puv3-nb0916.c > @@ -112,13 +112,13 @@ int __init mach_nb0916_init(void) > platform_device_register_simple("PKUnity-v3-I2C", -1, > puv3_i2c_resources, ARRAY_SIZE(puv3_i2c_resources)); > > - platform_device_register_data(&platform_bus, "pwm-backlight", -1, > + platform_device_register_data(NULL, "pwm-backlight", -1, > &nb0916_backlight_data, sizeof(nb0916_backlight_data)); > > - platform_device_register_data(&platform_bus, "gpio-keys", -1, > + platform_device_register_data(NULL, "gpio-keys", -1, > &nb0916_gpio_button_data, sizeof(nb0916_gpio_button_data)); > > - platform_device_register_resndata(&platform_bus, "physmap-flash", -1, > + platform_device_register_resndata(NULL, "physmap-flash", -1, > &physmap_flash_resource, 1, > &physmap_flash_data, sizeof(physmap_flash_data)); > > diff --git a/drivers/base/platform.c b/drivers/base/platform.c > index eee48c4..f272603 100644 > --- a/drivers/base/platform.c > +++ b/drivers/base/platform.c > @@ -30,8 +30,8 @@ > /* For automatically allocated device IDs */ > static DEFINE_IDA(platform_devid_ida); > > -struct device platform_bus = { > - .init_name = "platform", > +struct platform_device platform_bus = { > + .name = "platform", > }; > EXPORT_SYMBOL_GPL(platform_bus); > > @@ -300,7 +300,7 @@ int platform_device_add(struct platform_device *pdev) > return -EINVAL; > > if (!pdev->dev.parent) > - pdev->dev.parent = &platform_bus; > + pdev->dev.parent = &platform_bus.dev; > > pdev->dev.bus = &platform_bus_type; > > @@ -946,12 +946,18 @@ int __init platform_bus_init(void) > > early_platform_cleanup(); > > - error = device_register(&platform_bus); > + dev_set_name(&platform_bus.dev, "%s", platform_bus.name); > + error = device_register(&platform_bus.dev); > if (error) > return error; > error = bus_register(&platform_bus_type); > - if (error) > - device_unregister(&platform_bus); > + if (!error) { > + platform_bus.dev.of_node = of_allnodes; This breaks all non-OF platforms: drivers/base/platform.c: In function 'platform_bus_init': drivers/base/platform.c:955:30: error: 'of_allnodes' undeclared (first use in this function) platform_bus.dev.of_node = of_allnodes; -Olof
On Tue, Jul 22, 2014 at 06:55:19PM +0100, Pawel Moll wrote: > ... describing the root of the device tree, so one can write > a platform driver initializing the platform. > > There has been a lot of references to platform_bus device where > it didn't make any sense, because simply using NULL as a parent > will make the device be adopted by the top level anyway. > > Signed-off-by: Pawel Moll <pawel.moll@arm.com> > --- > Changes since v2: > > * replaced references to platform_bus.dev with NULL > in places where it shouldn't make any difference How about split this up with just the "change to NULL" changes as one patch, and the rest as a second one? thanks, greg k-h
On Tue, 2014-07-22 at 20:46 +0100, Olof Johansson wrote: > > @@ -946,12 +946,18 @@ int __init platform_bus_init(void) > > > > early_platform_cleanup(); > > > > - error = device_register(&platform_bus); > > + dev_set_name(&platform_bus.dev, "%s", platform_bus.name); > > + error = device_register(&platform_bus.dev); > > if (error) > > return error; > > error = bus_register(&platform_bus_type); > > - if (error) > > - device_unregister(&platform_bus); > > + if (!error) { > > + platform_bus.dev.of_node = of_allnodes; > > This breaks all non-OF platforms: > > drivers/base/platform.c: In function 'platform_bus_init': > drivers/base/platform.c:955:30: error: 'of_allnodes' undeclared (first > use in this function) > platform_bus.dev.of_node = of_allnodes; Right, of course, my bad. I can't see any other way of getting the tree root, so an #ifdef it will be... Thanks for pointing this out! Pawe?
On Tue, 2014-07-22 at 23:16 +0100, Greg Kroah-Hartman wrote: > On Tue, Jul 22, 2014 at 06:55:19PM +0100, Pawel Moll wrote: > > ... describing the root of the device tree, so one can write > > a platform driver initializing the platform. > > > > There has been a lot of references to platform_bus device where > > it didn't make any sense, because simply using NULL as a parent > > will make the device be adopted by the top level anyway. > > > > Signed-off-by: Pawel Moll <pawel.moll@arm.com> > > --- > > Changes since v2: > > > > * replaced references to platform_bus.dev with NULL > > in places where it shouldn't make any difference > > How about split this up with just the "change to NULL" changes as one > patch, and the rest as a second one? Yes, was about to do exactly this. Pawel
On Tue, 2014-07-22 at 19:15 +0100, Greg Kroah-Hartman wrote: > > > diff --git a/arch/arm/mach-imx/devices/devices.c b/arch/arm/mach-imx/devices/devices.c > > > index 1b4366a..48c3817 100644 > > > --- a/arch/arm/mach-imx/devices/devices.c > > > +++ b/arch/arm/mach-imx/devices/devices.c > > > @@ -24,12 +24,12 @@ > > > > > > struct device mxc_aips_bus = { > > > .init_name = "mxc_aips", > > > - .parent = &platform_bus, > > > + .parent = &platform_bus.dev, > > > }; > > > > > > struct device mxc_ahb_bus = { > > > .init_name = "mxc_ahb", > > > - .parent = &platform_bus, > > > + .parent = &platform_bus.dev, > > > }; > > > > > > int __init mxc_device_init(void) > > > > Seems that the author meant to have those two bus devices hanging from > > the platform_bus in device hierarchy. Seems fair enough to me. > > No, not at all, this is a different bus, put the root bus at the root of > the sysfs tree, not at some "arbritrary" point on a platform device. I think the author considers platform bus is understood as a representation of the MMIO space (and he's not alone). So then he wants to represent the physical hierarchy of the interconnect to get it in separate places in the /sys/devices/* tree. Whether it's a good thing to do or not, have no strong opinion, but can understand his approach. I don't think it's a big deal either way. > > > diff --git a/drivers/char/tile-srom.c b/drivers/char/tile-srom.c > > > index bd37747..4e4b7a2 100644 > > > --- a/drivers/char/tile-srom.c > > > +++ b/drivers/char/tile-srom.c > > > @@ -350,7 +350,7 @@ static int srom_setup_minor(struct srom_dev *srom, int index) > > > SROM_PAGE_SIZE_OFF, sizeof(srom->page_size)) < 0) > > > return -EIO; > > > > > > - dev = device_create(srom_class, &platform_bus, > > > + dev = device_create(srom_class, &platform_bus.dev, > > > MKDEV(srom_major, index), srom, "%d", index); > > > return PTR_ERR_OR_ZERO(dev); > > > } > > > > Again, non-platform device placed in the hierarchy. > > Again, not ok. If it's a platform device, it's a platform device, and > make it one. If it isn't, like this one, make it a virtual device and > pass NULL here. Yeah, I can't disagree here. > > > diff --git a/drivers/mmc/host/sdhci-pltfm.c b/drivers/mmc/host/sdhci-pltfm.c > > > index 7e834fb..9a2b0d0 100644 > > > --- a/drivers/mmc/host/sdhci-pltfm.c > > > +++ b/drivers/mmc/host/sdhci-pltfm.c > > > @@ -137,7 +137,7 @@ struct sdhci_host *sdhci_pltfm_init(struct platform_device *pdev, > > > dev_err(&pdev->dev, "Invalid iomem size!\n"); > > > > > > /* Some PCI-based MFD need the parent here */ > > > - if (pdev->dev.parent != &platform_bus && !np) > > > + if (pdev->dev.parent != &platform_bus.dev && !np) > > > host = sdhci_alloc_host(pdev->dev.parent, > > > sizeof(struct sdhci_pltfm_host) + priv_size); > > > else > > > > Special treatment for non-platform devices. > > Ugh, why should you care? I don't understand the logic here. Neither do I, but maybe there is' some :-) I definitely wouldn't like to change the behaviour without checking with the maintainers. > > > diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c > > > index 3cbb57a..c14c36f 100644 > > > --- a/drivers/scsi/hosts.c > > > +++ b/drivers/scsi/hosts.c > > > @@ -218,7 +218,7 @@ int scsi_add_host_with_dma(struct Scsi_Host *shost, struct device *dev, > > > goto fail; > > > > > > if (!shost->shost_gendev.parent) > > > - shost->shost_gendev.parent = dev ? dev : &platform_bus; > > > + shost->shost_gendev.parent = dev ? dev : &platform_bus.dev; > > > if (!dma_dev) > > > dma_dev = shost->shost_gendev.parent; > > > > > > > shost_gendev is a generic (as in struct device, non-platform one) > > device, that is being explicitly placed in the hierarchy. > > Then make it a virtual device, as that's what it is, replace this with > NULL. Makes sense to me, I just wonder what the author meant. > > So it makes it 4, not 3 ;-) places where referencing platform_bus > > *maybe* makes some sense. > > Nope, see above :) Let me just point out that I'm just playing the devil's advocate here :-) Pawel
On Wed, Jul 23, 2014 at 06:16:02PM +0100, Pawel Moll wrote: > On Tue, 2014-07-22 at 19:15 +0100, Greg Kroah-Hartman wrote: > > > > diff --git a/arch/arm/mach-imx/devices/devices.c b/arch/arm/mach-imx/devices/devices.c > > > > index 1b4366a..48c3817 100644 > > > > --- a/arch/arm/mach-imx/devices/devices.c > > > > +++ b/arch/arm/mach-imx/devices/devices.c > > > > @@ -24,12 +24,12 @@ > > > > > > > > struct device mxc_aips_bus = { > > > > .init_name = "mxc_aips", > > > > - .parent = &platform_bus, > > > > + .parent = &platform_bus.dev, > > > > }; > > > > > > > > struct device mxc_ahb_bus = { > > > > .init_name = "mxc_ahb", > > > > - .parent = &platform_bus, > > > > + .parent = &platform_bus.dev, > > > > }; > > > > > > > > int __init mxc_device_init(void) > > > > > > Seems that the author meant to have those two bus devices hanging from > > > the platform_bus in device hierarchy. Seems fair enough to me. > > > > No, not at all, this is a different bus, put the root bus at the root of > > the sysfs tree, not at some "arbritrary" point on a platform device. > > I think the author considers platform bus is understood as a > representation of the MMIO space (and he's not alone). So then he wants > to represent the physical hierarchy of the interconnect to get it in > separate places in the /sys/devices/* tree. That's fine, but again, it's not a "child" of the platform bus. Otherwise you could argue that all busses should belong under the platform bus as well, which isn't going to happen. > Whether it's a good thing to do or not, have no strong opinion, but can > understand his approach. I don't think it's a big deal either way. Great, make it NULL :) > > > > diff --git a/drivers/char/tile-srom.c b/drivers/char/tile-srom.c > > > > index bd37747..4e4b7a2 100644 > > > > --- a/drivers/char/tile-srom.c > > > > +++ b/drivers/char/tile-srom.c > > > > @@ -350,7 +350,7 @@ static int srom_setup_minor(struct srom_dev *srom, int index) > > > > SROM_PAGE_SIZE_OFF, sizeof(srom->page_size)) < 0) > > > > return -EIO; > > > > > > > > - dev = device_create(srom_class, &platform_bus, > > > > + dev = device_create(srom_class, &platform_bus.dev, > > > > MKDEV(srom_major, index), srom, "%d", index); > > > > return PTR_ERR_OR_ZERO(dev); > > > > } > > > > > > Again, non-platform device placed in the hierarchy. > > > > Again, not ok. If it's a platform device, it's a platform device, and > > make it one. If it isn't, like this one, make it a virtual device and > > pass NULL here. > > Yeah, I can't disagree here. > > > > > diff --git a/drivers/mmc/host/sdhci-pltfm.c b/drivers/mmc/host/sdhci-pltfm.c > > > > index 7e834fb..9a2b0d0 100644 > > > > --- a/drivers/mmc/host/sdhci-pltfm.c > > > > +++ b/drivers/mmc/host/sdhci-pltfm.c > > > > @@ -137,7 +137,7 @@ struct sdhci_host *sdhci_pltfm_init(struct platform_device *pdev, > > > > dev_err(&pdev->dev, "Invalid iomem size!\n"); > > > > > > > > /* Some PCI-based MFD need the parent here */ > > > > - if (pdev->dev.parent != &platform_bus && !np) > > > > + if (pdev->dev.parent != &platform_bus.dev && !np) > > > > host = sdhci_alloc_host(pdev->dev.parent, > > > > sizeof(struct sdhci_pltfm_host) + priv_size); > > > > else > > > > > > Special treatment for non-platform devices. > > > > Ugh, why should you care? I don't understand the logic here. > > Neither do I, but maybe there is' some :-) I definitely wouldn't like to > change the behaviour without checking with the maintainers. Then let's ask :) > > > > diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c > > > > index 3cbb57a..c14c36f 100644 > > > > --- a/drivers/scsi/hosts.c > > > > +++ b/drivers/scsi/hosts.c > > > > @@ -218,7 +218,7 @@ int scsi_add_host_with_dma(struct Scsi_Host *shost, struct device *dev, > > > > goto fail; > > > > > > > > if (!shost->shost_gendev.parent) > > > > - shost->shost_gendev.parent = dev ? dev : &platform_bus; > > > > + shost->shost_gendev.parent = dev ? dev : &platform_bus.dev; > > > > if (!dma_dev) > > > > dma_dev = shost->shost_gendev.parent; > > > > > > > > > > shost_gendev is a generic (as in struct device, non-platform one) > > > device, that is being explicitly placed in the hierarchy. > > > > Then make it a virtual device, as that's what it is, replace this with > > NULL. > > Makes sense to me, I just wonder what the author meant. With scsi code, who knows :) > > > So it makes it 4, not 3 ;-) places where referencing platform_bus > > > *maybe* makes some sense. > > > > Nope, see above :) > > Let me just point out that I'm just playing the devil's advocate > here :-) Of course, I'm not "shooting the messenger" at all, just pointing out problems with the code, you didn't write it. thanks, greg k-h
On Wed, 2014-07-23 at 20:34 +0100, Greg Kroah-Hartman wrote: > > > > > diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c > > > > > index 3cbb57a..c14c36f 100644 > > > > > --- a/drivers/scsi/hosts.c > > > > > +++ b/drivers/scsi/hosts.c > > > > > @@ -218,7 +218,7 @@ int scsi_add_host_with_dma(struct Scsi_Host *shost, struct device *dev, > > > > > goto fail; > > > > > > > > > > if (!shost->shost_gendev.parent) > > > > > - shost->shost_gendev.parent = dev ? dev : &platform_bus; > > > > > + shost->shost_gendev.parent = dev ? dev : &platform_bus.dev; > > > > > if (!dma_dev) > > > > > dma_dev = shost->shost_gendev.parent; > > > > > > > > > > > > > shost_gendev is a generic (as in struct device, non-platform one) > > > > device, that is being explicitly placed in the hierarchy. > > > > > > Then make it a virtual device, as that's what it is, replace this with > > > NULL. > > > > Makes sense to me, I just wonder what the author meant. > > With scsi code, who knows :) Looking at this further, it seems that the main purpose here is to make sure that dma_dev is not NULL... So it's not just simply a case of s/&platform_bus/NULL/ - maybe the function should fail when !dma_dev? I'll split the patch so each case is separate and post them to relevant maintainers. Pawel
diff --git a/arch/arm/mach-bcm/board_bcm21664.c b/arch/arm/mach-bcm/board_bcm21664.c index f0521cc..82ad568 100644 --- a/arch/arm/mach-bcm/board_bcm21664.c +++ b/arch/arm/mach-bcm/board_bcm21664.c @@ -60,8 +60,7 @@ static void bcm21664_restart(enum reboot_mode mode, const char *cmd) static void __init bcm21664_init(void) { - of_platform_populate(NULL, of_default_bus_match_table, NULL, - &platform_bus); + of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); kona_l2_cache_init(); } diff --git a/arch/arm/mach-bcm/board_bcm281xx.c b/arch/arm/mach-bcm/board_bcm281xx.c index 1ac59fc..2e367bd 100644 --- a/arch/arm/mach-bcm/board_bcm281xx.c +++ b/arch/arm/mach-bcm/board_bcm281xx.c @@ -58,8 +58,7 @@ static void bcm281xx_restart(enum reboot_mode mode, const char *cmd) static void __init bcm281xx_init(void) { - of_platform_populate(NULL, of_default_bus_match_table, NULL, - &platform_bus); + of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); kona_l2_cache_init(); } diff --git a/arch/arm/mach-clps711x/board-edb7211.c b/arch/arm/mach-clps711x/board-edb7211.c index f9828f8..6144fb5 100644 --- a/arch/arm/mach-clps711x/board-edb7211.c +++ b/arch/arm/mach-clps711x/board-edb7211.c @@ -158,16 +158,16 @@ static void __init edb7211_init_late(void) gpio_request_array(edb7211_gpios, ARRAY_SIZE(edb7211_gpios)); platform_device_register(&edb7211_flash_pdev); - platform_device_register_data(&platform_bus, "platform-lcd", 0, + platform_device_register_data(NULL, "platform-lcd", 0, &edb7211_lcd_power_pdata, sizeof(edb7211_lcd_power_pdata)); - platform_device_register_data(&platform_bus, "generic-bl", 0, + platform_device_register_data(NULL, "generic-bl", 0, &edb7211_lcd_backlight_pdata, sizeof(edb7211_lcd_backlight_pdata)); platform_device_register_simple("video-clps711x", 0, NULL, 0); platform_device_register_simple("cs89x0", 0, edb7211_cs8900_resource, ARRAY_SIZE(edb7211_cs8900_resource)); - platform_device_register_data(&platform_bus, "i2c-gpio", 0, + platform_device_register_data(NULL, "i2c-gpio", 0, &edb7211_i2c_pdata, sizeof(edb7211_i2c_pdata)); } diff --git a/arch/arm/mach-clps711x/board-p720t.c b/arch/arm/mach-clps711x/board-p720t.c index 0cf0e51..96bcc76 100644 --- a/arch/arm/mach-clps711x/board-p720t.c +++ b/arch/arm/mach-clps711x/board-p720t.c @@ -348,14 +348,14 @@ static void __init p720t_init_late(void) { WARN_ON(gpio_request_array(p720t_gpios, ARRAY_SIZE(p720t_gpios))); - platform_device_register_data(&platform_bus, "platform-lcd", 0, + platform_device_register_data(NULL, "platform-lcd", 0, &p720t_lcd_power_pdata, sizeof(p720t_lcd_power_pdata)); - platform_device_register_data(&platform_bus, "generic-bl", 0, + platform_device_register_data(NULL, "generic-bl", 0, &p720t_lcd_backlight_pdata, sizeof(p720t_lcd_backlight_pdata)); platform_device_register_simple("video-clps711x", 0, NULL, 0); - platform_device_register_data(&platform_bus, "leds-gpio", 0, + platform_device_register_data(NULL, "leds-gpio", 0, &p720t_gpio_led_pdata, sizeof(p720t_gpio_led_pdata)); } diff --git a/arch/arm/mach-imx/devices/devices.c b/arch/arm/mach-imx/devices/devices.c index 1b4366a..48c3817 100644 --- a/arch/arm/mach-imx/devices/devices.c +++ b/arch/arm/mach-imx/devices/devices.c @@ -24,12 +24,12 @@ struct device mxc_aips_bus = { .init_name = "mxc_aips", - .parent = &platform_bus, + .parent = &platform_bus.dev, }; struct device mxc_ahb_bus = { .init_name = "mxc_ahb", - .parent = &platform_bus, + .parent = &platform_bus.dev, }; int __init mxc_device_init(void) diff --git a/arch/arm/mach-imx/mach-mx27ads.c b/arch/arm/mach-imx/mach-mx27ads.c index 2f834ce..eb1c347 100644 --- a/arch/arm/mach-imx/mach-mx27ads.c +++ b/arch/arm/mach-imx/mach-mx27ads.c @@ -245,7 +245,7 @@ static void __init mx27ads_regulator_init(void) vchip->set = vgpio_set; gpiochip_add(vchip); - platform_device_register_data(&platform_bus, "reg-fixed-voltage", + platform_device_register_data(NULL, "reg-fixed-voltage", PLATFORM_DEVID_AUTO, &mx27ads_lcd_regulator_pdata, sizeof(mx27ads_lcd_regulator_pdata)); diff --git a/arch/arm/mach-shmobile/board-ape6evm.c b/arch/arm/mach-shmobile/board-ape6evm.c index fe071a9..7ab99a4 100644 --- a/arch/arm/mach-shmobile/board-ape6evm.c +++ b/arch/arm/mach-shmobile/board-ape6evm.c @@ -248,29 +248,29 @@ static void __init ape6evm_add_standard_devices(void) regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies)); - platform_device_register_resndata(&platform_bus, "smsc911x", -1, + platform_device_register_resndata(NULL, "smsc911x", -1, lan9220_res, ARRAY_SIZE(lan9220_res), &lan9220_data, sizeof(lan9220_data)); regulator_register_always_on(1, "MMC0 Vcc", vcc_mmc0_consumers, ARRAY_SIZE(vcc_mmc0_consumers), 2800000); - platform_device_register_resndata(&platform_bus, "sh_mmcif", 0, + platform_device_register_resndata(NULL, "sh_mmcif", 0, mmcif0_resources, ARRAY_SIZE(mmcif0_resources), &mmcif0_pdata, sizeof(mmcif0_pdata)); - platform_device_register_data(&platform_bus, "reg-fixed-voltage", 2, + platform_device_register_data(NULL, "reg-fixed-voltage", 2, &vcc_sdhi0_info, sizeof(vcc_sdhi0_info)); - platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 0, + platform_device_register_resndata(NULL, "sh_mobile_sdhi", 0, sdhi0_resources, ARRAY_SIZE(sdhi0_resources), &sdhi0_pdata, sizeof(sdhi0_pdata)); regulator_register_always_on(3, "SDHI1 Vcc", vcc_sdhi1_consumers, ARRAY_SIZE(vcc_sdhi1_consumers), 3300000); - platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 1, + platform_device_register_resndata(NULL, "sh_mobile_sdhi", 1, sdhi1_resources, ARRAY_SIZE(sdhi1_resources), &sdhi1_pdata, sizeof(sdhi1_pdata)); - platform_device_register_data(&platform_bus, "gpio-keys", -1, + platform_device_register_data(NULL, "gpio-keys", -1, &ape6evm_keys_pdata, sizeof(ape6evm_keys_pdata)); - platform_device_register_data(&platform_bus, "leds-gpio", -1, + platform_device_register_data(NULL, "leds-gpio", -1, &ape6evm_leds_pdata, sizeof(ape6evm_leds_pdata)); } diff --git a/arch/arm/mach-shmobile/board-bockw.c b/arch/arm/mach-shmobile/board-bockw.c index f444be2..3ec82a4 100644 --- a/arch/arm/mach-shmobile/board-bockw.c +++ b/arch/arm/mach-shmobile/board-bockw.c @@ -177,7 +177,7 @@ static struct renesas_usbhs_platform_info usbhs_info __initdata = { #define USB1_DEVICE "renesas_usbhs" #define ADD_USB_FUNC_DEVICE_IF_POSSIBLE() \ platform_device_register_resndata( \ - &platform_bus, "renesas_usbhs", -1, \ + NULL, "renesas_usbhs", -1, \ usbhsf_resources, \ ARRAY_SIZE(usbhsf_resources), \ &usbhs_info, sizeof(struct renesas_usbhs_platform_info)) @@ -236,7 +236,6 @@ static struct sh_eth_plat_data ether_platform_data __initdata = { }; static struct platform_device_info ether_info __initdata = { - .parent = &platform_bus, .name = "r8a777x-ether", .id = -1, .res = ether_resources, @@ -322,7 +321,6 @@ static struct resource vin##idx##_resources[] __initdata = { \ }; \ \ static struct platform_device_info vin##idx##_info __initdata = { \ - .parent = &platform_bus, \ .name = "r8a7778-vin", \ .id = idx, \ .res = vin##idx##_resources, \ @@ -621,10 +619,10 @@ static void __init bockw_init(void) /* VIN1 has a pin conflict with Ether */ if (!IS_ENABLED(CONFIG_SH_ETH)) platform_device_register_full(&vin1_info); - platform_device_register_data(&platform_bus, "soc-camera-pdrv", 0, + platform_device_register_data(NULL, "soc-camera-pdrv", 0, &iclink0_ml86v7667, sizeof(iclink0_ml86v7667)); - platform_device_register_data(&platform_bus, "soc-camera-pdrv", 1, + platform_device_register_data(NULL, "soc-camera-pdrv", 1, &iclink1_ml86v7667, sizeof(iclink1_ml86v7667)); @@ -637,12 +635,12 @@ static void __init bockw_init(void) r8a7778_pinmux_init(); platform_device_register_resndata( - &platform_bus, "sh_mmcif", -1, + NULL, "sh_mmcif", -1, mmc_resources, ARRAY_SIZE(mmc_resources), &sh_mmcif_plat, sizeof(struct sh_mmcif_plat_data)); platform_device_register_resndata( - &platform_bus, "rcar_usb_phy", -1, + NULL, "rcar_usb_phy", -1, usb_phy_resources, ARRAY_SIZE(usb_phy_resources), &usb_phy_platform_data, @@ -668,7 +666,7 @@ static void __init bockw_init(void) iowrite16(val, fpga + IRQ0MR); platform_device_register_resndata( - &platform_bus, "smsc911x", -1, + NULL, "smsc911x", -1, smsc911x_resources, ARRAY_SIZE(smsc911x_resources), &smsc911x_data, sizeof(smsc911x_data)); } @@ -685,7 +683,7 @@ static void __init bockw_init(void) iounmap(base); platform_device_register_resndata( - &platform_bus, "sh_mobile_sdhi", 0, + NULL, "sh_mobile_sdhi", 0, sdhi0_resources, ARRAY_SIZE(sdhi0_resources), &sdhi0_info, sizeof(struct sh_mobile_sdhi_info)); } @@ -700,7 +698,7 @@ static void __init bockw_init(void) "ak4554-adc-dac", 1, NULL, 0); pdev = platform_device_register_resndata( - &platform_bus, "rcar_sound", -1, + NULL, "rcar_sound", -1, rsnd_resources, ARRAY_SIZE(rsnd_resources), &rsnd_info, sizeof(rsnd_info)); @@ -710,7 +708,6 @@ static void __init bockw_init(void) for (i = 0; i < ARRAY_SIZE(rsnd_card_info); i++) { struct platform_device_info cardinfo = { - .parent = &platform_bus, .name = "asoc-simple-card", .id = i, .data = &rsnd_card_info[i], diff --git a/arch/arm/mach-shmobile/board-genmai.c b/arch/arm/mach-shmobile/board-genmai.c index c94201e..37184ff 100644 --- a/arch/arm/mach-shmobile/board-genmai.c +++ b/arch/arm/mach-shmobile/board-genmai.c @@ -46,7 +46,6 @@ static const struct resource ether_resources[] __initconst = { }; static const struct platform_device_info ether_info __initconst = { - .parent = &platform_bus, .name = "r7s72100-ether", .id = -1, .res = ether_resources, @@ -76,7 +75,7 @@ static const struct rspi_plat_data rspi_pdata __initconst = { }; #define r7s72100_register_rspi(idx) \ - platform_device_register_resndata(&platform_bus, "rspi-rz", idx, \ + platform_device_register_resndata(NULL, "rspi-rz", idx, \ rspi##idx##_resources, \ ARRAY_SIZE(rspi##idx##_resources), \ &rspi_pdata, sizeof(rspi_pdata)) @@ -118,7 +117,7 @@ R7S72100_SCIF(6, 0xe800a000, gic_iid(245)); R7S72100_SCIF(7, 0xe800a800, gic_iid(249)); #define r7s72100_register_scif(index) \ - platform_device_register_resndata(&platform_bus, "sh-sci", index, \ + platform_device_register_resndata(NULL, "sh-sci", index, \ scif##index##_resources, \ ARRAY_SIZE(scif##index##_resources), \ &scif##index##_platform_data, \ diff --git a/arch/arm/mach-shmobile/board-koelsch.c b/arch/arm/mach-shmobile/board-koelsch.c index c6c6889..d3aa6ae 100644 --- a/arch/arm/mach-shmobile/board-koelsch.c +++ b/arch/arm/mach-shmobile/board-koelsch.c @@ -118,7 +118,6 @@ static const struct resource ether_resources[] __initconst = { }; static const struct platform_device_info ether_info __initconst = { - .parent = &platform_bus, .name = "r8a7791-ether", .id = -1, .res = ether_resources, @@ -230,7 +229,6 @@ static const struct resource sata0_resources[] __initconst = { }; static const struct platform_device_info sata0_info __initconst = { - .parent = &platform_bus, .name = "sata-r8a7791", .id = 0, .res = sata0_resources, @@ -439,13 +437,13 @@ static void __init koelsch_add_standard_devices(void) r8a7791_pinmux_init(); r8a7791_add_standard_devices(); platform_device_register_full(ðer_info); - platform_device_register_data(&platform_bus, "leds-gpio", -1, + platform_device_register_data(NULL, "leds-gpio", -1, &koelsch_leds_pdata, sizeof(koelsch_leds_pdata)); - platform_device_register_data(&platform_bus, "gpio-keys", -1, + platform_device_register_data(NULL, "gpio-keys", -1, &koelsch_keys_pdata, sizeof(koelsch_keys_pdata)); - platform_device_register_resndata(&platform_bus, "qspi", 0, + platform_device_register_resndata(NULL, "qspi", 0, qspi_resources, ARRAY_SIZE(qspi_resources), &qspi_pdata, sizeof(qspi_pdata)); @@ -460,28 +458,28 @@ static void __init koelsch_add_standard_devices(void) koelsch_add_i2c(4); koelsch_add_i2c(5); - platform_device_register_data(&platform_bus, "reg-fixed-voltage", 0, + platform_device_register_data(NULL, "reg-fixed-voltage", 0, &vcc_sdhi0_info, sizeof(struct fixed_voltage_config)); - platform_device_register_data(&platform_bus, "reg-fixed-voltage", 1, + platform_device_register_data(NULL, "reg-fixed-voltage", 1, &vcc_sdhi1_info, sizeof(struct fixed_voltage_config)); - platform_device_register_data(&platform_bus, "reg-fixed-voltage", 2, + platform_device_register_data(NULL, "reg-fixed-voltage", 2, &vcc_sdhi2_info, sizeof(struct fixed_voltage_config)); - platform_device_register_data(&platform_bus, "gpio-regulator", 0, + platform_device_register_data(NULL, "gpio-regulator", 0, &vccq_sdhi0_info, sizeof(struct gpio_regulator_config)); - platform_device_register_data(&platform_bus, "gpio-regulator", 1, + platform_device_register_data(NULL, "gpio-regulator", 1, &vccq_sdhi1_info, sizeof(struct gpio_regulator_config)); - platform_device_register_data(&platform_bus, "gpio-regulator", 2, + platform_device_register_data(NULL, "gpio-regulator", 2, &vccq_sdhi2_info, sizeof(struct gpio_regulator_config)); - platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 0, + platform_device_register_resndata(NULL, "sh_mobile_sdhi", 0, sdhi0_resources, ARRAY_SIZE(sdhi0_resources), &sdhi0_info, sizeof(struct sh_mobile_sdhi_info)); - platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 1, + platform_device_register_resndata(NULL, "sh_mobile_sdhi", 1, sdhi1_resources, ARRAY_SIZE(sdhi1_resources), &sdhi1_info, sizeof(struct sh_mobile_sdhi_info)); - platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 2, + platform_device_register_resndata(NULL, "sh_mobile_sdhi", 2, sdhi2_resources, ARRAY_SIZE(sdhi2_resources), &sdhi2_info, sizeof(struct sh_mobile_sdhi_info)); diff --git a/arch/arm/mach-shmobile/board-lager.c b/arch/arm/mach-shmobile/board-lager.c index f8b1e05..d182961 100644 --- a/arch/arm/mach-shmobile/board-lager.c +++ b/arch/arm/mach-shmobile/board-lager.c @@ -277,7 +277,6 @@ static const struct resource ether_resources[] __initconst = { }; static const struct platform_device_info ether_info __initconst = { - .parent = &platform_bus, .name = "r8a7790-ether", .id = -1, .res = ether_resources, @@ -354,7 +353,6 @@ static void __init lager_add_vin_device(unsigned idx, struct rcar_vin_platform_data *pdata) { struct platform_device_info vin_info = { - .parent = &platform_bus, .name = "r8a7790-vin", .id = idx, .res = &vin_resources[idx * 2], @@ -391,7 +389,7 @@ LAGER_CAMERA(1, "adv7180", 0x20, NULL, RCAR_VIN_BT656); static void __init lager_add_camera1_device(void) { - platform_device_register_data(&platform_bus, "soc-camera-pdrv", 1, + platform_device_register_data(NULL, "soc-camera-pdrv", 1, &cam1_link, sizeof(cam1_link)); lager_add_vin_device(1, &vin1_pdata); } @@ -403,7 +401,6 @@ static const struct resource sata1_resources[] __initconst = { }; static const struct platform_device_info sata1_info __initconst = { - .parent = &platform_bus, .name = "sata-r8a7790", .id = 1, .res = sata1_resources, @@ -533,7 +530,7 @@ static struct usbhs_private usbhs_priv __initdata = { static void __init lager_register_usbhs(void) { usb_bind_phy("renesas_usbhs", 0, "usb_phy_rcar_gen2"); - platform_device_register_resndata(&platform_bus, + platform_device_register_resndata(NULL, "renesas_usbhs", -1, usbhs_resources, ARRAY_SIZE(usbhs_resources), @@ -608,7 +605,6 @@ static struct asoc_simple_card_info rsnd_card_info = { static void __init lager_add_rsnd_device(void) { struct platform_device_info cardinfo = { - .parent = &platform_bus, .name = "asoc-simple-card", .id = -1, .data = &rsnd_card_info, @@ -620,7 +616,7 @@ static void __init lager_add_rsnd_device(void) ARRAY_SIZE(i2c2_devices)); platform_device_register_resndata( - &platform_bus, "rcar_sound", -1, + NULL, "rcar_sound", -1, rsnd_resources, ARRAY_SIZE(rsnd_resources), &rsnd_info, sizeof(rsnd_info)); @@ -663,7 +659,6 @@ static const struct resource pci1_resources[] __initconst = { }; static const struct platform_device_info pci1_info __initconst = { - .parent = &platform_bus, .name = "pci-rcar-gen2", .id = 1, .res = pci1_resources, @@ -684,7 +679,6 @@ static const struct resource pci2_resources[] __initconst = { }; static const struct platform_device_info pci2_info __initconst = { - .parent = &platform_bus, .name = "pci-rcar-gen2", .id = 2, .res = pci2_resources, @@ -795,16 +789,16 @@ static void __init lager_add_standard_devices(void) r8a7790_pinmux_init(); r8a7790_add_standard_devices(); - platform_device_register_data(&platform_bus, "leds-gpio", -1, + platform_device_register_data(NULL, "leds-gpio", -1, &lager_leds_pdata, sizeof(lager_leds_pdata)); - platform_device_register_data(&platform_bus, "gpio-keys", -1, + platform_device_register_data(NULL, "gpio-keys", -1, &lager_keys_pdata, sizeof(lager_keys_pdata)); regulator_register_always_on(fixed_regulator_idx++, "fixed-3.3V", fixed3v3_power_consumers, ARRAY_SIZE(fixed3v3_power_consumers), 3300000); - platform_device_register_resndata(&platform_bus, "sh_mmcif", 1, + platform_device_register_resndata(NULL, "sh_mmcif", 1, mmcif1_resources, ARRAY_SIZE(mmcif1_resources), &mmcif1_pdata, sizeof(mmcif1_pdata)); @@ -812,27 +806,27 @@ static void __init lager_add_standard_devices(void) lager_add_du_device(); - platform_device_register_resndata(&platform_bus, "qspi", 0, + platform_device_register_resndata(NULL, "qspi", 0, qspi_resources, ARRAY_SIZE(qspi_resources), &qspi_pdata, sizeof(qspi_pdata)); spi_register_board_info(spi_info, ARRAY_SIZE(spi_info)); - platform_device_register_data(&platform_bus, "reg-fixed-voltage", fixed_regulator_idx++, + platform_device_register_data(NULL, "reg-fixed-voltage", fixed_regulator_idx++, &vcc_sdhi0_info, sizeof(struct fixed_voltage_config)); - platform_device_register_data(&platform_bus, "reg-fixed-voltage", fixed_regulator_idx++, + platform_device_register_data(NULL, "reg-fixed-voltage", fixed_regulator_idx++, &vcc_sdhi2_info, sizeof(struct fixed_voltage_config)); - platform_device_register_data(&platform_bus, "gpio-regulator", gpio_regulator_idx++, + platform_device_register_data(NULL, "gpio-regulator", gpio_regulator_idx++, &vccq_sdhi0_info, sizeof(struct gpio_regulator_config)); - platform_device_register_data(&platform_bus, "gpio-regulator", gpio_regulator_idx++, + platform_device_register_data(NULL, "gpio-regulator", gpio_regulator_idx++, &vccq_sdhi2_info, sizeof(struct gpio_regulator_config)); lager_add_camera1_device(); platform_device_register_full(&sata1_info); - platform_device_register_resndata(&platform_bus, "usb_phy_rcar_gen2", + platform_device_register_resndata(NULL, "usb_phy_rcar_gen2", -1, usbhs_phy_resources, ARRAY_SIZE(usbhs_phy_resources), &usbhs_phy_pdata, @@ -843,10 +837,10 @@ static void __init lager_add_standard_devices(void) lager_add_rsnd_device(); - platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 0, + platform_device_register_resndata(NULL, "sh_mobile_sdhi", 0, sdhi0_resources, ARRAY_SIZE(sdhi0_resources), &sdhi0_info, sizeof(struct sh_mobile_sdhi_info)); - platform_device_register_resndata(&platform_bus, "sh_mobile_sdhi", 2, + platform_device_register_resndata(NULL, "sh_mobile_sdhi", 2, sdhi2_resources, ARRAY_SIZE(sdhi2_resources), &sdhi2_info, sizeof(struct sh_mobile_sdhi_info)); } diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c index d832a44..6ed324c 100644 --- a/arch/arm/mach-shmobile/board-marzen.c +++ b/arch/arm/mach-shmobile/board-marzen.c @@ -272,7 +272,6 @@ static struct resource vin##idx##_resources[] __initdata = { \ }; \ \ static struct platform_device_info vin##idx##_info __initdata = { \ - .parent = &platform_bus, \ .name = "r8a7779-vin", \ .id = idx, \ .res = vin##idx##_resources, \ diff --git a/arch/arm/mach-shmobile/setup-r7s72100.c b/arch/arm/mach-shmobile/setup-r7s72100.c index 412e179..3885a59 100644 --- a/arch/arm/mach-shmobile/setup-r7s72100.c +++ b/arch/arm/mach-shmobile/setup-r7s72100.c @@ -33,7 +33,7 @@ static struct resource mtu2_resources[] __initdata = { }; #define r7s72100_register_mtu2() \ - platform_device_register_resndata(&platform_bus, "sh-mtu2", \ + platform_device_register_resndata(NULL, "sh-mtu2", \ -1, mtu2_resources, \ ARRAY_SIZE(mtu2_resources), \ NULL, 0) diff --git a/arch/arm/mach-shmobile/setup-r8a73a4.c b/arch/arm/mach-shmobile/setup-r8a73a4.c index 9333770..aaaaf6e 100644 --- a/arch/arm/mach-shmobile/setup-r8a73a4.c +++ b/arch/arm/mach-shmobile/setup-r8a73a4.c @@ -68,7 +68,7 @@ R8A73A4_SCIFB(4, 0xe6ce0000, gic_spi(150)); /* SCIFB2 */ R8A73A4_SCIFB(5, 0xe6cf0000, gic_spi(151)); /* SCIFB3 */ #define r8a73a4_register_scif(index) \ - platform_device_register_resndata(&platform_bus, "sh-sci", index, \ + platform_device_register_resndata(NULL, "sh-sci", index, \ scif##index##_resources, \ ARRAY_SIZE(scif##index##_resources), \ &scif##index##_platform_data, \ @@ -149,7 +149,7 @@ static const struct resource irqc1_resources[] = { }; #define r8a73a4_register_irqc(idx) \ - platform_device_register_resndata(&platform_bus, "renesas_irqc", \ + platform_device_register_resndata(NULL, "renesas_irqc", \ idx, irqc##idx##_resources, \ ARRAY_SIZE(irqc##idx##_resources), \ &irqc##idx##_data, \ @@ -179,7 +179,7 @@ static struct resource cmt1_resources[] = { }; #define r8a7790_register_cmt(idx) \ - platform_device_register_resndata(&platform_bus, "sh-cmt-48-gen2", \ + platform_device_register_resndata(NULL, "sh-cmt-48-gen2", \ idx, cmt##idx##_resources, \ ARRAY_SIZE(cmt##idx##_resources), \ &cmt##idx##_platform_data, \ @@ -280,7 +280,7 @@ static struct resource dma_resources[] = { }; #define r8a73a4_register_dmac() \ - platform_device_register_resndata(&platform_bus, "sh-dma-engine", 0, \ + platform_device_register_resndata(NULL, "sh-dma-engine", 0, \ dma_resources, ARRAY_SIZE(dma_resources), \ &dma_pdata, sizeof(dma_pdata)) diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c index d311ef9..5de7b33 100644 --- a/arch/arm/mach-shmobile/setup-r8a7778.c +++ b/arch/arm/mach-shmobile/setup-r8a7778.c @@ -64,7 +64,7 @@ R8A7778_SCIF(4, 0xffe44000, gic_iid(0x6a)); R8A7778_SCIF(5, 0xffe45000, gic_iid(0x6b)); #define r8a7778_register_scif(index) \ - platform_device_register_resndata(&platform_bus, "sh-sci", index, \ + platform_device_register_resndata(NULL, "sh-sci", index, \ scif##index##_resources, \ ARRAY_SIZE(scif##index##_resources), \ &scif##index##_platform_data, \ @@ -84,7 +84,7 @@ static struct resource sh_tmu0_resources[] = { #define r8a7778_register_tmu(idx) \ platform_device_register_resndata( \ - &platform_bus, "sh-tmu", idx, \ + NULL, "sh-tmu", idx, \ sh_tmu##idx##_resources, \ ARRAY_SIZE(sh_tmu##idx##_resources), \ &sh_tmu##idx##_platform_data, \ @@ -173,7 +173,6 @@ static struct resource ohci_resources[] __initdata = { #define USB_PLATFORM_INFO(hci) \ static struct platform_device_info hci##_info __initdata = { \ - .parent = &platform_bus, \ .name = #hci "-platform", \ .id = -1, \ .res = hci##_resources, \ @@ -212,7 +211,7 @@ R8A7778_GPIO(4); #define r8a7778_register_gpio(idx) \ platform_device_register_resndata( \ - &platform_bus, "gpio_rcar", idx, \ + NULL, "gpio_rcar", idx, \ r8a7778_gpio##idx##_resources, \ ARRAY_SIZE(r8a7778_gpio##idx##_resources), \ &r8a7778_gpio##idx##_platform_data, \ @@ -496,8 +495,8 @@ static struct resource hpb_dmae_resources[] __initdata = { static void __init r8a7778_register_hpb_dmae(void) { - platform_device_register_resndata(&platform_bus, "hpb-dma-engine", -1, - hpb_dmae_resources, + platform_device_register_resndata(NULL, "hpb-dma-engine", + -1, hpb_dmae_resources, ARRAY_SIZE(hpb_dmae_resources), &dma_platform_data, sizeof(dma_platform_data)); @@ -565,7 +564,7 @@ void __init r8a7778_init_irq_extpin(int irlm) r8a7778_init_irq_extpin_dt(irlm); if (irlm) platform_device_register_resndata( - &platform_bus, "renesas_intc_irqpin", -1, + NULL, "renesas_intc_irqpin", -1, irqpin_resources, ARRAY_SIZE(irqpin_resources), &irqpin_platform_data, sizeof(irqpin_platform_data)); } diff --git a/arch/arm/mach-shmobile/setup-r8a7779.c b/arch/arm/mach-shmobile/setup-r8a7779.c index aba4ed6..9c79182 100644 --- a/arch/arm/mach-shmobile/setup-r8a7779.c +++ b/arch/arm/mach-shmobile/setup-r8a7779.c @@ -123,7 +123,7 @@ void __init r8a7779_init_irq_extpin(int irlm) r8a7779_init_irq_extpin_dt(irlm); if (irlm) platform_device_register_resndata( - &platform_bus, "renesas_intc_irqpin", -1, + NULL, "renesas_intc_irqpin", -1, irqpin0_resources, ARRAY_SIZE(irqpin0_resources), &irqpin0_platform_data, sizeof(irqpin0_platform_data)); } @@ -632,8 +632,8 @@ static struct resource hpb_dmae_resources[] __initdata = { static void __init r8a7779_register_hpb_dmae(void) { - platform_device_register_resndata(&platform_bus, "hpb-dma-engine", -1, - hpb_dmae_resources, + platform_device_register_resndata(NULL, "hpb-dma-engine", + -1, hpb_dmae_resources, ARRAY_SIZE(hpb_dmae_resources), &dma_platform_data, sizeof(dma_platform_data)); diff --git a/arch/arm/mach-shmobile/setup-r8a7790.c b/arch/arm/mach-shmobile/setup-r8a7790.c index 6bd08b1..10e6768 100644 --- a/arch/arm/mach-shmobile/setup-r8a7790.c +++ b/arch/arm/mach-shmobile/setup-r8a7790.c @@ -113,7 +113,7 @@ static struct resource r8a7790_audio_dmac_resources[] = { #define r8a7790_register_audio_dmac(id) \ platform_device_register_resndata( \ - &platform_bus, "sh-dma-engine", id, \ + NULL, "sh-dma-engine", id, \ &r8a7790_audio_dmac_resources[id * 3], 3, \ &r8a7790_audio_dmac_platform_data, \ sizeof(r8a7790_audio_dmac_platform_data)) @@ -149,7 +149,7 @@ R8A7790_GPIO(4); R8A7790_GPIO(5); #define r8a7790_register_gpio(idx) \ - platform_device_register_resndata(&platform_bus, "gpio_rcar", idx, \ + platform_device_register_resndata(NULL, "gpio_rcar", idx, \ r8a7790_gpio##idx##_resources, \ ARRAY_SIZE(r8a7790_gpio##idx##_resources), \ &r8a7790_gpio##idx##_platform_data, \ @@ -227,7 +227,7 @@ R8A7790_HSCIF(8, 0xe62c0000, gic_spi(154)); /* HSCIF0 */ R8A7790_HSCIF(9, 0xe62c8000, gic_spi(155)); /* HSCIF1 */ #define r8a7790_register_scif(index) \ - platform_device_register_resndata(&platform_bus, "sh-sci", index, \ + platform_device_register_resndata(NULL, "sh-sci", index, \ scif##index##_resources, \ ARRAY_SIZE(scif##index##_resources), \ &scif##index##_platform_data, \ @@ -246,7 +246,7 @@ static const struct resource irqc0_resources[] __initconst = { }; #define r8a7790_register_irqc(idx) \ - platform_device_register_resndata(&platform_bus, "renesas_irqc", \ + platform_device_register_resndata(NULL, "renesas_irqc", \ idx, irqc##idx##_resources, \ ARRAY_SIZE(irqc##idx##_resources), \ &irqc##idx##_data, \ @@ -273,7 +273,7 @@ static struct resource cmt0_resources[] = { }; #define r8a7790_register_cmt(idx) \ - platform_device_register_resndata(&platform_bus, "sh-cmt-48-gen2", \ + platform_device_register_resndata(NULL, "sh-cmt-48-gen2", \ idx, cmt##idx##_resources, \ ARRAY_SIZE(cmt##idx##_resources), \ &cmt##idx##_platform_data, \ diff --git a/arch/arm/mach-shmobile/setup-r8a7791.c b/arch/arm/mach-shmobile/setup-r8a7791.c index 04a96dd..fd54437 100644 --- a/arch/arm/mach-shmobile/setup-r8a7791.c +++ b/arch/arm/mach-shmobile/setup-r8a7791.c @@ -65,7 +65,7 @@ R8A7791_GPIO(6, 0xe6055400, 32); R8A7791_GPIO(7, 0xe6055800, 26); #define r8a7791_register_gpio(idx) \ - platform_device_register_resndata(&platform_bus, "gpio_rcar", idx, \ + platform_device_register_resndata(NULL, "gpio_rcar", idx, \ r8a7791_gpio##idx##_resources, \ ARRAY_SIZE(r8a7791_gpio##idx##_resources), \ &r8a7791_gpio##idx##_platform_data, \ @@ -122,7 +122,7 @@ R8A7791_SCIFA(13, 0xe6c78000, gic_spi(30)); /* SCIFA4 */ R8A7791_SCIFA(14, 0xe6c80000, gic_spi(31)); /* SCIFA5 */ #define r8a7791_register_scif(index) \ - platform_device_register_resndata(&platform_bus, "sh-sci", index, \ + platform_device_register_resndata(NULL, "sh-sci", index, \ scif##index##_resources, \ ARRAY_SIZE(scif##index##_resources), \ &scif##index##_platform_data, \ @@ -138,7 +138,7 @@ static struct resource cmt0_resources[] = { }; #define r8a7791_register_cmt(idx) \ - platform_device_register_resndata(&platform_bus, "sh-cmt-48-gen2", \ + platform_device_register_resndata(NULL, "sh-cmt-48-gen2", \ idx, cmt##idx##_resources, \ ARRAY_SIZE(cmt##idx##_resources), \ &cmt##idx##_platform_data, \ @@ -163,7 +163,7 @@ static struct resource irqc0_resources[] = { }; #define r8a7791_register_irqc(idx) \ - platform_device_register_resndata(&platform_bus, "renesas_irqc", \ + platform_device_register_resndata(NULL, "renesas_irqc", \ idx, irqc##idx##_resources, \ ARRAY_SIZE(irqc##idx##_resources), \ &irqc##idx##_data, \ diff --git a/arch/unicore32/kernel/puv3-core.c b/arch/unicore32/kernel/puv3-core.c index 254adee..438dd2e 100644 --- a/arch/unicore32/kernel/puv3-core.c +++ b/arch/unicore32/kernel/puv3-core.c @@ -272,7 +272,7 @@ void __init puv3_core_init(void) platform_device_register_simple("PKUnity-v3-UART", 1, puv3_uart1_resources, ARRAY_SIZE(puv3_uart1_resources)); platform_device_register_simple("PKUnity-v3-AC97", -1, NULL, 0); - platform_device_register_resndata(&platform_bus, "musb_hdrc", -1, + platform_device_register_resndata(NULL, "musb_hdrc", -1, puv3_usb_resources, ARRAY_SIZE(puv3_usb_resources), &puv3_usb_plat, sizeof(puv3_usb_plat)); } diff --git a/arch/unicore32/kernel/puv3-nb0916.c b/arch/unicore32/kernel/puv3-nb0916.c index 0c6618e..46ebfdc 100644 --- a/arch/unicore32/kernel/puv3-nb0916.c +++ b/arch/unicore32/kernel/puv3-nb0916.c @@ -112,13 +112,13 @@ int __init mach_nb0916_init(void) platform_device_register_simple("PKUnity-v3-I2C", -1, puv3_i2c_resources, ARRAY_SIZE(puv3_i2c_resources)); - platform_device_register_data(&platform_bus, "pwm-backlight", -1, + platform_device_register_data(NULL, "pwm-backlight", -1, &nb0916_backlight_data, sizeof(nb0916_backlight_data)); - platform_device_register_data(&platform_bus, "gpio-keys", -1, + platform_device_register_data(NULL, "gpio-keys", -1, &nb0916_gpio_button_data, sizeof(nb0916_gpio_button_data)); - platform_device_register_resndata(&platform_bus, "physmap-flash", -1, + platform_device_register_resndata(NULL, "physmap-flash", -1, &physmap_flash_resource, 1, &physmap_flash_data, sizeof(physmap_flash_data)); diff --git a/drivers/base/platform.c b/drivers/base/platform.c index eee48c4..f272603 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c @@ -30,8 +30,8 @@ /* For automatically allocated device IDs */ static DEFINE_IDA(platform_devid_ida); -struct device platform_bus = { - .init_name = "platform", +struct platform_device platform_bus = { + .name = "platform", }; EXPORT_SYMBOL_GPL(platform_bus); @@ -300,7 +300,7 @@ int platform_device_add(struct platform_device *pdev) return -EINVAL; if (!pdev->dev.parent) - pdev->dev.parent = &platform_bus; + pdev->dev.parent = &platform_bus.dev; pdev->dev.bus = &platform_bus_type; @@ -946,12 +946,18 @@ int __init platform_bus_init(void) early_platform_cleanup(); - error = device_register(&platform_bus); + dev_set_name(&platform_bus.dev, "%s", platform_bus.name); + error = device_register(&platform_bus.dev); if (error) return error; error = bus_register(&platform_bus_type); - if (error) - device_unregister(&platform_bus); + if (!error) { + platform_bus.dev.of_node = of_allnodes; + platform_bus.dev.bus = &platform_bus_type; + bus_add_device(&platform_bus.dev); + } else { + device_unregister(&platform_bus.dev); + } return error; } diff --git a/drivers/char/tile-srom.c b/drivers/char/tile-srom.c index bd37747..4e4b7a2 100644 --- a/drivers/char/tile-srom.c +++ b/drivers/char/tile-srom.c @@ -350,7 +350,7 @@ static int srom_setup_minor(struct srom_dev *srom, int index) SROM_PAGE_SIZE_OFF, sizeof(srom->page_size)) < 0) return -EIO; - dev = device_create(srom_class, &platform_bus, + dev = device_create(srom_class, &platform_bus.dev, MKDEV(srom_major, index), srom, "%d", index); return PTR_ERR_OR_ZERO(dev); } diff --git a/drivers/mmc/host/sdhci-pltfm.c b/drivers/mmc/host/sdhci-pltfm.c index 7e834fb..9a2b0d0 100644 --- a/drivers/mmc/host/sdhci-pltfm.c +++ b/drivers/mmc/host/sdhci-pltfm.c @@ -137,7 +137,7 @@ struct sdhci_host *sdhci_pltfm_init(struct platform_device *pdev, dev_err(&pdev->dev, "Invalid iomem size!\n"); /* Some PCI-based MFD need the parent here */ - if (pdev->dev.parent != &platform_bus && !np) + if (pdev->dev.parent != &platform_bus.dev && !np) host = sdhci_alloc_host(pdev->dev.parent, sizeof(struct sdhci_pltfm_host) + priv_size); else diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c index 3cbb57a..c14c36f 100644 --- a/drivers/scsi/hosts.c +++ b/drivers/scsi/hosts.c @@ -218,7 +218,7 @@ int scsi_add_host_with_dma(struct Scsi_Host *shost, struct device *dev, goto fail; if (!shost->shost_gendev.parent) - shost->shost_gendev.parent = dev ? dev : &platform_bus; + shost->shost_gendev.parent = dev ? dev : &platform_bus.dev; if (!dma_dev) dma_dev = shost->shost_gendev.parent; diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h index 16f6654..a99032a 100644 --- a/include/linux/platform_device.h +++ b/include/linux/platform_device.h @@ -44,7 +44,7 @@ extern int platform_device_register(struct platform_device *); extern void platform_device_unregister(struct platform_device *); extern struct bus_type platform_bus_type; -extern struct device platform_bus; +extern struct platform_device platform_bus; extern void arch_setup_pdev_archdata(struct platform_device *); extern struct resource *platform_get_resource(struct platform_device *,
... describing the root of the device tree, so one can write a platform driver initializing the platform. There has been a lot of references to platform_bus device where it didn't make any sense, because simply using NULL as a parent will make the device be adopted by the top level anyway. Signed-off-by: Pawel Moll <pawel.moll@arm.com> --- Changes since v2: * replaced references to platform_bus.dev with NULL in places where it shouldn't make any difference Changes since v1: * rebased on top of v3.16-rc6 * fixed up all new explicit references to platform_bus, with majority in mach-shmobile; 99% of them seem completely useless and I was *very* tempted to replace them with NULL - all reasons for and against this are welcomed arch/arm/mach-bcm/board_bcm21664.c | 3 +-- arch/arm/mach-bcm/board_bcm281xx.c | 3 +-- arch/arm/mach-clps711x/board-edb7211.c | 6 +++--- arch/arm/mach-clps711x/board-p720t.c | 6 +++--- arch/arm/mach-imx/devices/devices.c | 4 ++-- arch/arm/mach-imx/mach-mx27ads.c | 2 +- arch/arm/mach-shmobile/board-ape6evm.c | 14 +++++++------- arch/arm/mach-shmobile/board-bockw.c | 19 ++++++++---------- arch/arm/mach-shmobile/board-genmai.c | 5 ++--- arch/arm/mach-shmobile/board-koelsch.c | 26 ++++++++++++------------- arch/arm/mach-shmobile/board-lager.c | 34 ++++++++++++++------------------- arch/arm/mach-shmobile/board-marzen.c | 1 - arch/arm/mach-shmobile/setup-r7s72100.c | 2 +- arch/arm/mach-shmobile/setup-r8a73a4.c | 8 ++++---- arch/arm/mach-shmobile/setup-r8a7778.c | 13 ++++++------- arch/arm/mach-shmobile/setup-r8a7779.c | 6 +++--- arch/arm/mach-shmobile/setup-r8a7790.c | 10 +++++----- arch/arm/mach-shmobile/setup-r8a7791.c | 8 ++++---- arch/unicore32/kernel/puv3-core.c | 2 +- arch/unicore32/kernel/puv3-nb0916.c | 6 +++--- drivers/base/platform.c | 18 +++++++++++------ drivers/char/tile-srom.c | 2 +- drivers/mmc/host/sdhci-pltfm.c | 2 +- drivers/scsi/hosts.c | 2 +- include/linux/platform_device.h | 2 +- 25 files changed, 97 insertions(+), 107 deletions(-)