aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/powerpc/kernel/ibmebus.c3
-rw-r--r--arch/powerpc/kernel/of_platform.c3
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_gpio.c14
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_gpt.c7
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c8
-rw-r--r--arch/powerpc/platforms/82xx/ep8248e.c3
-rw-r--r--arch/powerpc/platforms/83xx/suspend.c7
-rw-r--r--arch/powerpc/platforms/cell/axon_msi.c7
-rw-r--r--arch/powerpc/platforms/pasemi/gpio_mdio.c7
-rw-r--r--arch/powerpc/sysdev/axonram.c8
-rw-r--r--arch/powerpc/sysdev/bestcomm/bestcomm.c10
-rw-r--r--arch/powerpc/sysdev/fsl_msi.c7
-rw-r--r--arch/powerpc/sysdev/fsl_pmc.c7
-rw-r--r--arch/powerpc/sysdev/fsl_rio.c7
-rw-r--r--arch/powerpc/sysdev/pmi.c7
-rw-r--r--arch/powerpc/sysdev/qe_lib/qe.c7
-rw-r--r--arch/sparc/include/asm/parport.h7
-rw-r--r--arch/sparc/kernel/apc.c7
-rw-r--r--arch/sparc/kernel/auxio_64.c7
-rw-r--r--arch/sparc/kernel/central.c14
-rw-r--r--arch/sparc/kernel/chmc.c7
-rw-r--r--arch/sparc/kernel/pci_fire.c7
-rw-r--r--arch/sparc/kernel/pci_psycho.c7
-rw-r--r--arch/sparc/kernel/pci_sabre.c7
-rw-r--r--arch/sparc/kernel/pci_schizo.c7
-rw-r--r--arch/sparc/kernel/pci_sun4v.c7
-rw-r--r--arch/sparc/kernel/pmc.c7
-rw-r--r--arch/sparc/kernel/power.c7
-rw-r--r--arch/sparc/kernel/time_32.c7
-rw-r--r--arch/sparc/kernel/time_64.c21
-rw-r--r--drivers/ata/pata_mpc52xx.c4
-rw-r--r--drivers/ata/pata_of_platform.c7
-rw-r--r--drivers/ata/sata_fsl.c7
-rw-r--r--drivers/atm/fore200e.c7
-rw-r--r--drivers/block/xsysace.c5
-rw-r--r--drivers/char/hw_random/n2-drv.c7
-rw-r--r--drivers/char/hw_random/pasemi-rng.c7
-rw-r--r--drivers/char/ipmi/ipmi_si_intf.c7
-rw-r--r--drivers/char/xilinx_hwicap/xilinx_hwicap.c5
-rw-r--r--drivers/crypto/amcc/crypto4xx_core.c7
-rw-r--r--drivers/crypto/talitos.c7
-rw-r--r--drivers/dma/fsldma.c11
-rw-r--r--drivers/dma/ppc4xx/adma.c2
-rw-r--r--drivers/edac/mpc85xx_edac.c30
-rw-r--r--drivers/edac/ppc4xx_edac.c10
-rw-r--r--drivers/hwmon/ultra45_env.c7
-rw-r--r--drivers/i2c/busses/i2c-cpm.c10
-rw-r--r--drivers/i2c/busses/i2c-ibm_iic.c7
-rw-r--r--drivers/i2c/busses/i2c-mpc.c8
-rw-r--r--drivers/infiniband/hw/ehca/ehca_main.c7
-rw-r--r--drivers/input/misc/sparcspkr.c14
-rw-r--r--drivers/input/serio/i8042-sparcio.h7
-rw-r--r--drivers/input/serio/xilinx_ps2.c7
-rw-r--r--drivers/leds/leds-gpio.c2
-rw-r--r--drivers/macintosh/smu.c7
-rw-r--r--drivers/macintosh/therm_pm72.c7
-rw-r--r--drivers/macintosh/therm_windtunnel.c7
-rw-r--r--drivers/mmc/host/sdhci-of-core.c7
-rw-r--r--drivers/mtd/maps/physmap_of.c7
-rw-r--r--drivers/mtd/maps/sun_uflash.c7
-rw-r--r--drivers/mtd/nand/fsl_elbc_nand.c5
-rw-r--r--drivers/mtd/nand/fsl_upm.c7
-rw-r--r--drivers/mtd/nand/ndfc.c5
-rw-r--r--drivers/mtd/nand/pasemi_nand.c7
-rw-r--r--drivers/mtd/nand/socrates_nand.c7
-rw-r--r--drivers/net/can/mscan/mpc5xxx_can.c8
-rw-r--r--drivers/net/can/sja1000/sja1000_of_platform.c8
-rw-r--r--drivers/net/ehea/ehea_main.c7
-rw-r--r--drivers/net/fec_mpc52xx.c8
-rw-r--r--drivers/net/fec_mpc52xx_phy.c7
-rw-r--r--drivers/net/fs_enet/fs_enet-main.c7
-rw-r--r--drivers/net/fs_enet/mii-bitbang.c7
-rw-r--r--drivers/net/fs_enet/mii-fec.c7
-rw-r--r--drivers/net/fsl_pq_mdio.c7
-rw-r--r--drivers/net/gianfar.c10
-rw-r--r--drivers/net/ibm_newemac/core.c8
-rw-r--r--drivers/net/ibm_newemac/mal.c8
-rw-r--r--drivers/net/ibm_newemac/rgmii.c8
-rw-r--r--drivers/net/ibm_newemac/tah.c8
-rw-r--r--drivers/net/ibm_newemac/zmii.c8
-rw-r--r--drivers/net/ll_temac_main.c2
-rw-r--r--drivers/net/myri_sbus.c7
-rw-r--r--drivers/net/niu.c7
-rw-r--r--drivers/net/phy/mdio-gpio.c7
-rw-r--r--drivers/net/sunbmac.c7
-rw-r--r--drivers/net/sunhme.c7
-rw-r--r--drivers/net/sunlance.c7
-rw-r--r--drivers/net/sunqe.c7
-rw-r--r--drivers/net/ucc_geth.c7
-rw-r--r--drivers/net/xilinx_emaclite.c7
-rw-r--r--drivers/of/platform.c7
-rw-r--r--drivers/parport/parport_sunbpp.c7
-rw-r--r--drivers/pcmcia/electra_cf.c7
-rw-r--r--drivers/pcmcia/m8xx_pcmcia.c7
-rw-r--r--drivers/sbus/char/bbc_i2c.c7
-rw-r--r--drivers/sbus/char/display7seg.c7
-rw-r--r--drivers/sbus/char/envctrl.c7
-rw-r--r--drivers/sbus/char/flash.c7
-rw-r--r--drivers/sbus/char/uctrl.c7
-rw-r--r--drivers/scsi/qlogicpti.c7
-rw-r--r--drivers/scsi/sun_esp.c7
-rw-r--r--drivers/serial/apbuart.c8
-rw-r--r--drivers/serial/cpm_uart/cpm_uart_core.c7
-rw-r--r--drivers/serial/mpc52xx_uart.c7
-rw-r--r--drivers/serial/of_serial.c8
-rw-r--r--drivers/serial/sunhv.c7
-rw-r--r--drivers/serial/sunsab.c7
-rw-r--r--drivers/serial/sunsu.c7
-rw-r--r--drivers/serial/sunzilog.c7
-rw-r--r--drivers/serial/uartlite.c5
-rw-r--r--drivers/serial/ucc_uart.c8
-rw-r--r--drivers/spi/mpc52xx_psc_spi.c4
-rw-r--r--drivers/spi/mpc52xx_spi.c8
-rw-r--r--drivers/spi/spi_mpc8xxx.c7
-rw-r--r--drivers/spi/spi_ppc4xx.c2
-rw-r--r--drivers/spi/xilinx_spi_of.c2
-rw-r--r--drivers/usb/gadget/fsl_qe_udc.c7
-rw-r--r--drivers/usb/host/ehci-ppc-of.c9
-rw-r--r--drivers/usb/host/ehci-xilinx-of.c9
-rw-r--r--drivers/usb/host/fhci-hcd.c7
-rw-r--r--drivers/usb/host/isp1760-if.c7
-rw-r--r--drivers/usb/host/ohci-ppc-of.c13
-rw-r--r--drivers/video/bw2.c7
-rw-r--r--drivers/video/cg14.c7
-rw-r--r--drivers/video/cg3.c7
-rw-r--r--drivers/video/cg6.c7
-rw-r--r--drivers/video/ffb.c7
-rw-r--r--drivers/video/fsl-diu-fb.c8
-rw-r--r--drivers/video/leo.c7
-rw-r--r--drivers/video/mb862xx/mb862xxfb.c8
-rw-r--r--drivers/video/p9100.c7
-rw-r--r--drivers/video/platinumfb.c7
-rw-r--r--drivers/video/sunxvr1000.c7
-rw-r--r--drivers/video/tcx.c7
-rw-r--r--drivers/video/xilinxfb.c5
-rw-r--r--drivers/watchdog/cpwd.c7
-rw-r--r--drivers/watchdog/gef_wdt.c8
-rw-r--r--drivers/watchdog/mpc8xxx_wdt.c8
-rw-r--r--drivers/watchdog/riowd.c7
-rw-r--r--include/linux/of_platform.h4
-rw-r--r--sound/soc/fsl/mpc5200_psc_ac97.c2
-rw-r--r--sound/soc/fsl/mpc5200_psc_i2s.c2
-rw-r--r--sound/soc/fsl/mpc8610_hpcd.c8
-rw-r--r--sound/sparc/amd7930.c7
-rw-r--r--sound/sparc/cs4231.c7
-rw-r--r--sound/sparc/dbri.c7
146 files changed, 671 insertions, 387 deletions
diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c
index 355257bb149d..21266abfbda6 100644
--- a/arch/powerpc/kernel/ibmebus.c
+++ b/arch/powerpc/kernel/ibmebus.c
@@ -201,9 +201,6 @@ static int ibmebus_create_devices(const struct of_device_id *matches)
201 201
202int ibmebus_register_driver(struct of_platform_driver *drv) 202int ibmebus_register_driver(struct of_platform_driver *drv)
203{ 203{
204 if (!drv->driver.of_match_table)
205 drv->driver.of_match_table = drv->match_table;
206
207 /* If the driver uses devices that ibmebus doesn't know, add them */ 204 /* If the driver uses devices that ibmebus doesn't know, add them */
208 ibmebus_create_devices(drv->driver.of_match_table); 205 ibmebus_create_devices(drv->driver.of_match_table);
209 206
diff --git a/arch/powerpc/kernel/of_platform.c b/arch/powerpc/kernel/of_platform.c
index 218853466510..487a98851ba6 100644
--- a/arch/powerpc/kernel/of_platform.c
+++ b/arch/powerpc/kernel/of_platform.c
@@ -306,10 +306,11 @@ static struct of_device_id of_pci_phb_ids[] = {
306}; 306};
307 307
308static struct of_platform_driver of_pci_phb_driver = { 308static struct of_platform_driver of_pci_phb_driver = {
309 .match_table = of_pci_phb_ids,
310 .probe = of_pci_phb_probe, 309 .probe = of_pci_phb_probe,
311 .driver = { 310 .driver = {
312 .name = "of-pci", 311 .name = "of-pci",
312 .owner = THIS_MODULE,
313 .of_match_table = of_pci_phb_ids,
313 }, 314 },
314}; 315};
315 316
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpio.c b/arch/powerpc/platforms/52xx/mpc52xx_gpio.c
index 576669fc4fbf..ca5305a5bd61 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_gpio.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_gpio.c
@@ -193,8 +193,11 @@ static const struct of_device_id mpc52xx_wkup_gpiochip_match[] = {
193}; 193};
194 194
195static struct of_platform_driver mpc52xx_wkup_gpiochip_driver = { 195static struct of_platform_driver mpc52xx_wkup_gpiochip_driver = {
196 .name = "gpio_wkup", 196 .driver = {
197 .match_table = mpc52xx_wkup_gpiochip_match, 197 .name = "gpio_wkup",
198 .owner = THIS_MODULE,
199 .of_match_table = mpc52xx_wkup_gpiochip_match,
200 },
198 .probe = mpc52xx_wkup_gpiochip_probe, 201 .probe = mpc52xx_wkup_gpiochip_probe,
199 .remove = mpc52xx_gpiochip_remove, 202 .remove = mpc52xx_gpiochip_remove,
200}; 203};
@@ -349,8 +352,11 @@ static const struct of_device_id mpc52xx_simple_gpiochip_match[] = {
349}; 352};
350 353
351static struct of_platform_driver mpc52xx_simple_gpiochip_driver = { 354static struct of_platform_driver mpc52xx_simple_gpiochip_driver = {
352 .name = "gpio", 355 .driver = {
353 .match_table = mpc52xx_simple_gpiochip_match, 356 .name = "gpio",
357 .owner = THIS_MODULE,
358 .of_match_table = mpc52xx_simple_gpiochip_match,
359 },
354 .probe = mpc52xx_simple_gpiochip_probe, 360 .probe = mpc52xx_simple_gpiochip_probe,
355 .remove = mpc52xx_gpiochip_remove, 361 .remove = mpc52xx_gpiochip_remove,
356}; 362};
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
index 42c507f9c35b..46c93578cbf0 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
@@ -784,8 +784,11 @@ static const struct of_device_id mpc52xx_gpt_match[] = {
784}; 784};
785 785
786static struct of_platform_driver mpc52xx_gpt_driver = { 786static struct of_platform_driver mpc52xx_gpt_driver = {
787 .name = "mpc52xx-gpt", 787 .driver = {
788 .match_table = mpc52xx_gpt_match, 788 .name = "mpc52xx-gpt",
789 .owner = THIS_MODULE,
790 .of_match_table = mpc52xx_gpt_match,
791 },
789 .probe = mpc52xx_gpt_probe, 792 .probe = mpc52xx_gpt_probe,
790 .remove = mpc52xx_gpt_remove, 793 .remove = mpc52xx_gpt_remove,
791}; 794};
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c b/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c
index 17b99ba7a8cc..e86aec644501 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c
@@ -537,9 +537,11 @@ static struct of_device_id mpc52xx_lpbfifo_match[] __devinitconst = {
537}; 537};
538 538
539static struct of_platform_driver mpc52xx_lpbfifo_driver = { 539static struct of_platform_driver mpc52xx_lpbfifo_driver = {
540 .owner = THIS_MODULE, 540 .driver = {
541 .name = "mpc52xx-lpbfifo", 541 .name = "mpc52xx-lpbfifo",
542 .match_table = mpc52xx_lpbfifo_match, 542 .owner = THIS_MODULE,
543 .of_match_table = mpc52xx_lpbfifo_match,
544 },
543 .probe = mpc52xx_lpbfifo_probe, 545 .probe = mpc52xx_lpbfifo_probe,
544 .remove = __devexit_p(mpc52xx_lpbfifo_remove), 546 .remove = __devexit_p(mpc52xx_lpbfifo_remove),
545}; 547};
diff --git a/arch/powerpc/platforms/82xx/ep8248e.c b/arch/powerpc/platforms/82xx/ep8248e.c
index 0176ae8249d5..9f2e52b36f91 100644
--- a/arch/powerpc/platforms/82xx/ep8248e.c
+++ b/arch/powerpc/platforms/82xx/ep8248e.c
@@ -170,8 +170,9 @@ static const struct of_device_id ep8248e_mdio_match[] = {
170static struct of_platform_driver ep8248e_mdio_driver = { 170static struct of_platform_driver ep8248e_mdio_driver = {
171 .driver = { 171 .driver = {
172 .name = "ep8248e-mdio-bitbang", 172 .name = "ep8248e-mdio-bitbang",
173 .owner = THIS_MODULE,
174 .of_match_table = ep8248e_mdio_match,
173 }, 175 },
174 .match_table = ep8248e_mdio_match,
175 .probe = ep8248e_mdio_probe, 176 .probe = ep8248e_mdio_probe,
176 .remove = ep8248e_mdio_remove, 177 .remove = ep8248e_mdio_remove,
177}; 178};
diff --git a/arch/powerpc/platforms/83xx/suspend.c b/arch/powerpc/platforms/83xx/suspend.c
index aa0b764b1cc4..ebe6c3537209 100644
--- a/arch/powerpc/platforms/83xx/suspend.c
+++ b/arch/powerpc/platforms/83xx/suspend.c
@@ -423,8 +423,11 @@ static struct of_device_id pmc_match[] = {
423}; 423};
424 424
425static struct of_platform_driver pmc_driver = { 425static struct of_platform_driver pmc_driver = {
426 .name = "mpc83xx-pmc", 426 .driver = {
427 .match_table = pmc_match, 427 .name = "mpc83xx-pmc",
428 .owner = THIS_MODULE,
429 .of_match_table = pmc_match,
430 },
428 .probe = pmc_probe, 431 .probe = pmc_probe,
429 .remove = pmc_remove 432 .remove = pmc_remove
430}; 433};
diff --git a/arch/powerpc/platforms/cell/axon_msi.c b/arch/powerpc/platforms/cell/axon_msi.c
index 177a4f1369b4..6257e5378615 100644
--- a/arch/powerpc/platforms/cell/axon_msi.c
+++ b/arch/powerpc/platforms/cell/axon_msi.c
@@ -447,11 +447,12 @@ static const struct of_device_id axon_msi_device_id[] = {
447}; 447};
448 448
449static struct of_platform_driver axon_msi_driver = { 449static struct of_platform_driver axon_msi_driver = {
450 .match_table = axon_msi_device_id,
451 .probe = axon_msi_probe, 450 .probe = axon_msi_probe,
452 .shutdown = axon_msi_shutdown, 451 .shutdown = axon_msi_shutdown,
453 .driver = { 452 .driver = {
454 .name = "axon-msi" 453 .name = "axon-msi",
454 .owner = THIS_MODULE,
455 .of_match_table = axon_msi_device_id,
455 }, 456 },
456}; 457};
457 458
diff --git a/arch/powerpc/platforms/pasemi/gpio_mdio.c b/arch/powerpc/platforms/pasemi/gpio_mdio.c
index c44e1b3b91db..627ee089e75d 100644
--- a/arch/powerpc/platforms/pasemi/gpio_mdio.c
+++ b/arch/powerpc/platforms/pasemi/gpio_mdio.c
@@ -301,11 +301,12 @@ MODULE_DEVICE_TABLE(of, gpio_mdio_match);
301 301
302static struct of_platform_driver gpio_mdio_driver = 302static struct of_platform_driver gpio_mdio_driver =
303{ 303{
304 .match_table = gpio_mdio_match,
305 .probe = gpio_mdio_probe, 304 .probe = gpio_mdio_probe,
306 .remove = gpio_mdio_remove, 305 .remove = gpio_mdio_remove,
307 .driver = { 306 .driver = {
308 .name = "gpio-mdio-bitbang", 307 .name = "gpio-mdio-bitbang",
308 .owner = THIS_MODULE,
309 .of_match_table = gpio_mdio_match,
309 }, 310 },
310}; 311};
311 312
diff --git a/arch/powerpc/sysdev/axonram.c b/arch/powerpc/sysdev/axonram.c
index 88b21fccf0c9..402d2212162f 100644
--- a/arch/powerpc/sysdev/axonram.c
+++ b/arch/powerpc/sysdev/axonram.c
@@ -327,12 +327,12 @@ static struct of_device_id axon_ram_device_id[] = {
327}; 327};
328 328
329static struct of_platform_driver axon_ram_driver = { 329static struct of_platform_driver axon_ram_driver = {
330 .match_table = axon_ram_device_id,
331 .probe = axon_ram_probe, 330 .probe = axon_ram_probe,
332 .remove = axon_ram_remove, 331 .remove = axon_ram_remove,
333 .driver = { 332 .driver = {
334 .owner = THIS_MODULE, 333 .name = AXON_RAM_MODULE_NAME,
335 .name = AXON_RAM_MODULE_NAME, 334 .owner = THIS_MODULE,
335 .of_match_table = axon_ram_device_id,
336 }, 336 },
337}; 337};
338 338
diff --git a/arch/powerpc/sysdev/bestcomm/bestcomm.c b/arch/powerpc/sysdev/bestcomm/bestcomm.c
index d32d5389b67a..a7c5c470af14 100644
--- a/arch/powerpc/sysdev/bestcomm/bestcomm.c
+++ b/arch/powerpc/sysdev/bestcomm/bestcomm.c
@@ -494,14 +494,12 @@ MODULE_DEVICE_TABLE(of, mpc52xx_bcom_of_match);
494 494
495 495
496static struct of_platform_driver mpc52xx_bcom_of_platform_driver = { 496static struct of_platform_driver mpc52xx_bcom_of_platform_driver = {
497 .owner = THIS_MODULE,
498 .name = DRIVER_NAME,
499 .match_table = mpc52xx_bcom_of_match,
500 .probe = mpc52xx_bcom_probe, 497 .probe = mpc52xx_bcom_probe,
501 .remove = mpc52xx_bcom_remove, 498 .remove = mpc52xx_bcom_remove,
502 .driver = { 499 .driver = {
503 .name = DRIVER_NAME, 500 .name = DRIVER_NAME,
504 .owner = THIS_MODULE, 501 .owner = THIS_MODULE,
502 .of_match_table = mpc52xx_bcom_of_match,
505 }, 503 },
506}; 504};
507 505
diff --git a/arch/powerpc/sysdev/fsl_msi.c b/arch/powerpc/sysdev/fsl_msi.c
index 569dae8ea1ce..a7be144f5874 100644
--- a/arch/powerpc/sysdev/fsl_msi.c
+++ b/arch/powerpc/sysdev/fsl_msi.c
@@ -345,8 +345,11 @@ static const struct of_device_id fsl_of_msi_ids[] = {
345}; 345};
346 346
347static struct of_platform_driver fsl_of_msi_driver = { 347static struct of_platform_driver fsl_of_msi_driver = {
348 .name = "fsl-msi", 348 .driver = {
349 .match_table = fsl_of_msi_ids, 349 .name = "fsl-msi",
350 .owner = THIS_MODULE,
351 .of_match_table = fsl_of_msi_ids,
352 },
350 .probe = fsl_of_msi_probe, 353 .probe = fsl_of_msi_probe,
351}; 354};
352 355
diff --git a/arch/powerpc/sysdev/fsl_pmc.c b/arch/powerpc/sysdev/fsl_pmc.c
index 2ebe817ca72f..9082eb921ad9 100644
--- a/arch/powerpc/sysdev/fsl_pmc.c
+++ b/arch/powerpc/sysdev/fsl_pmc.c
@@ -76,8 +76,11 @@ static const struct of_device_id pmc_ids[] = {
76}; 76};
77 77
78static struct of_platform_driver pmc_driver = { 78static struct of_platform_driver pmc_driver = {
79 .driver.name = "fsl-pmc", 79 .driver = {
80 .match_table = pmc_ids, 80 .name = "fsl-pmc",
81 .owner = THIS_MODULE,
82 .of_match_table = pmc_ids,
83 },
81 .probe = pmc_probe, 84 .probe = pmc_probe,
82}; 85};
83 86
diff --git a/arch/powerpc/sysdev/fsl_rio.c b/arch/powerpc/sysdev/fsl_rio.c
index a98d51639243..6a1fde0d22b0 100644
--- a/arch/powerpc/sysdev/fsl_rio.c
+++ b/arch/powerpc/sysdev/fsl_rio.c
@@ -1215,8 +1215,11 @@ static const struct of_device_id fsl_of_rio_rpn_ids[] = {
1215}; 1215};
1216 1216
1217static struct of_platform_driver fsl_of_rio_rpn_driver = { 1217static struct of_platform_driver fsl_of_rio_rpn_driver = {
1218 .name = "fsl-of-rio", 1218 .driver = {
1219 .match_table = fsl_of_rio_rpn_ids, 1219 .name = "fsl-of-rio",
1220 .owner = THIS_MODULE,
1221 .of_match_table = fsl_of_rio_rpn_ids,
1222 },
1220 .probe = fsl_of_rio_rpn_probe, 1223 .probe = fsl_of_rio_rpn_probe,
1221}; 1224};
1222 1225
diff --git a/arch/powerpc/sysdev/pmi.c b/arch/powerpc/sysdev/pmi.c
index ff758bff1b7a..d07137a07d75 100644
--- a/arch/powerpc/sysdev/pmi.c
+++ b/arch/powerpc/sysdev/pmi.c
@@ -206,11 +206,12 @@ static int pmi_of_remove(struct of_device *dev)
206} 206}
207 207
208static struct of_platform_driver pmi_of_platform_driver = { 208static struct of_platform_driver pmi_of_platform_driver = {
209 .match_table = pmi_match,
210 .probe = pmi_of_probe, 209 .probe = pmi_of_probe,
211 .remove = pmi_of_remove, 210 .remove = pmi_of_remove,
212 .driver = { 211 .driver = {
213 .name = "pmi", 212 .name = "pmi",
213 .owner = THIS_MODULE,
214 .of_match_table = pmi_match,
214 }, 215 },
215}; 216};
216 217
diff --git a/arch/powerpc/sysdev/qe_lib/qe.c b/arch/powerpc/sysdev/qe_lib/qe.c
index 149393c02c3f..093e0ae1a941 100644
--- a/arch/powerpc/sysdev/qe_lib/qe.c
+++ b/arch/powerpc/sysdev/qe_lib/qe.c
@@ -669,8 +669,11 @@ static const struct of_device_id qe_ids[] = {
669}; 669};
670 670
671static struct of_platform_driver qe_driver = { 671static struct of_platform_driver qe_driver = {
672 .driver.name = "fsl-qe", 672 .driver = {
673 .match_table = qe_ids, 673 .name = "fsl-qe",
674 .owner = THIS_MODULE,
675 .of_match_table = qe_ids,
676 },
674 .probe = qe_probe, 677 .probe = qe_probe,
675 .resume = qe_resume, 678 .resume = qe_resume,
676}; 679};
diff --git a/arch/sparc/include/asm/parport.h b/arch/sparc/include/asm/parport.h
index 1bb6a41b00f2..c333b8d0949b 100644
--- a/arch/sparc/include/asm/parport.h
+++ b/arch/sparc/include/asm/parport.h
@@ -232,8 +232,11 @@ static const struct of_device_id ecpp_match[] = {
232}; 232};
233 233
234static struct of_platform_driver ecpp_driver = { 234static struct of_platform_driver ecpp_driver = {
235 .name = "ecpp", 235 .driver = {
236 .match_table = ecpp_match, 236 .name = "ecpp",
237 .owner = THIS_MODULE,
238 .of_match_table = ecpp_match,
239 },
237 .probe = ecpp_probe, 240 .probe = ecpp_probe,
238 .remove = __devexit_p(ecpp_remove), 241 .remove = __devexit_p(ecpp_remove),
239}; 242};
diff --git a/arch/sparc/kernel/apc.c b/arch/sparc/kernel/apc.c
index 71ec90b9e316..b27476caa133 100644
--- a/arch/sparc/kernel/apc.c
+++ b/arch/sparc/kernel/apc.c
@@ -174,8 +174,11 @@ static struct of_device_id __initdata apc_match[] = {
174MODULE_DEVICE_TABLE(of, apc_match); 174MODULE_DEVICE_TABLE(of, apc_match);
175 175
176static struct of_platform_driver apc_driver = { 176static struct of_platform_driver apc_driver = {
177 .name = "apc", 177 .driver = {
178 .match_table = apc_match, 178 .name = "apc",
179 .owner = THIS_MODULE,
180 .of_match_table = apc_match,
181 },
179 .probe = apc_probe, 182 .probe = apc_probe,
180}; 183};
181 184
diff --git a/arch/sparc/kernel/auxio_64.c b/arch/sparc/kernel/auxio_64.c
index bd8421a26856..ddc84128b3c2 100644
--- a/arch/sparc/kernel/auxio_64.c
+++ b/arch/sparc/kernel/auxio_64.c
@@ -132,10 +132,11 @@ static int __devinit auxio_probe(struct of_device *dev, const struct of_device_i
132} 132}
133 133
134static struct of_platform_driver auxio_driver = { 134static struct of_platform_driver auxio_driver = {
135 .match_table = auxio_match,
136 .probe = auxio_probe, 135 .probe = auxio_probe,
137 .driver = { 136 .driver = {
138 .name = "auxio", 137 .name = "auxio",
138 .owner = THIS_MODULE,
139 .of_match_table = auxio_match,
139 }, 140 },
140}; 141};
141 142
diff --git a/arch/sparc/kernel/central.c b/arch/sparc/kernel/central.c
index d533f3d5d484..434335f65823 100644
--- a/arch/sparc/kernel/central.c
+++ b/arch/sparc/kernel/central.c
@@ -149,10 +149,11 @@ static struct of_device_id __initdata clock_board_match[] = {
149}; 149};
150 150
151static struct of_platform_driver clock_board_driver = { 151static struct of_platform_driver clock_board_driver = {
152 .match_table = clock_board_match,
153 .probe = clock_board_probe, 152 .probe = clock_board_probe,
154 .driver = { 153 .driver = {
155 .name = "clock_board", 154 .name = "clock_board",
155 .owner = THIS_MODULE,
156 .of_match_table = clock_board_match,
156 }, 157 },
157}; 158};
158 159
@@ -254,10 +255,11 @@ static struct of_device_id __initdata fhc_match[] = {
254}; 255};
255 256
256static struct of_platform_driver fhc_driver = { 257static struct of_platform_driver fhc_driver = {
257 .match_table = fhc_match,
258 .probe = fhc_probe, 258 .probe = fhc_probe,
259 .driver = { 259 .driver = {
260 .name = "fhc", 260 .name = "fhc",
261 .owner = THIS_MODULE,
262 .of_match_table = fhc_match,
261 }, 263 },
262}; 264};
263 265
diff --git a/arch/sparc/kernel/chmc.c b/arch/sparc/kernel/chmc.c
index 936879639eb6..870cb65b3f21 100644
--- a/arch/sparc/kernel/chmc.c
+++ b/arch/sparc/kernel/chmc.c
@@ -811,8 +811,11 @@ static const struct of_device_id us3mc_match[] = {
811MODULE_DEVICE_TABLE(of, us3mc_match); 811MODULE_DEVICE_TABLE(of, us3mc_match);
812 812
813static struct of_platform_driver us3mc_driver = { 813static struct of_platform_driver us3mc_driver = {
814 .name = "us3mc", 814 .driver = {
815 .match_table = us3mc_match, 815 .name = "us3mc",
816 .owner = THIS_MODULE,
817 .of_match_table = us3mc_match,
818 },
816 .probe = us3mc_probe, 819 .probe = us3mc_probe,
817 .remove = __devexit_p(us3mc_remove), 820 .remove = __devexit_p(us3mc_remove),
818}; 821};
diff --git a/arch/sparc/kernel/pci_fire.c b/arch/sparc/kernel/pci_fire.c
index ff844baa28e6..51cfa09e392a 100644
--- a/arch/sparc/kernel/pci_fire.c
+++ b/arch/sparc/kernel/pci_fire.c
@@ -508,8 +508,11 @@ static struct of_device_id __initdata fire_match[] = {
508}; 508};
509 509
510static struct of_platform_driver fire_driver = { 510static struct of_platform_driver fire_driver = {
511 .name = DRIVER_NAME, 511 .driver = {
512 .match_table = fire_match, 512 .name = DRIVER_NAME,
513 .owner = THIS_MODULE,
514 .of_match_table = fire_match,
515 },
513 .probe = fire_probe, 516 .probe = fire_probe,
514}; 517};
515 518
diff --git a/arch/sparc/kernel/pci_psycho.c b/arch/sparc/kernel/pci_psycho.c
index e675e21c6df6..558a70512824 100644
--- a/arch/sparc/kernel/pci_psycho.c
+++ b/arch/sparc/kernel/pci_psycho.c
@@ -602,8 +602,11 @@ static struct of_device_id __initdata psycho_match[] = {
602}; 602};
603 603
604static struct of_platform_driver psycho_driver = { 604static struct of_platform_driver psycho_driver = {
605 .name = DRIVER_NAME, 605 .driver = {
606 .match_table = psycho_match, 606 .name = DRIVER_NAME,
607 .owner = THIS_MODULE,
608 .of_match_table = psycho_match,
609 },
607 .probe = psycho_probe, 610 .probe = psycho_probe,
608}; 611};
609 612
diff --git a/arch/sparc/kernel/pci_sabre.c b/arch/sparc/kernel/pci_sabre.c
index 5048498daade..6dad8e3b7506 100644
--- a/arch/sparc/kernel/pci_sabre.c
+++ b/arch/sparc/kernel/pci_sabre.c
@@ -596,8 +596,11 @@ static struct of_device_id __initdata sabre_match[] = {
596}; 596};
597 597
598static struct of_platform_driver sabre_driver = { 598static struct of_platform_driver sabre_driver = {
599 .name = DRIVER_NAME, 599 .driver = {
600 .match_table = sabre_match, 600 .name = DRIVER_NAME,
601 .owner = THIS_MODULE,
602 .of_match_table = sabre_match,
603 },
601 .probe = sabre_probe, 604 .probe = sabre_probe,
602}; 605};
603 606
diff --git a/arch/sparc/kernel/pci_schizo.c b/arch/sparc/kernel/pci_schizo.c
index 2f3f9212b063..97a1ae2e1c02 100644
--- a/arch/sparc/kernel/pci_schizo.c
+++ b/arch/sparc/kernel/pci_schizo.c
@@ -1491,8 +1491,11 @@ static struct of_device_id __initdata schizo_match[] = {
1491}; 1491};
1492 1492
1493static struct of_platform_driver schizo_driver = { 1493static struct of_platform_driver schizo_driver = {
1494 .name = DRIVER_NAME, 1494 .driver = {
1495 .match_table = schizo_match, 1495 .name = DRIVER_NAME,
1496 .owner = THIS_MODULE,
1497 .of_match_table = schizo_match,
1498 },
1496 .probe = schizo_probe, 1499 .probe = schizo_probe,
1497}; 1500};
1498 1501
diff --git a/arch/sparc/kernel/pci_sun4v.c b/arch/sparc/kernel/pci_sun4v.c
index 5c11f56cedf8..a24af6f7e17f 100644
--- a/arch/sparc/kernel/pci_sun4v.c
+++ b/arch/sparc/kernel/pci_sun4v.c
@@ -1009,8 +1009,11 @@ static struct of_device_id __initdata pci_sun4v_match[] = {
1009}; 1009};
1010 1010
1011static struct of_platform_driver pci_sun4v_driver = { 1011static struct of_platform_driver pci_sun4v_driver = {
1012 .name = DRIVER_NAME, 1012 .driver = {
1013 .match_table = pci_sun4v_match, 1013 .name = DRIVER_NAME,
1014 .owner = THIS_MODULE,
1015 .of_match_table = pci_sun4v_match,
1016 },
1014 .probe = pci_sun4v_probe, 1017 .probe = pci_sun4v_probe,
1015}; 1018};
1016 1019
diff --git a/arch/sparc/kernel/pmc.c b/arch/sparc/kernel/pmc.c
index 5e4563d86f19..9589d8b9b0c1 100644
--- a/arch/sparc/kernel/pmc.c
+++ b/arch/sparc/kernel/pmc.c
@@ -79,8 +79,11 @@ static struct of_device_id __initdata pmc_match[] = {
79MODULE_DEVICE_TABLE(of, pmc_match); 79MODULE_DEVICE_TABLE(of, pmc_match);
80 80
81static struct of_platform_driver pmc_driver = { 81static struct of_platform_driver pmc_driver = {
82 .name = "pmc", 82 .driver = {
83 .match_table = pmc_match, 83 .name = "pmc",
84 .owner = THIS_MODULE,
85 .of_match_table = pmc_match,
86 },
84 .probe = pmc_probe, 87 .probe = pmc_probe,
85}; 88};
86 89
diff --git a/arch/sparc/kernel/power.c b/arch/sparc/kernel/power.c
index e3f806a7423b..168d4cb63f5b 100644
--- a/arch/sparc/kernel/power.c
+++ b/arch/sparc/kernel/power.c
@@ -60,10 +60,11 @@ static struct of_device_id __initdata power_match[] = {
60}; 60};
61 61
62static struct of_platform_driver power_driver = { 62static struct of_platform_driver power_driver = {
63 .match_table = power_match,
64 .probe = power_probe, 63 .probe = power_probe,
65 .driver = { 64 .driver = {
66 .name = "power", 65 .name = "power",
66 .owner = THIS_MODULE,
67 .of_match_table = power_match,
67 }, 68 },
68}; 69};
69 70
diff --git a/arch/sparc/kernel/time_32.c b/arch/sparc/kernel/time_32.c
index e0dbed9503d4..217ba275cabf 100644
--- a/arch/sparc/kernel/time_32.c
+++ b/arch/sparc/kernel/time_32.c
@@ -185,10 +185,11 @@ static struct of_device_id __initdata clock_match[] = {
185}; 185};
186 186
187static struct of_platform_driver clock_driver = { 187static struct of_platform_driver clock_driver = {
188 .match_table = clock_match,
189 .probe = clock_probe, 188 .probe = clock_probe,
190 .driver = { 189 .driver = {
191 .name = "rtc", 190 .name = "rtc",
191 .owner = THIS_MODULE,
192 .of_match_table = clock_match,
192 }, 193 },
193}; 194};
194 195
diff --git a/arch/sparc/kernel/time_64.c b/arch/sparc/kernel/time_64.c
index 9099ca095641..21e9fcae0668 100644
--- a/arch/sparc/kernel/time_64.c
+++ b/arch/sparc/kernel/time_64.c
@@ -463,10 +463,11 @@ static struct of_device_id __initdata rtc_match[] = {
463}; 463};
464 464
465static struct of_platform_driver rtc_driver = { 465static struct of_platform_driver rtc_driver = {
466 .match_table = rtc_match,
467 .probe = rtc_probe, 466 .probe = rtc_probe,
468 .driver = { 467 .driver = {
469 .name = "rtc", 468 .name = "rtc",
469 .owner = THIS_MODULE,
470 .of_match_table = rtc_match,
470 }, 471 },
471}; 472};
472 473
@@ -495,10 +496,11 @@ static struct of_device_id __initdata bq4802_match[] = {
495}; 496};
496 497
497static struct of_platform_driver bq4802_driver = { 498static struct of_platform_driver bq4802_driver = {
498 .match_table = bq4802_match,
499 .probe = bq4802_probe, 499 .probe = bq4802_probe,
500 .driver = { 500 .driver = {
501 .name = "bq4802", 501 .name = "bq4802",
502 .owner = THIS_MODULE,
503 .of_match_table = bq4802_match,
502 }, 504 },
503}; 505};
504 506
@@ -558,10 +560,11 @@ static struct of_device_id __initdata mostek_match[] = {
558}; 560};
559 561
560static struct of_platform_driver mostek_driver = { 562static struct of_platform_driver mostek_driver = {
561 .match_table = mostek_match,
562 .probe = mostek_probe, 563 .probe = mostek_probe,
563 .driver = { 564 .driver = {
564 .name = "mostek", 565 .name = "mostek",
566 .owner = THIS_MODULE,
567 .of_match_table = mostek_match,
565 }, 568 },
566}; 569};
567 570
diff --git a/drivers/ata/pata_mpc52xx.c b/drivers/ata/pata_mpc52xx.c
index 4cce719add3f..88e6b6008bd6 100644
--- a/drivers/ata/pata_mpc52xx.c
+++ b/drivers/ata/pata_mpc52xx.c
@@ -884,9 +884,6 @@ static struct of_device_id mpc52xx_ata_of_match[] = {
884 884
885 885
886static struct of_platform_driver mpc52xx_ata_of_platform_driver = { 886static struct of_platform_driver mpc52xx_ata_of_platform_driver = {
887 .owner = THIS_MODULE,
888 .name = DRV_NAME,
889 .match_table = mpc52xx_ata_of_match,
890 .probe = mpc52xx_ata_probe, 887 .probe = mpc52xx_ata_probe,
891 .remove = mpc52xx_ata_remove, 888 .remove = mpc52xx_ata_remove,
892#ifdef CONFIG_PM 889#ifdef CONFIG_PM
@@ -896,6 +893,7 @@ static struct of_platform_driver mpc52xx_ata_of_platform_driver = {
896 .driver = { 893 .driver = {
897 .name = DRV_NAME, 894 .name = DRV_NAME,
898 .owner = THIS_MODULE, 895 .owner = THIS_MODULE,
896 .of_match_table = mpc52xx_ata_of_match,
899 }, 897 },
900}; 898};
901 899
diff --git a/drivers/ata/pata_of_platform.c b/drivers/ata/pata_of_platform.c
index 19da29f011db..5a1b82c08be9 100644
--- a/drivers/ata/pata_of_platform.c
+++ b/drivers/ata/pata_of_platform.c
@@ -91,8 +91,11 @@ static struct of_device_id pata_of_platform_match[] = {
91MODULE_DEVICE_TABLE(of, pata_of_platform_match); 91MODULE_DEVICE_TABLE(of, pata_of_platform_match);
92 92
93static struct of_platform_driver pata_of_platform_driver = { 93static struct of_platform_driver pata_of_platform_driver = {
94 .name = "pata_of_platform", 94 .driver = {
95 .match_table = pata_of_platform_match, 95 .name = "pata_of_platform",
96 .owner = THIS_MODULE,
97 .of_match_table = pata_of_platform_match,
98 },
96 .probe = pata_of_platform_probe, 99 .probe = pata_of_platform_probe,
97 .remove = __devexit_p(pata_of_platform_remove), 100 .remove = __devexit_p(pata_of_platform_remove),
98}; 101};
diff --git a/drivers/ata/sata_fsl.c b/drivers/ata/sata_fsl.c
index e3339e25b152..61c89b54ea23 100644
--- a/drivers/ata/sata_fsl.c
+++ b/drivers/ata/sata_fsl.c
@@ -1427,8 +1427,11 @@ static struct of_device_id fsl_sata_match[] = {
1427MODULE_DEVICE_TABLE(of, fsl_sata_match); 1427MODULE_DEVICE_TABLE(of, fsl_sata_match);
1428 1428
1429static struct of_platform_driver fsl_sata_driver = { 1429static struct of_platform_driver fsl_sata_driver = {
1430 .name = "fsl-sata", 1430 .driver = {
1431 .match_table = fsl_sata_match, 1431 .name = "fsl-sata",
1432 .owner = THIS_MODULE,
1433 .of_match_table = fsl_sata_match,
1434 },
1432 .probe = sata_fsl_probe, 1435 .probe = sata_fsl_probe,
1433 .remove = sata_fsl_remove, 1436 .remove = sata_fsl_remove,
1434#ifdef CONFIG_PM 1437#ifdef CONFIG_PM
diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c
index 593a03a376e4..da8f176c051e 100644
--- a/drivers/atm/fore200e.c
+++ b/drivers/atm/fore200e.c
@@ -2695,8 +2695,11 @@ static const struct of_device_id fore200e_sba_match[] = {
2695MODULE_DEVICE_TABLE(of, fore200e_sba_match); 2695MODULE_DEVICE_TABLE(of, fore200e_sba_match);
2696 2696
2697static struct of_platform_driver fore200e_sba_driver = { 2697static struct of_platform_driver fore200e_sba_driver = {
2698 .name = "fore_200e", 2698 .driver = {
2699 .match_table = fore200e_sba_match, 2699 .name = "fore_200e",
2700 .owner = THIS_MODULE,
2701 .of_match_table = fore200e_sba_match,
2702 },
2700 .probe = fore200e_sba_probe, 2703 .probe = fore200e_sba_probe,
2701 .remove = __devexit_p(fore200e_sba_remove), 2704 .remove = __devexit_p(fore200e_sba_remove),
2702}; 2705};
diff --git a/drivers/block/xsysace.c b/drivers/block/xsysace.c
index 3094909b0613..a7b83c0a7eb5 100644
--- a/drivers/block/xsysace.c
+++ b/drivers/block/xsysace.c
@@ -1237,13 +1237,12 @@ static const struct of_device_id ace_of_match[] __devinitconst = {
1237MODULE_DEVICE_TABLE(of, ace_of_match); 1237MODULE_DEVICE_TABLE(of, ace_of_match);
1238 1238
1239static struct of_platform_driver ace_of_driver = { 1239static struct of_platform_driver ace_of_driver = {
1240 .owner = THIS_MODULE,
1241 .name = "xsysace",
1242 .match_table = ace_of_match,
1243 .probe = ace_of_probe, 1240 .probe = ace_of_probe,
1244 .remove = __devexit_p(ace_of_remove), 1241 .remove = __devexit_p(ace_of_remove),
1245 .driver = { 1242 .driver = {
1246 .name = "xsysace", 1243 .name = "xsysace",
1244 .owner = THIS_MODULE,
1245 .of_match_table = ace_of_match,
1247 }, 1246 },
1248}; 1247};
1249 1248
diff --git a/drivers/char/hw_random/n2-drv.c b/drivers/char/hw_random/n2-drv.c
index 0861d99cd75b..0f9cbf1aaf15 100644
--- a/drivers/char/hw_random/n2-drv.c
+++ b/drivers/char/hw_random/n2-drv.c
@@ -751,8 +751,11 @@ static const struct of_device_id n2rng_match[] = {
751MODULE_DEVICE_TABLE(of, n2rng_match); 751MODULE_DEVICE_TABLE(of, n2rng_match);
752 752
753static struct of_platform_driver n2rng_driver = { 753static struct of_platform_driver n2rng_driver = {
754 .name = "n2rng", 754 .driver = {
755 .match_table = n2rng_match, 755 .name = "n2rng",
756 .owner = THIS_MODULE,
757 .of_match_table = n2rng_match,
758 },
756 .probe = n2rng_probe, 759 .probe = n2rng_probe,
757 .remove = __devexit_p(n2rng_remove), 760 .remove = __devexit_p(n2rng_remove),
758}; 761};
diff --git a/drivers/char/hw_random/pasemi-rng.c b/drivers/char/hw_random/pasemi-rng.c
index b213855bae68..261ba8f22b8b 100644
--- a/drivers/char/hw_random/pasemi-rng.c
+++ b/drivers/char/hw_random/pasemi-rng.c
@@ -140,8 +140,11 @@ static struct of_device_id rng_match[] = {
140}; 140};
141 141
142static struct of_platform_driver rng_driver = { 142static struct of_platform_driver rng_driver = {
143 .name = "pasemi-rng", 143 .driver = {
144 .match_table = rng_match, 144 .name = "pasemi-rng",
145 .owner = THIS_MODULE,
146 .of_match_table = rng_match,
147 },
145 .probe = rng_probe, 148 .probe = rng_probe,
146 .remove = rng_remove, 149 .remove = rng_remove,
147}; 150};
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index 2b44a0e1b988..47ffe4a90a95 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -2555,8 +2555,11 @@ static struct of_device_id ipmi_match[] =
2555}; 2555};
2556 2556
2557static struct of_platform_driver ipmi_of_platform_driver = { 2557static struct of_platform_driver ipmi_of_platform_driver = {
2558 .name = "ipmi", 2558 .driver = {
2559 .match_table = ipmi_match, 2559 .name = "ipmi",
2560 .owner = THIS_MODULE,
2561 .of_match_table = ipmi_match,
2562 },
2560 .probe = ipmi_of_probe, 2563 .probe = ipmi_of_probe,
2561 .remove = __devexit_p(ipmi_of_remove), 2564 .remove = __devexit_p(ipmi_of_remove),
2562}; 2565};
diff --git a/drivers/char/xilinx_hwicap/xilinx_hwicap.c b/drivers/char/xilinx_hwicap/xilinx_hwicap.c
index 5a0a31e2029c..ed8a9cec2a05 100644
--- a/drivers/char/xilinx_hwicap/xilinx_hwicap.c
+++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.c
@@ -812,13 +812,12 @@ static const struct of_device_id __devinitconst hwicap_of_match[] = {
812MODULE_DEVICE_TABLE(of, hwicap_of_match); 812MODULE_DEVICE_TABLE(of, hwicap_of_match);
813 813
814static struct of_platform_driver hwicap_of_driver = { 814static struct of_platform_driver hwicap_of_driver = {
815 .owner = THIS_MODULE,
816 .name = DRIVER_NAME,
817 .match_table = hwicap_of_match,
818 .probe = hwicap_of_probe, 815 .probe = hwicap_of_probe,
819 .remove = __devexit_p(hwicap_of_remove), 816 .remove = __devexit_p(hwicap_of_remove),
820 .driver = { 817 .driver = {
821 .name = DRIVER_NAME, 818 .name = DRIVER_NAME,
819 .owner = THIS_MODULE,
820 .of_match_table = hwicap_of_match,
822 }, 821 },
823}; 822};
824 823
diff --git a/drivers/crypto/amcc/crypto4xx_core.c b/drivers/crypto/amcc/crypto4xx_core.c
index 6c4c8b7ce3aa..9d65b371de64 100644
--- a/drivers/crypto/amcc/crypto4xx_core.c
+++ b/drivers/crypto/amcc/crypto4xx_core.c
@@ -1281,8 +1281,11 @@ static const struct of_device_id crypto4xx_match[] = {
1281}; 1281};
1282 1282
1283static struct of_platform_driver crypto4xx_driver = { 1283static struct of_platform_driver crypto4xx_driver = {
1284 .name = "crypto4xx", 1284 .driver = {
1285 .match_table = crypto4xx_match, 1285 .name = "crypto4xx",
1286 .owner = THIS_MODULE,
1287 .of_match_table = crypto4xx_match,
1288 },
1286 .probe = crypto4xx_probe, 1289 .probe = crypto4xx_probe,
1287 .remove = crypto4xx_remove, 1290 .remove = crypto4xx_remove,
1288}; 1291};
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c
index 5a02f3482dba..7e4e42d85fe4 100644
--- a/drivers/crypto/talitos.c
+++ b/drivers/crypto/talitos.c
@@ -1968,8 +1968,11 @@ static const struct of_device_id talitos_match[] = {
1968MODULE_DEVICE_TABLE(of, talitos_match); 1968MODULE_DEVICE_TABLE(of, talitos_match);
1969 1969
1970static struct of_platform_driver talitos_driver = { 1970static struct of_platform_driver talitos_driver = {
1971 .name = "talitos", 1971 .driver = {
1972 .match_table = talitos_match, 1972 .name = "talitos",
1973 .owner = THIS_MODULE,
1974 .of_match_table = talitos_match,
1975 },
1973 .probe = talitos_probe, 1976 .probe = talitos_probe,
1974 .remove = talitos_remove, 1977 .remove = talitos_remove,
1975}; 1978};
diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c
index 0e376eb37417..c3d74697f5a9 100644
--- a/drivers/dma/fsldma.c
+++ b/drivers/dma/fsldma.c
@@ -1409,10 +1409,13 @@ static const struct of_device_id fsldma_of_ids[] = {
1409}; 1409};
1410 1410
1411static struct of_platform_driver fsldma_of_driver = { 1411static struct of_platform_driver fsldma_of_driver = {
1412 .name = "fsl-elo-dma", 1412 .driver = {
1413 .match_table = fsldma_of_ids, 1413 .name = "fsl-elo-dma",
1414 .probe = fsldma_of_probe, 1414 .owner = THIS_MODULE,
1415 .remove = fsldma_of_remove, 1415 .of_match_table = fsldma_of_ids,
1416 },
1417 .probe = fsldma_of_probe,
1418 .remove = fsldma_of_remove,
1416}; 1419};
1417 1420
1418/*----------------------------------------------------------------------------*/ 1421/*----------------------------------------------------------------------------*/
diff --git a/drivers/dma/ppc4xx/adma.c b/drivers/dma/ppc4xx/adma.c
index d44626fa35ad..a7b05447e0ab 100644
--- a/drivers/dma/ppc4xx/adma.c
+++ b/drivers/dma/ppc4xx/adma.c
@@ -4949,12 +4949,12 @@ static const struct of_device_id ppc440spe_adma_of_match[] __devinitconst = {
4949MODULE_DEVICE_TABLE(of, ppc440spe_adma_of_match); 4949MODULE_DEVICE_TABLE(of, ppc440spe_adma_of_match);
4950 4950
4951static struct of_platform_driver ppc440spe_adma_driver = { 4951static struct of_platform_driver ppc440spe_adma_driver = {
4952 .match_table = ppc440spe_adma_of_match,
4953 .probe = ppc440spe_adma_probe, 4952 .probe = ppc440spe_adma_probe,
4954 .remove = __devexit_p(ppc440spe_adma_remove), 4953 .remove = __devexit_p(ppc440spe_adma_remove),
4955 .driver = { 4954 .driver = {
4956 .name = "PPC440SP(E)-ADMA", 4955 .name = "PPC440SP(E)-ADMA",
4957 .owner = THIS_MODULE, 4956 .owner = THIS_MODULE,
4957 .of_match_table = ppc440spe_adma_of_match,
4958 }, 4958 },
4959}; 4959};
4960 4960
diff --git a/drivers/edac/mpc85xx_edac.c b/drivers/edac/mpc85xx_edac.c
index 4471647b4807..6c1886b497ff 100644
--- a/drivers/edac/mpc85xx_edac.c
+++ b/drivers/edac/mpc85xx_edac.c
@@ -338,15 +338,13 @@ static struct of_device_id mpc85xx_pci_err_of_match[] = {
338}; 338};
339 339
340static struct of_platform_driver mpc85xx_pci_err_driver = { 340static struct of_platform_driver mpc85xx_pci_err_driver = {
341 .owner = THIS_MODULE,
342 .name = "mpc85xx_pci_err",
343 .match_table = mpc85xx_pci_err_of_match,
344 .probe = mpc85xx_pci_err_probe, 341 .probe = mpc85xx_pci_err_probe,
345 .remove = __devexit_p(mpc85xx_pci_err_remove), 342 .remove = __devexit_p(mpc85xx_pci_err_remove),
346 .driver = { 343 .driver = {
347 .name = "mpc85xx_pci_err", 344 .name = "mpc85xx_pci_err",
348 .owner = THIS_MODULE, 345 .owner = THIS_MODULE,
349 }, 346 .of_match_table = mpc85xx_pci_err_of_match,
347 },
350}; 348};
351 349
352#endif /* CONFIG_PCI */ 350#endif /* CONFIG_PCI */
@@ -654,15 +652,13 @@ static struct of_device_id mpc85xx_l2_err_of_match[] = {
654}; 652};
655 653
656static struct of_platform_driver mpc85xx_l2_err_driver = { 654static struct of_platform_driver mpc85xx_l2_err_driver = {
657 .owner = THIS_MODULE,
658 .name = "mpc85xx_l2_err",
659 .match_table = mpc85xx_l2_err_of_match,
660 .probe = mpc85xx_l2_err_probe, 655 .probe = mpc85xx_l2_err_probe,
661 .remove = mpc85xx_l2_err_remove, 656 .remove = mpc85xx_l2_err_remove,
662 .driver = { 657 .driver = {
663 .name = "mpc85xx_l2_err", 658 .name = "mpc85xx_l2_err",
664 .owner = THIS_MODULE, 659 .owner = THIS_MODULE,
665 }, 660 .of_match_table = mpc85xx_l2_err_of_match,
661 },
666}; 662};
667 663
668/**************************** MC Err device ***************************/ 664/**************************** MC Err device ***************************/
@@ -1131,15 +1127,13 @@ static struct of_device_id mpc85xx_mc_err_of_match[] = {
1131}; 1127};
1132 1128
1133static struct of_platform_driver mpc85xx_mc_err_driver = { 1129static struct of_platform_driver mpc85xx_mc_err_driver = {
1134 .owner = THIS_MODULE,
1135 .name = "mpc85xx_mc_err",
1136 .match_table = mpc85xx_mc_err_of_match,
1137 .probe = mpc85xx_mc_err_probe, 1130 .probe = mpc85xx_mc_err_probe,
1138 .remove = mpc85xx_mc_err_remove, 1131 .remove = mpc85xx_mc_err_remove,
1139 .driver = { 1132 .driver = {
1140 .name = "mpc85xx_mc_err", 1133 .name = "mpc85xx_mc_err",
1141 .owner = THIS_MODULE, 1134 .owner = THIS_MODULE,
1142 }, 1135 .of_match_table = mpc85xx_mc_err_of_match,
1136 },
1143}; 1137};
1144 1138
1145#ifdef CONFIG_MPC85xx 1139#ifdef CONFIG_MPC85xx
diff --git a/drivers/edac/ppc4xx_edac.c b/drivers/edac/ppc4xx_edac.c
index 11f2172aa1e6..9d6f6783328c 100644
--- a/drivers/edac/ppc4xx_edac.c
+++ b/drivers/edac/ppc4xx_edac.c
@@ -202,13 +202,13 @@ static struct of_device_id ppc4xx_edac_match[] = {
202}; 202};
203 203
204static struct of_platform_driver ppc4xx_edac_driver = { 204static struct of_platform_driver ppc4xx_edac_driver = {
205 .match_table = ppc4xx_edac_match,
206 .probe = ppc4xx_edac_probe, 205 .probe = ppc4xx_edac_probe,
207 .remove = ppc4xx_edac_remove, 206 .remove = ppc4xx_edac_remove,
208 .driver = { 207 .driver = {
209 .owner = THIS_MODULE, 208 .owner = THIS_MODULE,
210 .name = PPC4XX_EDAC_MODULE_NAME 209 .name = PPC4XX_EDAC_MODULE_NAME
211 } 210 .of_match_table = ppc4xx_edac_match,
211 },
212}; 212};
213 213
214/* 214/*
diff --git a/drivers/hwmon/ultra45_env.c b/drivers/hwmon/ultra45_env.c
index 68e90abeba96..5da5942cf970 100644
--- a/drivers/hwmon/ultra45_env.c
+++ b/drivers/hwmon/ultra45_env.c
@@ -300,8 +300,11 @@ static const struct of_device_id env_match[] = {
300MODULE_DEVICE_TABLE(of, env_match); 300MODULE_DEVICE_TABLE(of, env_match);
301 301
302static struct of_platform_driver env_driver = { 302static struct of_platform_driver env_driver = {
303 .name = "ultra45_env", 303 .driver = {
304 .match_table = env_match, 304 .name = "ultra45_env",
305 .owner = THIS_MODULE,
306 .of_match_table = env_match,
307 },
305 .probe = env_probe, 308 .probe = env_probe,
306 .remove = __devexit_p(env_remove), 309 .remove = __devexit_p(env_remove),
307}; 310};
diff --git a/drivers/i2c/busses/i2c-cpm.c b/drivers/i2c/busses/i2c-cpm.c
index 48d2c1a0d4ce..7637e1234142 100644
--- a/drivers/i2c/busses/i2c-cpm.c
+++ b/drivers/i2c/busses/i2c-cpm.c
@@ -718,13 +718,13 @@ static const struct of_device_id cpm_i2c_match[] = {
718MODULE_DEVICE_TABLE(of, cpm_i2c_match); 718MODULE_DEVICE_TABLE(of, cpm_i2c_match);
719 719
720static struct of_platform_driver cpm_i2c_driver = { 720static struct of_platform_driver cpm_i2c_driver = {
721 .match_table = cpm_i2c_match,
722 .probe = cpm_i2c_probe, 721 .probe = cpm_i2c_probe,
723 .remove = __devexit_p(cpm_i2c_remove), 722 .remove = __devexit_p(cpm_i2c_remove),
724 .driver = { 723 .driver = {
725 .name = "fsl-i2c-cpm", 724 .name = "fsl-i2c-cpm",
726 .owner = THIS_MODULE, 725 .owner = THIS_MODULE,
727 } 726 .of_match_table = cpm_i2c_match,
727 },
728}; 728};
729 729
730static int __init cpm_i2c_init(void) 730static int __init cpm_i2c_init(void)
diff --git a/drivers/i2c/busses/i2c-ibm_iic.c b/drivers/i2c/busses/i2c-ibm_iic.c
index e66dc83953c5..3876f993fe76 100644
--- a/drivers/i2c/busses/i2c-ibm_iic.c
+++ b/drivers/i2c/busses/i2c-ibm_iic.c
@@ -807,8 +807,11 @@ static const struct of_device_id ibm_iic_match[] = {
807}; 807};
808 808
809static struct of_platform_driver ibm_iic_driver = { 809static struct of_platform_driver ibm_iic_driver = {
810 .name = "ibm-iic", 810 .driver = {
811 .match_table = ibm_iic_match, 811 .name = "ibm-iic",
812 .owner = THIS_MODULE,
813 .of_match_table = ibm_iic_match,
814 },
812 .probe = iic_probe, 815 .probe = iic_probe,
813 .remove = __devexit_p(iic_remove), 816 .remove = __devexit_p(iic_remove),
814}; 817};
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
index 69473b6c260c..791b71f46f7b 100644
--- a/drivers/i2c/busses/i2c-mpc.c
+++ b/drivers/i2c/busses/i2c-mpc.c
@@ -675,12 +675,12 @@ MODULE_DEVICE_TABLE(of, mpc_i2c_of_match);
675 675
676/* Structure for a device driver */ 676/* Structure for a device driver */
677static struct of_platform_driver mpc_i2c_driver = { 677static struct of_platform_driver mpc_i2c_driver = {
678 .match_table = mpc_i2c_of_match,
679 .probe = fsl_i2c_probe, 678 .probe = fsl_i2c_probe,
680 .remove = __devexit_p(fsl_i2c_remove), 679 .remove = __devexit_p(fsl_i2c_remove),
681 .driver = { 680 .driver = {
682 .owner = THIS_MODULE, 681 .owner = THIS_MODULE,
683 .name = DRV_NAME, 682 .name = DRV_NAME,
683 .of_match_table = mpc_i2c_of_match,
684 }, 684 },
685}; 685};
686 686
diff --git a/drivers/infiniband/hw/ehca/ehca_main.c b/drivers/infiniband/hw/ehca/ehca_main.c
index 26391853277f..252489e88369 100644
--- a/drivers/infiniband/hw/ehca/ehca_main.c
+++ b/drivers/infiniband/hw/ehca/ehca_main.c
@@ -937,12 +937,13 @@ static struct of_device_id ehca_device_table[] =
937MODULE_DEVICE_TABLE(of, ehca_device_table); 937MODULE_DEVICE_TABLE(of, ehca_device_table);
938 938
939static struct of_platform_driver ehca_driver = { 939static struct of_platform_driver ehca_driver = {
940 .name = "ehca",
941 .match_table = ehca_device_table,
942 .probe = ehca_probe, 940 .probe = ehca_probe,
943 .remove = ehca_remove, 941 .remove = ehca_remove,
944 .driver = { 942 .driver = {
943 .name = "ehca",
944 .owner = THIS_MODULE,
945 .groups = ehca_drv_attr_groups, 945 .groups = ehca_drv_attr_groups,
946 .of_match_table = ehca_device_table,
946 }, 947 },
947}; 948};
948 949
diff --git a/drivers/input/misc/sparcspkr.c b/drivers/input/misc/sparcspkr.c
index 0d45422f8095..1dacae4b43f0 100644
--- a/drivers/input/misc/sparcspkr.c
+++ b/drivers/input/misc/sparcspkr.c
@@ -259,8 +259,11 @@ static const struct of_device_id bbc_beep_match[] = {
259}; 259};
260 260
261static struct of_platform_driver bbc_beep_driver = { 261static struct of_platform_driver bbc_beep_driver = {
262 .name = "bbcbeep", 262 .driver = {
263 .match_table = bbc_beep_match, 263 .name = "bbcbeep",
264 .owner = THIS_MODULE,
265 .of_match_table = bbc_beep_match,
266 },
264 .probe = bbc_beep_probe, 267 .probe = bbc_beep_probe,
265 .remove = __devexit_p(bbc_remove), 268 .remove = __devexit_p(bbc_remove),
266 .shutdown = sparcspkr_shutdown, 269 .shutdown = sparcspkr_shutdown,
@@ -338,8 +341,11 @@ static const struct of_device_id grover_beep_match[] = {
338}; 341};
339 342
340static struct of_platform_driver grover_beep_driver = { 343static struct of_platform_driver grover_beep_driver = {
341 .name = "groverbeep", 344 .driver = {
342 .match_table = grover_beep_match, 345 .name = "groverbeep",
346 .owner = THIS_MODULE,
347 .of_match_table = grover_beep_match,
348 },
343 .probe = grover_beep_probe, 349 .probe = grover_beep_probe,
344 .remove = __devexit_p(grover_remove), 350 .remove = __devexit_p(grover_remove),
345 .shutdown = sparcspkr_shutdown, 351 .shutdown = sparcspkr_shutdown,
diff --git a/drivers/input/serio/i8042-sparcio.h b/drivers/input/serio/i8042-sparcio.h
index 29e17698b2a4..04e32f2d1241 100644
--- a/drivers/input/serio/i8042-sparcio.h
+++ b/drivers/input/serio/i8042-sparcio.h
@@ -96,8 +96,11 @@ static const struct of_device_id sparc_i8042_match[] = {
96MODULE_DEVICE_TABLE(of, sparc_i8042_match); 96MODULE_DEVICE_TABLE(of, sparc_i8042_match);
97 97
98static struct of_platform_driver sparc_i8042_driver = { 98static struct of_platform_driver sparc_i8042_driver = {
99 .name = "i8042", 99 .driver = {
100 .match_table = sparc_i8042_match, 100 .name = "i8042",
101 .owner = THIS_MODULE,
102 .of_match_table = sparc_i8042_match,
103 },
101 .probe = sparc_i8042_probe, 104 .probe = sparc_i8042_probe,
102 .remove = __devexit_p(sparc_i8042_remove), 105 .remove = __devexit_p(sparc_i8042_remove),
103}; 106};
diff --git a/drivers/input/serio/xilinx_ps2.c b/drivers/input/serio/xilinx_ps2.c
index 7a288c0ef1a6..e2c028d2638f 100644
--- a/drivers/input/serio/xilinx_ps2.c
+++ b/drivers/input/serio/xilinx_ps2.c
@@ -362,8 +362,11 @@ static const struct of_device_id xps2_of_match[] __devinitconst = {
362MODULE_DEVICE_TABLE(of, xps2_of_match); 362MODULE_DEVICE_TABLE(of, xps2_of_match);
363 363
364static struct of_platform_driver xps2_of_driver = { 364static struct of_platform_driver xps2_of_driver = {
365 .name = DRIVER_NAME, 365 .driver = {
366 .match_table = xps2_of_match, 366 .name = DRIVER_NAME,
367 .owner = THIS_MODULE,
368 .of_match_table = xps2_of_match,
369 },
367 .probe = xps2_of_probe, 370 .probe = xps2_of_probe,
368 .remove = __devexit_p(xps2_of_remove), 371 .remove = __devexit_p(xps2_of_remove),
369}; 372};
diff --git a/drivers/leds/leds-gpio.c b/drivers/leds/leds-gpio.c
index a77a23e783db..6d94b0b9979c 100644
--- a/drivers/leds/leds-gpio.c
+++ b/drivers/leds/leds-gpio.c
@@ -291,8 +291,8 @@ static struct of_platform_driver of_gpio_leds_driver = {
291 .driver = { 291 .driver = {
292 .name = "of_gpio_leds", 292 .name = "of_gpio_leds",
293 .owner = THIS_MODULE, 293 .owner = THIS_MODULE,
294 .of_match_table = of_gpio_leds_match,
294 }, 295 },
295 .match_table = of_gpio_leds_match,
296 .probe = of_gpio_leds_probe, 296 .probe = of_gpio_leds_probe,
297 .remove = __devexit_p(of_gpio_leds_remove), 297 .remove = __devexit_p(of_gpio_leds_remove),
298}; 298};
diff --git a/drivers/macintosh/smu.c b/drivers/macintosh/smu.c
index 888448cf7f1f..ef1f3330a10e 100644
--- a/drivers/macintosh/smu.c
+++ b/drivers/macintosh/smu.c
@@ -671,8 +671,11 @@ static const struct of_device_id smu_platform_match[] =
671 671
672static struct of_platform_driver smu_of_platform_driver = 672static struct of_platform_driver smu_of_platform_driver =
673{ 673{
674 .name = "smu", 674 .driver = {
675 .match_table = smu_platform_match, 675 .name = "smu",
676 .owner = THIS_MODULE,
677 .of_match_table = smu_platform_match,
678 },
676 .probe = smu_platform_probe, 679 .probe = smu_platform_probe,
677}; 680};
678 681
diff --git a/drivers/macintosh/therm_pm72.c b/drivers/macintosh/therm_pm72.c
index 9314be9a2fc8..e60605bd0ea9 100644
--- a/drivers/macintosh/therm_pm72.c
+++ b/drivers/macintosh/therm_pm72.c
@@ -2238,8 +2238,11 @@ static const struct of_device_id fcu_match[] =
2238 2238
2239static struct of_platform_driver fcu_of_platform_driver = 2239static struct of_platform_driver fcu_of_platform_driver =
2240{ 2240{
2241 .name = "temperature", 2241 .driver = {
2242 .match_table = fcu_match, 2242 .name = "temperature",
2243 .owner = THIS_MODULE,
2244 .of_match_table = fcu_match,
2245 },
2243 .probe = fcu_of_probe, 2246 .probe = fcu_of_probe,
2244 .remove = fcu_of_remove 2247 .remove = fcu_of_remove
2245}; 2248};
diff --git a/drivers/macintosh/therm_windtunnel.c b/drivers/macintosh/therm_windtunnel.c
index 0839770e4ec5..5c9367acf0cf 100644
--- a/drivers/macintosh/therm_windtunnel.c
+++ b/drivers/macintosh/therm_windtunnel.c
@@ -463,8 +463,11 @@ static const struct of_device_id therm_of_match[] = {{
463}; 463};
464 464
465static struct of_platform_driver therm_of_driver = { 465static struct of_platform_driver therm_of_driver = {
466 .name = "temperature", 466 .driver = {
467 .match_table = therm_of_match, 467 .name = "temperature",
468 .owner = THIS_MODULE,
469 .of_match_table = therm_of_match,
470 },
468 .probe = therm_of_probe, 471 .probe = therm_of_probe,
469 .remove = therm_of_remove, 472 .remove = therm_of_remove,
470}; 473};
diff --git a/drivers/mmc/host/sdhci-of-core.c b/drivers/mmc/host/sdhci-of-core.c
index dfe5ceae6794..7802a543d8fc 100644
--- a/drivers/mmc/host/sdhci-of-core.c
+++ b/drivers/mmc/host/sdhci-of-core.c
@@ -205,8 +205,11 @@ static const struct of_device_id sdhci_of_match[] = {
205MODULE_DEVICE_TABLE(of, sdhci_of_match); 205MODULE_DEVICE_TABLE(of, sdhci_of_match);
206 206
207static struct of_platform_driver sdhci_of_driver = { 207static struct of_platform_driver sdhci_of_driver = {
208 .driver.name = "sdhci-of", 208 .driver = {
209 .match_table = sdhci_of_match, 209 .name = "sdhci-of",
210 .owner = THIS_MODULE,
211 .of_match_table = sdhci_of_match,
212 },
210 .probe = sdhci_of_probe, 213 .probe = sdhci_of_probe,
211 .remove = __devexit_p(sdhci_of_remove), 214 .remove = __devexit_p(sdhci_of_remove),
212 .suspend = sdhci_of_suspend, 215 .suspend = sdhci_of_suspend,
diff --git a/drivers/mtd/maps/physmap_of.c b/drivers/mtd/maps/physmap_of.c
index 3dc7a2fbf025..4147fe328c55 100644
--- a/drivers/mtd/maps/physmap_of.c
+++ b/drivers/mtd/maps/physmap_of.c
@@ -375,8 +375,11 @@ static struct of_device_id of_flash_match[] = {
375MODULE_DEVICE_TABLE(of, of_flash_match); 375MODULE_DEVICE_TABLE(of, of_flash_match);
376 376
377static struct of_platform_driver of_flash_driver = { 377static struct of_platform_driver of_flash_driver = {
378 .name = "of-flash", 378 .driver = {
379 .match_table = of_flash_match, 379 .name = "of-flash",
380 .owner = THIS_MODULE,
381 .of_match_table = of_flash_match,
382 },
380 .probe = of_flash_probe, 383 .probe = of_flash_probe,
381 .remove = of_flash_remove, 384 .remove = of_flash_remove,
382}; 385};
diff --git a/drivers/mtd/maps/sun_uflash.c b/drivers/mtd/maps/sun_uflash.c
index 5945a23e681f..0391c2527bd7 100644
--- a/drivers/mtd/maps/sun_uflash.c
+++ b/drivers/mtd/maps/sun_uflash.c
@@ -149,8 +149,11 @@ static const struct of_device_id uflash_match[] = {
149MODULE_DEVICE_TABLE(of, uflash_match); 149MODULE_DEVICE_TABLE(of, uflash_match);
150 150
151static struct of_platform_driver uflash_driver = { 151static struct of_platform_driver uflash_driver = {
152 .name = DRIVER_NAME, 152 .driver = {
153 .match_table = uflash_match, 153 .name = DRIVER_NAME,
154 .owner = THIS_MODULE,
155 .of_match_table = uflash_match,
156 },
154 .probe = uflash_probe, 157 .probe = uflash_probe,
155 .remove = __devexit_p(uflash_remove), 158 .remove = __devexit_p(uflash_remove),
156}; 159};
diff --git a/drivers/mtd/nand/fsl_elbc_nand.c b/drivers/mtd/nand/fsl_elbc_nand.c
index 4a6079588ab2..f45a8d0c1508 100644
--- a/drivers/mtd/nand/fsl_elbc_nand.c
+++ b/drivers/mtd/nand/fsl_elbc_nand.c
@@ -1078,9 +1078,10 @@ static const struct of_device_id fsl_elbc_match[] = {
1078 1078
1079static struct of_platform_driver fsl_elbc_ctrl_driver = { 1079static struct of_platform_driver fsl_elbc_ctrl_driver = {
1080 .driver = { 1080 .driver = {
1081 .name = "fsl-elbc", 1081 .name = "fsl-elbc",
1082 .owner = THIS_MODULE,
1083 .of_match_table = fsl_elbc_match,
1082 }, 1084 },
1083 .match_table = fsl_elbc_match,
1084 .probe = fsl_elbc_ctrl_probe, 1085 .probe = fsl_elbc_ctrl_probe,
1085 .remove = fsl_elbc_ctrl_remove, 1086 .remove = fsl_elbc_ctrl_remove,
1086}; 1087};
diff --git a/drivers/mtd/nand/fsl_upm.c b/drivers/mtd/nand/fsl_upm.c
index 4b96296af321..b7ab5a0ec35d 100644
--- a/drivers/mtd/nand/fsl_upm.c
+++ b/drivers/mtd/nand/fsl_upm.c
@@ -357,8 +357,11 @@ static struct of_device_id of_fun_match[] = {
357MODULE_DEVICE_TABLE(of, of_fun_match); 357MODULE_DEVICE_TABLE(of, of_fun_match);
358 358
359static struct of_platform_driver of_fun_driver = { 359static struct of_platform_driver of_fun_driver = {
360 .name = "fsl,upm-nand", 360 .driver = {
361 .match_table = of_fun_match, 361 .name = "fsl,upm-nand",
362 .owner = THIS_MODULE,
363 .of_match_table = of_fun_match,
364 },
362 .probe = fun_probe, 365 .probe = fun_probe,
363 .remove = __devexit_p(fun_remove), 366 .remove = __devexit_p(fun_remove),
364}; 367};
diff --git a/drivers/mtd/nand/ndfc.c b/drivers/mtd/nand/ndfc.c
index c0e05f5ff8a4..98fd2bdf8be1 100644
--- a/drivers/mtd/nand/ndfc.c
+++ b/drivers/mtd/nand/ndfc.c
@@ -294,9 +294,10 @@ MODULE_DEVICE_TABLE(of, ndfc_match);
294 294
295static struct of_platform_driver ndfc_driver = { 295static struct of_platform_driver ndfc_driver = {
296 .driver = { 296 .driver = {
297 .name = "ndfc", 297 .name = "ndfc",
298 .owner = THIS_MODULE,
299 .of_match_table = ndfc_match,
298 }, 300 },
299 .match_table = ndfc_match,
300 .probe = ndfc_probe, 301 .probe = ndfc_probe,
301 .remove = __devexit_p(ndfc_remove), 302 .remove = __devexit_p(ndfc_remove),
302}; 303};
diff --git a/drivers/mtd/nand/pasemi_nand.c b/drivers/mtd/nand/pasemi_nand.c
index edfc27b78513..a97e9c95ab6a 100644
--- a/drivers/mtd/nand/pasemi_nand.c
+++ b/drivers/mtd/nand/pasemi_nand.c
@@ -221,8 +221,11 @@ MODULE_DEVICE_TABLE(of, pasemi_nand_match);
221 221
222static struct of_platform_driver pasemi_nand_driver = 222static struct of_platform_driver pasemi_nand_driver =
223{ 223{
224 .name = (char*)driver_name, 224 .driver = {
225 .match_table = pasemi_nand_match, 225 .name = (char*)driver_name,
226 .owner = THIS_MODULE,
227 .of_match_table = pasemi_nand_match,
228 },
226 .probe = pasemi_nand_probe, 229 .probe = pasemi_nand_probe,
227 .remove = pasemi_nand_remove, 230 .remove = pasemi_nand_remove,
228}; 231};
diff --git a/drivers/mtd/nand/socrates_nand.c b/drivers/mtd/nand/socrates_nand.c
index a4519a7bd683..edb9b1384143 100644
--- a/drivers/mtd/nand/socrates_nand.c
+++ b/drivers/mtd/nand/socrates_nand.c
@@ -301,8 +301,11 @@ static struct of_device_id socrates_nand_match[] =
301MODULE_DEVICE_TABLE(of, socrates_nand_match); 301MODULE_DEVICE_TABLE(of, socrates_nand_match);
302 302
303static struct of_platform_driver socrates_nand_driver = { 303static struct of_platform_driver socrates_nand_driver = {
304 .name = "socrates_nand", 304 .driver = {
305 .match_table = socrates_nand_match, 305 .name = "socrates_nand",
306 .owner = THIS_MODULE,
307 .of_match_table = socrates_nand_match,
308 },
306 .probe = socrates_nand_probe, 309 .probe = socrates_nand_probe,
307 .remove = __devexit_p(socrates_nand_remove), 310 .remove = __devexit_p(socrates_nand_remove),
308}; 311};
diff --git a/drivers/net/can/mscan/mpc5xxx_can.c b/drivers/net/can/mscan/mpc5xxx_can.c
index 03e7c48465a2..2120784f8db4 100644
--- a/drivers/net/can/mscan/mpc5xxx_can.c
+++ b/drivers/net/can/mscan/mpc5xxx_can.c
@@ -393,15 +393,17 @@ static struct of_device_id __devinitdata mpc5xxx_can_table[] = {
393}; 393};
394 394
395static struct of_platform_driver mpc5xxx_can_driver = { 395static struct of_platform_driver mpc5xxx_can_driver = {
396 .owner = THIS_MODULE, 396 .driver = {
397 .name = "mpc5xxx_can", 397 .name = "mpc5xxx_can",
398 .owner = THIS_MODULE,
399 .of_match_table = mpc5xxx_can_table,
400 },
398 .probe = mpc5xxx_can_probe, 401 .probe = mpc5xxx_can_probe,
399 .remove = __devexit_p(mpc5xxx_can_remove), 402 .remove = __devexit_p(mpc5xxx_can_remove),
400#ifdef CONFIG_PM 403#ifdef CONFIG_PM
401 .suspend = mpc5xxx_can_suspend, 404 .suspend = mpc5xxx_can_suspend,
402 .resume = mpc5xxx_can_resume, 405 .resume = mpc5xxx_can_resume,
403#endif 406#endif
404 .match_table = mpc5xxx_can_table,
405}; 407};
406 408
407static int __init mpc5xxx_can_init(void) 409static int __init mpc5xxx_can_init(void)
diff --git a/drivers/net/can/sja1000/sja1000_of_platform.c b/drivers/net/can/sja1000/sja1000_of_platform.c
index dc5f20cdf93c..158b76ebf3ea 100644
--- a/drivers/net/can/sja1000/sja1000_of_platform.c
+++ b/drivers/net/can/sja1000/sja1000_of_platform.c
@@ -216,11 +216,13 @@ static struct of_device_id __devinitdata sja1000_ofp_table[] = {
216MODULE_DEVICE_TABLE(of, sja1000_ofp_table); 216MODULE_DEVICE_TABLE(of, sja1000_ofp_table);
217 217
218static struct of_platform_driver sja1000_ofp_driver = { 218static struct of_platform_driver sja1000_ofp_driver = {
219 .owner = THIS_MODULE, 219 .driver = {
220 .name = DRV_NAME, 220 .owner = THIS_MODULE,
221 .name = DRV_NAME,
222 .of_match_table = sja1000_ofp_table,
223 },
221 .probe = sja1000_ofp_probe, 224 .probe = sja1000_ofp_probe,
222 .remove = __devexit_p(sja1000_ofp_remove), 225 .remove = __devexit_p(sja1000_ofp_remove),
223 .match_table = sja1000_ofp_table,
224}; 226};
225 227
226static int __init sja1000_ofp_init(void) 228static int __init sja1000_ofp_init(void)
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index 59dac232006c..b23173864c60 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -122,8 +122,11 @@ static struct of_device_id ehea_device_table[] = {
122MODULE_DEVICE_TABLE(of, ehea_device_table); 122MODULE_DEVICE_TABLE(of, ehea_device_table);
123 123
124static struct of_platform_driver ehea_driver = { 124static struct of_platform_driver ehea_driver = {
125 .name = "ehea", 125 .driver = {
126 .match_table = ehea_device_table, 126 .name = "ehea",
127 .owner = THIS_MODULE,
128 .of_match_table = ehea_device_table,
129 },
127 .probe = ehea_probe_adapter, 130 .probe = ehea_probe_adapter,
128 .remove = ehea_remove, 131 .remove = ehea_remove,
129}; 132};
diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c
index 3342056f8aac..be540b67ea57 100644
--- a/drivers/net/fec_mpc52xx.c
+++ b/drivers/net/fec_mpc52xx.c
@@ -1065,9 +1065,11 @@ static struct of_device_id mpc52xx_fec_match[] = {
1065MODULE_DEVICE_TABLE(of, mpc52xx_fec_match); 1065MODULE_DEVICE_TABLE(of, mpc52xx_fec_match);
1066 1066
1067static struct of_platform_driver mpc52xx_fec_driver = { 1067static struct of_platform_driver mpc52xx_fec_driver = {
1068 .owner = THIS_MODULE, 1068 .driver = {
1069 .name = DRIVER_NAME, 1069 .name = DRIVER_NAME,
1070 .match_table = mpc52xx_fec_match, 1070 .owner = THIS_MODULE,
1071 .of_match_table = mpc52xx_fec_match,
1072 },
1071 .probe = mpc52xx_fec_probe, 1073 .probe = mpc52xx_fec_probe,
1072 .remove = mpc52xx_fec_remove, 1074 .remove = mpc52xx_fec_remove,
1073#ifdef CONFIG_PM 1075#ifdef CONFIG_PM
diff --git a/drivers/net/fec_mpc52xx_phy.c b/drivers/net/fec_mpc52xx_phy.c
index 0d099e5a652d..006f64d9f96a 100644
--- a/drivers/net/fec_mpc52xx_phy.c
+++ b/drivers/net/fec_mpc52xx_phy.c
@@ -159,10 +159,13 @@ static struct of_device_id mpc52xx_fec_mdio_match[] = {
159MODULE_DEVICE_TABLE(of, mpc52xx_fec_mdio_match); 159MODULE_DEVICE_TABLE(of, mpc52xx_fec_mdio_match);
160 160
161struct of_platform_driver mpc52xx_fec_mdio_driver = { 161struct of_platform_driver mpc52xx_fec_mdio_driver = {
162 .name = "mpc5200b-fec-phy", 162 .driver = {
163 .name = "mpc5200b-fec-phy",
164 .owner = THIS_MODULE,
165 .of_match_table = mpc52xx_fec_mdio_match,
166 },
163 .probe = mpc52xx_fec_mdio_probe, 167 .probe = mpc52xx_fec_mdio_probe,
164 .remove = mpc52xx_fec_mdio_remove, 168 .remove = mpc52xx_fec_mdio_remove,
165 .match_table = mpc52xx_fec_mdio_match,
166}; 169};
167 170
168/* let fec driver call it, since this has to be registered before it */ 171/* let fec driver call it, since this has to be registered before it */
diff --git a/drivers/net/fs_enet/fs_enet-main.c b/drivers/net/fs_enet/fs_enet-main.c
index caeb88b67bc6..cae2d16858d1 100644
--- a/drivers/net/fs_enet/fs_enet-main.c
+++ b/drivers/net/fs_enet/fs_enet-main.c
@@ -1158,8 +1158,11 @@ static struct of_device_id fs_enet_match[] = {
1158MODULE_DEVICE_TABLE(of, fs_enet_match); 1158MODULE_DEVICE_TABLE(of, fs_enet_match);
1159 1159
1160static struct of_platform_driver fs_enet_driver = { 1160static struct of_platform_driver fs_enet_driver = {
1161 .name = "fs_enet", 1161 .driver = {
1162 .match_table = fs_enet_match, 1162 .owner = THIS_MODULE,
1163 .name = "fs_enet",
1164 .of_match_table = fs_enet_match,
1165 },
1163 .probe = fs_enet_probe, 1166 .probe = fs_enet_probe,
1164 .remove = fs_enet_remove, 1167 .remove = fs_enet_remove,
1165}; 1168};
diff --git a/drivers/net/fs_enet/mii-bitbang.c b/drivers/net/fs_enet/mii-bitbang.c
index 24ff9f43a62b..0f90685d3d19 100644
--- a/drivers/net/fs_enet/mii-bitbang.c
+++ b/drivers/net/fs_enet/mii-bitbang.c
@@ -224,8 +224,11 @@ static struct of_device_id fs_enet_mdio_bb_match[] = {
224MODULE_DEVICE_TABLE(of, fs_enet_mdio_bb_match); 224MODULE_DEVICE_TABLE(of, fs_enet_mdio_bb_match);
225 225
226static struct of_platform_driver fs_enet_bb_mdio_driver = { 226static struct of_platform_driver fs_enet_bb_mdio_driver = {
227 .name = "fsl-bb-mdio", 227 .driver = {
228 .match_table = fs_enet_mdio_bb_match, 228 .name = "fsl-bb-mdio",
229 .owner = THIS_MODULE,
230 .of_match_table = fs_enet_mdio_bb_match,
231 },
229 .probe = fs_enet_mdio_probe, 232 .probe = fs_enet_mdio_probe,
230 .remove = fs_enet_mdio_remove, 233 .remove = fs_enet_mdio_remove,
231}; 234};
diff --git a/drivers/net/fs_enet/mii-fec.c b/drivers/net/fs_enet/mii-fec.c
index dc862e779c1f..bddffd169b93 100644
--- a/drivers/net/fs_enet/mii-fec.c
+++ b/drivers/net/fs_enet/mii-fec.c
@@ -222,8 +222,11 @@ static struct of_device_id fs_enet_mdio_fec_match[] = {
222MODULE_DEVICE_TABLE(of, fs_enet_mdio_fec_match); 222MODULE_DEVICE_TABLE(of, fs_enet_mdio_fec_match);
223 223
224static struct of_platform_driver fs_enet_fec_mdio_driver = { 224static struct of_platform_driver fs_enet_fec_mdio_driver = {
225 .name = "fsl-fec-mdio", 225 .driver = {
226 .match_table = fs_enet_mdio_fec_match, 226 .name = "fsl-fec-mdio",
227 .owner = THIS_MODULE,
228 .of_match_table = fs_enet_mdio_fec_match,
229 },
227 .probe = fs_enet_mdio_probe, 230 .probe = fs_enet_mdio_probe,
228 .remove = fs_enet_mdio_remove, 231 .remove = fs_enet_mdio_remove,
229}; 232};
diff --git a/drivers/net/fsl_pq_mdio.c b/drivers/net/fsl_pq_mdio.c
index 72489a213bf7..16508535720a 100644
--- a/drivers/net/fsl_pq_mdio.c
+++ b/drivers/net/fsl_pq_mdio.c
@@ -461,10 +461,13 @@ static struct of_device_id fsl_pq_mdio_match[] = {
461MODULE_DEVICE_TABLE(of, fsl_pq_mdio_match); 461MODULE_DEVICE_TABLE(of, fsl_pq_mdio_match);
462 462
463static struct of_platform_driver fsl_pq_mdio_driver = { 463static struct of_platform_driver fsl_pq_mdio_driver = {
464 .name = "fsl-pq_mdio", 464 .driver = {
465 .name = "fsl-pq_mdio",
466 .owner = THIS_MODULE,
467 .of_match_table = fsl_pq_mdio_match,
468 },
465 .probe = fsl_pq_mdio_probe, 469 .probe = fsl_pq_mdio_probe,
466 .remove = fsl_pq_mdio_remove, 470 .remove = fsl_pq_mdio_remove,
467 .match_table = fsl_pq_mdio_match,
468}; 471};
469 472
470int __init fsl_pq_mdio_init(void) 473int __init fsl_pq_mdio_init(void)
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index b71bba91064c..c3b292a31328 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -3054,14 +3054,16 @@ MODULE_DEVICE_TABLE(of, gfar_match);
3054 3054
3055/* Structure for a device driver */ 3055/* Structure for a device driver */
3056static struct of_platform_driver gfar_driver = { 3056static struct of_platform_driver gfar_driver = {
3057 .name = "fsl-gianfar", 3057 .driver = {
3058 .match_table = gfar_match, 3058 .name = "fsl-gianfar",
3059 3059 .owner = THIS_MODULE,
3060 .pm = GFAR_PM_OPS,
3061 .of_match_table = gfar_match,
3062 },
3060 .probe = gfar_probe, 3063 .probe = gfar_probe,
3061 .remove = gfar_remove, 3064 .remove = gfar_remove,
3062 .suspend = gfar_legacy_suspend, 3065 .suspend = gfar_legacy_suspend,
3063 .resume = gfar_legacy_resume, 3066 .resume = gfar_legacy_resume,
3064 .driver.pm = GFAR_PM_OPS,
3065}; 3067};
3066 3068
3067static int __init gfar_init(void) 3069static int __init gfar_init(void)
diff --git a/drivers/net/ibm_newemac/core.c b/drivers/net/ibm_newemac/core.c
index cda2ba891344..f8c36a5eb4d7 100644
--- a/drivers/net/ibm_newemac/core.c
+++ b/drivers/net/ibm_newemac/core.c
@@ -2996,9 +2996,11 @@ static struct of_device_id emac_match[] =
2996MODULE_DEVICE_TABLE(of, emac_match); 2996MODULE_DEVICE_TABLE(of, emac_match);
2997 2997
2998static struct of_platform_driver emac_driver = { 2998static struct of_platform_driver emac_driver = {
2999 .name = "emac", 2999 .driver = {
3000 .match_table = emac_match, 3000 .name = "emac",
3001 3001 .owner = THIS_MODULE,
3002 .of_match_table = emac_match,
3003 },
3002 .probe = emac_probe, 3004 .probe = emac_probe,
3003 .remove = emac_remove, 3005 .remove = emac_remove,
3004}; 3006};
diff --git a/drivers/net/ibm_newemac/mal.c b/drivers/net/ibm_newemac/mal.c
index aba17947e208..fcff9e0bd382 100644
--- a/drivers/net/ibm_newemac/mal.c
+++ b/drivers/net/ibm_newemac/mal.c
@@ -790,9 +790,11 @@ static struct of_device_id mal_platform_match[] =
790}; 790};
791 791
792static struct of_platform_driver mal_of_driver = { 792static struct of_platform_driver mal_of_driver = {
793 .name = "mcmal", 793 .driver = {
794 .match_table = mal_platform_match, 794 .name = "mcmal",
795 795 .owner = THIS_MODULE,
796 .of_match_table = mal_platform_match,
797 },
796 .probe = mal_probe, 798 .probe = mal_probe,
797 .remove = mal_remove, 799 .remove = mal_remove,
798}; 800};
diff --git a/drivers/net/ibm_newemac/rgmii.c b/drivers/net/ibm_newemac/rgmii.c
index 6ab630a79e31..108919bcdf13 100644
--- a/drivers/net/ibm_newemac/rgmii.c
+++ b/drivers/net/ibm_newemac/rgmii.c
@@ -319,9 +319,11 @@ static struct of_device_id rgmii_match[] =
319}; 319};
320 320
321static struct of_platform_driver rgmii_driver = { 321static struct of_platform_driver rgmii_driver = {
322 .name = "emac-rgmii", 322 .driver = {
323 .match_table = rgmii_match, 323 .name = "emac-rgmii",
324 324 .owner = THIS_MODULE,
325 .of_match_table = rgmii_match,
326 },
325 .probe = rgmii_probe, 327 .probe = rgmii_probe,
326 .remove = rgmii_remove, 328 .remove = rgmii_remove,
327}; 329};
diff --git a/drivers/net/ibm_newemac/tah.c b/drivers/net/ibm_newemac/tah.c
index 4f64b00dd5e8..044637144c43 100644
--- a/drivers/net/ibm_newemac/tah.c
+++ b/drivers/net/ibm_newemac/tah.c
@@ -166,9 +166,11 @@ static struct of_device_id tah_match[] =
166}; 166};
167 167
168static struct of_platform_driver tah_driver = { 168static struct of_platform_driver tah_driver = {
169 .name = "emac-tah", 169 .driver = {
170 .match_table = tah_match, 170 .name = "emac-tah",
171 171 .owner = THIS_MODULE,
172 .of_match_table = tah_match,
173 },
172 .probe = tah_probe, 174 .probe = tah_probe,
173 .remove = tah_remove, 175 .remove = tah_remove,
174}; 176};
diff --git a/drivers/net/ibm_newemac/zmii.c b/drivers/net/ibm_newemac/zmii.c
index b4fa823ed201..046dcd069c45 100644
--- a/drivers/net/ibm_newemac/zmii.c
+++ b/drivers/net/ibm_newemac/zmii.c
@@ -313,9 +313,11 @@ static struct of_device_id zmii_match[] =
313}; 313};
314 314
315static struct of_platform_driver zmii_driver = { 315static struct of_platform_driver zmii_driver = {
316 .name = "emac-zmii", 316 .driver = {
317 .match_table = zmii_match, 317 .name = "emac-zmii",
318 318 .owner = THIS_MODULE,
319 .of_match_table = zmii_match,
320 },
319 .probe = zmii_probe, 321 .probe = zmii_probe,
320 .remove = zmii_remove, 322 .remove = zmii_remove,
321}; 323};
diff --git a/drivers/net/ll_temac_main.c b/drivers/net/ll_temac_main.c
index 9c7395c10e44..dc318330ec79 100644
--- a/drivers/net/ll_temac_main.c
+++ b/drivers/net/ll_temac_main.c
@@ -955,12 +955,12 @@ static struct of_device_id temac_of_match[] __devinitdata = {
955MODULE_DEVICE_TABLE(of, temac_of_match); 955MODULE_DEVICE_TABLE(of, temac_of_match);
956 956
957static struct of_platform_driver temac_of_driver = { 957static struct of_platform_driver temac_of_driver = {
958 .match_table = temac_of_match,
959 .probe = temac_of_probe, 958 .probe = temac_of_probe,
960 .remove = __devexit_p(temac_of_remove), 959 .remove = __devexit_p(temac_of_remove),
961 .driver = { 960 .driver = {
962 .owner = THIS_MODULE, 961 .owner = THIS_MODULE,
963 .name = "xilinx_temac", 962 .name = "xilinx_temac",
963 .of_match_table = temac_of_match,
964 }, 964 },
965}; 965};
966 966
diff --git a/drivers/net/myri_sbus.c b/drivers/net/myri_sbus.c
index e21439f1e775..77835df4d013 100644
--- a/drivers/net/myri_sbus.c
+++ b/drivers/net/myri_sbus.c
@@ -1161,8 +1161,11 @@ static const struct of_device_id myri_sbus_match[] = {
1161MODULE_DEVICE_TABLE(of, myri_sbus_match); 1161MODULE_DEVICE_TABLE(of, myri_sbus_match);
1162 1162
1163static struct of_platform_driver myri_sbus_driver = { 1163static struct of_platform_driver myri_sbus_driver = {
1164 .name = "myri", 1164 .driver = {
1165 .match_table = myri_sbus_match, 1165 .name = "myri",
1166 .owner = THIS_MODULE,
1167 .of_match_table = myri_sbus_match,
1168 },
1166 .probe = myri_sbus_probe, 1169 .probe = myri_sbus_probe,
1167 .remove = __devexit_p(myri_sbus_remove), 1170 .remove = __devexit_p(myri_sbus_remove),
1168}; 1171};
diff --git a/drivers/net/niu.c b/drivers/net/niu.c
index 9c1604c04450..406d72c4eb71 100644
--- a/drivers/net/niu.c
+++ b/drivers/net/niu.c
@@ -10207,8 +10207,11 @@ static const struct of_device_id niu_match[] = {
10207MODULE_DEVICE_TABLE(of, niu_match); 10207MODULE_DEVICE_TABLE(of, niu_match);
10208 10208
10209static struct of_platform_driver niu_of_driver = { 10209static struct of_platform_driver niu_of_driver = {
10210 .name = "niu", 10210 .driver = {
10211 .match_table = niu_match, 10211 .name = "niu",
10212 .owner = THIS_MODULE,
10213 .of_match_table = niu_match,
10214 },
10212 .probe = niu_of_probe, 10215 .probe = niu_of_probe,
10213 .remove = __devexit_p(niu_of_remove), 10216 .remove = __devexit_p(niu_of_remove),
10214}; 10217};
diff --git a/drivers/net/phy/mdio-gpio.c b/drivers/net/phy/mdio-gpio.c
index 641973ca2417..fc5fef2a8175 100644
--- a/drivers/net/phy/mdio-gpio.c
+++ b/drivers/net/phy/mdio-gpio.c
@@ -241,8 +241,11 @@ static struct of_device_id mdio_ofgpio_match[] = {
241MODULE_DEVICE_TABLE(of, mdio_ofgpio_match); 241MODULE_DEVICE_TABLE(of, mdio_ofgpio_match);
242 242
243static struct of_platform_driver mdio_ofgpio_driver = { 243static struct of_platform_driver mdio_ofgpio_driver = {
244 .name = "mdio-gpio", 244 .driver = {
245 .match_table = mdio_ofgpio_match, 245 .name = "mdio-gpio",
246 .owner = THIS_MODULE,
247 .of_match_table = mdio_ofgpio_match,
248 },
246 .probe = mdio_ofgpio_probe, 249 .probe = mdio_ofgpio_probe,
247 .remove = __devexit_p(mdio_ofgpio_remove), 250 .remove = __devexit_p(mdio_ofgpio_remove),
248}; 251};
diff --git a/drivers/net/sunbmac.c b/drivers/net/sunbmac.c
index bd286ec5abd9..5f0ec390d6fc 100644
--- a/drivers/net/sunbmac.c
+++ b/drivers/net/sunbmac.c
@@ -1292,8 +1292,11 @@ static const struct of_device_id bigmac_sbus_match[] = {
1292MODULE_DEVICE_TABLE(of, bigmac_sbus_match); 1292MODULE_DEVICE_TABLE(of, bigmac_sbus_match);
1293 1293
1294static struct of_platform_driver bigmac_sbus_driver = { 1294static struct of_platform_driver bigmac_sbus_driver = {
1295 .name = "sunbmac", 1295 .driver = {
1296 .match_table = bigmac_sbus_match, 1296 .name = "sunbmac",
1297 .owner = THIS_MODULE,
1298 .of_match_table = bigmac_sbus_match,
1299 },
1297 .probe = bigmac_sbus_probe, 1300 .probe = bigmac_sbus_probe,
1298 .remove = __devexit_p(bigmac_sbus_remove), 1301 .remove = __devexit_p(bigmac_sbus_remove),
1299}; 1302};
diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c
index c6463f71c916..ad2cfc5bb9e1 100644
--- a/drivers/net/sunhme.c
+++ b/drivers/net/sunhme.c
@@ -3295,8 +3295,11 @@ static const struct of_device_id hme_sbus_match[] = {
3295MODULE_DEVICE_TABLE(of, hme_sbus_match); 3295MODULE_DEVICE_TABLE(of, hme_sbus_match);
3296 3296
3297static struct of_platform_driver hme_sbus_driver = { 3297static struct of_platform_driver hme_sbus_driver = {
3298 .name = "hme", 3298 .driver = {
3299 .match_table = hme_sbus_match, 3299 .name = "hme",
3300 .owner = THIS_MODULE,
3301 .of_match_table = hme_sbus_match,
3302 },
3300 .probe = hme_sbus_probe, 3303 .probe = hme_sbus_probe,
3301 .remove = __devexit_p(hme_sbus_remove), 3304 .remove = __devexit_p(hme_sbus_remove),
3302}; 3305};
diff --git a/drivers/net/sunlance.c b/drivers/net/sunlance.c
index 28afc86e0694..0fc014ef9e98 100644
--- a/drivers/net/sunlance.c
+++ b/drivers/net/sunlance.c
@@ -1546,8 +1546,11 @@ static const struct of_device_id sunlance_sbus_match[] = {
1546MODULE_DEVICE_TABLE(of, sunlance_sbus_match); 1546MODULE_DEVICE_TABLE(of, sunlance_sbus_match);
1547 1547
1548static struct of_platform_driver sunlance_sbus_driver = { 1548static struct of_platform_driver sunlance_sbus_driver = {
1549 .name = "sunlance", 1549 .driver = {
1550 .match_table = sunlance_sbus_match, 1550 .name = "sunlance",
1551 .owner = THIS_MODULE,
1552 .of_match_table = sunlance_sbus_match,
1553 },
1551 .probe = sunlance_sbus_probe, 1554 .probe = sunlance_sbus_probe,
1552 .remove = __devexit_p(sunlance_sbus_remove), 1555 .remove = __devexit_p(sunlance_sbus_remove),
1553}; 1556};
diff --git a/drivers/net/sunqe.c b/drivers/net/sunqe.c
index 9864f4fa69d5..8fe86b287e51 100644
--- a/drivers/net/sunqe.c
+++ b/drivers/net/sunqe.c
@@ -978,8 +978,11 @@ static const struct of_device_id qec_sbus_match[] = {
978MODULE_DEVICE_TABLE(of, qec_sbus_match); 978MODULE_DEVICE_TABLE(of, qec_sbus_match);
979 979
980static struct of_platform_driver qec_sbus_driver = { 980static struct of_platform_driver qec_sbus_driver = {
981 .name = "qec", 981 .driver = {
982 .match_table = qec_sbus_match, 982 .name = "qec",
983 .owner = THIS_MODULE,
984 .of_match_table = qec_sbus_match,
985 },
983 .probe = qec_sbus_probe, 986 .probe = qec_sbus_probe,
984 .remove = __devexit_p(qec_sbus_remove), 987 .remove = __devexit_p(qec_sbus_remove),
985}; 988};
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
index 88ebfc976735..0ab51037bf88 100644
--- a/drivers/net/ucc_geth.c
+++ b/drivers/net/ucc_geth.c
@@ -3965,8 +3965,11 @@ static struct of_device_id ucc_geth_match[] = {
3965MODULE_DEVICE_TABLE(of, ucc_geth_match); 3965MODULE_DEVICE_TABLE(of, ucc_geth_match);
3966 3966
3967static struct of_platform_driver ucc_geth_driver = { 3967static struct of_platform_driver ucc_geth_driver = {
3968 .name = DRV_NAME, 3968 .driver = {
3969 .match_table = ucc_geth_match, 3969 .name = DRV_NAME,
3970 .owner = THIS_MODULE,
3971 .of_match_table = ucc_geth_match,
3972 },
3970 .probe = ucc_geth_probe, 3973 .probe = ucc_geth_probe,
3971 .remove = ucc_geth_remove, 3974 .remove = ucc_geth_remove,
3972 .suspend = ucc_geth_suspend, 3975 .suspend = ucc_geth_suspend,
diff --git a/drivers/net/xilinx_emaclite.c b/drivers/net/xilinx_emaclite.c
index 3dd2416db540..67f9237237dd 100644
--- a/drivers/net/xilinx_emaclite.c
+++ b/drivers/net/xilinx_emaclite.c
@@ -1293,8 +1293,11 @@ static struct of_device_id xemaclite_of_match[] __devinitdata = {
1293MODULE_DEVICE_TABLE(of, xemaclite_of_match); 1293MODULE_DEVICE_TABLE(of, xemaclite_of_match);
1294 1294
1295static struct of_platform_driver xemaclite_of_driver = { 1295static struct of_platform_driver xemaclite_of_driver = {
1296 .name = DRIVER_NAME, 1296 .driver = {
1297 .match_table = xemaclite_of_match, 1297 .name = DRIVER_NAME,
1298 .owner = THIS_MODULE,
1299 .of_match_table = xemaclite_of_match,
1300 },
1298 .probe = xemaclite_of_probe, 1301 .probe = xemaclite_of_probe,
1299 .remove = __devexit_p(xemaclite_of_remove), 1302 .remove = __devexit_p(xemaclite_of_remove),
1300}; 1303};
diff --git a/drivers/of/platform.c b/drivers/of/platform.c
index 9fd7f7d0a0d1..ba402c613ede 100644
--- a/drivers/of/platform.c
+++ b/drivers/of/platform.c
@@ -385,13 +385,6 @@ int of_bus_type_init(struct bus_type *bus, const char *name)
385 385
386int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus) 386int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus)
387{ 387{
388 /* initialize common driver fields */
389 if (!drv->driver.name)
390 drv->driver.name = drv->name;
391 if (!drv->driver.owner)
392 drv->driver.owner = drv->owner;
393 if (!drv->driver.of_match_table)
394 drv->driver.of_match_table = drv->match_table;
395 drv->driver.bus = bus; 388 drv->driver.bus = bus;
396 389
397 /* register with core */ 390 /* register with core */
diff --git a/drivers/parport/parport_sunbpp.c b/drivers/parport/parport_sunbpp.c
index 065f229580d5..9a5b4b894161 100644
--- a/drivers/parport/parport_sunbpp.c
+++ b/drivers/parport/parport_sunbpp.c
@@ -382,8 +382,11 @@ static const struct of_device_id bpp_match[] = {
382MODULE_DEVICE_TABLE(of, bpp_match); 382MODULE_DEVICE_TABLE(of, bpp_match);
383 383
384static struct of_platform_driver bpp_sbus_driver = { 384static struct of_platform_driver bpp_sbus_driver = {
385 .name = "bpp", 385 .driver = {
386 .match_table = bpp_match, 386 .name = "bpp",
387 .owner = THIS_MODULE,
388 .of_match_table = bpp_match,
389 },
387 .probe = bpp_probe, 390 .probe = bpp_probe,
388 .remove = __devexit_p(bpp_remove), 391 .remove = __devexit_p(bpp_remove),
389}; 392};
diff --git a/drivers/pcmcia/electra_cf.c b/drivers/pcmcia/electra_cf.c
index a22d32d71bf2..f94d8281cfb0 100644
--- a/drivers/pcmcia/electra_cf.c
+++ b/drivers/pcmcia/electra_cf.c
@@ -357,8 +357,11 @@ static const struct of_device_id electra_cf_match[] = {
357MODULE_DEVICE_TABLE(of, electra_cf_match); 357MODULE_DEVICE_TABLE(of, electra_cf_match);
358 358
359static struct of_platform_driver electra_cf_driver = { 359static struct of_platform_driver electra_cf_driver = {
360 .name = (char *)driver_name, 360 .driver = {
361 .match_table = electra_cf_match, 361 .name = (char *)driver_name,
362 .owner = THIS_MODULE,
363 .of_match_table = electra_cf_match,
364 },
362 .probe = electra_cf_probe, 365 .probe = electra_cf_probe,
363 .remove = electra_cf_remove, 366 .remove = electra_cf_remove,
364}; 367};
diff --git a/drivers/pcmcia/m8xx_pcmcia.c b/drivers/pcmcia/m8xx_pcmcia.c
index 41cc954a5ffe..1a648b90b634 100644
--- a/drivers/pcmcia/m8xx_pcmcia.c
+++ b/drivers/pcmcia/m8xx_pcmcia.c
@@ -1298,8 +1298,11 @@ static const struct of_device_id m8xx_pcmcia_match[] = {
1298MODULE_DEVICE_TABLE(of, m8xx_pcmcia_match); 1298MODULE_DEVICE_TABLE(of, m8xx_pcmcia_match);
1299 1299
1300static struct of_platform_driver m8xx_pcmcia_driver = { 1300static struct of_platform_driver m8xx_pcmcia_driver = {
1301 .name = driver_name, 1301 .driver = {
1302 .match_table = m8xx_pcmcia_match, 1302 .name = driver_name,
1303 .owner = THIS_MODULE,
1304 .match_table = m8xx_pcmcia_match,
1305 },
1303 .probe = m8xx_probe, 1306 .probe = m8xx_probe,
1304 .remove = m8xx_remove, 1307 .remove = m8xx_remove,
1305}; 1308};
diff --git a/drivers/sbus/char/bbc_i2c.c b/drivers/sbus/char/bbc_i2c.c
index 1543ac32b79b..8bfdd63a1fcb 100644
--- a/drivers/sbus/char/bbc_i2c.c
+++ b/drivers/sbus/char/bbc_i2c.c
@@ -414,8 +414,11 @@ static const struct of_device_id bbc_i2c_match[] = {
414MODULE_DEVICE_TABLE(of, bbc_i2c_match); 414MODULE_DEVICE_TABLE(of, bbc_i2c_match);
415 415
416static struct of_platform_driver bbc_i2c_driver = { 416static struct of_platform_driver bbc_i2c_driver = {
417 .name = "bbc_i2c", 417 .driver = {
418 .match_table = bbc_i2c_match, 418 .name = "bbc_i2c",
419 .owner = THIS_MODULE,
420 .of_match_table = bbc_i2c_match,
421 },
419 .probe = bbc_i2c_probe, 422 .probe = bbc_i2c_probe,
420 .remove = __devexit_p(bbc_i2c_remove), 423 .remove = __devexit_p(bbc_i2c_remove),
421}; 424};
diff --git a/drivers/sbus/char/display7seg.c b/drivers/sbus/char/display7seg.c
index 7fc7f34f3466..7baf1b644039 100644
--- a/drivers/sbus/char/display7seg.c
+++ b/drivers/sbus/char/display7seg.c
@@ -266,8 +266,11 @@ static const struct of_device_id d7s_match[] = {
266MODULE_DEVICE_TABLE(of, d7s_match); 266MODULE_DEVICE_TABLE(of, d7s_match);
267 267
268static struct of_platform_driver d7s_driver = { 268static struct of_platform_driver d7s_driver = {
269 .name = DRIVER_NAME, 269 .driver = {
270 .match_table = d7s_match, 270 .name = DRIVER_NAME,
271 .owner = THIS_MODULE,
272 .of_match_table = d7s_match,
273 },
271 .probe = d7s_probe, 274 .probe = d7s_probe,
272 .remove = __devexit_p(d7s_remove), 275 .remove = __devexit_p(d7s_remove),
273}; 276};
diff --git a/drivers/sbus/char/envctrl.c b/drivers/sbus/char/envctrl.c
index a5fe20faf4f7..c8166ecf5276 100644
--- a/drivers/sbus/char/envctrl.c
+++ b/drivers/sbus/char/envctrl.c
@@ -1131,8 +1131,11 @@ static const struct of_device_id envctrl_match[] = {
1131MODULE_DEVICE_TABLE(of, envctrl_match); 1131MODULE_DEVICE_TABLE(of, envctrl_match);
1132 1132
1133static struct of_platform_driver envctrl_driver = { 1133static struct of_platform_driver envctrl_driver = {
1134 .name = DRIVER_NAME, 1134 .driver = {
1135 .match_table = envctrl_match, 1135 .name = DRIVER_NAME,
1136 .owner = THIS_MODULE,
1137 .of_match_table = envctrl_match,
1138 },
1136 .probe = envctrl_probe, 1139 .probe = envctrl_probe,
1137 .remove = __devexit_p(envctrl_remove), 1140 .remove = __devexit_p(envctrl_remove),
1138}; 1141};
diff --git a/drivers/sbus/char/flash.c b/drivers/sbus/char/flash.c
index 202ff8f75afb..0427e586975f 100644
--- a/drivers/sbus/char/flash.c
+++ b/drivers/sbus/char/flash.c
@@ -207,8 +207,11 @@ static const struct of_device_id flash_match[] = {
207MODULE_DEVICE_TABLE(of, flash_match); 207MODULE_DEVICE_TABLE(of, flash_match);
208 208
209static struct of_platform_driver flash_driver = { 209static struct of_platform_driver flash_driver = {
210 .name = "flash", 210 .driver = {
211 .match_table = flash_match, 211 .name = "flash",
212 .owner = THIS_MODULE,
213 .of_match_table = flash_match,
214 },
212 .probe = flash_probe, 215 .probe = flash_probe,
213 .remove = __devexit_p(flash_remove), 216 .remove = __devexit_p(flash_remove),
214}; 217};
diff --git a/drivers/sbus/char/uctrl.c b/drivers/sbus/char/uctrl.c
index acc6738aa61f..5f253665a1da 100644
--- a/drivers/sbus/char/uctrl.c
+++ b/drivers/sbus/char/uctrl.c
@@ -425,8 +425,11 @@ static const struct of_device_id uctrl_match[] = {
425MODULE_DEVICE_TABLE(of, uctrl_match); 425MODULE_DEVICE_TABLE(of, uctrl_match);
426 426
427static struct of_platform_driver uctrl_driver = { 427static struct of_platform_driver uctrl_driver = {
428 .name = "uctrl", 428 .driver = {
429 .match_table = uctrl_match, 429 .name = "uctrl",
430 .owner = THIS_MODULE,
431 .of_match_table = uctrl_match,
432 },
430 .probe = uctrl_probe, 433 .probe = uctrl_probe,
431 .remove = __devexit_p(uctrl_remove), 434 .remove = __devexit_p(uctrl_remove),
432}; 435};
diff --git a/drivers/scsi/qlogicpti.c b/drivers/scsi/qlogicpti.c
index 35433d23b7ce..ca5c15c779cf 100644
--- a/drivers/scsi/qlogicpti.c
+++ b/drivers/scsi/qlogicpti.c
@@ -1456,8 +1456,11 @@ static const struct of_device_id qpti_match[] = {
1456MODULE_DEVICE_TABLE(of, qpti_match); 1456MODULE_DEVICE_TABLE(of, qpti_match);
1457 1457
1458static struct of_platform_driver qpti_sbus_driver = { 1458static struct of_platform_driver qpti_sbus_driver = {
1459 .name = "qpti", 1459 .driver = {
1460 .match_table = qpti_match, 1460 .name = "qpti",
1461 .owner = THIS_MODULE,
1462 .of_match_table = qpti_match,
1463 },
1461 .probe = qpti_sbus_probe, 1464 .probe = qpti_sbus_probe,
1462 .remove = __devexit_p(qpti_sbus_remove), 1465 .remove = __devexit_p(qpti_sbus_remove),
1463}; 1466};
diff --git a/drivers/scsi/sun_esp.c b/drivers/scsi/sun_esp.c
index 151df73df475..386dd9d602b6 100644
--- a/drivers/scsi/sun_esp.c
+++ b/drivers/scsi/sun_esp.c
@@ -633,8 +633,11 @@ static const struct of_device_id esp_match[] = {
633MODULE_DEVICE_TABLE(of, esp_match); 633MODULE_DEVICE_TABLE(of, esp_match);
634 634
635static struct of_platform_driver esp_sbus_driver = { 635static struct of_platform_driver esp_sbus_driver = {
636 .name = "esp", 636 .driver = {
637 .match_table = esp_match, 637 .name = "esp",
638 .owner = THIS_MODULE,
639 .of_match_table = esp_match,
640 },
638 .probe = esp_sbus_probe, 641 .probe = esp_sbus_probe,
639 .remove = __devexit_p(esp_sbus_remove), 642 .remove = __devexit_p(esp_sbus_remove),
640}; 643};
diff --git a/drivers/serial/apbuart.c b/drivers/serial/apbuart.c
index 52015d7031bb..0099b8692b60 100644
--- a/drivers/serial/apbuart.c
+++ b/drivers/serial/apbuart.c
@@ -584,12 +584,12 @@ static struct of_device_id __initdata apbuart_match[] = {
584}; 584};
585 585
586static struct of_platform_driver grlib_apbuart_of_driver = { 586static struct of_platform_driver grlib_apbuart_of_driver = {
587 .match_table = apbuart_match,
588 .probe = apbuart_probe, 587 .probe = apbuart_probe,
589 .driver = { 588 .driver = {
590 .owner = THIS_MODULE, 589 .owner = THIS_MODULE,
591 .name = "grlib-apbuart", 590 .name = "grlib-apbuart",
592 }, 591 .of_match_table = apbuart_match,
592 },
593}; 593};
594 594
595 595
diff --git a/drivers/serial/cpm_uart/cpm_uart_core.c b/drivers/serial/cpm_uart/cpm_uart_core.c
index 7866cdf8a754..9eb62a256e9a 100644
--- a/drivers/serial/cpm_uart/cpm_uart_core.c
+++ b/drivers/serial/cpm_uart/cpm_uart_core.c
@@ -1372,8 +1372,11 @@ static struct of_device_id cpm_uart_match[] = {
1372}; 1372};
1373 1373
1374static struct of_platform_driver cpm_uart_driver = { 1374static struct of_platform_driver cpm_uart_driver = {
1375 .name = "cpm_uart", 1375 .driver = {
1376 .match_table = cpm_uart_match, 1376 .name = "cpm_uart",
1377 .owner = THIS_MODULE,
1378 .of_match_table = cpm_uart_match,
1379 },
1377 .probe = cpm_uart_probe, 1380 .probe = cpm_uart_probe,
1378 .remove = cpm_uart_remove, 1381 .remove = cpm_uart_remove,
1379 }; 1382 };
diff --git a/drivers/serial/mpc52xx_uart.c b/drivers/serial/mpc52xx_uart.c
index cb079387c5ae..4fb32e3748c2 100644
--- a/drivers/serial/mpc52xx_uart.c
+++ b/drivers/serial/mpc52xx_uart.c
@@ -1464,15 +1464,16 @@ mpc52xx_uart_of_enumerate(void)
1464MODULE_DEVICE_TABLE(of, mpc52xx_uart_of_match); 1464MODULE_DEVICE_TABLE(of, mpc52xx_uart_of_match);
1465 1465
1466static struct of_platform_driver mpc52xx_uart_of_driver = { 1466static struct of_platform_driver mpc52xx_uart_of_driver = {
1467 .match_table = mpc52xx_uart_of_match,
1468 .probe = mpc52xx_uart_of_probe, 1467 .probe = mpc52xx_uart_of_probe,
1469 .remove = mpc52xx_uart_of_remove, 1468 .remove = mpc52xx_uart_of_remove,
1470#ifdef CONFIG_PM 1469#ifdef CONFIG_PM
1471 .suspend = mpc52xx_uart_of_suspend, 1470 .suspend = mpc52xx_uart_of_suspend,
1472 .resume = mpc52xx_uart_of_resume, 1471 .resume = mpc52xx_uart_of_resume,
1473#endif 1472#endif
1474 .driver = { 1473 .driver = {
1475 .name = "mpc52xx-psc-uart", 1474 .name = "mpc52xx-psc-uart",
1475 .owner = THIS_MODULE,
1476 .of_match_table = mpc52xx_uart_of_match,
1476 }, 1477 },
1477}; 1478};
1478 1479
diff --git a/drivers/serial/of_serial.c b/drivers/serial/of_serial.c
index 29539805e593..a48d9080f552 100644
--- a/drivers/serial/of_serial.c
+++ b/drivers/serial/of_serial.c
@@ -175,11 +175,13 @@ static struct of_device_id __devinitdata of_platform_serial_table[] = {
175}; 175};
176 176
177static struct of_platform_driver of_platform_serial_driver = { 177static struct of_platform_driver of_platform_serial_driver = {
178 .owner = THIS_MODULE, 178 .driver = {
179 .name = "of_serial", 179 .name = "of_serial",
180 .owner = THIS_MODULE,
181 .of_match_table = of_platform_serial_table,
182 },
180 .probe = of_platform_serial_probe, 183 .probe = of_platform_serial_probe,
181 .remove = of_platform_serial_remove, 184 .remove = of_platform_serial_remove,
182 .match_table = of_platform_serial_table,
183}; 185};
184 186
185static int __init of_platform_serial_init(void) 187static int __init of_platform_serial_init(void)
diff --git a/drivers/serial/sunhv.c b/drivers/serial/sunhv.c
index d1eedf13d85c..890f91742962 100644
--- a/drivers/serial/sunhv.c
+++ b/drivers/serial/sunhv.c
@@ -630,8 +630,11 @@ static const struct of_device_id hv_match[] = {
630MODULE_DEVICE_TABLE(of, hv_match); 630MODULE_DEVICE_TABLE(of, hv_match);
631 631
632static struct of_platform_driver hv_driver = { 632static struct of_platform_driver hv_driver = {
633 .name = "hv", 633 .driver = {
634 .match_table = hv_match, 634 .name = "hv",
635 .owner = THIS_MODULE,
636 .of_match_table = hv_match,
637 },
635 .probe = hv_probe, 638 .probe = hv_probe,
636 .remove = __devexit_p(hv_remove), 639 .remove = __devexit_p(hv_remove),
637}; 640};
diff --git a/drivers/serial/sunsab.c b/drivers/serial/sunsab.c
index 9176c41b74ad..5e81bc6b48b0 100644
--- a/drivers/serial/sunsab.c
+++ b/drivers/serial/sunsab.c
@@ -1093,8 +1093,11 @@ static const struct of_device_id sab_match[] = {
1093MODULE_DEVICE_TABLE(of, sab_match); 1093MODULE_DEVICE_TABLE(of, sab_match);
1094 1094
1095static struct of_platform_driver sab_driver = { 1095static struct of_platform_driver sab_driver = {
1096 .name = "sab", 1096 .driver = {
1097 .match_table = sab_match, 1097 .name = "sab",
1098 .owner = THIS_MODULE,
1099 .of_match_table = sab_match,
1100 },
1098 .probe = sab_probe, 1101 .probe = sab_probe,
1099 .remove = __devexit_p(sab_remove), 1102 .remove = __devexit_p(sab_remove),
1100}; 1103};
diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c
index a647b2448071..234459c2f012 100644
--- a/drivers/serial/sunsu.c
+++ b/drivers/serial/sunsu.c
@@ -1539,8 +1539,11 @@ static const struct of_device_id su_match[] = {
1539MODULE_DEVICE_TABLE(of, su_match); 1539MODULE_DEVICE_TABLE(of, su_match);
1540 1540
1541static struct of_platform_driver su_driver = { 1541static struct of_platform_driver su_driver = {
1542 .name = "su", 1542 .driver = {
1543 .match_table = su_match, 1543 .name = "su",
1544 .owner = THIS_MODULE,
1545 .of_match_table = su_match,
1546 },
1544 .probe = su_probe, 1547 .probe = su_probe,
1545 .remove = __devexit_p(su_remove), 1548 .remove = __devexit_p(su_remove),
1546}; 1549};
diff --git a/drivers/serial/sunzilog.c b/drivers/serial/sunzilog.c
index 20f9be8cd949..34fb8e84504f 100644
--- a/drivers/serial/sunzilog.c
+++ b/drivers/serial/sunzilog.c
@@ -1491,8 +1491,11 @@ static const struct of_device_id zs_match[] = {
1491MODULE_DEVICE_TABLE(of, zs_match); 1491MODULE_DEVICE_TABLE(of, zs_match);
1492 1492
1493static struct of_platform_driver zs_driver = { 1493static struct of_platform_driver zs_driver = {
1494 .name = "zs", 1494 .driver = {
1495 .match_table = zs_match, 1495 .name = "zs",
1496 .owner = THIS_MODULE,
1497 .of_match_table = zs_match,
1498 },
1496 .probe = zs_probe, 1499 .probe = zs_probe,
1497 .remove = __devexit_p(zs_remove), 1500 .remove = __devexit_p(zs_remove),
1498}; 1501};
diff --git a/drivers/serial/uartlite.c b/drivers/serial/uartlite.c
index 8fc2583d06ff..81073e3426e0 100644
--- a/drivers/serial/uartlite.c
+++ b/drivers/serial/uartlite.c
@@ -610,13 +610,12 @@ static int __devexit ulite_of_remove(struct of_device *op)
610} 610}
611 611
612static struct of_platform_driver ulite_of_driver = { 612static struct of_platform_driver ulite_of_driver = {
613 .owner = THIS_MODULE,
614 .name = "uartlite",
615 .match_table = ulite_of_match,
616 .probe = ulite_of_probe, 613 .probe = ulite_of_probe,
617 .remove = __devexit_p(ulite_of_remove), 614 .remove = __devexit_p(ulite_of_remove),
618 .driver = { 615 .driver = {
619 .name = "uartlite", 616 .name = "uartlite",
617 .owner = THIS_MODULE,
618 .of_match_table = ulite_of_match,
620 }, 619 },
621}; 620};
622 621
diff --git a/drivers/serial/ucc_uart.c b/drivers/serial/ucc_uart.c
index 529890f044e2..907b06f5c447 100644
--- a/drivers/serial/ucc_uart.c
+++ b/drivers/serial/ucc_uart.c
@@ -1486,9 +1486,11 @@ static struct of_device_id ucc_uart_match[] = {
1486MODULE_DEVICE_TABLE(of, ucc_uart_match); 1486MODULE_DEVICE_TABLE(of, ucc_uart_match);
1487 1487
1488static struct of_platform_driver ucc_uart_of_driver = { 1488static struct of_platform_driver ucc_uart_of_driver = {
1489 .owner = THIS_MODULE, 1489 .driver = {
1490 .name = "ucc_uart", 1490 .name = "ucc_uart",
1491 .match_table = ucc_uart_match, 1491 .owner = THIS_MODULE,
1492 .of_match_table = ucc_uart_match,
1493 },
1492 .probe = ucc_uart_probe, 1494 .probe = ucc_uart_probe,
1493 .remove = ucc_uart_remove, 1495 .remove = ucc_uart_remove,
1494}; 1496};
diff --git a/drivers/spi/mpc52xx_psc_spi.c b/drivers/spi/mpc52xx_psc_spi.c
index 7fcf28405860..7104cb739da7 100644
--- a/drivers/spi/mpc52xx_psc_spi.c
+++ b/drivers/spi/mpc52xx_psc_spi.c
@@ -514,14 +514,12 @@ static const struct of_device_id mpc52xx_psc_spi_of_match[] = {
514MODULE_DEVICE_TABLE(of, mpc52xx_psc_spi_of_match); 514MODULE_DEVICE_TABLE(of, mpc52xx_psc_spi_of_match);
515 515
516static struct of_platform_driver mpc52xx_psc_spi_of_driver = { 516static struct of_platform_driver mpc52xx_psc_spi_of_driver = {
517 .owner = THIS_MODULE,
518 .name = "mpc52xx-psc-spi",
519 .match_table = mpc52xx_psc_spi_of_match,
520 .probe = mpc52xx_psc_spi_of_probe, 517 .probe = mpc52xx_psc_spi_of_probe,
521 .remove = __exit_p(mpc52xx_psc_spi_of_remove), 518 .remove = __exit_p(mpc52xx_psc_spi_of_remove),
522 .driver = { 519 .driver = {
523 .name = "mpc52xx-psc-spi", 520 .name = "mpc52xx-psc-spi",
524 .owner = THIS_MODULE, 521 .owner = THIS_MODULE,
522 .of_match_table = mpc52xx_psc_spi_of_match,
525 }, 523 },
526}; 524};
527 525
diff --git a/drivers/spi/mpc52xx_spi.c b/drivers/spi/mpc52xx_spi.c
index 6573233bf7c9..b1a76bff775f 100644
--- a/drivers/spi/mpc52xx_spi.c
+++ b/drivers/spi/mpc52xx_spi.c
@@ -558,9 +558,11 @@ static const struct of_device_id mpc52xx_spi_match[] __devinitconst = {
558MODULE_DEVICE_TABLE(of, mpc52xx_spi_match); 558MODULE_DEVICE_TABLE(of, mpc52xx_spi_match);
559 559
560static struct of_platform_driver mpc52xx_spi_of_driver = { 560static struct of_platform_driver mpc52xx_spi_of_driver = {
561 .owner = THIS_MODULE, 561 .driver = {
562 .name = "mpc52xx-spi", 562 .name = "mpc52xx-spi",
563 .match_table = mpc52xx_spi_match, 563 .owner = THIS_MODULE,
564 .of_match_table = mpc52xx_spi_match,
565 },
564 .probe = mpc52xx_spi_probe, 566 .probe = mpc52xx_spi_probe,
565 .remove = __exit_p(mpc52xx_spi_remove), 567 .remove = __exit_p(mpc52xx_spi_remove),
566}; 568};
diff --git a/drivers/spi/spi_mpc8xxx.c b/drivers/spi/spi_mpc8xxx.c
index 7572f98a419e..77ab15e330d0 100644
--- a/drivers/spi/spi_mpc8xxx.c
+++ b/drivers/spi/spi_mpc8xxx.c
@@ -1312,8 +1312,11 @@ static const struct of_device_id of_mpc8xxx_spi_match[] = {
1312MODULE_DEVICE_TABLE(of, of_mpc8xxx_spi_match); 1312MODULE_DEVICE_TABLE(of, of_mpc8xxx_spi_match);
1313 1313
1314static struct of_platform_driver of_mpc8xxx_spi_driver = { 1314static struct of_platform_driver of_mpc8xxx_spi_driver = {
1315 .name = "mpc8xxx_spi", 1315 .driver = {
1316 .match_table = of_mpc8xxx_spi_match, 1316 .name = "mpc8xxx_spi",
1317 .owner = THIS_MODULE,
1318 .of_match_table = of_mpc8xxx_spi_match,
1319 },
1317 .probe = of_mpc8xxx_spi_probe, 1320 .probe = of_mpc8xxx_spi_probe,
1318 .remove = __devexit_p(of_mpc8xxx_spi_remove), 1321 .remove = __devexit_p(of_mpc8xxx_spi_remove),
1319}; 1322};
diff --git a/drivers/spi/spi_ppc4xx.c b/drivers/spi/spi_ppc4xx.c
index 7cb5ff37f6e2..19c0b3b34fce 100644
--- a/drivers/spi/spi_ppc4xx.c
+++ b/drivers/spi/spi_ppc4xx.c
@@ -587,12 +587,12 @@ static const struct of_device_id spi_ppc4xx_of_match[] = {
587MODULE_DEVICE_TABLE(of, spi_ppc4xx_of_match); 587MODULE_DEVICE_TABLE(of, spi_ppc4xx_of_match);
588 588
589static struct of_platform_driver spi_ppc4xx_of_driver = { 589static struct of_platform_driver spi_ppc4xx_of_driver = {
590 .match_table = spi_ppc4xx_of_match,
591 .probe = spi_ppc4xx_of_probe, 590 .probe = spi_ppc4xx_of_probe,
592 .remove = __exit_p(spi_ppc4xx_of_remove), 591 .remove = __exit_p(spi_ppc4xx_of_remove),
593 .driver = { 592 .driver = {
594 .name = DRIVER_NAME, 593 .name = DRIVER_NAME,
595 .owner = THIS_MODULE, 594 .owner = THIS_MODULE,
595 .of_match_table = spi_ppc4xx_of_match,
596 }, 596 },
597}; 597};
598 598
diff --git a/drivers/spi/xilinx_spi_of.c b/drivers/spi/xilinx_spi_of.c
index 748d33a76d29..55c58012a028 100644
--- a/drivers/spi/xilinx_spi_of.c
+++ b/drivers/spi/xilinx_spi_of.c
@@ -109,12 +109,12 @@ static const struct of_device_id xilinx_spi_of_match[] = {
109MODULE_DEVICE_TABLE(of, xilinx_spi_of_match); 109MODULE_DEVICE_TABLE(of, xilinx_spi_of_match);
110 110
111static struct of_platform_driver xilinx_spi_of_driver = { 111static struct of_platform_driver xilinx_spi_of_driver = {
112 .match_table = xilinx_spi_of_match,
113 .probe = xilinx_spi_of_probe, 112 .probe = xilinx_spi_of_probe,
114 .remove = __exit_p(xilinx_spi_of_remove), 113 .remove = __exit_p(xilinx_spi_of_remove),
115 .driver = { 114 .driver = {
116 .name = "xilinx-xps-spi", 115 .name = "xilinx-xps-spi",
117 .owner = THIS_MODULE, 116 .owner = THIS_MODULE,
117 .of_match_table = xilinx_spi_of_match,
118 }, 118 },
119}; 119};
120 120
diff --git a/drivers/usb/gadget/fsl_qe_udc.c b/drivers/usb/gadget/fsl_qe_udc.c
index 3537d51073b2..2928523268b5 100644
--- a/drivers/usb/gadget/fsl_qe_udc.c
+++ b/drivers/usb/gadget/fsl_qe_udc.c
@@ -2768,8 +2768,11 @@ static const struct of_device_id qe_udc_match[] __devinitconst = {
2768MODULE_DEVICE_TABLE(of, qe_udc_match); 2768MODULE_DEVICE_TABLE(of, qe_udc_match);
2769 2769
2770static struct of_platform_driver udc_driver = { 2770static struct of_platform_driver udc_driver = {
2771 .name = (char *)driver_name, 2771 .driver = {
2772 .match_table = qe_udc_match, 2772 .name = (char *)driver_name,
2773 .owner = THIS_MODULE,
2774 .of_match_table = qe_udc_match,
2775 },
2773 .probe = qe_udc_probe, 2776 .probe = qe_udc_probe,
2774 .remove = __devexit_p(qe_udc_remove), 2777 .remove = __devexit_p(qe_udc_remove),
2775#ifdef CONFIG_PM 2778#ifdef CONFIG_PM
diff --git a/drivers/usb/host/ehci-ppc-of.c b/drivers/usb/host/ehci-ppc-of.c
index ad0662354a5e..5aec92866ab3 100644
--- a/drivers/usb/host/ehci-ppc-of.c
+++ b/drivers/usb/host/ehci-ppc-of.c
@@ -274,13 +274,12 @@ MODULE_DEVICE_TABLE(of, ehci_hcd_ppc_of_match);
274 274
275 275
276static struct of_platform_driver ehci_hcd_ppc_of_driver = { 276static struct of_platform_driver ehci_hcd_ppc_of_driver = {
277 .name = "ppc-of-ehci",
278 .match_table = ehci_hcd_ppc_of_match,
279 .probe = ehci_hcd_ppc_of_probe, 277 .probe = ehci_hcd_ppc_of_probe,
280 .remove = ehci_hcd_ppc_of_remove, 278 .remove = ehci_hcd_ppc_of_remove,
281 .shutdown = ehci_hcd_ppc_of_shutdown, 279 .shutdown = ehci_hcd_ppc_of_shutdown,
282 .driver = { 280 .driver = {
283 .name = "ppc-of-ehci", 281 .name = "ppc-of-ehci",
284 .owner = THIS_MODULE, 282 .owner = THIS_MODULE,
283 .of_match_table = ehci_hcd_ppc_of_match,
285 }, 284 },
286}; 285};
diff --git a/drivers/usb/host/ehci-xilinx-of.c b/drivers/usb/host/ehci-xilinx-of.c
index f603bb2c0a8e..013972bbde57 100644
--- a/drivers/usb/host/ehci-xilinx-of.c
+++ b/drivers/usb/host/ehci-xilinx-of.c
@@ -288,13 +288,12 @@ static const struct of_device_id ehci_hcd_xilinx_of_match[] = {
288MODULE_DEVICE_TABLE(of, ehci_hcd_xilinx_of_match); 288MODULE_DEVICE_TABLE(of, ehci_hcd_xilinx_of_match);
289 289
290static struct of_platform_driver ehci_hcd_xilinx_of_driver = { 290static struct of_platform_driver ehci_hcd_xilinx_of_driver = {
291 .name = "xilinx-of-ehci",
292 .match_table = ehci_hcd_xilinx_of_match,
293 .probe = ehci_hcd_xilinx_of_probe, 291 .probe = ehci_hcd_xilinx_of_probe,
294 .remove = ehci_hcd_xilinx_of_remove, 292 .remove = ehci_hcd_xilinx_of_remove,
295 .shutdown = ehci_hcd_xilinx_of_shutdown, 293 .shutdown = ehci_hcd_xilinx_of_shutdown,
296 .driver = { 294 .driver = {
297 .name = "xilinx-of-ehci", 295 .name = "xilinx-of-ehci",
298 .owner = THIS_MODULE, 296 .owner = THIS_MODULE,
297 .of_match_table = ehci_hcd_xilinx_of_match,
299 }, 298 },
300}; 299};
diff --git a/drivers/usb/host/fhci-hcd.c b/drivers/usb/host/fhci-hcd.c
index 6135732d8057..7b5c62654bfd 100644
--- a/drivers/usb/host/fhci-hcd.c
+++ b/drivers/usb/host/fhci-hcd.c
@@ -813,8 +813,11 @@ static const struct of_device_id of_fhci_match[] = {
813MODULE_DEVICE_TABLE(of, of_fhci_match); 813MODULE_DEVICE_TABLE(of, of_fhci_match);
814 814
815static struct of_platform_driver of_fhci_driver = { 815static struct of_platform_driver of_fhci_driver = {
816 .name = "fsl,usb-fhci", 816 .driver = {
817 .match_table = of_fhci_match, 817 .name = "fsl,usb-fhci",
818 .owner = THIS_MODULE,
819 .of_match_table = of_fhci_match,
820 },
818 .probe = of_fhci_probe, 821 .probe = of_fhci_probe,
819 .remove = __devexit_p(of_fhci_remove), 822 .remove = __devexit_p(of_fhci_remove),
820}; 823};
diff --git a/drivers/usb/host/isp1760-if.c b/drivers/usb/host/isp1760-if.c
index 36360e24a9b9..100d5faebe3c 100644
--- a/drivers/usb/host/isp1760-if.c
+++ b/drivers/usb/host/isp1760-if.c
@@ -121,8 +121,11 @@ static const struct of_device_id of_isp1760_match[] = {
121MODULE_DEVICE_TABLE(of, of_isp1760_match); 121MODULE_DEVICE_TABLE(of, of_isp1760_match);
122 122
123static struct of_platform_driver isp1760_of_driver = { 123static struct of_platform_driver isp1760_of_driver = {
124 .name = "nxp-isp1760", 124 .driver = {
125 .match_table = of_isp1760_match, 125 .name = "nxp-isp1760",
126 .owner = THIS_MODULE,
127 .of_match_table = of_isp1760_match,
128 },
126 .probe = of_isp1760_probe, 129 .probe = of_isp1760_probe,
127 .remove = of_isp1760_remove, 130 .remove = of_isp1760_remove,
128}; 131};
diff --git a/drivers/usb/host/ohci-ppc-of.c b/drivers/usb/host/ohci-ppc-of.c
index 003aea21c35e..df165917412a 100644
--- a/drivers/usb/host/ohci-ppc-of.c
+++ b/drivers/usb/host/ohci-ppc-of.c
@@ -244,18 +244,13 @@ MODULE_DEVICE_TABLE(of, ohci_hcd_ppc_of_match);
244 244
245 245
246static struct of_platform_driver ohci_hcd_ppc_of_driver = { 246static struct of_platform_driver ohci_hcd_ppc_of_driver = {
247 .name = "ppc-of-ohci",
248 .match_table = ohci_hcd_ppc_of_match,
249 .probe = ohci_hcd_ppc_of_probe, 247 .probe = ohci_hcd_ppc_of_probe,
250 .remove = ohci_hcd_ppc_of_remove, 248 .remove = ohci_hcd_ppc_of_remove,
251 .shutdown = ohci_hcd_ppc_of_shutdown, 249 .shutdown = ohci_hcd_ppc_of_shutdown,
252#ifdef CONFIG_PM 250 .driver = {
253 /*.suspend = ohci_hcd_ppc_soc_drv_suspend,*/ 251 .name = "ppc-of-ohci",
254 /*.resume = ohci_hcd_ppc_soc_drv_resume,*/ 252 .owner = THIS_MODULE,
255#endif 253 .of_match_table = ohci_hcd_ppc_of_match,
256 .driver = {
257 .name = "ppc-of-ohci",
258 .owner = THIS_MODULE,
259 }, 254 },
260}; 255};
261 256
diff --git a/drivers/video/bw2.c b/drivers/video/bw2.c
index 43320925c4ce..2c371c07f0da 100644
--- a/drivers/video/bw2.c
+++ b/drivers/video/bw2.c
@@ -376,8 +376,11 @@ static const struct of_device_id bw2_match[] = {
376MODULE_DEVICE_TABLE(of, bw2_match); 376MODULE_DEVICE_TABLE(of, bw2_match);
377 377
378static struct of_platform_driver bw2_driver = { 378static struct of_platform_driver bw2_driver = {
379 .name = "bw2", 379 .driver = {
380 .match_table = bw2_match, 380 .name = "bw2",
381 .owner = THIS_MODULE,
382 .of_match_table = bw2_match,
383 },
381 .probe = bw2_probe, 384 .probe = bw2_probe,
382 .remove = __devexit_p(bw2_remove), 385 .remove = __devexit_p(bw2_remove),
383}; 386};
diff --git a/drivers/video/cg14.c b/drivers/video/cg14.c
index 77a040af20a7..d12e05b6e63f 100644
--- a/drivers/video/cg14.c
+++ b/drivers/video/cg14.c
@@ -596,8 +596,11 @@ static const struct of_device_id cg14_match[] = {
596MODULE_DEVICE_TABLE(of, cg14_match); 596MODULE_DEVICE_TABLE(of, cg14_match);
597 597
598static struct of_platform_driver cg14_driver = { 598static struct of_platform_driver cg14_driver = {
599 .name = "cg14", 599 .driver = {
600 .match_table = cg14_match, 600 .name = "cg14",
601 .owner = THIS_MODULE,
602 .of_match_table = cg14_match,
603 },
601 .probe = cg14_probe, 604 .probe = cg14_probe,
602 .remove = __devexit_p(cg14_remove), 605 .remove = __devexit_p(cg14_remove),
603}; 606};
diff --git a/drivers/video/cg3.c b/drivers/video/cg3.c
index 30eedf79322c..b98f93f7f663 100644
--- a/drivers/video/cg3.c
+++ b/drivers/video/cg3.c
@@ -463,8 +463,11 @@ static const struct of_device_id cg3_match[] = {
463MODULE_DEVICE_TABLE(of, cg3_match); 463MODULE_DEVICE_TABLE(of, cg3_match);
464 464
465static struct of_platform_driver cg3_driver = { 465static struct of_platform_driver cg3_driver = {
466 .name = "cg3", 466 .driver = {
467 .match_table = cg3_match, 467 .name = "cg3",
468 .owner = THIS_MODULE,
469 .of_match_table = cg3_match,
470 },
468 .probe = cg3_probe, 471 .probe = cg3_probe,
469 .remove = __devexit_p(cg3_remove), 472 .remove = __devexit_p(cg3_remove),
470}; 473};
diff --git a/drivers/video/cg6.c b/drivers/video/cg6.c
index 7f59b0fe5dc2..480d761a27a8 100644
--- a/drivers/video/cg6.c
+++ b/drivers/video/cg6.c
@@ -856,8 +856,11 @@ static const struct of_device_id cg6_match[] = {
856MODULE_DEVICE_TABLE(of, cg6_match); 856MODULE_DEVICE_TABLE(of, cg6_match);
857 857
858static struct of_platform_driver cg6_driver = { 858static struct of_platform_driver cg6_driver = {
859 .name = "cg6", 859 .driver = {
860 .match_table = cg6_match, 860 .name = "cg6",
861 .owner = THIS_MODULE,
862 .of_match_table = cg6_match,
863 },
861 .probe = cg6_probe, 864 .probe = cg6_probe,
862 .remove = __devexit_p(cg6_remove), 865 .remove = __devexit_p(cg6_remove),
863}; 866};
diff --git a/drivers/video/ffb.c b/drivers/video/ffb.c
index ddd46f71e250..95c0227f47fc 100644
--- a/drivers/video/ffb.c
+++ b/drivers/video/ffb.c
@@ -1053,8 +1053,11 @@ static const struct of_device_id ffb_match[] = {
1053MODULE_DEVICE_TABLE(of, ffb_match); 1053MODULE_DEVICE_TABLE(of, ffb_match);
1054 1054
1055static struct of_platform_driver ffb_driver = { 1055static struct of_platform_driver ffb_driver = {
1056 .name = "ffb", 1056 .driver = {
1057 .match_table = ffb_match, 1057 .name = "ffb",
1058 .owner = THIS_MODULE,
1059 .of_match_table = ffb_match,
1060 },
1058 .probe = ffb_probe, 1061 .probe = ffb_probe,
1059 .remove = __devexit_p(ffb_remove), 1062 .remove = __devexit_p(ffb_remove),
1060}; 1063};
diff --git a/drivers/video/fsl-diu-fb.c b/drivers/video/fsl-diu-fb.c
index 930a2522a631..27455ce298b7 100644
--- a/drivers/video/fsl-diu-fb.c
+++ b/drivers/video/fsl-diu-fb.c
@@ -1647,9 +1647,11 @@ static struct of_device_id fsl_diu_match[] = {
1647MODULE_DEVICE_TABLE(of, fsl_diu_match); 1647MODULE_DEVICE_TABLE(of, fsl_diu_match);
1648 1648
1649static struct of_platform_driver fsl_diu_driver = { 1649static struct of_platform_driver fsl_diu_driver = {
1650 .owner = THIS_MODULE, 1650 .driver = {
1651 .name = "fsl_diu", 1651 .name = "fsl_diu",
1652 .match_table = fsl_diu_match, 1652 .owner = THIS_MODULE,
1653 .of_match_table = fsl_diu_match,
1654 },
1653 .probe = fsl_diu_probe, 1655 .probe = fsl_diu_probe,
1654 .remove = fsl_diu_remove, 1656 .remove = fsl_diu_remove,
1655 .suspend = fsl_diu_suspend, 1657 .suspend = fsl_diu_suspend,
diff --git a/drivers/video/leo.c b/drivers/video/leo.c
index 1db55f128490..3d7895316eaf 100644
--- a/drivers/video/leo.c
+++ b/drivers/video/leo.c
@@ -663,8 +663,11 @@ static const struct of_device_id leo_match[] = {
663MODULE_DEVICE_TABLE(of, leo_match); 663MODULE_DEVICE_TABLE(of, leo_match);
664 664
665static struct of_platform_driver leo_driver = { 665static struct of_platform_driver leo_driver = {
666 .name = "leo", 666 .driver = {
667 .match_table = leo_match, 667 .name = "leo",
668 .owner = THIS_MODULE,
669 .of_match_table = leo_match,
670 },
668 .probe = leo_probe, 671 .probe = leo_probe,
669 .remove = __devexit_p(leo_remove), 672 .remove = __devexit_p(leo_remove),
670}; 673};
diff --git a/drivers/video/mb862xx/mb862xxfb.c b/drivers/video/mb862xx/mb862xxfb.c
index 8280a58a0e55..0540de4f5cb4 100644
--- a/drivers/video/mb862xx/mb862xxfb.c
+++ b/drivers/video/mb862xx/mb862xxfb.c
@@ -718,9 +718,11 @@ static struct of_device_id __devinitdata of_platform_mb862xx_tbl[] = {
718}; 718};
719 719
720static struct of_platform_driver of_platform_mb862xxfb_driver = { 720static struct of_platform_driver of_platform_mb862xxfb_driver = {
721 .owner = THIS_MODULE, 721 .driver = {
722 .name = DRV_NAME, 722 .name = DRV_NAME,
723 .match_table = of_platform_mb862xx_tbl, 723 .owner = THIS_MODULE,
724 .of_match_table = of_platform_mb862xx_tbl,
725 },
724 .probe = of_platform_mb862xx_probe, 726 .probe = of_platform_mb862xx_probe,
725 .remove = __devexit_p(of_platform_mb862xx_remove), 727 .remove = __devexit_p(of_platform_mb862xx_remove),
726}; 728};
diff --git a/drivers/video/p9100.c b/drivers/video/p9100.c
index 81440f2b9091..c85dd408a9b8 100644
--- a/drivers/video/p9100.c
+++ b/drivers/video/p9100.c
@@ -353,8 +353,11 @@ static const struct of_device_id p9100_match[] = {
353MODULE_DEVICE_TABLE(of, p9100_match); 353MODULE_DEVICE_TABLE(of, p9100_match);
354 354
355static struct of_platform_driver p9100_driver = { 355static struct of_platform_driver p9100_driver = {
356 .name = "p9100", 356 .driver = {
357 .match_table = p9100_match, 357 .name = "p9100",
358 .owner = THIS_MODULE,
359 .of_match_table = p9100_match,
360 },
358 .probe = p9100_probe, 361 .probe = p9100_probe,
359 .remove = __devexit_p(p9100_remove), 362 .remove = __devexit_p(p9100_remove),
360}; 363};
diff --git a/drivers/video/platinumfb.c b/drivers/video/platinumfb.c
index 69d78d50f0f6..72a1f4c04732 100644
--- a/drivers/video/platinumfb.c
+++ b/drivers/video/platinumfb.c
@@ -679,8 +679,11 @@ static struct of_device_id platinumfb_match[] =
679 679
680static struct of_platform_driver platinum_driver = 680static struct of_platform_driver platinum_driver =
681{ 681{
682 .name = "platinumfb", 682 .driver = {
683 .match_table = platinumfb_match, 683 .name = "platinumfb",
684 .owner = THIS_MODULE,
685 .of_match_table = platinumfb_match,
686 },
684 .probe = platinumfb_probe, 687 .probe = platinumfb_probe,
685 .remove = platinumfb_remove, 688 .remove = platinumfb_remove,
686}; 689};
diff --git a/drivers/video/sunxvr1000.c b/drivers/video/sunxvr1000.c
index ad92a200fafa..489b44e8db81 100644
--- a/drivers/video/sunxvr1000.c
+++ b/drivers/video/sunxvr1000.c
@@ -199,10 +199,13 @@ static const struct of_device_id gfb_match[] = {
199MODULE_DEVICE_TABLE(of, ffb_match); 199MODULE_DEVICE_TABLE(of, ffb_match);
200 200
201static struct of_platform_driver gfb_driver = { 201static struct of_platform_driver gfb_driver = {
202 .name = "gfb",
203 .match_table = gfb_match,
204 .probe = gfb_probe, 202 .probe = gfb_probe,
205 .remove = __devexit_p(gfb_remove), 203 .remove = __devexit_p(gfb_remove),
204 .driver = {
205 .name = "gfb",
206 .owner = THIS_MODULE,
207 .of_match_table = gfb_match,
208 },
206}; 209};
207 210
208static int __init gfb_init(void) 211static int __init gfb_init(void)
diff --git a/drivers/video/tcx.c b/drivers/video/tcx.c
index c0c2b18fcdcf..ef7a7bd8b503 100644
--- a/drivers/video/tcx.c
+++ b/drivers/video/tcx.c
@@ -512,8 +512,11 @@ static const struct of_device_id tcx_match[] = {
512MODULE_DEVICE_TABLE(of, tcx_match); 512MODULE_DEVICE_TABLE(of, tcx_match);
513 513
514static struct of_platform_driver tcx_driver = { 514static struct of_platform_driver tcx_driver = {
515 .name = "tcx", 515 .driver = {
516 .match_table = tcx_match, 516 .name = "tcx",
517 .owner = THIS_MODULE,
518 .of_match_table = tcx_match,
519 },
517 .probe = tcx_probe, 520 .probe = tcx_probe,
518 .remove = __devexit_p(tcx_remove), 521 .remove = __devexit_p(tcx_remove),
519}; 522};
diff --git a/drivers/video/xilinxfb.c b/drivers/video/xilinxfb.c
index 6fcec553662c..574dc54e12d4 100644
--- a/drivers/video/xilinxfb.c
+++ b/drivers/video/xilinxfb.c
@@ -492,13 +492,12 @@ static struct of_device_id xilinxfb_of_match[] __devinitdata = {
492MODULE_DEVICE_TABLE(of, xilinxfb_of_match); 492MODULE_DEVICE_TABLE(of, xilinxfb_of_match);
493 493
494static struct of_platform_driver xilinxfb_of_driver = { 494static struct of_platform_driver xilinxfb_of_driver = {
495 .owner = THIS_MODULE,
496 .name = DRIVER_NAME,
497 .match_table = xilinxfb_of_match,
498 .probe = xilinxfb_of_probe, 495 .probe = xilinxfb_of_probe,
499 .remove = __devexit_p(xilinxfb_of_remove), 496 .remove = __devexit_p(xilinxfb_of_remove),
500 .driver = { 497 .driver = {
501 .name = DRIVER_NAME, 498 .name = DRIVER_NAME,
499 .owner = THIS_MODULE,
500 .of_match_table = xilinxfb_of_match,
502 }, 501 },
503}; 502};
504 503
diff --git a/drivers/watchdog/cpwd.c b/drivers/watchdog/cpwd.c
index 2fcc3cf7ef62..d62b9ce8f773 100644
--- a/drivers/watchdog/cpwd.c
+++ b/drivers/watchdog/cpwd.c
@@ -677,8 +677,11 @@ static const struct of_device_id cpwd_match[] = {
677MODULE_DEVICE_TABLE(of, cpwd_match); 677MODULE_DEVICE_TABLE(of, cpwd_match);
678 678
679static struct of_platform_driver cpwd_driver = { 679static struct of_platform_driver cpwd_driver = {
680 .name = DRIVER_NAME, 680 .driver = {
681 .match_table = cpwd_match, 681 .name = DRIVER_NAME,
682 .owner = THIS_MODULE,
683 .of_match_table = cpwd_match,
684 },
682 .probe = cpwd_probe, 685 .probe = cpwd_probe,
683 .remove = __devexit_p(cpwd_remove), 686 .remove = __devexit_p(cpwd_remove),
684}; 687};
diff --git a/drivers/watchdog/gef_wdt.c b/drivers/watchdog/gef_wdt.c
index abdbad034a6c..ca0f4c6cf5ab 100644
--- a/drivers/watchdog/gef_wdt.c
+++ b/drivers/watchdog/gef_wdt.c
@@ -303,9 +303,11 @@ static const struct of_device_id gef_wdt_ids[] = {
303}; 303};
304 304
305static struct of_platform_driver gef_wdt_driver = { 305static struct of_platform_driver gef_wdt_driver = {
306 .owner = THIS_MODULE, 306 .driver = {
307 .name = "gef_wdt", 307 .name = "gef_wdt",
308 .match_table = gef_wdt_ids, 308 .owner = THIS_MODULE,
309 .of_match_table = gef_wdt_ids,
310 },
309 .probe = gef_wdt_probe, 311 .probe = gef_wdt_probe,
310}; 312};
311 313
diff --git a/drivers/watchdog/mpc8xxx_wdt.c b/drivers/watchdog/mpc8xxx_wdt.c
index 4e3941c5e293..7b55974191dd 100644
--- a/drivers/watchdog/mpc8xxx_wdt.c
+++ b/drivers/watchdog/mpc8xxx_wdt.c
@@ -273,12 +273,12 @@ static const struct of_device_id mpc8xxx_wdt_match[] = {
273MODULE_DEVICE_TABLE(of, mpc8xxx_wdt_match); 273MODULE_DEVICE_TABLE(of, mpc8xxx_wdt_match);
274 274
275static struct of_platform_driver mpc8xxx_wdt_driver = { 275static struct of_platform_driver mpc8xxx_wdt_driver = {
276 .match_table = mpc8xxx_wdt_match,
277 .probe = mpc8xxx_wdt_probe, 276 .probe = mpc8xxx_wdt_probe,
278 .remove = __devexit_p(mpc8xxx_wdt_remove), 277 .remove = __devexit_p(mpc8xxx_wdt_remove),
279 .driver = { 278 .driver = {
280 .name = "mpc8xxx_wdt", 279 .name = "mpc8xxx_wdt",
281 .owner = THIS_MODULE, 280 .owner = THIS_MODULE,
281 .of_match_table = mpc8xxx_wdt_match,
282 }, 282 },
283}; 283};
284 284
diff --git a/drivers/watchdog/riowd.c b/drivers/watchdog/riowd.c
index ea7f803f6248..5dceeddc8859 100644
--- a/drivers/watchdog/riowd.c
+++ b/drivers/watchdog/riowd.c
@@ -239,8 +239,11 @@ static const struct of_device_id riowd_match[] = {
239MODULE_DEVICE_TABLE(of, riowd_match); 239MODULE_DEVICE_TABLE(of, riowd_match);
240 240
241static struct of_platform_driver riowd_driver = { 241static struct of_platform_driver riowd_driver = {
242 .name = DRIVER_NAME, 242 .driver = {
243 .match_table = riowd_match, 243 .name = DRIVER_NAME,
244 .owner = THIS_MODULE,
245 .of_match_table = riowd_match,
246 },
244 .probe = riowd_probe, 247 .probe = riowd_probe,
245 .remove = __devexit_p(riowd_remove), 248 .remove = __devexit_p(riowd_remove),
246}; 249};
diff --git a/include/linux/of_platform.h b/include/linux/of_platform.h
index ac3ae0758fbe..1643d3761eb4 100644
--- a/include/linux/of_platform.h
+++ b/include/linux/of_platform.h
@@ -31,10 +31,6 @@ extern struct bus_type of_platform_bus_type;
31 */ 31 */
32struct of_platform_driver 32struct of_platform_driver
33{ 33{
34 const char *name;
35 const struct of_device_id *match_table;
36 struct module *owner;
37
38 int (*probe)(struct of_device* dev, 34 int (*probe)(struct of_device* dev,
39 const struct of_device_id *match); 35 const struct of_device_id *match);
40 int (*remove)(struct of_device* dev); 36 int (*remove)(struct of_device* dev);
diff --git a/sound/soc/fsl/mpc5200_psc_ac97.c b/sound/soc/fsl/mpc5200_psc_ac97.c
index 3dbc7f7cd7b9..e2ee220bfb7e 100644
--- a/sound/soc/fsl/mpc5200_psc_ac97.c
+++ b/sound/soc/fsl/mpc5200_psc_ac97.c
@@ -317,12 +317,12 @@ static struct of_device_id psc_ac97_match[] __devinitdata = {
317MODULE_DEVICE_TABLE(of, psc_ac97_match); 317MODULE_DEVICE_TABLE(of, psc_ac97_match);
318 318
319static struct of_platform_driver psc_ac97_driver = { 319static struct of_platform_driver psc_ac97_driver = {
320 .match_table = psc_ac97_match,
321 .probe = psc_ac97_of_probe, 320 .probe = psc_ac97_of_probe,
322 .remove = __devexit_p(psc_ac97_of_remove), 321 .remove = __devexit_p(psc_ac97_of_remove),
323 .driver = { 322 .driver = {
324 .name = "mpc5200-psc-ac97", 323 .name = "mpc5200-psc-ac97",
325 .owner = THIS_MODULE, 324 .owner = THIS_MODULE,
325 .of_match_table = psc_ac97_match,
326 }, 326 },
327}; 327};
328 328
diff --git a/sound/soc/fsl/mpc5200_psc_i2s.c b/sound/soc/fsl/mpc5200_psc_i2s.c
index 748cc0f0df38..4f455bd6851f 100644
--- a/sound/soc/fsl/mpc5200_psc_i2s.c
+++ b/sound/soc/fsl/mpc5200_psc_i2s.c
@@ -220,12 +220,12 @@ static struct of_device_id psc_i2s_match[] __devinitdata = {
220MODULE_DEVICE_TABLE(of, psc_i2s_match); 220MODULE_DEVICE_TABLE(of, psc_i2s_match);
221 221
222static struct of_platform_driver psc_i2s_driver = { 222static struct of_platform_driver psc_i2s_driver = {
223 .match_table = psc_i2s_match,
224 .probe = psc_i2s_of_probe, 223 .probe = psc_i2s_of_probe,
225 .remove = __devexit_p(psc_i2s_of_remove), 224 .remove = __devexit_p(psc_i2s_of_remove),
226 .driver = { 225 .driver = {
227 .name = "mpc5200-psc-i2s", 226 .name = "mpc5200-psc-i2s",
228 .owner = THIS_MODULE, 227 .owner = THIS_MODULE,
228 .of_match_table = psc_i2s_match,
229 }, 229 },
230}; 230};
231 231
diff --git a/sound/soc/fsl/mpc8610_hpcd.c b/sound/soc/fsl/mpc8610_hpcd.c
index e3f78f255a60..6a2764ee8203 100644
--- a/sound/soc/fsl/mpc8610_hpcd.c
+++ b/sound/soc/fsl/mpc8610_hpcd.c
@@ -580,9 +580,11 @@ static struct of_device_id mpc8610_hpcd_match[] = {
580MODULE_DEVICE_TABLE(of, mpc8610_hpcd_match); 580MODULE_DEVICE_TABLE(of, mpc8610_hpcd_match);
581 581
582static struct of_platform_driver mpc8610_hpcd_of_driver = { 582static struct of_platform_driver mpc8610_hpcd_of_driver = {
583 .owner = THIS_MODULE, 583 .driver = {
584 .name = "mpc8610_hpcd", 584 .name = "mpc8610_hpcd",
585 .match_table = mpc8610_hpcd_match, 585 .owner = THIS_MODULE,
586 .of_match_table = mpc8610_hpcd_match,
587 },
586 .probe = mpc8610_hpcd_probe, 588 .probe = mpc8610_hpcd_probe,
587 .remove = mpc8610_hpcd_remove, 589 .remove = mpc8610_hpcd_remove,
588}; 590};
diff --git a/sound/sparc/amd7930.c b/sound/sparc/amd7930.c
index 574af56ba8a6..71221fd20944 100644
--- a/sound/sparc/amd7930.c
+++ b/sound/sparc/amd7930.c
@@ -1065,8 +1065,11 @@ static const struct of_device_id amd7930_match[] = {
1065}; 1065};
1066 1066
1067static struct of_platform_driver amd7930_sbus_driver = { 1067static struct of_platform_driver amd7930_sbus_driver = {
1068 .name = "audio", 1068 .driver = {
1069 .match_table = amd7930_match, 1069 .name = "audio",
1070 .owner = THIS_MODULE,
1071 .of_match_table = amd7930_match,
1072 },
1070 .probe = amd7930_sbus_probe, 1073 .probe = amd7930_sbus_probe,
1071}; 1074};
1072 1075
diff --git a/sound/sparc/cs4231.c b/sound/sparc/cs4231.c
index 6a4c872e00df..fb4c6f2f29e5 100644
--- a/sound/sparc/cs4231.c
+++ b/sound/sparc/cs4231.c
@@ -2109,8 +2109,11 @@ static const struct of_device_id cs4231_match[] = {
2109MODULE_DEVICE_TABLE(of, cs4231_match); 2109MODULE_DEVICE_TABLE(of, cs4231_match);
2110 2110
2111static struct of_platform_driver cs4231_driver = { 2111static struct of_platform_driver cs4231_driver = {
2112 .name = "audio", 2112 .driver = {
2113 .match_table = cs4231_match, 2113 .name = "audio",
2114 .owner = THIS_MODULE,
2115 .of_match_table = cs4231_match,
2116 },
2114 .probe = cs4231_probe, 2117 .probe = cs4231_probe,
2115 .remove = __devexit_p(cs4231_remove), 2118 .remove = __devexit_p(cs4231_remove),
2116}; 2119};
diff --git a/sound/sparc/dbri.c b/sound/sparc/dbri.c
index 1b5192eb5ae5..1557bf132e73 100644
--- a/sound/sparc/dbri.c
+++ b/sound/sparc/dbri.c
@@ -2687,8 +2687,11 @@ static const struct of_device_id dbri_match[] = {
2687MODULE_DEVICE_TABLE(of, dbri_match); 2687MODULE_DEVICE_TABLE(of, dbri_match);
2688 2688
2689static struct of_platform_driver dbri_sbus_driver = { 2689static struct of_platform_driver dbri_sbus_driver = {
2690 .name = "dbri", 2690 .driver = {
2691 .match_table = dbri_match, 2691 .name = "dbri",
2692 .owner = THIS_MODULE,
2693 .of_match_table = dbri_match,
2694 },
2692 .probe = dbri_probe, 2695 .probe = dbri_probe,
2693 .remove = __devexit_p(dbri_remove), 2696 .remove = __devexit_p(dbri_remove),
2694}; 2697};