diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-16 20:28:10 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-16 20:28:10 -0400 |
| commit | 4c5811bf463b0ef82fabbd1708f8bb2d753aeb18 (patch) | |
| tree | ff37d31217c3804ca05de21a55a9b5ca1ca818b2 | |
| parent | f74b9444192c60603020c61d7915b72893137edc (diff) | |
| parent | 9f15444fefdb33509132ff5c9be60cb315c44cb2 (diff) | |
Merge branch 'devicetree/next' of git://git.secretlab.ca/git/linux-2.6
* 'devicetree/next' of git://git.secretlab.ca/git/linux-2.6: (21 commits)
tty: serial: altera_jtaguart: Add device tree support
tty: serial: altera_uart: Add devicetree support
dt: eliminate of_platform_driver shim code
dt: Eliminate of_platform_{,un}register_driver
dt/serial: Eliminate users of of_platform_{,un}register_driver
dt/usb: Eliminate users of of_platform_{,un}register_driver
dt/video: Eliminate users of of_platform_{,un}register_driver
dt/net: Eliminate users of of_platform_{,un}register_driver
dt/sound: Eliminate users of of_platform_{,un}register_driver
dt/spi: Eliminate users of of_platform_{,un}register_driver
dt: uartlite: merge platform and of_platform driver bindings
dt: xilinx_hwicap: merge platform and of_platform driver bindings
ipmi: convert OF driver to platform driver
leds/leds-gpio: merge platform_driver with of_platform_driver
dt/sparc: Eliminate users of of_platform_{,un}register_driver
dt/powerpc: Eliminate users of of_platform_{,un}register_driver
dt/powerpc: move of_bus_type infrastructure to ibmebus
drivercore/dt: add a match table pointer to struct device
dt: Typo fix.
altera_ps2: Add devicetree support
...
178 files changed, 1407 insertions, 1725 deletions
diff --git a/Documentation/devicetree/bindings/serial/altera_jtaguart.txt b/Documentation/devicetree/bindings/serial/altera_jtaguart.txt new file mode 100644 index 000000000000..c152f65f9a28 --- /dev/null +++ b/Documentation/devicetree/bindings/serial/altera_jtaguart.txt | |||
| @@ -0,0 +1,4 @@ | |||
| 1 | Altera JTAG UART | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible : should be "ALTR,juart-1.0" | ||
diff --git a/Documentation/devicetree/bindings/serial/altera_uart.txt b/Documentation/devicetree/bindings/serial/altera_uart.txt new file mode 100644 index 000000000000..71cae3f70100 --- /dev/null +++ b/Documentation/devicetree/bindings/serial/altera_uart.txt | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | Altera UART | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible : should be "ALTR,uart-1.0" | ||
| 5 | |||
| 6 | Optional properties: | ||
| 7 | - clock-frequency : frequency of the clock input to the UART | ||
diff --git a/Documentation/devicetree/bindings/serio/altera_ps2.txt b/Documentation/devicetree/bindings/serio/altera_ps2.txt new file mode 100644 index 000000000000..4d9eecc2ef7d --- /dev/null +++ b/Documentation/devicetree/bindings/serio/altera_ps2.txt | |||
| @@ -0,0 +1,4 @@ | |||
| 1 | Altera UP PS/2 controller | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible : should be "ALTR,ps2-1.0". | ||
diff --git a/arch/microblaze/pci/pci_32.c b/arch/microblaze/pci/pci_32.c index 3c3d808d7ce0..92728a6cfd80 100644 --- a/arch/microblaze/pci/pci_32.c +++ b/arch/microblaze/pci/pci_32.c | |||
| @@ -332,6 +332,7 @@ static void __devinit pcibios_scan_phb(struct pci_controller *hose) | |||
| 332 | hose->global_number); | 332 | hose->global_number); |
| 333 | return; | 333 | return; |
| 334 | } | 334 | } |
| 335 | bus.dev->of_node = of_node_get(node); | ||
| 335 | bus->secondary = hose->first_busno; | 336 | bus->secondary = hose->first_busno; |
| 336 | hose->bus = bus; | 337 | hose->bus = bus; |
| 337 | 338 | ||
diff --git a/arch/powerpc/include/asm/pci-bridge.h b/arch/powerpc/include/asm/pci-bridge.h index edeb80fdd2c3..5e156e034fe2 100644 --- a/arch/powerpc/include/asm/pci-bridge.h +++ b/arch/powerpc/include/asm/pci-bridge.h | |||
| @@ -164,13 +164,13 @@ extern void setup_indirect_pci(struct pci_controller* hose, | |||
| 164 | resource_size_t cfg_addr, | 164 | resource_size_t cfg_addr, |
| 165 | resource_size_t cfg_data, u32 flags); | 165 | resource_size_t cfg_data, u32 flags); |
| 166 | 166 | ||
| 167 | #ifndef CONFIG_PPC64 | ||
| 168 | |||
| 169 | static inline struct pci_controller *pci_bus_to_host(const struct pci_bus *bus) | 167 | static inline struct pci_controller *pci_bus_to_host(const struct pci_bus *bus) |
| 170 | { | 168 | { |
| 171 | return bus->sysdata; | 169 | return bus->sysdata; |
| 172 | } | 170 | } |
| 173 | 171 | ||
| 172 | #ifndef CONFIG_PPC64 | ||
| 173 | |||
| 174 | static inline struct device_node *pci_bus_to_OF_node(struct pci_bus *bus) | 174 | static inline struct device_node *pci_bus_to_OF_node(struct pci_bus *bus) |
| 175 | { | 175 | { |
| 176 | struct pci_controller *host; | 176 | struct pci_controller *host; |
| @@ -228,19 +228,10 @@ extern void * update_dn_pci_info(struct device_node *dn, void *data); | |||
| 228 | 228 | ||
| 229 | /* Get a device_node from a pci_dev. This code must be fast except | 229 | /* Get a device_node from a pci_dev. This code must be fast except |
| 230 | * in the case where the sysdata is incorrect and needs to be fixed | 230 | * in the case where the sysdata is incorrect and needs to be fixed |
| 231 | * up (this will only happen once). | 231 | * up (this will only happen once). */ |
| 232 | * In this case the sysdata will have been inherited from a PCI host | ||
| 233 | * bridge or a PCI-PCI bridge further up the tree, so it will point | ||
| 234 | * to a valid struct pci_dn, just not the one we want. | ||
| 235 | */ | ||
| 236 | static inline struct device_node *pci_device_to_OF_node(struct pci_dev *dev) | 232 | static inline struct device_node *pci_device_to_OF_node(struct pci_dev *dev) |
| 237 | { | 233 | { |
| 238 | struct device_node *dn = dev->sysdata; | 234 | return dev->dev.of_node ? dev->dev.of_node : fetch_dev_dn(dev); |
| 239 | struct pci_dn *pdn = dn->data; | ||
| 240 | |||
| 241 | if (pdn && pdn->devfn == dev->devfn && pdn->busno == dev->bus->number) | ||
| 242 | return dn; /* fast path. sysdata is good */ | ||
| 243 | return fetch_dev_dn(dev); | ||
| 244 | } | 235 | } |
| 245 | 236 | ||
| 246 | static inline int pci_device_from_OF_node(struct device_node *np, | 237 | static inline int pci_device_from_OF_node(struct device_node *np, |
| @@ -258,7 +249,7 @@ static inline struct device_node *pci_bus_to_OF_node(struct pci_bus *bus) | |||
| 258 | if (bus->self) | 249 | if (bus->self) |
| 259 | return pci_device_to_OF_node(bus->self); | 250 | return pci_device_to_OF_node(bus->self); |
| 260 | else | 251 | else |
| 261 | return bus->sysdata; /* Must be root bus (PHB) */ | 252 | return bus->dev.of_node; /* Must be root bus (PHB) */ |
| 262 | } | 253 | } |
| 263 | 254 | ||
| 264 | /** Find the bus corresponding to the indicated device node */ | 255 | /** Find the bus corresponding to the indicated device node */ |
| @@ -270,14 +261,6 @@ extern void pcibios_remove_pci_devices(struct pci_bus *bus); | |||
| 270 | /** Discover new pci devices under this bus, and add them */ | 261 | /** Discover new pci devices under this bus, and add them */ |
| 271 | extern void pcibios_add_pci_devices(struct pci_bus *bus); | 262 | extern void pcibios_add_pci_devices(struct pci_bus *bus); |
| 272 | 263 | ||
| 273 | static inline struct pci_controller *pci_bus_to_host(const struct pci_bus *bus) | ||
| 274 | { | ||
| 275 | struct device_node *busdn = bus->sysdata; | ||
| 276 | |||
| 277 | BUG_ON(busdn == NULL); | ||
| 278 | return PCI_DN(busdn)->phb; | ||
| 279 | } | ||
| 280 | |||
| 281 | 264 | ||
| 282 | extern void isa_bridge_find_early(struct pci_controller *hose); | 265 | extern void isa_bridge_find_early(struct pci_controller *hose); |
| 283 | 266 | ||
diff --git a/arch/powerpc/include/asm/pci.h b/arch/powerpc/include/asm/pci.h index a20a9ad2258b..7d7790954e02 100644 --- a/arch/powerpc/include/asm/pci.h +++ b/arch/powerpc/include/asm/pci.h | |||
| @@ -201,7 +201,7 @@ extern void pci_resource_to_user(const struct pci_dev *dev, int bar, | |||
| 201 | extern void pcibios_setup_bus_devices(struct pci_bus *bus); | 201 | extern void pcibios_setup_bus_devices(struct pci_bus *bus); |
| 202 | extern void pcibios_setup_bus_self(struct pci_bus *bus); | 202 | extern void pcibios_setup_bus_self(struct pci_bus *bus); |
| 203 | extern void pcibios_setup_phb_io_space(struct pci_controller *hose); | 203 | extern void pcibios_setup_phb_io_space(struct pci_controller *hose); |
| 204 | extern void pcibios_scan_phb(struct pci_controller *hose, void *sysdata); | 204 | extern void pcibios_scan_phb(struct pci_controller *hose); |
| 205 | 205 | ||
| 206 | #endif /* __KERNEL__ */ | 206 | #endif /* __KERNEL__ */ |
| 207 | #endif /* __ASM_POWERPC_PCI_H */ | 207 | #endif /* __ASM_POWERPC_PCI_H */ |
diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c index f62efdfd1769..c00d4ca1ee15 100644 --- a/arch/powerpc/kernel/ibmebus.c +++ b/arch/powerpc/kernel/ibmebus.c | |||
| @@ -201,13 +201,14 @@ int ibmebus_register_driver(struct of_platform_driver *drv) | |||
| 201 | /* If the driver uses devices that ibmebus doesn't know, add them */ | 201 | /* If the driver uses devices that ibmebus doesn't know, add them */ |
| 202 | ibmebus_create_devices(drv->driver.of_match_table); | 202 | ibmebus_create_devices(drv->driver.of_match_table); |
| 203 | 203 | ||
| 204 | return of_register_driver(drv, &ibmebus_bus_type); | 204 | drv->driver.bus = &ibmebus_bus_type; |
| 205 | return driver_register(&drv->driver); | ||
| 205 | } | 206 | } |
| 206 | EXPORT_SYMBOL(ibmebus_register_driver); | 207 | EXPORT_SYMBOL(ibmebus_register_driver); |
| 207 | 208 | ||
| 208 | void ibmebus_unregister_driver(struct of_platform_driver *drv) | 209 | void ibmebus_unregister_driver(struct of_platform_driver *drv) |
| 209 | { | 210 | { |
| 210 | of_unregister_driver(drv); | 211 | driver_unregister(&drv->driver); |
| 211 | } | 212 | } |
| 212 | EXPORT_SYMBOL(ibmebus_unregister_driver); | 213 | EXPORT_SYMBOL(ibmebus_unregister_driver); |
| 213 | 214 | ||
| @@ -308,15 +309,410 @@ static ssize_t ibmebus_store_remove(struct bus_type *bus, | |||
| 308 | } | 309 | } |
| 309 | } | 310 | } |
| 310 | 311 | ||
| 312 | |||
| 311 | static struct bus_attribute ibmebus_bus_attrs[] = { | 313 | static struct bus_attribute ibmebus_bus_attrs[] = { |
| 312 | __ATTR(probe, S_IWUSR, NULL, ibmebus_store_probe), | 314 | __ATTR(probe, S_IWUSR, NULL, ibmebus_store_probe), |
| 313 | __ATTR(remove, S_IWUSR, NULL, ibmebus_store_remove), | 315 | __ATTR(remove, S_IWUSR, NULL, ibmebus_store_remove), |
| 314 | __ATTR_NULL | 316 | __ATTR_NULL |
| 315 | }; | 317 | }; |
| 316 | 318 | ||
| 319 | static int ibmebus_bus_bus_match(struct device *dev, struct device_driver *drv) | ||
| 320 | { | ||
| 321 | const struct of_device_id *matches = drv->of_match_table; | ||
| 322 | |||
| 323 | if (!matches) | ||
| 324 | return 0; | ||
| 325 | |||
| 326 | return of_match_device(matches, dev) != NULL; | ||
| 327 | } | ||
| 328 | |||
| 329 | static int ibmebus_bus_device_probe(struct device *dev) | ||
| 330 | { | ||
| 331 | int error = -ENODEV; | ||
| 332 | struct of_platform_driver *drv; | ||
| 333 | struct platform_device *of_dev; | ||
| 334 | const struct of_device_id *match; | ||
| 335 | |||
| 336 | drv = to_of_platform_driver(dev->driver); | ||
| 337 | of_dev = to_platform_device(dev); | ||
| 338 | |||
| 339 | if (!drv->probe) | ||
| 340 | return error; | ||
| 341 | |||
| 342 | of_dev_get(of_dev); | ||
| 343 | |||
| 344 | match = of_match_device(drv->driver.of_match_table, dev); | ||
| 345 | if (match) | ||
| 346 | error = drv->probe(of_dev, match); | ||
| 347 | if (error) | ||
| 348 | of_dev_put(of_dev); | ||
| 349 | |||
| 350 | return error; | ||
| 351 | } | ||
| 352 | |||
| 353 | static int ibmebus_bus_device_remove(struct device *dev) | ||
| 354 | { | ||
| 355 | struct platform_device *of_dev = to_platform_device(dev); | ||
| 356 | struct of_platform_driver *drv = to_of_platform_driver(dev->driver); | ||
| 357 | |||
| 358 | if (dev->driver && drv->remove) | ||
| 359 | drv->remove(of_dev); | ||
| 360 | return 0; | ||
| 361 | } | ||
| 362 | |||
| 363 | static void ibmebus_bus_device_shutdown(struct device *dev) | ||
| 364 | { | ||
| 365 | struct platform_device *of_dev = to_platform_device(dev); | ||
| 366 | struct of_platform_driver *drv = to_of_platform_driver(dev->driver); | ||
| 367 | |||
| 368 | if (dev->driver && drv->shutdown) | ||
| 369 | drv->shutdown(of_dev); | ||
| 370 | } | ||
| 371 | |||
| 372 | /* | ||
| 373 | * ibmebus_bus_device_attrs | ||
| 374 | */ | ||
| 375 | static ssize_t devspec_show(struct device *dev, | ||
| 376 | struct device_attribute *attr, char *buf) | ||
| 377 | { | ||
| 378 | struct platform_device *ofdev; | ||
| 379 | |||
| 380 | ofdev = to_platform_device(dev); | ||
| 381 | return sprintf(buf, "%s\n", ofdev->dev.of_node->full_name); | ||
| 382 | } | ||
| 383 | |||
| 384 | static ssize_t name_show(struct device *dev, | ||
| 385 | struct device_attribute *attr, char *buf) | ||
| 386 | { | ||
| 387 | struct platform_device *ofdev; | ||
| 388 | |||
| 389 | ofdev = to_platform_device(dev); | ||
| 390 | return sprintf(buf, "%s\n", ofdev->dev.of_node->name); | ||
| 391 | } | ||
| 392 | |||
| 393 | static ssize_t modalias_show(struct device *dev, | ||
| 394 | struct device_attribute *attr, char *buf) | ||
| 395 | { | ||
| 396 | ssize_t len = of_device_get_modalias(dev, buf, PAGE_SIZE - 2); | ||
| 397 | buf[len] = '\n'; | ||
| 398 | buf[len+1] = 0; | ||
| 399 | return len+1; | ||
| 400 | } | ||
| 401 | |||
| 402 | struct device_attribute ibmebus_bus_device_attrs[] = { | ||
| 403 | __ATTR_RO(devspec), | ||
| 404 | __ATTR_RO(name), | ||
| 405 | __ATTR_RO(modalias), | ||
| 406 | __ATTR_NULL | ||
| 407 | }; | ||
| 408 | |||
| 409 | #ifdef CONFIG_PM_SLEEP | ||
| 410 | static int ibmebus_bus_legacy_suspend(struct device *dev, pm_message_t mesg) | ||
| 411 | { | ||
| 412 | struct platform_device *of_dev = to_platform_device(dev); | ||
| 413 | struct of_platform_driver *drv = to_of_platform_driver(dev->driver); | ||
| 414 | int ret = 0; | ||
| 415 | |||
| 416 | if (dev->driver && drv->suspend) | ||
| 417 | ret = drv->suspend(of_dev, mesg); | ||
| 418 | return ret; | ||
| 419 | } | ||
| 420 | |||
| 421 | static int ibmebus_bus_legacy_resume(struct device *dev) | ||
| 422 | { | ||
| 423 | struct platform_device *of_dev = to_platform_device(dev); | ||
| 424 | struct of_platform_driver *drv = to_of_platform_driver(dev->driver); | ||
| 425 | int ret = 0; | ||
| 426 | |||
| 427 | if (dev->driver && drv->resume) | ||
| 428 | ret = drv->resume(of_dev); | ||
| 429 | return ret; | ||
| 430 | } | ||
| 431 | |||
| 432 | static int ibmebus_bus_pm_prepare(struct device *dev) | ||
| 433 | { | ||
| 434 | struct device_driver *drv = dev->driver; | ||
| 435 | int ret = 0; | ||
| 436 | |||
| 437 | if (drv && drv->pm && drv->pm->prepare) | ||
| 438 | ret = drv->pm->prepare(dev); | ||
| 439 | |||
| 440 | return ret; | ||
| 441 | } | ||
| 442 | |||
| 443 | static void ibmebus_bus_pm_complete(struct device *dev) | ||
| 444 | { | ||
| 445 | struct device_driver *drv = dev->driver; | ||
| 446 | |||
| 447 | if (drv && drv->pm && drv->pm->complete) | ||
| 448 | drv->pm->complete(dev); | ||
| 449 | } | ||
| 450 | |||
| 451 | #ifdef CONFIG_SUSPEND | ||
| 452 | |||
| 453 | static int ibmebus_bus_pm_suspend(struct device *dev) | ||
| 454 | { | ||
| 455 | struct device_driver *drv = dev->driver; | ||
| 456 | int ret = 0; | ||
| 457 | |||
| 458 | if (!drv) | ||
| 459 | return 0; | ||
| 460 | |||
| 461 | if (drv->pm) { | ||
| 462 | if (drv->pm->suspend) | ||
| 463 | ret = drv->pm->suspend(dev); | ||
| 464 | } else { | ||
| 465 | ret = ibmebus_bus_legacy_suspend(dev, PMSG_SUSPEND); | ||
| 466 | } | ||
| 467 | |||
| 468 | return ret; | ||
| 469 | } | ||
| 470 | |||
| 471 | static int ibmebus_bus_pm_suspend_noirq(struct device *dev) | ||
| 472 | { | ||
| 473 | struct device_driver *drv = dev->driver; | ||
| 474 | int ret = 0; | ||
| 475 | |||
| 476 | if (!drv) | ||
| 477 | return 0; | ||
| 478 | |||
| 479 | if (drv->pm) { | ||
| 480 | if (drv->pm->suspend_noirq) | ||
| 481 | ret = drv->pm->suspend_noirq(dev); | ||
| 482 | } | ||
| 483 | |||
| 484 | return ret; | ||
| 485 | } | ||
| 486 | |||
| 487 | static int ibmebus_bus_pm_resume(struct device *dev) | ||
| 488 | { | ||
| 489 | struct device_driver *drv = dev->driver; | ||
| 490 | int ret = 0; | ||
| 491 | |||
| 492 | if (!drv) | ||
| 493 | return 0; | ||
| 494 | |||
| 495 | if (drv->pm) { | ||
| 496 | if (drv->pm->resume) | ||
| 497 | ret = drv->pm->resume(dev); | ||
| 498 | } else { | ||
| 499 | ret = ibmebus_bus_legacy_resume(dev); | ||
| 500 | } | ||
| 501 | |||
| 502 | return ret; | ||
| 503 | } | ||
| 504 | |||
| 505 | static int ibmebus_bus_pm_resume_noirq(struct device *dev) | ||
| 506 | { | ||
| 507 | struct device_driver *drv = dev->driver; | ||
| 508 | int ret = 0; | ||
| 509 | |||
| 510 | if (!drv) | ||
| 511 | return 0; | ||
| 512 | |||
| 513 | if (drv->pm) { | ||
| 514 | if (drv->pm->resume_noirq) | ||
| 515 | ret = drv->pm->resume_noirq(dev); | ||
| 516 | } | ||
| 517 | |||
| 518 | return ret; | ||
| 519 | } | ||
| 520 | |||
| 521 | #else /* !CONFIG_SUSPEND */ | ||
| 522 | |||
| 523 | #define ibmebus_bus_pm_suspend NULL | ||
| 524 | #define ibmebus_bus_pm_resume NULL | ||
| 525 | #define ibmebus_bus_pm_suspend_noirq NULL | ||
| 526 | #define ibmebus_bus_pm_resume_noirq NULL | ||
| 527 | |||
| 528 | #endif /* !CONFIG_SUSPEND */ | ||
| 529 | |||
| 530 | #ifdef CONFIG_HIBERNATION | ||
| 531 | |||
| 532 | static int ibmebus_bus_pm_freeze(struct device *dev) | ||
| 533 | { | ||
| 534 | struct device_driver *drv = dev->driver; | ||
| 535 | int ret = 0; | ||
| 536 | |||
| 537 | if (!drv) | ||
| 538 | return 0; | ||
| 539 | |||
| 540 | if (drv->pm) { | ||
| 541 | if (drv->pm->freeze) | ||
| 542 | ret = drv->pm->freeze(dev); | ||
| 543 | } else { | ||
| 544 | ret = ibmebus_bus_legacy_suspend(dev, PMSG_FREEZE); | ||
| 545 | } | ||
| 546 | |||
| 547 | return ret; | ||
| 548 | } | ||
| 549 | |||
| 550 | static int ibmebus_bus_pm_freeze_noirq(struct device *dev) | ||
| 551 | { | ||
| 552 | struct device_driver *drv = dev->driver; | ||
| 553 | int ret = 0; | ||
| 554 | |||
| 555 | if (!drv) | ||
| 556 | return 0; | ||
| 557 | |||
| 558 | if (drv->pm) { | ||
| 559 | if (drv->pm->freeze_noirq) | ||
| 560 | ret = drv->pm->freeze_noirq(dev); | ||
| 561 | } | ||
| 562 | |||
| 563 | return ret; | ||
| 564 | } | ||
| 565 | |||
| 566 | static int ibmebus_bus_pm_thaw(struct device *dev) | ||
| 567 | { | ||
| 568 | struct device_driver *drv = dev->driver; | ||
| 569 | int ret = 0; | ||
| 570 | |||
| 571 | if (!drv) | ||
| 572 | return 0; | ||
| 573 | |||
| 574 | if (drv->pm) { | ||
| 575 | if (drv->pm->thaw) | ||
| 576 | ret = drv->pm->thaw(dev); | ||
| 577 | } else { | ||
| 578 | ret = ibmebus_bus_legacy_resume(dev); | ||
| 579 | } | ||
| 580 | |||
| 581 | return ret; | ||
| 582 | } | ||
| 583 | |||
| 584 | static int ibmebus_bus_pm_thaw_noirq(struct device *dev) | ||
| 585 | { | ||
| 586 | struct device_driver *drv = dev->driver; | ||
| 587 | int ret = 0; | ||
| 588 | |||
| 589 | if (!drv) | ||
| 590 | return 0; | ||
| 591 | |||
| 592 | if (drv->pm) { | ||
| 593 | if (drv->pm->thaw_noirq) | ||
| 594 | ret = drv->pm->thaw_noirq(dev); | ||
| 595 | } | ||
| 596 | |||
| 597 | return ret; | ||
| 598 | } | ||
| 599 | |||
| 600 | static int ibmebus_bus_pm_poweroff(struct device *dev) | ||
| 601 | { | ||
| 602 | struct device_driver *drv = dev->driver; | ||
| 603 | int ret = 0; | ||
| 604 | |||
| 605 | if (!drv) | ||
| 606 | return 0; | ||
| 607 | |||
| 608 | if (drv->pm) { | ||
| 609 | if (drv->pm->poweroff) | ||
| 610 | ret = drv->pm->poweroff(dev); | ||
| 611 | } else { | ||
| 612 | ret = ibmebus_bus_legacy_suspend(dev, PMSG_HIBERNATE); | ||
| 613 | } | ||
| 614 | |||
| 615 | return ret; | ||
| 616 | } | ||
| 617 | |||
| 618 | static int ibmebus_bus_pm_poweroff_noirq(struct device *dev) | ||
| 619 | { | ||
| 620 | struct device_driver *drv = dev->driver; | ||
| 621 | int ret = 0; | ||
| 622 | |||
| 623 | if (!drv) | ||
| 624 | return 0; | ||
| 625 | |||
| 626 | if (drv->pm) { | ||
| 627 | if (drv->pm->poweroff_noirq) | ||
| 628 | ret = drv->pm->poweroff_noirq(dev); | ||
| 629 | } | ||
| 630 | |||
| 631 | return ret; | ||
| 632 | } | ||
| 633 | |||
| 634 | static int ibmebus_bus_pm_restore(struct device *dev) | ||
| 635 | { | ||
| 636 | struct device_driver *drv = dev->driver; | ||
| 637 | int ret = 0; | ||
| 638 | |||
| 639 | if (!drv) | ||
| 640 | return 0; | ||
| 641 | |||
| 642 | if (drv->pm) { | ||
| 643 | if (drv->pm->restore) | ||
| 644 | ret = drv->pm->restore(dev); | ||
| 645 | } else { | ||
| 646 | ret = ibmebus_bus_legacy_resume(dev); | ||
| 647 | } | ||
| 648 | |||
| 649 | return ret; | ||
| 650 | } | ||
| 651 | |||
| 652 | static int ibmebus_bus_pm_restore_noirq(struct device *dev) | ||
| 653 | { | ||
| 654 | struct device_driver *drv = dev->driver; | ||
| 655 | int ret = 0; | ||
| 656 | |||
| 657 | if (!drv) | ||
| 658 | return 0; | ||
| 659 | |||
| 660 | if (drv->pm) { | ||
| 661 | if (drv->pm->restore_noirq) | ||
| 662 | ret = drv->pm->restore_noirq(dev); | ||
| 663 | } | ||
| 664 | |||
| 665 | return ret; | ||
| 666 | } | ||
| 667 | |||
| 668 | #else /* !CONFIG_HIBERNATION */ | ||
| 669 | |||
| 670 | #define ibmebus_bus_pm_freeze NULL | ||
| 671 | #define ibmebus_bus_pm_thaw NULL | ||
| 672 | #define ibmebus_bus_pm_poweroff NULL | ||
| 673 | #define ibmebus_bus_pm_restore NULL | ||
| 674 | #define ibmebus_bus_pm_freeze_noirq NULL | ||
| 675 | #define ibmebus_bus_pm_thaw_noirq NULL | ||
| 676 | #define ibmebus_bus_pm_poweroff_noirq NULL | ||
| 677 | #define ibmebus_bus_pm_restore_noirq NULL | ||
| 678 | |||
| 679 | #endif /* !CONFIG_HIBERNATION */ | ||
| 680 | |||
| 681 | static struct dev_pm_ops ibmebus_bus_dev_pm_ops = { | ||
| 682 | .prepare = ibmebus_bus_pm_prepare, | ||
| 683 | .complete = ibmebus_bus_pm_complete, | ||
| 684 | .suspend = ibmebus_bus_pm_suspend, | ||
| 685 | .resume = ibmebus_bus_pm_resume, | ||
| 686 | .freeze = ibmebus_bus_pm_freeze, | ||
| 687 | .thaw = ibmebus_bus_pm_thaw, | ||
| 688 | .poweroff = ibmebus_bus_pm_poweroff, | ||
| 689 | .restore = ibmebus_bus_pm_restore, | ||
| 690 | .suspend_noirq = ibmebus_bus_pm_suspend_noirq, | ||
| 691 | .resume_noirq = ibmebus_bus_pm_resume_noirq, | ||
| 692 | .freeze_noirq = ibmebus_bus_pm_freeze_noirq, | ||
| 693 | .thaw_noirq = ibmebus_bus_pm_thaw_noirq, | ||
| 694 | .poweroff_noirq = ibmebus_bus_pm_poweroff_noirq, | ||
| 695 | .restore_noirq = ibmebus_bus_pm_restore_noirq, | ||
| 696 | }; | ||
| 697 | |||
| 698 | #define IBMEBUS_BUS_PM_OPS_PTR (&ibmebus_bus_dev_pm_ops) | ||
| 699 | |||
| 700 | #else /* !CONFIG_PM_SLEEP */ | ||
| 701 | |||
| 702 | #define IBMEBUS_BUS_PM_OPS_PTR NULL | ||
| 703 | |||
| 704 | #endif /* !CONFIG_PM_SLEEP */ | ||
| 705 | |||
| 317 | struct bus_type ibmebus_bus_type = { | 706 | struct bus_type ibmebus_bus_type = { |
| 707 | .name = "ibmebus", | ||
| 318 | .uevent = of_device_uevent, | 708 | .uevent = of_device_uevent, |
| 319 | .bus_attrs = ibmebus_bus_attrs | 709 | .bus_attrs = ibmebus_bus_attrs, |
| 710 | .match = ibmebus_bus_bus_match, | ||
| 711 | .probe = ibmebus_bus_device_probe, | ||
| 712 | .remove = ibmebus_bus_device_remove, | ||
| 713 | .shutdown = ibmebus_bus_device_shutdown, | ||
| 714 | .dev_attrs = ibmebus_bus_device_attrs, | ||
| 715 | .pm = IBMEBUS_BUS_PM_OPS_PTR, | ||
| 320 | }; | 716 | }; |
| 321 | EXPORT_SYMBOL(ibmebus_bus_type); | 717 | EXPORT_SYMBOL(ibmebus_bus_type); |
| 322 | 718 | ||
| @@ -326,7 +722,7 @@ static int __init ibmebus_bus_init(void) | |||
| 326 | 722 | ||
| 327 | printk(KERN_INFO "IBM eBus Device Driver\n"); | 723 | printk(KERN_INFO "IBM eBus Device Driver\n"); |
| 328 | 724 | ||
| 329 | err = of_bus_type_init(&ibmebus_bus_type, "ibmebus"); | 725 | err = bus_register(&ibmebus_bus_type); |
| 330 | if (err) { | 726 | if (err) { |
| 331 | printk(KERN_ERR "%s: failed to register IBM eBus.\n", | 727 | printk(KERN_ERR "%s: failed to register IBM eBus.\n", |
| 332 | __func__); | 728 | __func__); |
diff --git a/arch/powerpc/kernel/of_platform.c b/arch/powerpc/kernel/of_platform.c index b2c363ef38ad..24582181b6ec 100644 --- a/arch/powerpc/kernel/of_platform.c +++ b/arch/powerpc/kernel/of_platform.c | |||
| @@ -36,8 +36,7 @@ | |||
| 36 | * lacking some bits needed here. | 36 | * lacking some bits needed here. |
| 37 | */ | 37 | */ |
| 38 | 38 | ||
| 39 | static int __devinit of_pci_phb_probe(struct platform_device *dev, | 39 | static int __devinit of_pci_phb_probe(struct platform_device *dev) |
| 40 | const struct of_device_id *match) | ||
| 41 | { | 40 | { |
| 42 | struct pci_controller *phb; | 41 | struct pci_controller *phb; |
| 43 | 42 | ||
| @@ -74,7 +73,7 @@ static int __devinit of_pci_phb_probe(struct platform_device *dev, | |||
| 74 | #endif /* CONFIG_EEH */ | 73 | #endif /* CONFIG_EEH */ |
| 75 | 74 | ||
| 76 | /* Scan the bus */ | 75 | /* Scan the bus */ |
| 77 | pcibios_scan_phb(phb, dev->dev.of_node); | 76 | pcibios_scan_phb(phb); |
| 78 | if (phb->bus == NULL) | 77 | if (phb->bus == NULL) |
| 79 | return -ENXIO; | 78 | return -ENXIO; |
| 80 | 79 | ||
| @@ -104,7 +103,7 @@ static struct of_device_id of_pci_phb_ids[] = { | |||
| 104 | {} | 103 | {} |
| 105 | }; | 104 | }; |
| 106 | 105 | ||
| 107 | static struct of_platform_driver of_pci_phb_driver = { | 106 | static struct platform_driver of_pci_phb_driver = { |
| 108 | .probe = of_pci_phb_probe, | 107 | .probe = of_pci_phb_probe, |
| 109 | .driver = { | 108 | .driver = { |
| 110 | .name = "of-pci", | 109 | .name = "of-pci", |
| @@ -115,7 +114,7 @@ static struct of_platform_driver of_pci_phb_driver = { | |||
| 115 | 114 | ||
| 116 | static __init int of_pci_phb_init(void) | 115 | static __init int of_pci_phb_init(void) |
| 117 | { | 116 | { |
| 118 | return of_register_platform_driver(&of_pci_phb_driver); | 117 | return platform_driver_register(&of_pci_phb_driver); |
| 119 | } | 118 | } |
| 120 | 119 | ||
| 121 | device_initcall(of_pci_phb_init); | 120 | device_initcall(of_pci_phb_init); |
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index eb341be9a4d9..3cd85faa8ac6 100644 --- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c | |||
| @@ -1688,13 +1688,8 @@ int early_find_capability(struct pci_controller *hose, int bus, int devfn, | |||
| 1688 | /** | 1688 | /** |
| 1689 | * pci_scan_phb - Given a pci_controller, setup and scan the PCI bus | 1689 | * pci_scan_phb - Given a pci_controller, setup and scan the PCI bus |
| 1690 | * @hose: Pointer to the PCI host controller instance structure | 1690 | * @hose: Pointer to the PCI host controller instance structure |
| 1691 | * @sysdata: value to use for sysdata pointer. ppc32 and ppc64 differ here | ||
| 1692 | * | ||
| 1693 | * Note: the 'data' pointer is a temporary measure. As 32 and 64 bit | ||
| 1694 | * pci code gets merged, this parameter should become unnecessary because | ||
| 1695 | * both will use the same value. | ||
| 1696 | */ | 1691 | */ |
| 1697 | void __devinit pcibios_scan_phb(struct pci_controller *hose, void *sysdata) | 1692 | void __devinit pcibios_scan_phb(struct pci_controller *hose) |
| 1698 | { | 1693 | { |
| 1699 | struct pci_bus *bus; | 1694 | struct pci_bus *bus; |
| 1700 | struct device_node *node = hose->dn; | 1695 | struct device_node *node = hose->dn; |
| @@ -1704,13 +1699,13 @@ void __devinit pcibios_scan_phb(struct pci_controller *hose, void *sysdata) | |||
| 1704 | node ? node->full_name : "<NO NAME>"); | 1699 | node ? node->full_name : "<NO NAME>"); |
| 1705 | 1700 | ||
| 1706 | /* Create an empty bus for the toplevel */ | 1701 | /* Create an empty bus for the toplevel */ |
| 1707 | bus = pci_create_bus(hose->parent, hose->first_busno, hose->ops, | 1702 | bus = pci_create_bus(hose->parent, hose->first_busno, hose->ops, hose); |
| 1708 | sysdata); | ||
| 1709 | if (bus == NULL) { | 1703 | if (bus == NULL) { |
| 1710 | pr_err("Failed to create bus for PCI domain %04x\n", | 1704 | pr_err("Failed to create bus for PCI domain %04x\n", |
| 1711 | hose->global_number); | 1705 | hose->global_number); |
| 1712 | return; | 1706 | return; |
| 1713 | } | 1707 | } |
| 1708 | bus->dev.of_node = of_node_get(node); | ||
| 1714 | bus->secondary = hose->first_busno; | 1709 | bus->secondary = hose->first_busno; |
| 1715 | hose->bus = bus; | 1710 | hose->bus = bus; |
| 1716 | 1711 | ||
diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c index e7db5b48004a..bedb370459f2 100644 --- a/arch/powerpc/kernel/pci_32.c +++ b/arch/powerpc/kernel/pci_32.c | |||
| @@ -381,7 +381,7 @@ static int __init pcibios_init(void) | |||
| 381 | if (pci_assign_all_buses) | 381 | if (pci_assign_all_buses) |
| 382 | hose->first_busno = next_busno; | 382 | hose->first_busno = next_busno; |
| 383 | hose->last_busno = 0xff; | 383 | hose->last_busno = 0xff; |
| 384 | pcibios_scan_phb(hose, hose); | 384 | pcibios_scan_phb(hose); |
| 385 | pci_bus_add_devices(hose->bus); | 385 | pci_bus_add_devices(hose->bus); |
| 386 | if (pci_assign_all_buses || next_busno <= hose->last_busno) | 386 | if (pci_assign_all_buses || next_busno <= hose->last_busno) |
| 387 | next_busno = hose->last_busno + pcibios_assign_bus_offset; | 387 | next_busno = hose->last_busno + pcibios_assign_bus_offset; |
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c index 851577608a78..fc6452b6be9f 100644 --- a/arch/powerpc/kernel/pci_64.c +++ b/arch/powerpc/kernel/pci_64.c | |||
| @@ -64,7 +64,7 @@ static int __init pcibios_init(void) | |||
| 64 | 64 | ||
| 65 | /* Scan all of the recorded PCI controllers. */ | 65 | /* Scan all of the recorded PCI controllers. */ |
| 66 | list_for_each_entry_safe(hose, tmp, &hose_list, list_node) { | 66 | list_for_each_entry_safe(hose, tmp, &hose_list, list_node) { |
| 67 | pcibios_scan_phb(hose, hose->dn); | 67 | pcibios_scan_phb(hose); |
| 68 | pci_bus_add_devices(hose->bus); | 68 | pci_bus_add_devices(hose->bus); |
| 69 | } | 69 | } |
| 70 | 70 | ||
| @@ -242,10 +242,10 @@ long sys_pciconfig_iobase(long which, unsigned long in_bus, | |||
| 242 | break; | 242 | break; |
| 243 | bus = NULL; | 243 | bus = NULL; |
| 244 | } | 244 | } |
| 245 | if (bus == NULL || bus->sysdata == NULL) | 245 | if (bus == NULL || bus->dev.of_node == NULL) |
| 246 | return -ENODEV; | 246 | return -ENODEV; |
| 247 | 247 | ||
| 248 | hose_node = (struct device_node *)bus->sysdata; | 248 | hose_node = bus->dev.of_node; |
| 249 | hose = PCI_DN(hose_node)->phb; | 249 | hose = PCI_DN(hose_node)->phb; |
| 250 | 250 | ||
| 251 | switch (which) { | 251 | switch (which) { |
diff --git a/arch/powerpc/kernel/pci_dn.c b/arch/powerpc/kernel/pci_dn.c index d56b35ee7f74..29852688ceaa 100644 --- a/arch/powerpc/kernel/pci_dn.c +++ b/arch/powerpc/kernel/pci_dn.c | |||
| @@ -161,7 +161,7 @@ static void *is_devfn_node(struct device_node *dn, void *data) | |||
| 161 | /* | 161 | /* |
| 162 | * This is the "slow" path for looking up a device_node from a | 162 | * This is the "slow" path for looking up a device_node from a |
| 163 | * pci_dev. It will hunt for the device under its parent's | 163 | * pci_dev. It will hunt for the device under its parent's |
| 164 | * phb and then update sysdata for a future fastpath. | 164 | * phb and then update of_node pointer. |
| 165 | * | 165 | * |
| 166 | * It may also do fixups on the actual device since this happens | 166 | * It may also do fixups on the actual device since this happens |
| 167 | * on the first read/write. | 167 | * on the first read/write. |
| @@ -170,16 +170,19 @@ static void *is_devfn_node(struct device_node *dn, void *data) | |||
| 170 | * In this case it may probe for real hardware ("just in case") | 170 | * In this case it may probe for real hardware ("just in case") |
| 171 | * and add a device_node to the device tree if necessary. | 171 | * and add a device_node to the device tree if necessary. |
| 172 | * | 172 | * |
| 173 | * Is this function necessary anymore now that dev->dev.of_node is | ||
| 174 | * used to store the node pointer? | ||
| 175 | * | ||
| 173 | */ | 176 | */ |
| 174 | struct device_node *fetch_dev_dn(struct pci_dev *dev) | 177 | struct device_node *fetch_dev_dn(struct pci_dev *dev) |
| 175 | { | 178 | { |
| 176 | struct device_node *orig_dn = dev->sysdata; | 179 | struct device_node *orig_dn = dev->dev.of_node; |
| 177 | struct device_node *dn; | 180 | struct device_node *dn; |
| 178 | unsigned long searchval = (dev->bus->number << 8) | dev->devfn; | 181 | unsigned long searchval = (dev->bus->number << 8) | dev->devfn; |
| 179 | 182 | ||
| 180 | dn = traverse_pci_devices(orig_dn, is_devfn_node, (void *)searchval); | 183 | dn = traverse_pci_devices(orig_dn, is_devfn_node, (void *)searchval); |
| 181 | if (dn) | 184 | if (dn) |
| 182 | dev->sysdata = dn; | 185 | dev->dev.of_node = dn; |
| 183 | return dn; | 186 | return dn; |
| 184 | } | 187 | } |
| 185 | EXPORT_SYMBOL(fetch_dev_dn); | 188 | EXPORT_SYMBOL(fetch_dev_dn); |
diff --git a/arch/powerpc/kernel/pci_of_scan.c b/arch/powerpc/kernel/pci_of_scan.c index e751506323b4..1e89a72fd030 100644 --- a/arch/powerpc/kernel/pci_of_scan.c +++ b/arch/powerpc/kernel/pci_of_scan.c | |||
| @@ -135,7 +135,7 @@ struct pci_dev *of_create_pci_dev(struct device_node *node, | |||
| 135 | pr_debug(" create device, devfn: %x, type: %s\n", devfn, type); | 135 | pr_debug(" create device, devfn: %x, type: %s\n", devfn, type); |
| 136 | 136 | ||
| 137 | dev->bus = bus; | 137 | dev->bus = bus; |
| 138 | dev->sysdata = node; | 138 | dev->dev.of_node = of_node_get(node); |
| 139 | dev->dev.parent = bus->bridge; | 139 | dev->dev.parent = bus->bridge; |
| 140 | dev->dev.bus = &pci_bus_type; | 140 | dev->dev.bus = &pci_bus_type; |
| 141 | dev->devfn = devfn; | 141 | dev->devfn = devfn; |
| @@ -238,7 +238,7 @@ void __devinit of_scan_pci_bridge(struct device_node *node, | |||
| 238 | bus->primary = dev->bus->number; | 238 | bus->primary = dev->bus->number; |
| 239 | bus->subordinate = busrange[1]; | 239 | bus->subordinate = busrange[1]; |
| 240 | bus->bridge_ctl = 0; | 240 | bus->bridge_ctl = 0; |
| 241 | bus->sysdata = node; | 241 | bus->dev.of_node = of_node_get(node); |
| 242 | 242 | ||
| 243 | /* parse ranges property */ | 243 | /* parse ranges property */ |
| 244 | /* PCI #address-cells == 3 and #size-cells == 2 always */ | 244 | /* PCI #address-cells == 3 and #size-cells == 2 always */ |
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpio.c b/arch/powerpc/platforms/52xx/mpc52xx_gpio.c index 0dad9a935eb5..1757d1db4b51 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_gpio.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_gpio.c | |||
| @@ -147,8 +147,7 @@ mpc52xx_wkup_gpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val) | |||
| 147 | return 0; | 147 | return 0; |
| 148 | } | 148 | } |
| 149 | 149 | ||
| 150 | static int __devinit mpc52xx_wkup_gpiochip_probe(struct platform_device *ofdev, | 150 | static int __devinit mpc52xx_wkup_gpiochip_probe(struct platform_device *ofdev) |
| 151 | const struct of_device_id *match) | ||
| 152 | { | 151 | { |
| 153 | struct mpc52xx_gpiochip *chip; | 152 | struct mpc52xx_gpiochip *chip; |
| 154 | struct mpc52xx_gpio_wkup __iomem *regs; | 153 | struct mpc52xx_gpio_wkup __iomem *regs; |
| @@ -191,7 +190,7 @@ static const struct of_device_id mpc52xx_wkup_gpiochip_match[] = { | |||
| 191 | {} | 190 | {} |
| 192 | }; | 191 | }; |
| 193 | 192 | ||
| 194 | static struct of_platform_driver mpc52xx_wkup_gpiochip_driver = { | 193 | static struct platform_driver mpc52xx_wkup_gpiochip_driver = { |
| 195 | .driver = { | 194 | .driver = { |
| 196 | .name = "gpio_wkup", | 195 | .name = "gpio_wkup", |
| 197 | .owner = THIS_MODULE, | 196 | .owner = THIS_MODULE, |
| @@ -310,8 +309,7 @@ mpc52xx_simple_gpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val) | |||
| 310 | return 0; | 309 | return 0; |
| 311 | } | 310 | } |
| 312 | 311 | ||
| 313 | static int __devinit mpc52xx_simple_gpiochip_probe(struct platform_device *ofdev, | 312 | static int __devinit mpc52xx_simple_gpiochip_probe(struct platform_device *ofdev) |
| 314 | const struct of_device_id *match) | ||
| 315 | { | 313 | { |
| 316 | struct mpc52xx_gpiochip *chip; | 314 | struct mpc52xx_gpiochip *chip; |
| 317 | struct gpio_chip *gc; | 315 | struct gpio_chip *gc; |
| @@ -349,7 +347,7 @@ static const struct of_device_id mpc52xx_simple_gpiochip_match[] = { | |||
| 349 | {} | 347 | {} |
| 350 | }; | 348 | }; |
| 351 | 349 | ||
| 352 | static struct of_platform_driver mpc52xx_simple_gpiochip_driver = { | 350 | static struct platform_driver mpc52xx_simple_gpiochip_driver = { |
| 353 | .driver = { | 351 | .driver = { |
| 354 | .name = "gpio", | 352 | .name = "gpio", |
| 355 | .owner = THIS_MODULE, | 353 | .owner = THIS_MODULE, |
| @@ -361,10 +359,10 @@ static struct of_platform_driver mpc52xx_simple_gpiochip_driver = { | |||
| 361 | 359 | ||
| 362 | static int __init mpc52xx_gpio_init(void) | 360 | static int __init mpc52xx_gpio_init(void) |
| 363 | { | 361 | { |
| 364 | if (of_register_platform_driver(&mpc52xx_wkup_gpiochip_driver)) | 362 | if (platform_driver_register(&mpc52xx_wkup_gpiochip_driver)) |
| 365 | printk(KERN_ERR "Unable to register wakeup GPIO driver\n"); | 363 | printk(KERN_ERR "Unable to register wakeup GPIO driver\n"); |
| 366 | 364 | ||
| 367 | if (of_register_platform_driver(&mpc52xx_simple_gpiochip_driver)) | 365 | if (platform_driver_register(&mpc52xx_simple_gpiochip_driver)) |
| 368 | printk(KERN_ERR "Unable to register simple GPIO driver\n"); | 366 | printk(KERN_ERR "Unable to register simple GPIO driver\n"); |
| 369 | 367 | ||
| 370 | return 0; | 368 | return 0; |
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c index e0d703c7fdf7..859abf1c6d4b 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c | |||
| @@ -721,8 +721,7 @@ static inline int mpc52xx_gpt_wdt_setup(struct mpc52xx_gpt_priv *gpt, | |||
| 721 | /* --------------------------------------------------------------------- | 721 | /* --------------------------------------------------------------------- |
| 722 | * of_platform bus binding code | 722 | * of_platform bus binding code |
| 723 | */ | 723 | */ |
| 724 | static int __devinit mpc52xx_gpt_probe(struct platform_device *ofdev, | 724 | static int __devinit mpc52xx_gpt_probe(struct platform_device *ofdev) |
| 725 | const struct of_device_id *match) | ||
| 726 | { | 725 | { |
| 727 | struct mpc52xx_gpt_priv *gpt; | 726 | struct mpc52xx_gpt_priv *gpt; |
| 728 | 727 | ||
| @@ -781,7 +780,7 @@ static const struct of_device_id mpc52xx_gpt_match[] = { | |||
| 781 | {} | 780 | {} |
| 782 | }; | 781 | }; |
| 783 | 782 | ||
| 784 | static struct of_platform_driver mpc52xx_gpt_driver = { | 783 | static struct platform_driver mpc52xx_gpt_driver = { |
| 785 | .driver = { | 784 | .driver = { |
| 786 | .name = "mpc52xx-gpt", | 785 | .name = "mpc52xx-gpt", |
| 787 | .owner = THIS_MODULE, | 786 | .owner = THIS_MODULE, |
| @@ -793,10 +792,7 @@ static struct of_platform_driver mpc52xx_gpt_driver = { | |||
| 793 | 792 | ||
| 794 | static int __init mpc52xx_gpt_init(void) | 793 | static int __init mpc52xx_gpt_init(void) |
| 795 | { | 794 | { |
| 796 | if (of_register_platform_driver(&mpc52xx_gpt_driver)) | 795 | return platform_driver_register(&mpc52xx_gpt_driver); |
| 797 | pr_err("error registering MPC52xx GPT driver\n"); | ||
| 798 | |||
| 799 | return 0; | ||
| 800 | } | 796 | } |
| 801 | 797 | ||
| 802 | /* Make sure GPIOs and IRQs get set up before anyone tries to use them */ | 798 | /* Make sure GPIOs and IRQs get set up before anyone tries to use them */ |
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c b/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c index f4ac213c89c0..6385d883cb8d 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c | |||
| @@ -436,8 +436,7 @@ void mpc52xx_lpbfifo_abort(struct mpc52xx_lpbfifo_request *req) | |||
| 436 | } | 436 | } |
| 437 | EXPORT_SYMBOL(mpc52xx_lpbfifo_abort); | 437 | EXPORT_SYMBOL(mpc52xx_lpbfifo_abort); |
| 438 | 438 | ||
| 439 | static int __devinit mpc52xx_lpbfifo_probe(struct platform_device *op, | 439 | static int __devinit mpc52xx_lpbfifo_probe(struct platform_device *op) |
| 440 | const struct of_device_id *match) | ||
| 441 | { | 440 | { |
| 442 | struct resource res; | 441 | struct resource res; |
| 443 | int rc = -ENOMEM; | 442 | int rc = -ENOMEM; |
| @@ -536,7 +535,7 @@ static struct of_device_id mpc52xx_lpbfifo_match[] __devinitconst = { | |||
| 536 | {}, | 535 | {}, |
| 537 | }; | 536 | }; |
| 538 | 537 | ||
| 539 | static struct of_platform_driver mpc52xx_lpbfifo_driver = { | 538 | static struct platform_driver mpc52xx_lpbfifo_driver = { |
| 540 | .driver = { | 539 | .driver = { |
| 541 | .name = "mpc52xx-lpbfifo", | 540 | .name = "mpc52xx-lpbfifo", |
| 542 | .owner = THIS_MODULE, | 541 | .owner = THIS_MODULE, |
| @@ -551,14 +550,12 @@ static struct of_platform_driver mpc52xx_lpbfifo_driver = { | |||
| 551 | */ | 550 | */ |
| 552 | static int __init mpc52xx_lpbfifo_init(void) | 551 | static int __init mpc52xx_lpbfifo_init(void) |
| 553 | { | 552 | { |
| 554 | pr_debug("Registering LocalPlus bus FIFO driver\n"); | 553 | return platform_driver_register(&mpc52xx_lpbfifo_driver); |
| 555 | return of_register_platform_driver(&mpc52xx_lpbfifo_driver); | ||
| 556 | } | 554 | } |
| 557 | module_init(mpc52xx_lpbfifo_init); | 555 | module_init(mpc52xx_lpbfifo_init); |
| 558 | 556 | ||
| 559 | static void __exit mpc52xx_lpbfifo_exit(void) | 557 | static void __exit mpc52xx_lpbfifo_exit(void) |
| 560 | { | 558 | { |
| 561 | pr_debug("Unregistering LocalPlus bus FIFO driver\n"); | 559 | platform_driver_unregister(&mpc52xx_lpbfifo_driver); |
| 562 | of_unregister_platform_driver(&mpc52xx_lpbfifo_driver); | ||
| 563 | } | 560 | } |
| 564 | module_exit(mpc52xx_lpbfifo_exit); | 561 | module_exit(mpc52xx_lpbfifo_exit); |
diff --git a/arch/powerpc/platforms/82xx/ep8248e.c b/arch/powerpc/platforms/82xx/ep8248e.c index 1565e0446dc8..10ff526cd046 100644 --- a/arch/powerpc/platforms/82xx/ep8248e.c +++ b/arch/powerpc/platforms/82xx/ep8248e.c | |||
| @@ -111,8 +111,7 @@ static struct mdiobb_ctrl ep8248e_mdio_ctrl = { | |||
| 111 | .ops = &ep8248e_mdio_ops, | 111 | .ops = &ep8248e_mdio_ops, |
| 112 | }; | 112 | }; |
| 113 | 113 | ||
| 114 | static int __devinit ep8248e_mdio_probe(struct platform_device *ofdev, | 114 | static int __devinit ep8248e_mdio_probe(struct platform_device *ofdev) |
| 115 | const struct of_device_id *match) | ||
| 116 | { | 115 | { |
| 117 | struct mii_bus *bus; | 116 | struct mii_bus *bus; |
| 118 | struct resource res; | 117 | struct resource res; |
| @@ -167,7 +166,7 @@ static const struct of_device_id ep8248e_mdio_match[] = { | |||
| 167 | {}, | 166 | {}, |
| 168 | }; | 167 | }; |
| 169 | 168 | ||
| 170 | static struct of_platform_driver ep8248e_mdio_driver = { | 169 | static struct platform_driver ep8248e_mdio_driver = { |
| 171 | .driver = { | 170 | .driver = { |
| 172 | .name = "ep8248e-mdio-bitbang", | 171 | .name = "ep8248e-mdio-bitbang", |
| 173 | .owner = THIS_MODULE, | 172 | .owner = THIS_MODULE, |
| @@ -308,7 +307,7 @@ static __initdata struct of_device_id of_bus_ids[] = { | |||
| 308 | static int __init declare_of_platform_devices(void) | 307 | static int __init declare_of_platform_devices(void) |
| 309 | { | 308 | { |
| 310 | of_platform_bus_probe(NULL, of_bus_ids, NULL); | 309 | of_platform_bus_probe(NULL, of_bus_ids, NULL); |
| 311 | of_register_platform_driver(&ep8248e_mdio_driver); | 310 | platform_driver_register(&ep8248e_mdio_driver); |
| 312 | 311 | ||
| 313 | return 0; | 312 | return 0; |
| 314 | } | 313 | } |
diff --git a/arch/powerpc/platforms/83xx/suspend.c b/arch/powerpc/platforms/83xx/suspend.c index fd4f2f2f19e6..188272934cfb 100644 --- a/arch/powerpc/platforms/83xx/suspend.c +++ b/arch/powerpc/platforms/83xx/suspend.c | |||
| @@ -318,14 +318,18 @@ static const struct platform_suspend_ops mpc83xx_suspend_ops = { | |||
| 318 | .end = mpc83xx_suspend_end, | 318 | .end = mpc83xx_suspend_end, |
| 319 | }; | 319 | }; |
| 320 | 320 | ||
| 321 | static int pmc_probe(struct platform_device *ofdev, | 321 | static int pmc_probe(struct platform_device *ofdev) |
| 322 | const struct of_device_id *match) | ||
| 323 | { | 322 | { |
| 324 | struct device_node *np = ofdev->dev.of_node; | 323 | struct device_node *np = ofdev->dev.of_node; |
| 325 | struct resource res; | 324 | struct resource res; |
| 326 | struct pmc_type *type = match->data; | 325 | struct pmc_type *type; |
| 327 | int ret = 0; | 326 | int ret = 0; |
| 328 | 327 | ||
| 328 | if (!ofdev->dev.of_match) | ||
| 329 | return -EINVAL; | ||
| 330 | |||
| 331 | type = ofdev->dev.of_match->data; | ||
| 332 | |||
| 329 | if (!of_device_is_available(np)) | 333 | if (!of_device_is_available(np)) |
| 330 | return -ENODEV; | 334 | return -ENODEV; |
| 331 | 335 | ||
| @@ -422,7 +426,7 @@ static struct of_device_id pmc_match[] = { | |||
| 422 | {} | 426 | {} |
| 423 | }; | 427 | }; |
| 424 | 428 | ||
| 425 | static struct of_platform_driver pmc_driver = { | 429 | static struct platform_driver pmc_driver = { |
| 426 | .driver = { | 430 | .driver = { |
| 427 | .name = "mpc83xx-pmc", | 431 | .name = "mpc83xx-pmc", |
| 428 | .owner = THIS_MODULE, | 432 | .owner = THIS_MODULE, |
| @@ -434,7 +438,7 @@ static struct of_platform_driver pmc_driver = { | |||
| 434 | 438 | ||
| 435 | static int pmc_init(void) | 439 | static int pmc_init(void) |
| 436 | { | 440 | { |
| 437 | return of_register_platform_driver(&pmc_driver); | 441 | return platform_driver_register(&pmc_driver); |
| 438 | } | 442 | } |
| 439 | 443 | ||
| 440 | module_init(pmc_init); | 444 | module_init(pmc_init); |
diff --git a/arch/powerpc/platforms/cell/axon_msi.c b/arch/powerpc/platforms/cell/axon_msi.c index e3e379c6caa7..c35099af340e 100644 --- a/arch/powerpc/platforms/cell/axon_msi.c +++ b/arch/powerpc/platforms/cell/axon_msi.c | |||
| @@ -328,7 +328,7 @@ static struct irq_host_ops msic_host_ops = { | |||
| 328 | .map = msic_host_map, | 328 | .map = msic_host_map, |
| 329 | }; | 329 | }; |
| 330 | 330 | ||
| 331 | static int axon_msi_shutdown(struct platform_device *device) | 331 | static void axon_msi_shutdown(struct platform_device *device) |
| 332 | { | 332 | { |
| 333 | struct axon_msic *msic = dev_get_drvdata(&device->dev); | 333 | struct axon_msic *msic = dev_get_drvdata(&device->dev); |
| 334 | u32 tmp; | 334 | u32 tmp; |
| @@ -338,12 +338,9 @@ static int axon_msi_shutdown(struct platform_device *device) | |||
| 338 | tmp = dcr_read(msic->dcr_host, MSIC_CTRL_REG); | 338 | tmp = dcr_read(msic->dcr_host, MSIC_CTRL_REG); |
| 339 | tmp &= ~MSIC_CTRL_ENABLE & ~MSIC_CTRL_IRQ_ENABLE; | 339 | tmp &= ~MSIC_CTRL_ENABLE & ~MSIC_CTRL_IRQ_ENABLE; |
| 340 | msic_dcr_write(msic, MSIC_CTRL_REG, tmp); | 340 | msic_dcr_write(msic, MSIC_CTRL_REG, tmp); |
| 341 | |||
| 342 | return 0; | ||
| 343 | } | 341 | } |
| 344 | 342 | ||
| 345 | static int axon_msi_probe(struct platform_device *device, | 343 | static int axon_msi_probe(struct platform_device *device) |
| 346 | const struct of_device_id *device_id) | ||
| 347 | { | 344 | { |
| 348 | struct device_node *dn = device->dev.of_node; | 345 | struct device_node *dn = device->dev.of_node; |
| 349 | struct axon_msic *msic; | 346 | struct axon_msic *msic; |
| @@ -446,7 +443,7 @@ static const struct of_device_id axon_msi_device_id[] = { | |||
| 446 | {} | 443 | {} |
| 447 | }; | 444 | }; |
| 448 | 445 | ||
| 449 | static struct of_platform_driver axon_msi_driver = { | 446 | static struct platform_driver axon_msi_driver = { |
| 450 | .probe = axon_msi_probe, | 447 | .probe = axon_msi_probe, |
| 451 | .shutdown = axon_msi_shutdown, | 448 | .shutdown = axon_msi_shutdown, |
| 452 | .driver = { | 449 | .driver = { |
| @@ -458,7 +455,7 @@ static struct of_platform_driver axon_msi_driver = { | |||
| 458 | 455 | ||
| 459 | static int __init axon_msi_init(void) | 456 | static int __init axon_msi_init(void) |
| 460 | { | 457 | { |
| 461 | return of_register_platform_driver(&axon_msi_driver); | 458 | return platform_driver_register(&axon_msi_driver); |
| 462 | } | 459 | } |
| 463 | subsys_initcall(axon_msi_init); | 460 | subsys_initcall(axon_msi_init); |
| 464 | 461 | ||
diff --git a/arch/powerpc/platforms/pasemi/gpio_mdio.c b/arch/powerpc/platforms/pasemi/gpio_mdio.c index a5d907b5a4c2..9886296e08da 100644 --- a/arch/powerpc/platforms/pasemi/gpio_mdio.c +++ b/arch/powerpc/platforms/pasemi/gpio_mdio.c | |||
| @@ -216,8 +216,7 @@ static int gpio_mdio_reset(struct mii_bus *bus) | |||
| 216 | } | 216 | } |
| 217 | 217 | ||
| 218 | 218 | ||
| 219 | static int __devinit gpio_mdio_probe(struct platform_device *ofdev, | 219 | static int __devinit gpio_mdio_probe(struct platform_device *ofdev) |
| 220 | const struct of_device_id *match) | ||
| 221 | { | 220 | { |
| 222 | struct device *dev = &ofdev->dev; | 221 | struct device *dev = &ofdev->dev; |
| 223 | struct device_node *np = ofdev->dev.of_node; | 222 | struct device_node *np = ofdev->dev.of_node; |
| @@ -299,7 +298,7 @@ static struct of_device_id gpio_mdio_match[] = | |||
| 299 | }; | 298 | }; |
| 300 | MODULE_DEVICE_TABLE(of, gpio_mdio_match); | 299 | MODULE_DEVICE_TABLE(of, gpio_mdio_match); |
| 301 | 300 | ||
| 302 | static struct of_platform_driver gpio_mdio_driver = | 301 | static struct platform_driver gpio_mdio_driver = |
| 303 | { | 302 | { |
| 304 | .probe = gpio_mdio_probe, | 303 | .probe = gpio_mdio_probe, |
| 305 | .remove = gpio_mdio_remove, | 304 | .remove = gpio_mdio_remove, |
| @@ -326,13 +325,13 @@ int gpio_mdio_init(void) | |||
| 326 | if (!gpio_regs) | 325 | if (!gpio_regs) |
| 327 | return -ENODEV; | 326 | return -ENODEV; |
| 328 | 327 | ||
| 329 | return of_register_platform_driver(&gpio_mdio_driver); | 328 | return platform_driver_register(&gpio_mdio_driver); |
| 330 | } | 329 | } |
| 331 | module_init(gpio_mdio_init); | 330 | module_init(gpio_mdio_init); |
| 332 | 331 | ||
| 333 | void gpio_mdio_exit(void) | 332 | void gpio_mdio_exit(void) |
| 334 | { | 333 | { |
| 335 | of_unregister_platform_driver(&gpio_mdio_driver); | 334 | platform_driver_unregister(&gpio_mdio_driver); |
| 336 | if (gpio_regs) | 335 | if (gpio_regs) |
| 337 | iounmap(gpio_regs); | 336 | iounmap(gpio_regs); |
| 338 | } | 337 | } |
diff --git a/arch/powerpc/platforms/pseries/pci_dlpar.c b/arch/powerpc/platforms/pseries/pci_dlpar.c index 5fcc92a12d3e..3bf4488aaec6 100644 --- a/arch/powerpc/platforms/pseries/pci_dlpar.c +++ b/arch/powerpc/platforms/pseries/pci_dlpar.c | |||
| @@ -149,7 +149,7 @@ struct pci_controller * __devinit init_phb_dynamic(struct device_node *dn) | |||
| 149 | if (dn->child) | 149 | if (dn->child) |
| 150 | eeh_add_device_tree_early(dn); | 150 | eeh_add_device_tree_early(dn); |
| 151 | 151 | ||
| 152 | pcibios_scan_phb(phb, dn); | 152 | pcibios_scan_phb(phb); |
| 153 | pcibios_finish_adding_to_bus(phb->bus); | 153 | pcibios_finish_adding_to_bus(phb->bus); |
| 154 | 154 | ||
| 155 | return phb; | 155 | return phb; |
diff --git a/arch/powerpc/sysdev/axonram.c b/arch/powerpc/sysdev/axonram.c index 2659a60bd7b8..27402c7d309d 100644 --- a/arch/powerpc/sysdev/axonram.c +++ b/arch/powerpc/sysdev/axonram.c | |||
| @@ -172,10 +172,9 @@ static const struct block_device_operations axon_ram_devops = { | |||
| 172 | 172 | ||
| 173 | /** | 173 | /** |
| 174 | * axon_ram_probe - probe() method for platform driver | 174 | * axon_ram_probe - probe() method for platform driver |
| 175 | * @device, @device_id: see of_platform_driver method | 175 | * @device: see platform_driver method |
| 176 | */ | 176 | */ |
| 177 | static int axon_ram_probe(struct platform_device *device, | 177 | static int axon_ram_probe(struct platform_device *device) |
| 178 | const struct of_device_id *device_id) | ||
| 179 | { | 178 | { |
| 180 | static int axon_ram_bank_id = -1; | 179 | static int axon_ram_bank_id = -1; |
| 181 | struct axon_ram_bank *bank; | 180 | struct axon_ram_bank *bank; |
| @@ -326,7 +325,7 @@ static struct of_device_id axon_ram_device_id[] = { | |||
| 326 | {} | 325 | {} |
| 327 | }; | 326 | }; |
| 328 | 327 | ||
| 329 | static struct of_platform_driver axon_ram_driver = { | 328 | static struct platform_driver axon_ram_driver = { |
| 330 | .probe = axon_ram_probe, | 329 | .probe = axon_ram_probe, |
| 331 | .remove = axon_ram_remove, | 330 | .remove = axon_ram_remove, |
| 332 | .driver = { | 331 | .driver = { |
| @@ -350,7 +349,7 @@ axon_ram_init(void) | |||
| 350 | } | 349 | } |
| 351 | azfs_minor = 0; | 350 | azfs_minor = 0; |
| 352 | 351 | ||
| 353 | return of_register_platform_driver(&axon_ram_driver); | 352 | return platform_driver_register(&axon_ram_driver); |
| 354 | } | 353 | } |
| 355 | 354 | ||
| 356 | /** | 355 | /** |
| @@ -359,7 +358,7 @@ axon_ram_init(void) | |||
| 359 | static void __exit | 358 | static void __exit |
| 360 | axon_ram_exit(void) | 359 | axon_ram_exit(void) |
| 361 | { | 360 | { |
| 362 | of_unregister_platform_driver(&axon_ram_driver); | 361 | platform_driver_unregister(&axon_ram_driver); |
| 363 | unregister_blkdev(azfs_major, AXON_RAM_DEVICE_NAME); | 362 | unregister_blkdev(azfs_major, AXON_RAM_DEVICE_NAME); |
| 364 | } | 363 | } |
| 365 | 364 | ||
diff --git a/arch/powerpc/sysdev/bestcomm/bestcomm.c b/arch/powerpc/sysdev/bestcomm/bestcomm.c index 650256115064..b3fbb271be87 100644 --- a/arch/powerpc/sysdev/bestcomm/bestcomm.c +++ b/arch/powerpc/sysdev/bestcomm/bestcomm.c | |||
| @@ -365,8 +365,7 @@ bcom_engine_cleanup(void) | |||
| 365 | /* OF platform driver */ | 365 | /* OF platform driver */ |
| 366 | /* ======================================================================== */ | 366 | /* ======================================================================== */ |
| 367 | 367 | ||
| 368 | static int __devinit mpc52xx_bcom_probe(struct platform_device *op, | 368 | static int __devinit mpc52xx_bcom_probe(struct platform_device *op) |
| 369 | const struct of_device_id *match) | ||
| 370 | { | 369 | { |
| 371 | struct device_node *ofn_sram; | 370 | struct device_node *ofn_sram; |
| 372 | struct resource res_bcom; | 371 | struct resource res_bcom; |
| @@ -492,7 +491,7 @@ static struct of_device_id mpc52xx_bcom_of_match[] = { | |||
| 492 | MODULE_DEVICE_TABLE(of, mpc52xx_bcom_of_match); | 491 | MODULE_DEVICE_TABLE(of, mpc52xx_bcom_of_match); |
| 493 | 492 | ||
| 494 | 493 | ||
| 495 | static struct of_platform_driver mpc52xx_bcom_of_platform_driver = { | 494 | static struct platform_driver mpc52xx_bcom_of_platform_driver = { |
| 496 | .probe = mpc52xx_bcom_probe, | 495 | .probe = mpc52xx_bcom_probe, |
| 497 | .remove = mpc52xx_bcom_remove, | 496 | .remove = mpc52xx_bcom_remove, |
| 498 | .driver = { | 497 | .driver = { |
| @@ -510,13 +509,13 @@ static struct of_platform_driver mpc52xx_bcom_of_platform_driver = { | |||
| 510 | static int __init | 509 | static int __init |
| 511 | mpc52xx_bcom_init(void) | 510 | mpc52xx_bcom_init(void) |
| 512 | { | 511 | { |
| 513 | return of_register_platform_driver(&mpc52xx_bcom_of_platform_driver); | 512 | return platform_driver_register(&mpc52xx_bcom_of_platform_driver); |
| 514 | } | 513 | } |
| 515 | 514 | ||
| 516 | static void __exit | 515 | static void __exit |
| 517 | mpc52xx_bcom_exit(void) | 516 | mpc52xx_bcom_exit(void) |
| 518 | { | 517 | { |
| 519 | of_unregister_platform_driver(&mpc52xx_bcom_of_platform_driver); | 518 | platform_driver_unregister(&mpc52xx_bcom_of_platform_driver); |
| 520 | } | 519 | } |
| 521 | 520 | ||
| 522 | /* If we're not a module, we must make sure everything is setup before */ | 521 | /* If we're not a module, we must make sure everything is setup before */ |
diff --git a/arch/powerpc/sysdev/fsl_85xx_l2ctlr.c b/arch/powerpc/sysdev/fsl_85xx_l2ctlr.c index cc8d6556d799..2b9f0c925326 100644 --- a/arch/powerpc/sysdev/fsl_85xx_l2ctlr.c +++ b/arch/powerpc/sysdev/fsl_85xx_l2ctlr.c | |||
| @@ -71,8 +71,7 @@ static int __init get_offset_from_cmdline(char *str) | |||
| 71 | __setup("cache-sram-size=", get_size_from_cmdline); | 71 | __setup("cache-sram-size=", get_size_from_cmdline); |
| 72 | __setup("cache-sram-offset=", get_offset_from_cmdline); | 72 | __setup("cache-sram-offset=", get_offset_from_cmdline); |
| 73 | 73 | ||
| 74 | static int __devinit mpc85xx_l2ctlr_of_probe(struct platform_device *dev, | 74 | static int __devinit mpc85xx_l2ctlr_of_probe(struct platform_device *dev) |
| 75 | const struct of_device_id *match) | ||
| 76 | { | 75 | { |
| 77 | long rval; | 76 | long rval; |
| 78 | unsigned int rem; | 77 | unsigned int rem; |
| @@ -204,7 +203,7 @@ static struct of_device_id mpc85xx_l2ctlr_of_match[] = { | |||
| 204 | {}, | 203 | {}, |
| 205 | }; | 204 | }; |
| 206 | 205 | ||
| 207 | static struct of_platform_driver mpc85xx_l2ctlr_of_platform_driver = { | 206 | static struct platform_driver mpc85xx_l2ctlr_of_platform_driver = { |
| 208 | .driver = { | 207 | .driver = { |
| 209 | .name = "fsl-l2ctlr", | 208 | .name = "fsl-l2ctlr", |
| 210 | .owner = THIS_MODULE, | 209 | .owner = THIS_MODULE, |
| @@ -216,12 +215,12 @@ static struct of_platform_driver mpc85xx_l2ctlr_of_platform_driver = { | |||
| 216 | 215 | ||
| 217 | static __init int mpc85xx_l2ctlr_of_init(void) | 216 | static __init int mpc85xx_l2ctlr_of_init(void) |
| 218 | { | 217 | { |
| 219 | return of_register_platform_driver(&mpc85xx_l2ctlr_of_platform_driver); | 218 | return platform_driver_register(&mpc85xx_l2ctlr_of_platform_driver); |
| 220 | } | 219 | } |
| 221 | 220 | ||
| 222 | static void __exit mpc85xx_l2ctlr_of_exit(void) | 221 | static void __exit mpc85xx_l2ctlr_of_exit(void) |
| 223 | { | 222 | { |
| 224 | of_unregister_platform_driver(&mpc85xx_l2ctlr_of_platform_driver); | 223 | platform_driver_unregister(&mpc85xx_l2ctlr_of_platform_driver); |
| 225 | } | 224 | } |
| 226 | 225 | ||
| 227 | subsys_initcall(mpc85xx_l2ctlr_of_init); | 226 | subsys_initcall(mpc85xx_l2ctlr_of_init); |
diff --git a/arch/powerpc/sysdev/fsl_msi.c b/arch/powerpc/sysdev/fsl_msi.c index 108d76fa8f1c..ee6a8a52ac71 100644 --- a/arch/powerpc/sysdev/fsl_msi.c +++ b/arch/powerpc/sysdev/fsl_msi.c | |||
| @@ -273,8 +273,7 @@ static int fsl_of_msi_remove(struct platform_device *ofdev) | |||
| 273 | return 0; | 273 | return 0; |
| 274 | } | 274 | } |
| 275 | 275 | ||
| 276 | static int __devinit fsl_of_msi_probe(struct platform_device *dev, | 276 | static int __devinit fsl_of_msi_probe(struct platform_device *dev) |
| 277 | const struct of_device_id *match) | ||
| 278 | { | 277 | { |
| 279 | struct fsl_msi *msi; | 278 | struct fsl_msi *msi; |
| 280 | struct resource res; | 279 | struct resource res; |
| @@ -282,11 +281,15 @@ static int __devinit fsl_of_msi_probe(struct platform_device *dev, | |||
| 282 | int rc; | 281 | int rc; |
| 283 | int virt_msir; | 282 | int virt_msir; |
| 284 | const u32 *p; | 283 | const u32 *p; |
| 285 | struct fsl_msi_feature *features = match->data; | 284 | struct fsl_msi_feature *features; |
| 286 | struct fsl_msi_cascade_data *cascade_data = NULL; | 285 | struct fsl_msi_cascade_data *cascade_data = NULL; |
| 287 | int len; | 286 | int len; |
| 288 | u32 offset; | 287 | u32 offset; |
| 289 | 288 | ||
| 289 | if (!dev->dev.of_match) | ||
| 290 | return -EINVAL; | ||
| 291 | features = dev->dev.of_match->data; | ||
| 292 | |||
| 290 | printk(KERN_DEBUG "Setting up Freescale MSI support\n"); | 293 | printk(KERN_DEBUG "Setting up Freescale MSI support\n"); |
| 291 | 294 | ||
| 292 | msi = kzalloc(sizeof(struct fsl_msi), GFP_KERNEL); | 295 | msi = kzalloc(sizeof(struct fsl_msi), GFP_KERNEL); |
| @@ -411,7 +414,7 @@ static const struct of_device_id fsl_of_msi_ids[] = { | |||
| 411 | {} | 414 | {} |
| 412 | }; | 415 | }; |
| 413 | 416 | ||
| 414 | static struct of_platform_driver fsl_of_msi_driver = { | 417 | static struct platform_driver fsl_of_msi_driver = { |
| 415 | .driver = { | 418 | .driver = { |
| 416 | .name = "fsl-msi", | 419 | .name = "fsl-msi", |
| 417 | .owner = THIS_MODULE, | 420 | .owner = THIS_MODULE, |
| @@ -423,7 +426,7 @@ static struct of_platform_driver fsl_of_msi_driver = { | |||
| 423 | 426 | ||
| 424 | static __init int fsl_of_msi_init(void) | 427 | static __init int fsl_of_msi_init(void) |
| 425 | { | 428 | { |
| 426 | return of_register_platform_driver(&fsl_of_msi_driver); | 429 | return platform_driver_register(&fsl_of_msi_driver); |
| 427 | } | 430 | } |
| 428 | 431 | ||
| 429 | subsys_initcall(fsl_of_msi_init); | 432 | subsys_initcall(fsl_of_msi_init); |
diff --git a/arch/powerpc/sysdev/fsl_pmc.c b/arch/powerpc/sysdev/fsl_pmc.c index e9381bfefb21..f122e8961d32 100644 --- a/arch/powerpc/sysdev/fsl_pmc.c +++ b/arch/powerpc/sysdev/fsl_pmc.c | |||
| @@ -58,8 +58,7 @@ static const struct platform_suspend_ops pmc_suspend_ops = { | |||
| 58 | .enter = pmc_suspend_enter, | 58 | .enter = pmc_suspend_enter, |
| 59 | }; | 59 | }; |
| 60 | 60 | ||
| 61 | static int pmc_probe(struct platform_device *ofdev, | 61 | static int pmc_probe(struct platform_device *ofdev) |
| 62 | const struct of_device_id *id) | ||
| 63 | { | 62 | { |
| 64 | pmc_regs = of_iomap(ofdev->dev.of_node, 0); | 63 | pmc_regs = of_iomap(ofdev->dev.of_node, 0); |
| 65 | if (!pmc_regs) | 64 | if (!pmc_regs) |
| @@ -76,7 +75,7 @@ static const struct of_device_id pmc_ids[] = { | |||
| 76 | { }, | 75 | { }, |
| 77 | }; | 76 | }; |
| 78 | 77 | ||
| 79 | static struct of_platform_driver pmc_driver = { | 78 | static struct platform_driver pmc_driver = { |
| 80 | .driver = { | 79 | .driver = { |
| 81 | .name = "fsl-pmc", | 80 | .name = "fsl-pmc", |
| 82 | .owner = THIS_MODULE, | 81 | .owner = THIS_MODULE, |
| @@ -87,6 +86,6 @@ static struct of_platform_driver pmc_driver = { | |||
| 87 | 86 | ||
| 88 | static int __init pmc_init(void) | 87 | static int __init pmc_init(void) |
| 89 | { | 88 | { |
| 90 | return of_register_platform_driver(&pmc_driver); | 89 | return platform_driver_register(&pmc_driver); |
| 91 | } | 90 | } |
| 92 | device_initcall(pmc_init); | 91 | device_initcall(pmc_init); |
diff --git a/arch/powerpc/sysdev/fsl_rio.c b/arch/powerpc/sysdev/fsl_rio.c index 8c6cab013278..3eff2c3a9ad5 100644 --- a/arch/powerpc/sysdev/fsl_rio.c +++ b/arch/powerpc/sysdev/fsl_rio.c | |||
| @@ -1570,8 +1570,7 @@ err_ops: | |||
| 1570 | 1570 | ||
| 1571 | /* The probe function for RapidIO peer-to-peer network. | 1571 | /* The probe function for RapidIO peer-to-peer network. |
| 1572 | */ | 1572 | */ |
| 1573 | static int __devinit fsl_of_rio_rpn_probe(struct platform_device *dev, | 1573 | static int __devinit fsl_of_rio_rpn_probe(struct platform_device *dev) |
| 1574 | const struct of_device_id *match) | ||
| 1575 | { | 1574 | { |
| 1576 | int rc; | 1575 | int rc; |
| 1577 | printk(KERN_INFO "Setting up RapidIO peer-to-peer network %s\n", | 1576 | printk(KERN_INFO "Setting up RapidIO peer-to-peer network %s\n", |
| @@ -1594,7 +1593,7 @@ static const struct of_device_id fsl_of_rio_rpn_ids[] = { | |||
| 1594 | {}, | 1593 | {}, |
| 1595 | }; | 1594 | }; |
| 1596 | 1595 | ||
| 1597 | static struct of_platform_driver fsl_of_rio_rpn_driver = { | 1596 | static struct platform_driver fsl_of_rio_rpn_driver = { |
| 1598 | .driver = { | 1597 | .driver = { |
| 1599 | .name = "fsl-of-rio", | 1598 | .name = "fsl-of-rio", |
| 1600 | .owner = THIS_MODULE, | 1599 | .owner = THIS_MODULE, |
| @@ -1605,7 +1604,7 @@ static struct of_platform_driver fsl_of_rio_rpn_driver = { | |||
| 1605 | 1604 | ||
| 1606 | static __init int fsl_of_rio_rpn_init(void) | 1605 | static __init int fsl_of_rio_rpn_init(void) |
| 1607 | { | 1606 | { |
| 1608 | return of_register_platform_driver(&fsl_of_rio_rpn_driver); | 1607 | return platform_driver_register(&fsl_of_rio_rpn_driver); |
| 1609 | } | 1608 | } |
| 1610 | 1609 | ||
| 1611 | subsys_initcall(fsl_of_rio_rpn_init); | 1610 | subsys_initcall(fsl_of_rio_rpn_init); |
diff --git a/arch/powerpc/sysdev/pmi.c b/arch/powerpc/sysdev/pmi.c index 4260f368db52..8ce4fc3d9828 100644 --- a/arch/powerpc/sysdev/pmi.c +++ b/arch/powerpc/sysdev/pmi.c | |||
| @@ -121,8 +121,7 @@ static void pmi_notify_handlers(struct work_struct *work) | |||
| 121 | spin_unlock(&data->handler_spinlock); | 121 | spin_unlock(&data->handler_spinlock); |
| 122 | } | 122 | } |
| 123 | 123 | ||
| 124 | static int pmi_of_probe(struct platform_device *dev, | 124 | static int pmi_of_probe(struct platform_device *dev) |
| 125 | const struct of_device_id *match) | ||
| 126 | { | 125 | { |
| 127 | struct device_node *np = dev->dev.of_node; | 126 | struct device_node *np = dev->dev.of_node; |
| 128 | int rc; | 127 | int rc; |
| @@ -205,7 +204,7 @@ static int pmi_of_remove(struct platform_device *dev) | |||
| 205 | return 0; | 204 | return 0; |
| 206 | } | 205 | } |
| 207 | 206 | ||
| 208 | static struct of_platform_driver pmi_of_platform_driver = { | 207 | static struct platform_driver pmi_of_platform_driver = { |
| 209 | .probe = pmi_of_probe, | 208 | .probe = pmi_of_probe, |
| 210 | .remove = pmi_of_remove, | 209 | .remove = pmi_of_remove, |
| 211 | .driver = { | 210 | .driver = { |
| @@ -217,13 +216,13 @@ static struct of_platform_driver pmi_of_platform_driver = { | |||
| 217 | 216 | ||
| 218 | static int __init pmi_module_init(void) | 217 | static int __init pmi_module_init(void) |
| 219 | { | 218 | { |
| 220 | return of_register_platform_driver(&pmi_of_platform_driver); | 219 | return platform_driver_register(&pmi_of_platform_driver); |
| 221 | } | 220 | } |
| 222 | module_init(pmi_module_init); | 221 | module_init(pmi_module_init); |
| 223 | 222 | ||
| 224 | static void __exit pmi_module_exit(void) | 223 | static void __exit pmi_module_exit(void) |
| 225 | { | 224 | { |
| 226 | of_unregister_platform_driver(&pmi_of_platform_driver); | 225 | platform_driver_unregister(&pmi_of_platform_driver); |
| 227 | } | 226 | } |
| 228 | module_exit(pmi_module_exit); | 227 | module_exit(pmi_module_exit); |
| 229 | 228 | ||
diff --git a/arch/powerpc/sysdev/qe_lib/qe.c b/arch/powerpc/sysdev/qe_lib/qe.c index 90020de4dcf2..904c6cbaf45b 100644 --- a/arch/powerpc/sysdev/qe_lib/qe.c +++ b/arch/powerpc/sysdev/qe_lib/qe.c | |||
| @@ -659,8 +659,7 @@ static int qe_resume(struct platform_device *ofdev) | |||
| 659 | return 0; | 659 | return 0; |
| 660 | } | 660 | } |
| 661 | 661 | ||
| 662 | static int qe_probe(struct platform_device *ofdev, | 662 | static int qe_probe(struct platform_device *ofdev) |
| 663 | const struct of_device_id *id) | ||
| 664 | { | 663 | { |
| 665 | return 0; | 664 | return 0; |
| 666 | } | 665 | } |
| @@ -670,7 +669,7 @@ static const struct of_device_id qe_ids[] = { | |||
| 670 | { }, | 669 | { }, |
| 671 | }; | 670 | }; |
| 672 | 671 | ||
| 673 | static struct of_platform_driver qe_driver = { | 672 | static struct platform_driver qe_driver = { |
| 674 | .driver = { | 673 | .driver = { |
| 675 | .name = "fsl-qe", | 674 | .name = "fsl-qe", |
| 676 | .owner = THIS_MODULE, | 675 | .owner = THIS_MODULE, |
| @@ -682,7 +681,7 @@ static struct of_platform_driver qe_driver = { | |||
| 682 | 681 | ||
| 683 | static int __init qe_drv_init(void) | 682 | static int __init qe_drv_init(void) |
| 684 | { | 683 | { |
| 685 | return of_register_platform_driver(&qe_driver); | 684 | return platform_driver_register(&qe_driver); |
| 686 | } | 685 | } |
| 687 | device_initcall(qe_drv_init); | 686 | device_initcall(qe_drv_init); |
| 688 | #endif /* defined(CONFIG_SUSPEND) && defined(CONFIG_PPC_85xx) */ | 687 | #endif /* defined(CONFIG_SUSPEND) && defined(CONFIG_PPC_85xx) */ |
diff --git a/arch/sparc/include/asm/parport.h b/arch/sparc/include/asm/parport.h index aa4c82648d88..cb33608cc68f 100644 --- a/arch/sparc/include/asm/parport.h +++ b/arch/sparc/include/asm/parport.h | |||
| @@ -103,7 +103,7 @@ static inline unsigned int get_dma_residue(unsigned int dmanr) | |||
| 103 | return ebus_dma_residue(&sparc_ebus_dmas[dmanr].info); | 103 | return ebus_dma_residue(&sparc_ebus_dmas[dmanr].info); |
| 104 | } | 104 | } |
| 105 | 105 | ||
| 106 | static int __devinit ecpp_probe(struct platform_device *op, const struct of_device_id *match) | 106 | static int __devinit ecpp_probe(struct platform_device *op) |
| 107 | { | 107 | { |
| 108 | unsigned long base = op->resource[0].start; | 108 | unsigned long base = op->resource[0].start; |
| 109 | unsigned long config = op->resource[1].start; | 109 | unsigned long config = op->resource[1].start; |
| @@ -235,7 +235,7 @@ static const struct of_device_id ecpp_match[] = { | |||
| 235 | {}, | 235 | {}, |
| 236 | }; | 236 | }; |
| 237 | 237 | ||
| 238 | static struct of_platform_driver ecpp_driver = { | 238 | static struct platform_driver ecpp_driver = { |
| 239 | .driver = { | 239 | .driver = { |
| 240 | .name = "ecpp", | 240 | .name = "ecpp", |
| 241 | .owner = THIS_MODULE, | 241 | .owner = THIS_MODULE, |
| @@ -247,7 +247,7 @@ static struct of_platform_driver ecpp_driver = { | |||
| 247 | 247 | ||
| 248 | static int parport_pc_find_nonpci_ports(int autoirq, int autodma) | 248 | static int parport_pc_find_nonpci_ports(int autoirq, int autodma) |
| 249 | { | 249 | { |
| 250 | return of_register_platform_driver(&ecpp_driver); | 250 | return platform_driver_register(&ecpp_driver); |
| 251 | } | 251 | } |
| 252 | 252 | ||
| 253 | #endif /* !(_ASM_SPARC64_PARPORT_H */ | 253 | #endif /* !(_ASM_SPARC64_PARPORT_H */ |
diff --git a/arch/sparc/kernel/apc.c b/arch/sparc/kernel/apc.c index 52de4a9424e8..f679c57644d5 100644 --- a/arch/sparc/kernel/apc.c +++ b/arch/sparc/kernel/apc.c | |||
| @@ -137,8 +137,7 @@ static const struct file_operations apc_fops = { | |||
| 137 | 137 | ||
| 138 | static struct miscdevice apc_miscdev = { APC_MINOR, APC_DEVNAME, &apc_fops }; | 138 | static struct miscdevice apc_miscdev = { APC_MINOR, APC_DEVNAME, &apc_fops }; |
| 139 | 139 | ||
| 140 | static int __devinit apc_probe(struct platform_device *op, | 140 | static int __devinit apc_probe(struct platform_device *op) |
| 141 | const struct of_device_id *match) | ||
| 142 | { | 141 | { |
| 143 | int err; | 142 | int err; |
| 144 | 143 | ||
| @@ -174,7 +173,7 @@ static struct of_device_id __initdata apc_match[] = { | |||
| 174 | }; | 173 | }; |
| 175 | MODULE_DEVICE_TABLE(of, apc_match); | 174 | MODULE_DEVICE_TABLE(of, apc_match); |
| 176 | 175 | ||
| 177 | static struct of_platform_driver apc_driver = { | 176 | static struct platform_driver apc_driver = { |
| 178 | .driver = { | 177 | .driver = { |
| 179 | .name = "apc", | 178 | .name = "apc", |
| 180 | .owner = THIS_MODULE, | 179 | .owner = THIS_MODULE, |
| @@ -185,7 +184,7 @@ static struct of_platform_driver apc_driver = { | |||
| 185 | 184 | ||
| 186 | static int __init apc_init(void) | 185 | static int __init apc_init(void) |
| 187 | { | 186 | { |
| 188 | return of_register_platform_driver(&apc_driver); | 187 | return platform_driver_register(&apc_driver); |
| 189 | } | 188 | } |
| 190 | 189 | ||
| 191 | /* This driver is not critical to the boot process | 190 | /* This driver is not critical to the boot process |
diff --git a/arch/sparc/kernel/auxio_64.c b/arch/sparc/kernel/auxio_64.c index 3efd3c5af6a9..2abace076c7d 100644 --- a/arch/sparc/kernel/auxio_64.c +++ b/arch/sparc/kernel/auxio_64.c | |||
| @@ -102,8 +102,7 @@ static struct of_device_id __initdata auxio_match[] = { | |||
| 102 | 102 | ||
| 103 | MODULE_DEVICE_TABLE(of, auxio_match); | 103 | MODULE_DEVICE_TABLE(of, auxio_match); |
| 104 | 104 | ||
| 105 | static int __devinit auxio_probe(struct platform_device *dev, | 105 | static int __devinit auxio_probe(struct platform_device *dev) |
| 106 | const struct of_device_id *match) | ||
| 107 | { | 106 | { |
| 108 | struct device_node *dp = dev->dev.of_node; | 107 | struct device_node *dp = dev->dev.of_node; |
| 109 | unsigned long size; | 108 | unsigned long size; |
| @@ -132,7 +131,7 @@ static int __devinit auxio_probe(struct platform_device *dev, | |||
| 132 | return 0; | 131 | return 0; |
| 133 | } | 132 | } |
| 134 | 133 | ||
| 135 | static struct of_platform_driver auxio_driver = { | 134 | static struct platform_driver auxio_driver = { |
| 136 | .probe = auxio_probe, | 135 | .probe = auxio_probe, |
| 137 | .driver = { | 136 | .driver = { |
| 138 | .name = "auxio", | 137 | .name = "auxio", |
| @@ -143,7 +142,7 @@ static struct of_platform_driver auxio_driver = { | |||
| 143 | 142 | ||
| 144 | static int __init auxio_init(void) | 143 | static int __init auxio_init(void) |
| 145 | { | 144 | { |
| 146 | return of_register_platform_driver(&auxio_driver); | 145 | return platform_driver_register(&auxio_driver); |
| 147 | } | 146 | } |
| 148 | 147 | ||
| 149 | /* Must be after subsys_initcall() so that busses are probed. Must | 148 | /* Must be after subsys_initcall() so that busses are probed. Must |
diff --git a/arch/sparc/kernel/central.c b/arch/sparc/kernel/central.c index cfa2624c5332..136d3718a74a 100644 --- a/arch/sparc/kernel/central.c +++ b/arch/sparc/kernel/central.c | |||
| @@ -59,8 +59,7 @@ static int __devinit clock_board_calc_nslots(struct clock_board *p) | |||
| 59 | } | 59 | } |
| 60 | } | 60 | } |
| 61 | 61 | ||
| 62 | static int __devinit clock_board_probe(struct platform_device *op, | 62 | static int __devinit clock_board_probe(struct platform_device *op) |
| 63 | const struct of_device_id *match) | ||
| 64 | { | 63 | { |
| 65 | struct clock_board *p = kzalloc(sizeof(*p), GFP_KERNEL); | 64 | struct clock_board *p = kzalloc(sizeof(*p), GFP_KERNEL); |
| 66 | int err = -ENOMEM; | 65 | int err = -ENOMEM; |
| @@ -148,7 +147,7 @@ static struct of_device_id __initdata clock_board_match[] = { | |||
| 148 | {}, | 147 | {}, |
| 149 | }; | 148 | }; |
| 150 | 149 | ||
| 151 | static struct of_platform_driver clock_board_driver = { | 150 | static struct platform_driver clock_board_driver = { |
| 152 | .probe = clock_board_probe, | 151 | .probe = clock_board_probe, |
| 153 | .driver = { | 152 | .driver = { |
| 154 | .name = "clock_board", | 153 | .name = "clock_board", |
| @@ -157,8 +156,7 @@ static struct of_platform_driver clock_board_driver = { | |||
| 157 | }, | 156 | }, |
| 158 | }; | 157 | }; |
| 159 | 158 | ||
| 160 | static int __devinit fhc_probe(struct platform_device *op, | 159 | static int __devinit fhc_probe(struct platform_device *op) |
| 161 | const struct of_device_id *match) | ||
| 162 | { | 160 | { |
| 163 | struct fhc *p = kzalloc(sizeof(*p), GFP_KERNEL); | 161 | struct fhc *p = kzalloc(sizeof(*p), GFP_KERNEL); |
| 164 | int err = -ENOMEM; | 162 | int err = -ENOMEM; |
| @@ -254,7 +252,7 @@ static struct of_device_id __initdata fhc_match[] = { | |||
| 254 | {}, | 252 | {}, |
| 255 | }; | 253 | }; |
| 256 | 254 | ||
| 257 | static struct of_platform_driver fhc_driver = { | 255 | static struct platform_driver fhc_driver = { |
| 258 | .probe = fhc_probe, | 256 | .probe = fhc_probe, |
| 259 | .driver = { | 257 | .driver = { |
| 260 | .name = "fhc", | 258 | .name = "fhc", |
| @@ -265,8 +263,8 @@ static struct of_platform_driver fhc_driver = { | |||
| 265 | 263 | ||
| 266 | static int __init sunfire_init(void) | 264 | static int __init sunfire_init(void) |
| 267 | { | 265 | { |
| 268 | (void) of_register_platform_driver(&fhc_driver); | 266 | (void) platform_driver_register(&fhc_driver); |
| 269 | (void) of_register_platform_driver(&clock_board_driver); | 267 | (void) platform_driver_register(&clock_board_driver); |
| 270 | return 0; | 268 | return 0; |
| 271 | } | 269 | } |
| 272 | 270 | ||
diff --git a/arch/sparc/kernel/chmc.c b/arch/sparc/kernel/chmc.c index 08c466ebb32b..668c7be5d365 100644 --- a/arch/sparc/kernel/chmc.c +++ b/arch/sparc/kernel/chmc.c | |||
| @@ -392,8 +392,7 @@ static void __devinit jbusmc_construct_dimm_groups(struct jbusmc *p, | |||
| 392 | } | 392 | } |
| 393 | } | 393 | } |
| 394 | 394 | ||
| 395 | static int __devinit jbusmc_probe(struct platform_device *op, | 395 | static int __devinit jbusmc_probe(struct platform_device *op) |
| 396 | const struct of_device_id *match) | ||
| 397 | { | 396 | { |
| 398 | const struct linux_prom64_registers *mem_regs; | 397 | const struct linux_prom64_registers *mem_regs; |
| 399 | struct device_node *mem_node; | 398 | struct device_node *mem_node; |
| @@ -690,8 +689,7 @@ static void chmc_fetch_decode_regs(struct chmc *p) | |||
| 690 | chmc_read_mcreg(p, CHMCTRL_DECODE4)); | 689 | chmc_read_mcreg(p, CHMCTRL_DECODE4)); |
| 691 | } | 690 | } |
| 692 | 691 | ||
| 693 | static int __devinit chmc_probe(struct platform_device *op, | 692 | static int __devinit chmc_probe(struct platform_device *op) |
| 694 | const struct of_device_id *match) | ||
| 695 | { | 693 | { |
| 696 | struct device_node *dp = op->dev.of_node; | 694 | struct device_node *dp = op->dev.of_node; |
| 697 | unsigned long ver; | 695 | unsigned long ver; |
| @@ -765,13 +763,12 @@ out_free: | |||
| 765 | goto out; | 763 | goto out; |
| 766 | } | 764 | } |
| 767 | 765 | ||
| 768 | static int __devinit us3mc_probe(struct platform_device *op, | 766 | static int __devinit us3mc_probe(struct platform_device *op) |
| 769 | const struct of_device_id *match) | ||
| 770 | { | 767 | { |
| 771 | if (mc_type == MC_TYPE_SAFARI) | 768 | if (mc_type == MC_TYPE_SAFARI) |
| 772 | return chmc_probe(op, match); | 769 | return chmc_probe(op); |
| 773 | else if (mc_type == MC_TYPE_JBUS) | 770 | else if (mc_type == MC_TYPE_JBUS) |
| 774 | return jbusmc_probe(op, match); | 771 | return jbusmc_probe(op); |
| 775 | return -ENODEV; | 772 | return -ENODEV; |
| 776 | } | 773 | } |
| 777 | 774 | ||
| @@ -810,7 +807,7 @@ static const struct of_device_id us3mc_match[] = { | |||
| 810 | }; | 807 | }; |
| 811 | MODULE_DEVICE_TABLE(of, us3mc_match); | 808 | MODULE_DEVICE_TABLE(of, us3mc_match); |
| 812 | 809 | ||
| 813 | static struct of_platform_driver us3mc_driver = { | 810 | static struct platform_driver us3mc_driver = { |
| 814 | .driver = { | 811 | .driver = { |
| 815 | .name = "us3mc", | 812 | .name = "us3mc", |
| 816 | .owner = THIS_MODULE, | 813 | .owner = THIS_MODULE, |
| @@ -848,7 +845,7 @@ static int __init us3mc_init(void) | |||
| 848 | ret = register_dimm_printer(us3mc_dimm_printer); | 845 | ret = register_dimm_printer(us3mc_dimm_printer); |
| 849 | 846 | ||
| 850 | if (!ret) { | 847 | if (!ret) { |
| 851 | ret = of_register_platform_driver(&us3mc_driver); | 848 | ret = platform_driver_register(&us3mc_driver); |
| 852 | if (ret) | 849 | if (ret) |
| 853 | unregister_dimm_printer(us3mc_dimm_printer); | 850 | unregister_dimm_printer(us3mc_dimm_printer); |
| 854 | } | 851 | } |
| @@ -859,7 +856,7 @@ static void __exit us3mc_cleanup(void) | |||
| 859 | { | 856 | { |
| 860 | if (us3mc_platform()) { | 857 | if (us3mc_platform()) { |
| 861 | unregister_dimm_printer(us3mc_dimm_printer); | 858 | unregister_dimm_printer(us3mc_dimm_printer); |
| 862 | of_unregister_platform_driver(&us3mc_driver); | 859 | platform_driver_unregister(&us3mc_driver); |
| 863 | } | 860 | } |
| 864 | } | 861 | } |
| 865 | 862 | ||
diff --git a/arch/sparc/kernel/pci_fire.c b/arch/sparc/kernel/pci_fire.c index efb896d68754..be5e2441c6d7 100644 --- a/arch/sparc/kernel/pci_fire.c +++ b/arch/sparc/kernel/pci_fire.c | |||
| @@ -455,8 +455,7 @@ static int __devinit pci_fire_pbm_init(struct pci_pbm_info *pbm, | |||
| 455 | return 0; | 455 | return 0; |
| 456 | } | 456 | } |
| 457 | 457 | ||
| 458 | static int __devinit fire_probe(struct platform_device *op, | 458 | static int __devinit fire_probe(struct platform_device *op) |
| 459 | const struct of_device_id *match) | ||
| 460 | { | 459 | { |
| 461 | struct device_node *dp = op->dev.of_node; | 460 | struct device_node *dp = op->dev.of_node; |
| 462 | struct pci_pbm_info *pbm; | 461 | struct pci_pbm_info *pbm; |
| @@ -507,7 +506,7 @@ static struct of_device_id __initdata fire_match[] = { | |||
| 507 | {}, | 506 | {}, |
| 508 | }; | 507 | }; |
| 509 | 508 | ||
| 510 | static struct of_platform_driver fire_driver = { | 509 | static struct platform_driver fire_driver = { |
| 511 | .driver = { | 510 | .driver = { |
| 512 | .name = DRIVER_NAME, | 511 | .name = DRIVER_NAME, |
| 513 | .owner = THIS_MODULE, | 512 | .owner = THIS_MODULE, |
| @@ -518,7 +517,7 @@ static struct of_platform_driver fire_driver = { | |||
| 518 | 517 | ||
| 519 | static int __init fire_init(void) | 518 | static int __init fire_init(void) |
| 520 | { | 519 | { |
| 521 | return of_register_platform_driver(&fire_driver); | 520 | return platform_driver_register(&fire_driver); |
| 522 | } | 521 | } |
| 523 | 522 | ||
| 524 | subsys_initcall(fire_init); | 523 | subsys_initcall(fire_init); |
diff --git a/arch/sparc/kernel/pci_psycho.c b/arch/sparc/kernel/pci_psycho.c index 22eab7cf3b11..56ee745064de 100644 --- a/arch/sparc/kernel/pci_psycho.c +++ b/arch/sparc/kernel/pci_psycho.c | |||
| @@ -503,8 +503,7 @@ static struct pci_pbm_info * __devinit psycho_find_sibling(u32 upa_portid) | |||
| 503 | 503 | ||
| 504 | #define PSYCHO_CONFIGSPACE 0x001000000UL | 504 | #define PSYCHO_CONFIGSPACE 0x001000000UL |
| 505 | 505 | ||
| 506 | static int __devinit psycho_probe(struct platform_device *op, | 506 | static int __devinit psycho_probe(struct platform_device *op) |
| 507 | const struct of_device_id *match) | ||
| 508 | { | 507 | { |
| 509 | const struct linux_prom64_registers *pr_regs; | 508 | const struct linux_prom64_registers *pr_regs; |
| 510 | struct device_node *dp = op->dev.of_node; | 509 | struct device_node *dp = op->dev.of_node; |
| @@ -601,7 +600,7 @@ static struct of_device_id __initdata psycho_match[] = { | |||
| 601 | {}, | 600 | {}, |
| 602 | }; | 601 | }; |
| 603 | 602 | ||
| 604 | static struct of_platform_driver psycho_driver = { | 603 | static struct platform_driver psycho_driver = { |
| 605 | .driver = { | 604 | .driver = { |
| 606 | .name = DRIVER_NAME, | 605 | .name = DRIVER_NAME, |
| 607 | .owner = THIS_MODULE, | 606 | .owner = THIS_MODULE, |
| @@ -612,7 +611,7 @@ static struct of_platform_driver psycho_driver = { | |||
| 612 | 611 | ||
| 613 | static int __init psycho_init(void) | 612 | static int __init psycho_init(void) |
| 614 | { | 613 | { |
| 615 | return of_register_platform_driver(&psycho_driver); | 614 | return platform_driver_register(&psycho_driver); |
| 616 | } | 615 | } |
| 617 | 616 | ||
| 618 | subsys_initcall(psycho_init); | 617 | subsys_initcall(psycho_init); |
diff --git a/arch/sparc/kernel/pci_sabre.c b/arch/sparc/kernel/pci_sabre.c index 5c3f5ec4cabc..2857073342d2 100644 --- a/arch/sparc/kernel/pci_sabre.c +++ b/arch/sparc/kernel/pci_sabre.c | |||
| @@ -452,8 +452,7 @@ static void __devinit sabre_pbm_init(struct pci_pbm_info *pbm, | |||
| 452 | sabre_scan_bus(pbm, &op->dev); | 452 | sabre_scan_bus(pbm, &op->dev); |
| 453 | } | 453 | } |
| 454 | 454 | ||
| 455 | static int __devinit sabre_probe(struct platform_device *op, | 455 | static int __devinit sabre_probe(struct platform_device *op) |
| 456 | const struct of_device_id *match) | ||
| 457 | { | 456 | { |
| 458 | const struct linux_prom64_registers *pr_regs; | 457 | const struct linux_prom64_registers *pr_regs; |
| 459 | struct device_node *dp = op->dev.of_node; | 458 | struct device_node *dp = op->dev.of_node; |
| @@ -464,7 +463,7 @@ static int __devinit sabre_probe(struct platform_device *op, | |||
| 464 | const u32 *vdma; | 463 | const u32 *vdma; |
| 465 | u64 clear_irq; | 464 | u64 clear_irq; |
| 466 | 465 | ||
| 467 | hummingbird_p = (match->data != NULL); | 466 | hummingbird_p = op->dev.of_match && (op->dev.of_match->data != NULL); |
| 468 | if (!hummingbird_p) { | 467 | if (!hummingbird_p) { |
| 469 | struct device_node *cpu_dp; | 468 | struct device_node *cpu_dp; |
| 470 | 469 | ||
| @@ -595,7 +594,7 @@ static struct of_device_id __initdata sabre_match[] = { | |||
| 595 | {}, | 594 | {}, |
| 596 | }; | 595 | }; |
| 597 | 596 | ||
| 598 | static struct of_platform_driver sabre_driver = { | 597 | static struct platform_driver sabre_driver = { |
| 599 | .driver = { | 598 | .driver = { |
| 600 | .name = DRIVER_NAME, | 599 | .name = DRIVER_NAME, |
| 601 | .owner = THIS_MODULE, | 600 | .owner = THIS_MODULE, |
| @@ -606,7 +605,7 @@ static struct of_platform_driver sabre_driver = { | |||
| 606 | 605 | ||
| 607 | static int __init sabre_init(void) | 606 | static int __init sabre_init(void) |
| 608 | { | 607 | { |
| 609 | return of_register_platform_driver(&sabre_driver); | 608 | return platform_driver_register(&sabre_driver); |
| 610 | } | 609 | } |
| 611 | 610 | ||
| 612 | subsys_initcall(sabre_init); | 611 | subsys_initcall(sabre_init); |
diff --git a/arch/sparc/kernel/pci_schizo.c b/arch/sparc/kernel/pci_schizo.c index 445a47a2fb3d..6783410ceb02 100644 --- a/arch/sparc/kernel/pci_schizo.c +++ b/arch/sparc/kernel/pci_schizo.c | |||
| @@ -1460,10 +1460,11 @@ out_err: | |||
| 1460 | return err; | 1460 | return err; |
| 1461 | } | 1461 | } |
| 1462 | 1462 | ||
| 1463 | static int __devinit schizo_probe(struct platform_device *op, | 1463 | static int __devinit schizo_probe(struct platform_device *op) |
| 1464 | const struct of_device_id *match) | ||
| 1465 | { | 1464 | { |
| 1466 | return __schizo_init(op, (unsigned long) match->data); | 1465 | if (!op->dev.of_match) |
| 1466 | return -EINVAL; | ||
| 1467 | return __schizo_init(op, (unsigned long) op->dev.of_match->data); | ||
| 1467 | } | 1468 | } |
| 1468 | 1469 | ||
| 1469 | /* The ordering of this table is very important. Some Tomatillo | 1470 | /* The ordering of this table is very important. Some Tomatillo |
| @@ -1490,7 +1491,7 @@ static struct of_device_id __initdata schizo_match[] = { | |||
| 1490 | {}, | 1491 | {}, |
| 1491 | }; | 1492 | }; |
| 1492 | 1493 | ||
| 1493 | static struct of_platform_driver schizo_driver = { | 1494 | static struct platform_driver schizo_driver = { |
| 1494 | .driver = { | 1495 | .driver = { |
| 1495 | .name = DRIVER_NAME, | 1496 | .name = DRIVER_NAME, |
| 1496 | .owner = THIS_MODULE, | 1497 | .owner = THIS_MODULE, |
| @@ -1501,7 +1502,7 @@ static struct of_platform_driver schizo_driver = { | |||
| 1501 | 1502 | ||
| 1502 | static int __init schizo_init(void) | 1503 | static int __init schizo_init(void) |
| 1503 | { | 1504 | { |
| 1504 | return of_register_platform_driver(&schizo_driver); | 1505 | return platform_driver_register(&schizo_driver); |
| 1505 | } | 1506 | } |
| 1506 | 1507 | ||
| 1507 | subsys_initcall(schizo_init); | 1508 | subsys_initcall(schizo_init); |
diff --git a/arch/sparc/kernel/pci_sun4v.c b/arch/sparc/kernel/pci_sun4v.c index 743344aa6d8a..158cd739b263 100644 --- a/arch/sparc/kernel/pci_sun4v.c +++ b/arch/sparc/kernel/pci_sun4v.c | |||
| @@ -918,8 +918,7 @@ static int __devinit pci_sun4v_pbm_init(struct pci_pbm_info *pbm, | |||
| 918 | return 0; | 918 | return 0; |
| 919 | } | 919 | } |
| 920 | 920 | ||
| 921 | static int __devinit pci_sun4v_probe(struct platform_device *op, | 921 | static int __devinit pci_sun4v_probe(struct platform_device *op) |
| 922 | const struct of_device_id *match) | ||
| 923 | { | 922 | { |
| 924 | const struct linux_prom64_registers *regs; | 923 | const struct linux_prom64_registers *regs; |
| 925 | static int hvapi_negotiated = 0; | 924 | static int hvapi_negotiated = 0; |
| @@ -1008,7 +1007,7 @@ static struct of_device_id __initdata pci_sun4v_match[] = { | |||
| 1008 | {}, | 1007 | {}, |
| 1009 | }; | 1008 | }; |
| 1010 | 1009 | ||
| 1011 | static struct of_platform_driver pci_sun4v_driver = { | 1010 | static struct platform_driver pci_sun4v_driver = { |
| 1012 | .driver = { | 1011 | .driver = { |
| 1013 | .name = DRIVER_NAME, | 1012 | .name = DRIVER_NAME, |
| 1014 | .owner = THIS_MODULE, | 1013 | .owner = THIS_MODULE, |
| @@ -1019,7 +1018,7 @@ static struct of_platform_driver pci_sun4v_driver = { | |||
| 1019 | 1018 | ||
| 1020 | static int __init pci_sun4v_init(void) | 1019 | static int __init pci_sun4v_init(void) |
| 1021 | { | 1020 | { |
| 1022 | return of_register_platform_driver(&pci_sun4v_driver); | 1021 | return platform_driver_register(&pci_sun4v_driver); |
| 1023 | } | 1022 | } |
| 1024 | 1023 | ||
| 1025 | subsys_initcall(pci_sun4v_init); | 1024 | subsys_initcall(pci_sun4v_init); |
diff --git a/arch/sparc/kernel/pmc.c b/arch/sparc/kernel/pmc.c index 94536a85f161..93d7b4465f8d 100644 --- a/arch/sparc/kernel/pmc.c +++ b/arch/sparc/kernel/pmc.c | |||
| @@ -51,8 +51,7 @@ static void pmc_swift_idle(void) | |||
| 51 | #endif | 51 | #endif |
| 52 | } | 52 | } |
| 53 | 53 | ||
| 54 | static int __devinit pmc_probe(struct platform_device *op, | 54 | static int __devinit pmc_probe(struct platform_device *op) |
| 55 | const struct of_device_id *match) | ||
| 56 | { | 55 | { |
| 57 | regs = of_ioremap(&op->resource[0], 0, | 56 | regs = of_ioremap(&op->resource[0], 0, |
| 58 | resource_size(&op->resource[0]), PMC_OBPNAME); | 57 | resource_size(&op->resource[0]), PMC_OBPNAME); |
| @@ -78,7 +77,7 @@ static struct of_device_id __initdata pmc_match[] = { | |||
| 78 | }; | 77 | }; |
| 79 | MODULE_DEVICE_TABLE(of, pmc_match); | 78 | MODULE_DEVICE_TABLE(of, pmc_match); |
| 80 | 79 | ||
| 81 | static struct of_platform_driver pmc_driver = { | 80 | static struct platform_driver pmc_driver = { |
| 82 | .driver = { | 81 | .driver = { |
| 83 | .name = "pmc", | 82 | .name = "pmc", |
| 84 | .owner = THIS_MODULE, | 83 | .owner = THIS_MODULE, |
| @@ -89,7 +88,7 @@ static struct of_platform_driver pmc_driver = { | |||
| 89 | 88 | ||
| 90 | static int __init pmc_init(void) | 89 | static int __init pmc_init(void) |
| 91 | { | 90 | { |
| 92 | return of_register_platform_driver(&pmc_driver); | 91 | return platform_driver_register(&pmc_driver); |
| 93 | } | 92 | } |
| 94 | 93 | ||
| 95 | /* This driver is not critical to the boot process | 94 | /* This driver is not critical to the boot process |
diff --git a/arch/sparc/kernel/power.c b/arch/sparc/kernel/power.c index 2c59f4d387dd..cd725fe238b2 100644 --- a/arch/sparc/kernel/power.c +++ b/arch/sparc/kernel/power.c | |||
| @@ -33,7 +33,7 @@ static int __devinit has_button_interrupt(unsigned int irq, struct device_node * | |||
| 33 | return 1; | 33 | return 1; |
| 34 | } | 34 | } |
| 35 | 35 | ||
| 36 | static int __devinit power_probe(struct platform_device *op, const struct of_device_id *match) | 36 | static int __devinit power_probe(struct platform_device *op) |
| 37 | { | 37 | { |
| 38 | struct resource *res = &op->resource[0]; | 38 | struct resource *res = &op->resource[0]; |
| 39 | unsigned int irq = op->archdata.irqs[0]; | 39 | unsigned int irq = op->archdata.irqs[0]; |
| @@ -59,7 +59,7 @@ static struct of_device_id __initdata power_match[] = { | |||
| 59 | {}, | 59 | {}, |
| 60 | }; | 60 | }; |
| 61 | 61 | ||
| 62 | static struct of_platform_driver power_driver = { | 62 | static struct platform_driver power_driver = { |
| 63 | .probe = power_probe, | 63 | .probe = power_probe, |
| 64 | .driver = { | 64 | .driver = { |
| 65 | .name = "power", | 65 | .name = "power", |
| @@ -70,7 +70,7 @@ static struct of_platform_driver power_driver = { | |||
| 70 | 70 | ||
| 71 | static int __init power_init(void) | 71 | static int __init power_init(void) |
| 72 | { | 72 | { |
| 73 | return of_register_platform_driver(&power_driver); | 73 | return platform_driver_register(&power_driver); |
| 74 | } | 74 | } |
| 75 | 75 | ||
| 76 | device_initcall(power_init); | 76 | device_initcall(power_init); |
diff --git a/arch/sparc/kernel/time_32.c b/arch/sparc/kernel/time_32.c index 4211bfc9bcad..19ab42a932db 100644 --- a/arch/sparc/kernel/time_32.c +++ b/arch/sparc/kernel/time_32.c | |||
| @@ -137,7 +137,7 @@ static struct platform_device m48t59_rtc = { | |||
| 137 | }, | 137 | }, |
| 138 | }; | 138 | }; |
| 139 | 139 | ||
| 140 | static int __devinit clock_probe(struct platform_device *op, const struct of_device_id *match) | 140 | static int __devinit clock_probe(struct platform_device *op) |
| 141 | { | 141 | { |
| 142 | struct device_node *dp = op->dev.of_node; | 142 | struct device_node *dp = op->dev.of_node; |
| 143 | const char *model = of_get_property(dp, "model", NULL); | 143 | const char *model = of_get_property(dp, "model", NULL); |
| @@ -171,7 +171,7 @@ static struct of_device_id __initdata clock_match[] = { | |||
| 171 | {}, | 171 | {}, |
| 172 | }; | 172 | }; |
| 173 | 173 | ||
| 174 | static struct of_platform_driver clock_driver = { | 174 | static struct platform_driver clock_driver = { |
| 175 | .probe = clock_probe, | 175 | .probe = clock_probe, |
| 176 | .driver = { | 176 | .driver = { |
| 177 | .name = "rtc", | 177 | .name = "rtc", |
| @@ -184,7 +184,7 @@ static struct of_platform_driver clock_driver = { | |||
| 184 | /* Probe for the mostek real time clock chip. */ | 184 | /* Probe for the mostek real time clock chip. */ |
| 185 | static int __init clock_init(void) | 185 | static int __init clock_init(void) |
| 186 | { | 186 | { |
| 187 | return of_register_platform_driver(&clock_driver); | 187 | return platform_driver_register(&clock_driver); |
| 188 | } | 188 | } |
| 189 | /* Must be after subsys_initcall() so that busses are probed. Must | 189 | /* Must be after subsys_initcall() so that busses are probed. Must |
| 190 | * be before device_initcall() because things like the RTC driver | 190 | * be before device_initcall() because things like the RTC driver |
diff --git a/arch/sparc/kernel/time_64.c b/arch/sparc/kernel/time_64.c index 3bc9c9979b92..e1862793a61d 100644 --- a/arch/sparc/kernel/time_64.c +++ b/arch/sparc/kernel/time_64.c | |||
| @@ -419,7 +419,7 @@ static struct platform_device rtc_cmos_device = { | |||
| 419 | .num_resources = 1, | 419 | .num_resources = 1, |
| 420 | }; | 420 | }; |
| 421 | 421 | ||
| 422 | static int __devinit rtc_probe(struct platform_device *op, const struct of_device_id *match) | 422 | static int __devinit rtc_probe(struct platform_device *op) |
| 423 | { | 423 | { |
| 424 | struct resource *r; | 424 | struct resource *r; |
| 425 | 425 | ||
| @@ -462,7 +462,7 @@ static struct of_device_id __initdata rtc_match[] = { | |||
| 462 | {}, | 462 | {}, |
| 463 | }; | 463 | }; |
| 464 | 464 | ||
| 465 | static struct of_platform_driver rtc_driver = { | 465 | static struct platform_driver rtc_driver = { |
| 466 | .probe = rtc_probe, | 466 | .probe = rtc_probe, |
| 467 | .driver = { | 467 | .driver = { |
| 468 | .name = "rtc", | 468 | .name = "rtc", |
| @@ -477,7 +477,7 @@ static struct platform_device rtc_bq4802_device = { | |||
| 477 | .num_resources = 1, | 477 | .num_resources = 1, |
| 478 | }; | 478 | }; |
| 479 | 479 | ||
| 480 | static int __devinit bq4802_probe(struct platform_device *op, const struct of_device_id *match) | 480 | static int __devinit bq4802_probe(struct platform_device *op) |
| 481 | { | 481 | { |
| 482 | 482 | ||
| 483 | printk(KERN_INFO "%s: BQ4802 regs at 0x%llx\n", | 483 | printk(KERN_INFO "%s: BQ4802 regs at 0x%llx\n", |
| @@ -495,7 +495,7 @@ static struct of_device_id __initdata bq4802_match[] = { | |||
| 495 | {}, | 495 | {}, |
| 496 | }; | 496 | }; |
| 497 | 497 | ||
| 498 | static struct of_platform_driver bq4802_driver = { | 498 | static struct platform_driver bq4802_driver = { |
| 499 | .probe = bq4802_probe, | 499 | .probe = bq4802_probe, |
| 500 | .driver = { | 500 | .driver = { |
| 501 | .name = "bq4802", | 501 | .name = "bq4802", |
| @@ -534,7 +534,7 @@ static struct platform_device m48t59_rtc = { | |||
| 534 | }, | 534 | }, |
| 535 | }; | 535 | }; |
| 536 | 536 | ||
| 537 | static int __devinit mostek_probe(struct platform_device *op, const struct of_device_id *match) | 537 | static int __devinit mostek_probe(struct platform_device *op) |
| 538 | { | 538 | { |
| 539 | struct device_node *dp = op->dev.of_node; | 539 | struct device_node *dp = op->dev.of_node; |
| 540 | 540 | ||
| @@ -559,7 +559,7 @@ static struct of_device_id __initdata mostek_match[] = { | |||
| 559 | {}, | 559 | {}, |
| 560 | }; | 560 | }; |
| 561 | 561 | ||
| 562 | static struct of_platform_driver mostek_driver = { | 562 | static struct platform_driver mostek_driver = { |
| 563 | .probe = mostek_probe, | 563 | .probe = mostek_probe, |
| 564 | .driver = { | 564 | .driver = { |
| 565 | .name = "mostek", | 565 | .name = "mostek", |
| @@ -586,9 +586,9 @@ static int __init clock_init(void) | |||
| 586 | if (tlb_type == hypervisor) | 586 | if (tlb_type == hypervisor) |
| 587 | return platform_device_register(&rtc_sun4v_device); | 587 | return platform_device_register(&rtc_sun4v_device); |
| 588 | 588 | ||
| 589 | (void) of_register_platform_driver(&rtc_driver); | 589 | (void) platform_driver_register(&rtc_driver); |
| 590 | (void) of_register_platform_driver(&mostek_driver); | 590 | (void) platform_driver_register(&mostek_driver); |
| 591 | (void) of_register_platform_driver(&bq4802_driver); | 591 | (void) platform_driver_register(&bq4802_driver); |
| 592 | 592 | ||
| 593 | return 0; | 593 | return 0; |
| 594 | } | 594 | } |
diff --git a/drivers/ata/pata_mpc52xx.c b/drivers/ata/pata_mpc52xx.c index d7d8026cde99..2fcac511d39c 100644 --- a/drivers/ata/pata_mpc52xx.c +++ b/drivers/ata/pata_mpc52xx.c | |||
| @@ -680,7 +680,7 @@ mpc52xx_ata_remove_one(struct device *dev) | |||
| 680 | /* ======================================================================== */ | 680 | /* ======================================================================== */ |
| 681 | 681 | ||
| 682 | static int __devinit | 682 | static int __devinit |
| 683 | mpc52xx_ata_probe(struct platform_device *op, const struct of_device_id *match) | 683 | mpc52xx_ata_probe(struct platform_device *op) |
| 684 | { | 684 | { |
| 685 | unsigned int ipb_freq; | 685 | unsigned int ipb_freq; |
| 686 | struct resource res_mem; | 686 | struct resource res_mem; |
| @@ -883,7 +883,7 @@ static struct of_device_id mpc52xx_ata_of_match[] = { | |||
| 883 | }; | 883 | }; |
| 884 | 884 | ||
| 885 | 885 | ||
| 886 | static struct of_platform_driver mpc52xx_ata_of_platform_driver = { | 886 | static struct platform_driver mpc52xx_ata_of_platform_driver = { |
| 887 | .probe = mpc52xx_ata_probe, | 887 | .probe = mpc52xx_ata_probe, |
| 888 | .remove = mpc52xx_ata_remove, | 888 | .remove = mpc52xx_ata_remove, |
| 889 | #ifdef CONFIG_PM | 889 | #ifdef CONFIG_PM |
| @@ -906,13 +906,13 @@ static int __init | |||
| 906 | mpc52xx_ata_init(void) | 906 | mpc52xx_ata_init(void) |
| 907 | { | 907 | { |
| 908 | printk(KERN_INFO "ata: MPC52xx IDE/ATA libata driver\n"); | 908 | printk(KERN_INFO "ata: MPC52xx IDE/ATA libata driver\n"); |
| 909 | return of_register_platform_driver(&mpc52xx_ata_of_platform_driver); | 909 | return platform_driver_register(&mpc52xx_ata_of_platform_driver); |
| 910 | } | 910 | } |
| 911 | 911 | ||
| 912 | static void __exit | 912 | static void __exit |
| 913 | mpc52xx_ata_exit(void) | 913 | mpc52xx_ata_exit(void) |
| 914 | { | 914 | { |
| 915 | of_unregister_platform_driver(&mpc52xx_ata_of_platform_driver); | 915 | platform_driver_unregister(&mpc52xx_ata_of_platform_driver); |
| 916 | } | 916 | } |
| 917 | 917 | ||
| 918 | module_init(mpc52xx_ata_init); | 918 | module_init(mpc52xx_ata_init); |
diff --git a/drivers/ata/pata_of_platform.c b/drivers/ata/pata_of_platform.c index 480e043ce6b8..f3054009bd25 100644 --- a/drivers/ata/pata_of_platform.c +++ b/drivers/ata/pata_of_platform.c | |||
| @@ -14,8 +14,7 @@ | |||
| 14 | #include <linux/of_platform.h> | 14 | #include <linux/of_platform.h> |
| 15 | #include <linux/ata_platform.h> | 15 | #include <linux/ata_platform.h> |
| 16 | 16 | ||
| 17 | static int __devinit pata_of_platform_probe(struct platform_device *ofdev, | 17 | static int __devinit pata_of_platform_probe(struct platform_device *ofdev) |
| 18 | const struct of_device_id *match) | ||
| 19 | { | 18 | { |
| 20 | int ret; | 19 | int ret; |
| 21 | struct device_node *dn = ofdev->dev.of_node; | 20 | struct device_node *dn = ofdev->dev.of_node; |
| @@ -90,7 +89,7 @@ static struct of_device_id pata_of_platform_match[] = { | |||
| 90 | }; | 89 | }; |
| 91 | MODULE_DEVICE_TABLE(of, pata_of_platform_match); | 90 | MODULE_DEVICE_TABLE(of, pata_of_platform_match); |
| 92 | 91 | ||
| 93 | static struct of_platform_driver pata_of_platform_driver = { | 92 | static struct platform_driver pata_of_platform_driver = { |
| 94 | .driver = { | 93 | .driver = { |
| 95 | .name = "pata_of_platform", | 94 | .name = "pata_of_platform", |
| 96 | .owner = THIS_MODULE, | 95 | .owner = THIS_MODULE, |
| @@ -102,13 +101,13 @@ static struct of_platform_driver pata_of_platform_driver = { | |||
| 102 | 101 | ||
| 103 | static int __init pata_of_platform_init(void) | 102 | static int __init pata_of_platform_init(void) |
| 104 | { | 103 | { |
| 105 | return of_register_platform_driver(&pata_of_platform_driver); | 104 | return platform_driver_register(&pata_of_platform_driver); |
| 106 | } | 105 | } |
| 107 | module_init(pata_of_platform_init); | 106 | module_init(pata_of_platform_init); |
| 108 | 107 | ||
| 109 | static void __exit pata_of_platform_exit(void) | 108 | static void __exit pata_of_platform_exit(void) |
| 110 | { | 109 | { |
| 111 | of_unregister_platform_driver(&pata_of_platform_driver); | 110 | platform_driver_unregister(&pata_of_platform_driver); |
| 112 | } | 111 | } |
| 113 | module_exit(pata_of_platform_exit); | 112 | module_exit(pata_of_platform_exit); |
| 114 | 113 | ||
diff --git a/drivers/ata/sata_dwc_460ex.c b/drivers/ata/sata_dwc_460ex.c index 712ab5a4922e..1c4b3aa4c7c4 100644 --- a/drivers/ata/sata_dwc_460ex.c +++ b/drivers/ata/sata_dwc_460ex.c | |||
| @@ -1625,8 +1625,7 @@ static const struct ata_port_info sata_dwc_port_info[] = { | |||
| 1625 | }, | 1625 | }, |
| 1626 | }; | 1626 | }; |
| 1627 | 1627 | ||
| 1628 | static int sata_dwc_probe(struct platform_device *ofdev, | 1628 | static int sata_dwc_probe(struct platform_device *ofdev) |
| 1629 | const struct of_device_id *match) | ||
| 1630 | { | 1629 | { |
| 1631 | struct sata_dwc_device *hsdev; | 1630 | struct sata_dwc_device *hsdev; |
| 1632 | u32 idr, versionr; | 1631 | u32 idr, versionr; |
| @@ -1764,7 +1763,7 @@ static const struct of_device_id sata_dwc_match[] = { | |||
| 1764 | }; | 1763 | }; |
| 1765 | MODULE_DEVICE_TABLE(of, sata_dwc_match); | 1764 | MODULE_DEVICE_TABLE(of, sata_dwc_match); |
| 1766 | 1765 | ||
| 1767 | static struct of_platform_driver sata_dwc_driver = { | 1766 | static struct platform_driver sata_dwc_driver = { |
| 1768 | .driver = { | 1767 | .driver = { |
| 1769 | .name = DRV_NAME, | 1768 | .name = DRV_NAME, |
| 1770 | .owner = THIS_MODULE, | 1769 | .owner = THIS_MODULE, |
| @@ -1776,12 +1775,12 @@ static struct of_platform_driver sata_dwc_driver = { | |||
| 1776 | 1775 | ||
| 1777 | static int __init sata_dwc_init(void) | 1776 | static int __init sata_dwc_init(void) |
| 1778 | { | 1777 | { |
| 1779 | return of_register_platform_driver(&sata_dwc_driver); | 1778 | return platform_driver_register(&sata_dwc_driver); |
| 1780 | } | 1779 | } |
| 1781 | 1780 | ||
| 1782 | static void __exit sata_dwc_exit(void) | 1781 | static void __exit sata_dwc_exit(void) |
| 1783 | { | 1782 | { |
| 1784 | of_unregister_platform_driver(&sata_dwc_driver); | 1783 | platform_driver_unregister(&sata_dwc_driver); |
| 1785 | } | 1784 | } |
| 1786 | 1785 | ||
| 1787 | module_init(sata_dwc_init); | 1786 | module_init(sata_dwc_init); |
diff --git a/drivers/ata/sata_fsl.c b/drivers/ata/sata_fsl.c index 7f9eab34a386..ef3ce26bb1f0 100644 --- a/drivers/ata/sata_fsl.c +++ b/drivers/ata/sata_fsl.c | |||
| @@ -1300,8 +1300,7 @@ static const struct ata_port_info sata_fsl_port_info[] = { | |||
| 1300 | }, | 1300 | }, |
| 1301 | }; | 1301 | }; |
| 1302 | 1302 | ||
| 1303 | static int sata_fsl_probe(struct platform_device *ofdev, | 1303 | static int sata_fsl_probe(struct platform_device *ofdev) |
| 1304 | const struct of_device_id *match) | ||
| 1305 | { | 1304 | { |
| 1306 | int retval = -ENXIO; | 1305 | int retval = -ENXIO; |
| 1307 | void __iomem *hcr_base = NULL; | 1306 | void __iomem *hcr_base = NULL; |
| @@ -1437,7 +1436,7 @@ static struct of_device_id fsl_sata_match[] = { | |||
| 1437 | 1436 | ||
| 1438 | MODULE_DEVICE_TABLE(of, fsl_sata_match); | 1437 | MODULE_DEVICE_TABLE(of, fsl_sata_match); |
| 1439 | 1438 | ||
| 1440 | static struct of_platform_driver fsl_sata_driver = { | 1439 | static struct platform_driver fsl_sata_driver = { |
| 1441 | .driver = { | 1440 | .driver = { |
| 1442 | .name = "fsl-sata", | 1441 | .name = "fsl-sata", |
| 1443 | .owner = THIS_MODULE, | 1442 | .owner = THIS_MODULE, |
| @@ -1453,13 +1452,13 @@ static struct of_platform_driver fsl_sata_driver = { | |||
| 1453 | 1452 | ||
| 1454 | static int __init sata_fsl_init(void) | 1453 | static int __init sata_fsl_init(void) |
| 1455 | { | 1454 | { |
| 1456 | of_register_platform_driver(&fsl_sata_driver); | 1455 | platform_driver_register(&fsl_sata_driver); |
| 1457 | return 0; | 1456 | return 0; |
| 1458 | } | 1457 | } |
| 1459 | 1458 | ||
| 1460 | static void __exit sata_fsl_exit(void) | 1459 | static void __exit sata_fsl_exit(void) |
| 1461 | { | 1460 | { |
| 1462 | of_unregister_platform_driver(&fsl_sata_driver); | 1461 | platform_driver_unregister(&fsl_sata_driver); |
| 1463 | } | 1462 | } |
| 1464 | 1463 | ||
| 1465 | MODULE_LICENSE("GPL"); | 1464 | MODULE_LICENSE("GPL"); |
diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c index 44f778507770..bdd2719f3f68 100644 --- a/drivers/atm/fore200e.c +++ b/drivers/atm/fore200e.c | |||
| @@ -2643,14 +2643,17 @@ fore200e_init(struct fore200e* fore200e, struct device *parent) | |||
| 2643 | } | 2643 | } |
| 2644 | 2644 | ||
| 2645 | #ifdef CONFIG_SBUS | 2645 | #ifdef CONFIG_SBUS |
| 2646 | static int __devinit fore200e_sba_probe(struct platform_device *op, | 2646 | static int __devinit fore200e_sba_probe(struct platform_device *op) |
| 2647 | const struct of_device_id *match) | ||
| 2648 | { | 2647 | { |
| 2649 | const struct fore200e_bus *bus = match->data; | 2648 | const struct fore200e_bus *bus; |
| 2650 | struct fore200e *fore200e; | 2649 | struct fore200e *fore200e; |
| 2651 | static int index = 0; | 2650 | static int index = 0; |
| 2652 | int err; | 2651 | int err; |
| 2653 | 2652 | ||
| 2653 | if (!op->dev.of_match) | ||
| 2654 | return -EINVAL; | ||
| 2655 | bus = op->dev.of_match->data; | ||
| 2656 | |||
| 2654 | fore200e = kzalloc(sizeof(struct fore200e), GFP_KERNEL); | 2657 | fore200e = kzalloc(sizeof(struct fore200e), GFP_KERNEL); |
| 2655 | if (!fore200e) | 2658 | if (!fore200e) |
| 2656 | return -ENOMEM; | 2659 | return -ENOMEM; |
| @@ -2694,7 +2697,7 @@ static const struct of_device_id fore200e_sba_match[] = { | |||
| 2694 | }; | 2697 | }; |
| 2695 | MODULE_DEVICE_TABLE(of, fore200e_sba_match); | 2698 | MODULE_DEVICE_TABLE(of, fore200e_sba_match); |
| 2696 | 2699 | ||
| 2697 | static struct of_platform_driver fore200e_sba_driver = { | 2700 | static struct platform_driver fore200e_sba_driver = { |
| 2698 | .driver = { | 2701 | .driver = { |
| 2699 | .name = "fore_200e", | 2702 | .name = "fore_200e", |
| 2700 | .owner = THIS_MODULE, | 2703 | .owner = THIS_MODULE, |
| @@ -2795,7 +2798,7 @@ static int __init fore200e_module_init(void) | |||
| 2795 | printk(FORE200E "FORE Systems 200E-series ATM driver - version " FORE200E_VERSION "\n"); | 2798 | printk(FORE200E "FORE Systems 200E-series ATM driver - version " FORE200E_VERSION "\n"); |
| 2796 | 2799 | ||
| 2797 | #ifdef CONFIG_SBUS | 2800 | #ifdef CONFIG_SBUS |
| 2798 | err = of_register_platform_driver(&fore200e_sba_driver); | 2801 | err = platform_driver_register(&fore200e_sba_driver); |
| 2799 | if (err) | 2802 | if (err) |
| 2800 | return err; | 2803 | return err; |
| 2801 | #endif | 2804 | #endif |
| @@ -2806,7 +2809,7 @@ static int __init fore200e_module_init(void) | |||
| 2806 | 2809 | ||
| 2807 | #ifdef CONFIG_SBUS | 2810 | #ifdef CONFIG_SBUS |
| 2808 | if (err) | 2811 | if (err) |
| 2809 | of_unregister_platform_driver(&fore200e_sba_driver); | 2812 | platform_driver_unregister(&fore200e_sba_driver); |
| 2810 | #endif | 2813 | #endif |
| 2811 | 2814 | ||
| 2812 | return err; | 2815 | return err; |
| @@ -2818,7 +2821,7 @@ static void __exit fore200e_module_cleanup(void) | |||
| 2818 | pci_unregister_driver(&fore200e_pca_driver); | 2821 | pci_unregister_driver(&fore200e_pca_driver); |
| 2819 | #endif | 2822 | #endif |
| 2820 | #ifdef CONFIG_SBUS | 2823 | #ifdef CONFIG_SBUS |
| 2821 | of_unregister_platform_driver(&fore200e_sba_driver); | 2824 | platform_driver_unregister(&fore200e_sba_driver); |
| 2822 | #endif | 2825 | #endif |
| 2823 | } | 2826 | } |
| 2824 | 2827 | ||
diff --git a/drivers/block/xsysace.c b/drivers/block/xsysace.c index 829161edae53..2c590a796aa1 100644 --- a/drivers/block/xsysace.c +++ b/drivers/block/xsysace.c | |||
| @@ -1195,16 +1195,13 @@ static struct platform_driver ace_platform_driver = { | |||
| 1195 | */ | 1195 | */ |
| 1196 | 1196 | ||
| 1197 | #if defined(CONFIG_OF) | 1197 | #if defined(CONFIG_OF) |
| 1198 | static int __devinit | 1198 | static int __devinit ace_of_probe(struct platform_device *op) |
| 1199 | ace_of_probe(struct platform_device *op, const struct of_device_id *match) | ||
| 1200 | { | 1199 | { |
| 1201 | struct resource res; | 1200 | struct resource res; |
| 1202 | resource_size_t physaddr; | 1201 | resource_size_t physaddr; |
| 1203 | const u32 *id; | 1202 | const u32 *id; |
| 1204 | int irq, bus_width, rc; | 1203 | int irq, bus_width, rc; |
| 1205 | 1204 | ||
| 1206 | dev_dbg(&op->dev, "ace_of_probe(%p, %p)\n", op, match); | ||
| 1207 | |||
| 1208 | /* device id */ | 1205 | /* device id */ |
| 1209 | id = of_get_property(op->dev.of_node, "port-number", NULL); | 1206 | id = of_get_property(op->dev.of_node, "port-number", NULL); |
| 1210 | 1207 | ||
| @@ -1245,7 +1242,7 @@ static const struct of_device_id ace_of_match[] __devinitconst = { | |||
| 1245 | }; | 1242 | }; |
| 1246 | MODULE_DEVICE_TABLE(of, ace_of_match); | 1243 | MODULE_DEVICE_TABLE(of, ace_of_match); |
| 1247 | 1244 | ||
| 1248 | static struct of_platform_driver ace_of_driver = { | 1245 | static struct platform_driver ace_of_driver = { |
| 1249 | .probe = ace_of_probe, | 1246 | .probe = ace_of_probe, |
| 1250 | .remove = __devexit_p(ace_of_remove), | 1247 | .remove = __devexit_p(ace_of_remove), |
| 1251 | .driver = { | 1248 | .driver = { |
| @@ -1259,12 +1256,12 @@ static struct of_platform_driver ace_of_driver = { | |||
| 1259 | static inline int __init ace_of_register(void) | 1256 | static inline int __init ace_of_register(void) |
| 1260 | { | 1257 | { |
| 1261 | pr_debug("xsysace: registering OF binding\n"); | 1258 | pr_debug("xsysace: registering OF binding\n"); |
| 1262 | return of_register_platform_driver(&ace_of_driver); | 1259 | return platform_driver_register(&ace_of_driver); |
| 1263 | } | 1260 | } |
| 1264 | 1261 | ||
| 1265 | static inline void __exit ace_of_unregister(void) | 1262 | static inline void __exit ace_of_unregister(void) |
| 1266 | { | 1263 | { |
| 1267 | of_unregister_platform_driver(&ace_of_driver); | 1264 | platform_driver_unregister(&ace_of_driver); |
| 1268 | } | 1265 | } |
| 1269 | #else /* CONFIG_OF */ | 1266 | #else /* CONFIG_OF */ |
| 1270 | /* CONFIG_OF not enabled; do nothing helpers */ | 1267 | /* CONFIG_OF not enabled; do nothing helpers */ |
diff --git a/drivers/char/hw_random/n2-drv.c b/drivers/char/hw_random/n2-drv.c index a3f5e381e746..43ac61978d8b 100644 --- a/drivers/char/hw_random/n2-drv.c +++ b/drivers/char/hw_random/n2-drv.c | |||
| @@ -619,15 +619,17 @@ static void __devinit n2rng_driver_version(void) | |||
| 619 | pr_info("%s", version); | 619 | pr_info("%s", version); |
| 620 | } | 620 | } |
| 621 | 621 | ||
| 622 | static int __devinit n2rng_probe(struct platform_device *op, | 622 | static int __devinit n2rng_probe(struct platform_device *op) |
| 623 | const struct of_device_id *match) | ||
| 624 | { | 623 | { |
| 625 | int victoria_falls = (match->data != NULL); | 624 | int victoria_falls; |
| 626 | int err = -ENOMEM; | 625 | int err = -ENOMEM; |
| 627 | struct n2rng *np; | 626 | struct n2rng *np; |
| 628 | 627 | ||
| 629 | n2rng_driver_version(); | 628 | if (!op->dev.of_match) |
| 629 | return -EINVAL; | ||
| 630 | victoria_falls = (op->dev.of_match->data != NULL); | ||
| 630 | 631 | ||
| 632 | n2rng_driver_version(); | ||
| 631 | np = kzalloc(sizeof(*np), GFP_KERNEL); | 633 | np = kzalloc(sizeof(*np), GFP_KERNEL); |
| 632 | if (!np) | 634 | if (!np) |
| 633 | goto out; | 635 | goto out; |
| @@ -750,7 +752,7 @@ static const struct of_device_id n2rng_match[] = { | |||
| 750 | }; | 752 | }; |
| 751 | MODULE_DEVICE_TABLE(of, n2rng_match); | 753 | MODULE_DEVICE_TABLE(of, n2rng_match); |
| 752 | 754 | ||
| 753 | static struct of_platform_driver n2rng_driver = { | 755 | static struct platform_driver n2rng_driver = { |
| 754 | .driver = { | 756 | .driver = { |
| 755 | .name = "n2rng", | 757 | .name = "n2rng", |
| 756 | .owner = THIS_MODULE, | 758 | .owner = THIS_MODULE, |
| @@ -762,12 +764,12 @@ static struct of_platform_driver n2rng_driver = { | |||
| 762 | 764 | ||
| 763 | static int __init n2rng_init(void) | 765 | static int __init n2rng_init(void) |
| 764 | { | 766 | { |
| 765 | return of_register_platform_driver(&n2rng_driver); | 767 | return platform_driver_register(&n2rng_driver); |
| 766 | } | 768 | } |
| 767 | 769 | ||
| 768 | static void __exit n2rng_exit(void) | 770 | static void __exit n2rng_exit(void) |
| 769 | { | 771 | { |
| 770 | of_unregister_platform_driver(&n2rng_driver); | 772 | platform_driver_unregister(&n2rng_driver); |
| 771 | } | 773 | } |
| 772 | 774 | ||
| 773 | module_init(n2rng_init); | 775 | module_init(n2rng_init); |
diff --git a/drivers/char/hw_random/pasemi-rng.c b/drivers/char/hw_random/pasemi-rng.c index a31c830ca8cd..1d504815e6db 100644 --- a/drivers/char/hw_random/pasemi-rng.c +++ b/drivers/char/hw_random/pasemi-rng.c | |||
| @@ -94,8 +94,7 @@ static struct hwrng pasemi_rng = { | |||
| 94 | .data_read = pasemi_rng_data_read, | 94 | .data_read = pasemi_rng_data_read, |
| 95 | }; | 95 | }; |
| 96 | 96 | ||
| 97 | static int __devinit rng_probe(struct platform_device *ofdev, | 97 | static int __devinit rng_probe(struct platform_device *ofdev) |
| 98 | const struct of_device_id *match) | ||
| 99 | { | 98 | { |
| 100 | void __iomem *rng_regs; | 99 | void __iomem *rng_regs; |
| 101 | struct device_node *rng_np = ofdev->dev.of_node; | 100 | struct device_node *rng_np = ofdev->dev.of_node; |
| @@ -139,7 +138,7 @@ static struct of_device_id rng_match[] = { | |||
| 139 | { }, | 138 | { }, |
| 140 | }; | 139 | }; |
| 141 | 140 | ||
| 142 | static struct of_platform_driver rng_driver = { | 141 | static struct platform_driver rng_driver = { |
| 143 | .driver = { | 142 | .driver = { |
| 144 | .name = "pasemi-rng", | 143 | .name = "pasemi-rng", |
| 145 | .owner = THIS_MODULE, | 144 | .owner = THIS_MODULE, |
| @@ -151,13 +150,13 @@ static struct of_platform_driver rng_driver = { | |||
| 151 | 150 | ||
| 152 | static int __init rng_init(void) | 151 | static int __init rng_init(void) |
| 153 | { | 152 | { |
| 154 | return of_register_platform_driver(&rng_driver); | 153 | return platform_driver_register(&rng_driver); |
| 155 | } | 154 | } |
| 156 | module_init(rng_init); | 155 | module_init(rng_init); |
| 157 | 156 | ||
| 158 | static void __exit rng_exit(void) | 157 | static void __exit rng_exit(void) |
| 159 | { | 158 | { |
| 160 | of_unregister_platform_driver(&rng_driver); | 159 | platform_driver_unregister(&rng_driver); |
| 161 | } | 160 | } |
| 162 | module_exit(rng_exit); | 161 | module_exit(rng_exit); |
| 163 | 162 | ||
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c index 62787e30d508..c86d43b88e1e 100644 --- a/drivers/char/ipmi/ipmi_si_intf.c +++ b/drivers/char/ipmi/ipmi_si_intf.c | |||
| @@ -66,13 +66,10 @@ | |||
| 66 | #include <linux/string.h> | 66 | #include <linux/string.h> |
| 67 | #include <linux/ctype.h> | 67 | #include <linux/ctype.h> |
| 68 | #include <linux/pnp.h> | 68 | #include <linux/pnp.h> |
| 69 | |||
| 70 | #ifdef CONFIG_PPC_OF | ||
| 71 | #include <linux/of_device.h> | 69 | #include <linux/of_device.h> |
| 72 | #include <linux/of_platform.h> | 70 | #include <linux/of_platform.h> |
| 73 | #include <linux/of_address.h> | 71 | #include <linux/of_address.h> |
| 74 | #include <linux/of_irq.h> | 72 | #include <linux/of_irq.h> |
| 75 | #endif | ||
| 76 | 73 | ||
| 77 | #define PFX "ipmi_si: " | 74 | #define PFX "ipmi_si: " |
| 78 | 75 | ||
| @@ -116,13 +113,7 @@ static char *ipmi_addr_src_to_str[] = { NULL, "hotmod", "hardcoded", "SPMI", | |||
| 116 | 113 | ||
| 117 | #define DEVICE_NAME "ipmi_si" | 114 | #define DEVICE_NAME "ipmi_si" |
| 118 | 115 | ||
| 119 | static struct platform_driver ipmi_driver = { | 116 | static struct platform_driver ipmi_driver; |
| 120 | .driver = { | ||
| 121 | .name = DEVICE_NAME, | ||
| 122 | .bus = &platform_bus_type | ||
| 123 | } | ||
| 124 | }; | ||
| 125 | |||
| 126 | 117 | ||
| 127 | /* | 118 | /* |
| 128 | * Indexes into stats[] in smi_info below. | 119 | * Indexes into stats[] in smi_info below. |
| @@ -308,9 +299,6 @@ static int pci_registered; | |||
| 308 | #ifdef CONFIG_ACPI | 299 | #ifdef CONFIG_ACPI |
| 309 | static int pnp_registered; | 300 | static int pnp_registered; |
| 310 | #endif | 301 | #endif |
| 311 | #ifdef CONFIG_PPC_OF | ||
| 312 | static int of_registered; | ||
| 313 | #endif | ||
| 314 | 302 | ||
| 315 | static unsigned int kipmid_max_busy_us[SI_MAX_PARMS]; | 303 | static unsigned int kipmid_max_busy_us[SI_MAX_PARMS]; |
| 316 | static int num_max_busy_us; | 304 | static int num_max_busy_us; |
| @@ -1868,8 +1856,9 @@ static int hotmod_handler(const char *val, struct kernel_param *kp) | |||
| 1868 | return rv; | 1856 | return rv; |
| 1869 | } | 1857 | } |
| 1870 | 1858 | ||
| 1871 | static void __devinit hardcode_find_bmc(void) | 1859 | static int __devinit hardcode_find_bmc(void) |
| 1872 | { | 1860 | { |
| 1861 | int ret = -ENODEV; | ||
| 1873 | int i; | 1862 | int i; |
| 1874 | struct smi_info *info; | 1863 | struct smi_info *info; |
| 1875 | 1864 | ||
| @@ -1879,7 +1868,7 @@ static void __devinit hardcode_find_bmc(void) | |||
| 1879 | 1868 | ||
| 1880 | info = smi_info_alloc(); | 1869 | info = smi_info_alloc(); |
| 1881 | if (!info) | 1870 | if (!info) |
| 1882 | return; | 1871 | return -ENOMEM; |
| 1883 | 1872 | ||
| 1884 | info->addr_source = SI_HARDCODED; | 1873 | info->addr_source = SI_HARDCODED; |
| 1885 | printk(KERN_INFO PFX "probing via hardcoded address\n"); | 1874 | printk(KERN_INFO PFX "probing via hardcoded address\n"); |
| @@ -1932,10 +1921,12 @@ static void __devinit hardcode_find_bmc(void) | |||
| 1932 | if (!add_smi(info)) { | 1921 | if (!add_smi(info)) { |
| 1933 | if (try_smi_init(info)) | 1922 | if (try_smi_init(info)) |
| 1934 | cleanup_one_si(info); | 1923 | cleanup_one_si(info); |
| 1924 | ret = 0; | ||
| 1935 | } else { | 1925 | } else { |
| 1936 | kfree(info); | 1926 | kfree(info); |
| 1937 | } | 1927 | } |
| 1938 | } | 1928 | } |
| 1929 | return ret; | ||
| 1939 | } | 1930 | } |
| 1940 | 1931 | ||
| 1941 | #ifdef CONFIG_ACPI | 1932 | #ifdef CONFIG_ACPI |
| @@ -2563,11 +2554,9 @@ static struct pci_driver ipmi_pci_driver = { | |||
| 2563 | }; | 2554 | }; |
| 2564 | #endif /* CONFIG_PCI */ | 2555 | #endif /* CONFIG_PCI */ |
| 2565 | 2556 | ||
| 2566 | 2557 | static int __devinit ipmi_probe(struct platform_device *dev) | |
| 2567 | #ifdef CONFIG_PPC_OF | ||
| 2568 | static int __devinit ipmi_of_probe(struct platform_device *dev, | ||
| 2569 | const struct of_device_id *match) | ||
| 2570 | { | 2558 | { |
| 2559 | #ifdef CONFIG_OF | ||
| 2571 | struct smi_info *info; | 2560 | struct smi_info *info; |
| 2572 | struct resource resource; | 2561 | struct resource resource; |
| 2573 | const __be32 *regsize, *regspacing, *regshift; | 2562 | const __be32 *regsize, *regspacing, *regshift; |
| @@ -2577,6 +2566,9 @@ static int __devinit ipmi_of_probe(struct platform_device *dev, | |||
| 2577 | 2566 | ||
| 2578 | dev_info(&dev->dev, "probing via device tree\n"); | 2567 | dev_info(&dev->dev, "probing via device tree\n"); |
| 2579 | 2568 | ||
| 2569 | if (!dev->dev.of_match) | ||
| 2570 | return -EINVAL; | ||
| 2571 | |||
| 2580 | ret = of_address_to_resource(np, 0, &resource); | 2572 | ret = of_address_to_resource(np, 0, &resource); |
| 2581 | if (ret) { | 2573 | if (ret) { |
| 2582 | dev_warn(&dev->dev, PFX "invalid address from OF\n"); | 2574 | dev_warn(&dev->dev, PFX "invalid address from OF\n"); |
| @@ -2609,7 +2601,7 @@ static int __devinit ipmi_of_probe(struct platform_device *dev, | |||
| 2609 | return -ENOMEM; | 2601 | return -ENOMEM; |
| 2610 | } | 2602 | } |
| 2611 | 2603 | ||
| 2612 | info->si_type = (enum si_type) match->data; | 2604 | info->si_type = (enum si_type) dev->dev.of_match->data; |
| 2613 | info->addr_source = SI_DEVICETREE; | 2605 | info->addr_source = SI_DEVICETREE; |
| 2614 | info->irq_setup = std_irq_setup; | 2606 | info->irq_setup = std_irq_setup; |
| 2615 | 2607 | ||
| @@ -2640,13 +2632,15 @@ static int __devinit ipmi_of_probe(struct platform_device *dev, | |||
| 2640 | kfree(info); | 2632 | kfree(info); |
| 2641 | return -EBUSY; | 2633 | return -EBUSY; |
| 2642 | } | 2634 | } |
| 2643 | 2635 | #endif | |
| 2644 | return 0; | 2636 | return 0; |
| 2645 | } | 2637 | } |
| 2646 | 2638 | ||
| 2647 | static int __devexit ipmi_of_remove(struct platform_device *dev) | 2639 | static int __devexit ipmi_remove(struct platform_device *dev) |
| 2648 | { | 2640 | { |
| 2641 | #ifdef CONFIG_OF | ||
| 2649 | cleanup_one_si(dev_get_drvdata(&dev->dev)); | 2642 | cleanup_one_si(dev_get_drvdata(&dev->dev)); |
| 2643 | #endif | ||
| 2650 | return 0; | 2644 | return 0; |
| 2651 | } | 2645 | } |
| 2652 | 2646 | ||
| @@ -2661,16 +2655,15 @@ static struct of_device_id ipmi_match[] = | |||
| 2661 | {}, | 2655 | {}, |
| 2662 | }; | 2656 | }; |
| 2663 | 2657 | ||
| 2664 | static struct of_platform_driver ipmi_of_platform_driver = { | 2658 | static struct platform_driver ipmi_driver = { |
| 2665 | .driver = { | 2659 | .driver = { |
| 2666 | .name = "ipmi", | 2660 | .name = DEVICE_NAME, |
| 2667 | .owner = THIS_MODULE, | 2661 | .owner = THIS_MODULE, |
| 2668 | .of_match_table = ipmi_match, | 2662 | .of_match_table = ipmi_match, |
| 2669 | }, | 2663 | }, |
| 2670 | .probe = ipmi_of_probe, | 2664 | .probe = ipmi_probe, |
| 2671 | .remove = __devexit_p(ipmi_of_remove), | 2665 | .remove = __devexit_p(ipmi_remove), |
| 2672 | }; | 2666 | }; |
| 2673 | #endif /* CONFIG_PPC_OF */ | ||
| 2674 | 2667 | ||
| 2675 | static int wait_for_msg_done(struct smi_info *smi_info) | 2668 | static int wait_for_msg_done(struct smi_info *smi_info) |
| 2676 | { | 2669 | { |
| @@ -3348,8 +3341,7 @@ static int __devinit init_ipmi_si(void) | |||
| 3348 | return 0; | 3341 | return 0; |
| 3349 | initialized = 1; | 3342 | initialized = 1; |
| 3350 | 3343 | ||
| 3351 | /* Register the device drivers. */ | 3344 | rv = platform_driver_register(&ipmi_driver); |
| 3352 | rv = driver_register(&ipmi_driver.driver); | ||
| 3353 | if (rv) { | 3345 | if (rv) { |
| 3354 | printk(KERN_ERR PFX "Unable to register driver: %d\n", rv); | 3346 | printk(KERN_ERR PFX "Unable to register driver: %d\n", rv); |
| 3355 | return rv; | 3347 | return rv; |
| @@ -3373,15 +3365,9 @@ static int __devinit init_ipmi_si(void) | |||
| 3373 | 3365 | ||
| 3374 | printk(KERN_INFO "IPMI System Interface driver.\n"); | 3366 | printk(KERN_INFO "IPMI System Interface driver.\n"); |
| 3375 | 3367 | ||
| 3376 | hardcode_find_bmc(); | ||
| 3377 | |||
| 3378 | /* If the user gave us a device, they presumably want us to use it */ | 3368 | /* If the user gave us a device, they presumably want us to use it */ |
| 3379 | mutex_lock(&smi_infos_lock); | 3369 | if (!hardcode_find_bmc()) |
| 3380 | if (!list_empty(&smi_infos)) { | ||
| 3381 | mutex_unlock(&smi_infos_lock); | ||
| 3382 | return 0; | 3370 | return 0; |
| 3383 | } | ||
| 3384 | mutex_unlock(&smi_infos_lock); | ||
| 3385 | 3371 | ||
| 3386 | #ifdef CONFIG_PCI | 3372 | #ifdef CONFIG_PCI |
| 3387 | rv = pci_register_driver(&ipmi_pci_driver); | 3373 | rv = pci_register_driver(&ipmi_pci_driver); |
| @@ -3404,11 +3390,6 @@ static int __devinit init_ipmi_si(void) | |||
| 3404 | spmi_find_bmc(); | 3390 | spmi_find_bmc(); |
| 3405 | #endif | 3391 | #endif |
| 3406 | 3392 | ||
| 3407 | #ifdef CONFIG_PPC_OF | ||
| 3408 | of_register_platform_driver(&ipmi_of_platform_driver); | ||
| 3409 | of_registered = 1; | ||
| 3410 | #endif | ||
| 3411 | |||
| 3412 | /* We prefer devices with interrupts, but in the case of a machine | 3393 | /* We prefer devices with interrupts, but in the case of a machine |
| 3413 | with multiple BMCs we assume that there will be several instances | 3394 | with multiple BMCs we assume that there will be several instances |
| 3414 | of a given type so if we succeed in registering a type then also | 3395 | of a given type so if we succeed in registering a type then also |
| @@ -3556,17 +3537,12 @@ static void __exit cleanup_ipmi_si(void) | |||
| 3556 | pnp_unregister_driver(&ipmi_pnp_driver); | 3537 | pnp_unregister_driver(&ipmi_pnp_driver); |
| 3557 | #endif | 3538 | #endif |
| 3558 | 3539 | ||
| 3559 | #ifdef CONFIG_PPC_OF | 3540 | platform_driver_unregister(&ipmi_driver); |
| 3560 | if (of_registered) | ||
| 3561 | of_unregister_platform_driver(&ipmi_of_platform_driver); | ||
| 3562 | #endif | ||
| 3563 | 3541 | ||
| 3564 | mutex_lock(&smi_infos_lock); | 3542 | mutex_lock(&smi_infos_lock); |
| 3565 | list_for_each_entry_safe(e, tmp_e, &smi_infos, link) | 3543 | list_for_each_entry_safe(e, tmp_e, &smi_infos, link) |
| 3566 | cleanup_one_si(e); | 3544 | cleanup_one_si(e); |
| 3567 | mutex_unlock(&smi_infos_lock); | 3545 | mutex_unlock(&smi_infos_lock); |
| 3568 | |||
| 3569 | driver_unregister(&ipmi_driver.driver); | ||
| 3570 | } | 3546 | } |
| 3571 | module_exit(cleanup_ipmi_si); | 3547 | module_exit(cleanup_ipmi_si); |
| 3572 | 3548 | ||
diff --git a/drivers/char/xilinx_hwicap/xilinx_hwicap.c b/drivers/char/xilinx_hwicap/xilinx_hwicap.c index 9f2272e6de1c..d3c9d755ed98 100644 --- a/drivers/char/xilinx_hwicap/xilinx_hwicap.c +++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.c | |||
| @@ -714,20 +714,29 @@ static int __devexit hwicap_remove(struct device *dev) | |||
| 714 | return 0; /* success */ | 714 | return 0; /* success */ |
| 715 | } | 715 | } |
| 716 | 716 | ||
| 717 | static int __devinit hwicap_drv_probe(struct platform_device *pdev) | 717 | #ifdef CONFIG_OF |
| 718 | static int __devinit hwicap_of_probe(struct platform_device *op) | ||
| 718 | { | 719 | { |
| 719 | struct resource *res; | 720 | struct resource res; |
| 720 | const struct config_registers *regs; | 721 | const unsigned int *id; |
| 721 | const char *family; | 722 | const char *family; |
| 723 | int rc; | ||
| 724 | const struct hwicap_driver_config *config = op->dev.of_match->data; | ||
| 725 | const struct config_registers *regs; | ||
| 722 | 726 | ||
| 723 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 727 | |
| 724 | if (!res) | 728 | rc = of_address_to_resource(op->dev.of_node, 0, &res); |
| 725 | return -ENODEV; | 729 | if (rc) { |
| 730 | dev_err(&op->dev, "invalid address\n"); | ||
| 731 | return rc; | ||
| 732 | } | ||
| 733 | |||
| 734 | id = of_get_property(op->dev.of_node, "port-number", NULL); | ||
| 726 | 735 | ||
| 727 | /* It's most likely that we're using V4, if the family is not | 736 | /* It's most likely that we're using V4, if the family is not |
| 728 | specified */ | 737 | specified */ |
| 729 | regs = &v4_config_registers; | 738 | regs = &v4_config_registers; |
| 730 | family = pdev->dev.platform_data; | 739 | family = of_get_property(op->dev.of_node, "xlnx,family", NULL); |
| 731 | 740 | ||
| 732 | if (family) { | 741 | if (family) { |
| 733 | if (!strcmp(family, "virtex2p")) { | 742 | if (!strcmp(family, "virtex2p")) { |
| @@ -738,54 +747,33 @@ static int __devinit hwicap_drv_probe(struct platform_device *pdev) | |||
| 738 | regs = &v5_config_registers; | 747 | regs = &v5_config_registers; |
| 739 | } | 748 | } |
| 740 | } | 749 | } |
| 741 | 750 | return hwicap_setup(&op->dev, id ? *id : -1, &res, config, | |
| 742 | return hwicap_setup(&pdev->dev, pdev->id, res, | 751 | regs); |
| 743 | &buffer_icap_config, regs); | ||
| 744 | } | 752 | } |
| 745 | 753 | #else | |
| 746 | static int __devexit hwicap_drv_remove(struct platform_device *pdev) | 754 | static inline int hwicap_of_probe(struct platform_device *op) |
| 747 | { | 755 | { |
| 748 | return hwicap_remove(&pdev->dev); | 756 | return -EINVAL; |
| 749 | } | 757 | } |
| 758 | #endif /* CONFIG_OF */ | ||
| 750 | 759 | ||
| 751 | static struct platform_driver hwicap_platform_driver = { | 760 | static int __devinit hwicap_drv_probe(struct platform_device *pdev) |
| 752 | .probe = hwicap_drv_probe, | ||
| 753 | .remove = hwicap_drv_remove, | ||
| 754 | .driver = { | ||
| 755 | .owner = THIS_MODULE, | ||
| 756 | .name = DRIVER_NAME, | ||
| 757 | }, | ||
| 758 | }; | ||
| 759 | |||
| 760 | /* --------------------------------------------------------------------- | ||
| 761 | * OF bus binding | ||
| 762 | */ | ||
| 763 | |||
| 764 | #if defined(CONFIG_OF) | ||
| 765 | static int __devinit | ||
| 766 | hwicap_of_probe(struct platform_device *op, const struct of_device_id *match) | ||
| 767 | { | 761 | { |
| 768 | struct resource res; | 762 | struct resource *res; |
| 769 | const unsigned int *id; | ||
| 770 | const char *family; | ||
| 771 | int rc; | ||
| 772 | const struct hwicap_driver_config *config = match->data; | ||
| 773 | const struct config_registers *regs; | 763 | const struct config_registers *regs; |
| 764 | const char *family; | ||
| 774 | 765 | ||
| 775 | dev_dbg(&op->dev, "hwicap_of_probe(%p, %p)\n", op, match); | 766 | if (pdev->dev.of_match) |
| 776 | 767 | return hwicap_of_probe(pdev); | |
| 777 | rc = of_address_to_resource(op->dev.of_node, 0, &res); | ||
| 778 | if (rc) { | ||
| 779 | dev_err(&op->dev, "invalid address\n"); | ||
| 780 | return rc; | ||
| 781 | } | ||
| 782 | 768 | ||
| 783 | id = of_get_property(op->dev.of_node, "port-number", NULL); | 769 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| 770 | if (!res) | ||
| 771 | return -ENODEV; | ||
| 784 | 772 | ||
| 785 | /* It's most likely that we're using V4, if the family is not | 773 | /* It's most likely that we're using V4, if the family is not |
| 786 | specified */ | 774 | specified */ |
| 787 | regs = &v4_config_registers; | 775 | regs = &v4_config_registers; |
| 788 | family = of_get_property(op->dev.of_node, "xlnx,family", NULL); | 776 | family = pdev->dev.platform_data; |
| 789 | 777 | ||
| 790 | if (family) { | 778 | if (family) { |
| 791 | if (!strcmp(family, "virtex2p")) { | 779 | if (!strcmp(family, "virtex2p")) { |
| @@ -796,50 +784,38 @@ hwicap_of_probe(struct platform_device *op, const struct of_device_id *match) | |||
| 796 | regs = &v5_config_registers; | 784 | regs = &v5_config_registers; |
| 797 | } | 785 | } |
| 798 | } | 786 | } |
| 799 | return hwicap_setup(&op->dev, id ? *id : -1, &res, config, | 787 | |
| 800 | regs); | 788 | return hwicap_setup(&pdev->dev, pdev->id, res, |
| 789 | &buffer_icap_config, regs); | ||
| 801 | } | 790 | } |
| 802 | 791 | ||
| 803 | static int __devexit hwicap_of_remove(struct platform_device *op) | 792 | static int __devexit hwicap_drv_remove(struct platform_device *pdev) |
| 804 | { | 793 | { |
| 805 | return hwicap_remove(&op->dev); | 794 | return hwicap_remove(&pdev->dev); |
| 806 | } | 795 | } |
| 807 | 796 | ||
| 808 | /* Match table for of_platform binding */ | 797 | #ifdef CONFIG_OF |
| 798 | /* Match table for device tree binding */ | ||
| 809 | static const struct of_device_id __devinitconst hwicap_of_match[] = { | 799 | static const struct of_device_id __devinitconst hwicap_of_match[] = { |
| 810 | { .compatible = "xlnx,opb-hwicap-1.00.b", .data = &buffer_icap_config}, | 800 | { .compatible = "xlnx,opb-hwicap-1.00.b", .data = &buffer_icap_config}, |
| 811 | { .compatible = "xlnx,xps-hwicap-1.00.a", .data = &fifo_icap_config}, | 801 | { .compatible = "xlnx,xps-hwicap-1.00.a", .data = &fifo_icap_config}, |
| 812 | {}, | 802 | {}, |
| 813 | }; | 803 | }; |
| 814 | MODULE_DEVICE_TABLE(of, hwicap_of_match); | 804 | MODULE_DEVICE_TABLE(of, hwicap_of_match); |
| 805 | #else | ||
| 806 | #define hwicap_of_match NULL | ||
| 807 | #endif | ||
| 815 | 808 | ||
| 816 | static struct of_platform_driver hwicap_of_driver = { | 809 | static struct platform_driver hwicap_platform_driver = { |
| 817 | .probe = hwicap_of_probe, | 810 | .probe = hwicap_drv_probe, |
| 818 | .remove = __devexit_p(hwicap_of_remove), | 811 | .remove = hwicap_drv_remove, |
| 819 | .driver = { | 812 | .driver = { |
| 820 | .name = DRIVER_NAME, | ||
| 821 | .owner = THIS_MODULE, | 813 | .owner = THIS_MODULE, |
| 814 | .name = DRIVER_NAME, | ||
| 822 | .of_match_table = hwicap_of_match, | 815 | .of_match_table = hwicap_of_match, |
| 823 | }, | 816 | }, |
| 824 | }; | 817 | }; |
| 825 | 818 | ||
| 826 | /* Registration helpers to keep the number of #ifdefs to a minimum */ | ||
| 827 | static inline int __init hwicap_of_register(void) | ||
| 828 | { | ||
| 829 | pr_debug("hwicap: calling of_register_platform_driver()\n"); | ||
| 830 | return of_register_platform_driver(&hwicap_of_driver); | ||
| 831 | } | ||
| 832 | |||
| 833 | static inline void __exit hwicap_of_unregister(void) | ||
| 834 | { | ||
| 835 | of_unregister_platform_driver(&hwicap_of_driver); | ||
| 836 | } | ||
| 837 | #else /* CONFIG_OF */ | ||
| 838 | /* CONFIG_OF not enabled; do nothing helpers */ | ||
| 839 | static inline int __init hwicap_of_register(void) { return 0; } | ||
| 840 | static inline void __exit hwicap_of_unregister(void) { } | ||
| 841 | #endif /* CONFIG_OF */ | ||
| 842 | |||
| 843 | static int __init hwicap_module_init(void) | 819 | static int __init hwicap_module_init(void) |
| 844 | { | 820 | { |
| 845 | dev_t devt; | 821 | dev_t devt; |
| @@ -856,21 +832,12 @@ static int __init hwicap_module_init(void) | |||
| 856 | return retval; | 832 | return retval; |
| 857 | 833 | ||
| 858 | retval = platform_driver_register(&hwicap_platform_driver); | 834 | retval = platform_driver_register(&hwicap_platform_driver); |
| 859 | |||
| 860 | if (retval) | ||
| 861 | goto failed1; | ||
| 862 | |||
| 863 | retval = hwicap_of_register(); | ||
| 864 | |||
| 865 | if (retval) | 835 | if (retval) |
| 866 | goto failed2; | 836 | goto failed; |
| 867 | 837 | ||
| 868 | return retval; | 838 | return retval; |
| 869 | 839 | ||
| 870 | failed2: | 840 | failed: |
| 871 | platform_driver_unregister(&hwicap_platform_driver); | ||
| 872 | |||
| 873 | failed1: | ||
| 874 | unregister_chrdev_region(devt, HWICAP_DEVICES); | 841 | unregister_chrdev_region(devt, HWICAP_DEVICES); |
| 875 | 842 | ||
| 876 | return retval; | 843 | return retval; |
| @@ -884,8 +851,6 @@ static void __exit hwicap_module_cleanup(void) | |||
| 884 | 851 | ||
| 885 | platform_driver_unregister(&hwicap_platform_driver); | 852 | platform_driver_unregister(&hwicap_platform_driver); |
| 886 | 853 | ||
| 887 | hwicap_of_unregister(); | ||
| 888 | |||
| 889 | unregister_chrdev_region(devt, HWICAP_DEVICES); | 854 | unregister_chrdev_region(devt, HWICAP_DEVICES); |
| 890 | } | 855 | } |
| 891 | 856 | ||
diff --git a/drivers/crypto/amcc/crypto4xx_core.c b/drivers/crypto/amcc/crypto4xx_core.c index 2b1baee525bc..18912521a7a5 100644 --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c | |||
| @@ -1150,8 +1150,7 @@ struct crypto4xx_alg_common crypto4xx_alg[] = { | |||
| 1150 | /** | 1150 | /** |
| 1151 | * Module Initialization Routine | 1151 | * Module Initialization Routine |
| 1152 | */ | 1152 | */ |
| 1153 | static int __init crypto4xx_probe(struct platform_device *ofdev, | 1153 | static int __init crypto4xx_probe(struct platform_device *ofdev) |
| 1154 | const struct of_device_id *match) | ||
| 1155 | { | 1154 | { |
| 1156 | int rc; | 1155 | int rc; |
| 1157 | struct resource res; | 1156 | struct resource res; |
| @@ -1280,7 +1279,7 @@ static const struct of_device_id crypto4xx_match[] = { | |||
| 1280 | { }, | 1279 | { }, |
| 1281 | }; | 1280 | }; |
| 1282 | 1281 | ||
| 1283 | static struct of_platform_driver crypto4xx_driver = { | 1282 | static struct platform_driver crypto4xx_driver = { |
| 1284 | .driver = { | 1283 | .driver = { |
| 1285 | .name = "crypto4xx", | 1284 | .name = "crypto4xx", |
| 1286 | .owner = THIS_MODULE, | 1285 | .owner = THIS_MODULE, |
| @@ -1292,12 +1291,12 @@ static struct of_platform_driver crypto4xx_driver = { | |||
| 1292 | 1291 | ||
| 1293 | static int __init crypto4xx_init(void) | 1292 | static int __init crypto4xx_init(void) |
| 1294 | { | 1293 | { |
| 1295 | return of_register_platform_driver(&crypto4xx_driver); | 1294 | return platform_driver_register(&crypto4xx_driver); |
| 1296 | } | 1295 | } |
| 1297 | 1296 | ||
| 1298 | static void __exit crypto4xx_exit(void) | 1297 | static void __exit crypto4xx_exit(void) |
| 1299 | { | 1298 | { |
| 1300 | of_unregister_platform_driver(&crypto4xx_driver); | 1299 | platform_driver_unregister(&crypto4xx_driver); |
| 1301 | } | 1300 | } |
| 1302 | 1301 | ||
| 1303 | module_init(crypto4xx_init); | 1302 | module_init(crypto4xx_init); |
diff --git a/drivers/crypto/n2_core.c b/drivers/crypto/n2_core.c index 80dc094e78c6..2e5b2044c96f 100644 --- a/drivers/crypto/n2_core.c +++ b/drivers/crypto/n2_core.c | |||
| @@ -2004,8 +2004,7 @@ static void __devinit n2_spu_driver_version(void) | |||
| 2004 | pr_info("%s", version); | 2004 | pr_info("%s", version); |
| 2005 | } | 2005 | } |
| 2006 | 2006 | ||
| 2007 | static int __devinit n2_crypto_probe(struct platform_device *dev, | 2007 | static int __devinit n2_crypto_probe(struct platform_device *dev) |
| 2008 | const struct of_device_id *match) | ||
| 2009 | { | 2008 | { |
| 2010 | struct mdesc_handle *mdesc; | 2009 | struct mdesc_handle *mdesc; |
| 2011 | const char *full_name; | 2010 | const char *full_name; |
| @@ -2116,8 +2115,7 @@ static void free_ncp(struct n2_mau *mp) | |||
| 2116 | kfree(mp); | 2115 | kfree(mp); |
| 2117 | } | 2116 | } |
| 2118 | 2117 | ||
| 2119 | static int __devinit n2_mau_probe(struct platform_device *dev, | 2118 | static int __devinit n2_mau_probe(struct platform_device *dev) |
| 2120 | const struct of_device_id *match) | ||
| 2121 | { | 2119 | { |
| 2122 | struct mdesc_handle *mdesc; | 2120 | struct mdesc_handle *mdesc; |
| 2123 | const char *full_name; | 2121 | const char *full_name; |
| @@ -2211,7 +2209,7 @@ static struct of_device_id n2_crypto_match[] = { | |||
| 2211 | 2209 | ||
| 2212 | MODULE_DEVICE_TABLE(of, n2_crypto_match); | 2210 | MODULE_DEVICE_TABLE(of, n2_crypto_match); |
| 2213 | 2211 | ||
| 2214 | static struct of_platform_driver n2_crypto_driver = { | 2212 | static struct platform_driver n2_crypto_driver = { |
| 2215 | .driver = { | 2213 | .driver = { |
| 2216 | .name = "n2cp", | 2214 | .name = "n2cp", |
| 2217 | .owner = THIS_MODULE, | 2215 | .owner = THIS_MODULE, |
| @@ -2235,7 +2233,7 @@ static struct of_device_id n2_mau_match[] = { | |||
| 2235 | 2233 | ||
| 2236 | MODULE_DEVICE_TABLE(of, n2_mau_match); | 2234 | MODULE_DEVICE_TABLE(of, n2_mau_match); |
| 2237 | 2235 | ||
| 2238 | static struct of_platform_driver n2_mau_driver = { | 2236 | static struct platform_driver n2_mau_driver = { |
| 2239 | .driver = { | 2237 | .driver = { |
| 2240 | .name = "ncp", | 2238 | .name = "ncp", |
| 2241 | .owner = THIS_MODULE, | 2239 | .owner = THIS_MODULE, |
| @@ -2247,20 +2245,20 @@ static struct of_platform_driver n2_mau_driver = { | |||
| 2247 | 2245 | ||
| 2248 | static int __init n2_init(void) | 2246 | static int __init n2_init(void) |
| 2249 | { | 2247 | { |
| 2250 | int err = of_register_platform_driver(&n2_crypto_driver); | 2248 | int err = platform_driver_register(&n2_crypto_driver); |
| 2251 | 2249 | ||
| 2252 | if (!err) { | 2250 | if (!err) { |
| 2253 | err = of_register_platform_driver(&n2_mau_driver); | 2251 | err = platform_driver_register(&n2_mau_driver); |
| 2254 | if (err) | 2252 | if (err) |
| 2255 | of_unregister_platform_driver(&n2_crypto_driver); | 2253 | platform_driver_unregister(&n2_crypto_driver); |
| 2256 | } | 2254 | } |
| 2257 | return err; | 2255 | return err; |
| 2258 | } | 2256 | } |
| 2259 | 2257 | ||
| 2260 | static void __exit n2_exit(void) | 2258 | static void __exit n2_exit(void) |
| 2261 | { | 2259 | { |
| 2262 | of_unregister_platform_driver(&n2_mau_driver); | 2260 | platform_driver_unregister(&n2_mau_driver); |
| 2263 | of_unregister_platform_driver(&n2_crypto_driver); | 2261 | platform_driver_unregister(&n2_crypto_driver); |
| 2264 | } | 2262 | } |
| 2265 | 2263 | ||
| 2266 | module_init(n2_init); | 2264 | module_init(n2_init); |
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c index b879c3f5d7c0..854e2632f9a6 100644 --- a/drivers/crypto/talitos.c +++ b/drivers/crypto/talitos.c | |||
| @@ -2402,8 +2402,7 @@ static struct talitos_crypto_alg *talitos_alg_alloc(struct device *dev, | |||
| 2402 | return t_alg; | 2402 | return t_alg; |
| 2403 | } | 2403 | } |
| 2404 | 2404 | ||
| 2405 | static int talitos_probe(struct platform_device *ofdev, | 2405 | static int talitos_probe(struct platform_device *ofdev) |
| 2406 | const struct of_device_id *match) | ||
| 2407 | { | 2406 | { |
| 2408 | struct device *dev = &ofdev->dev; | 2407 | struct device *dev = &ofdev->dev; |
| 2409 | struct device_node *np = ofdev->dev.of_node; | 2408 | struct device_node *np = ofdev->dev.of_node; |
| @@ -2580,7 +2579,7 @@ static const struct of_device_id talitos_match[] = { | |||
| 2580 | }; | 2579 | }; |
| 2581 | MODULE_DEVICE_TABLE(of, talitos_match); | 2580 | MODULE_DEVICE_TABLE(of, talitos_match); |
| 2582 | 2581 | ||
| 2583 | static struct of_platform_driver talitos_driver = { | 2582 | static struct platform_driver talitos_driver = { |
| 2584 | .driver = { | 2583 | .driver = { |
| 2585 | .name = "talitos", | 2584 | .name = "talitos", |
| 2586 | .owner = THIS_MODULE, | 2585 | .owner = THIS_MODULE, |
| @@ -2592,13 +2591,13 @@ static struct of_platform_driver talitos_driver = { | |||
| 2592 | 2591 | ||
| 2593 | static int __init talitos_init(void) | 2592 | static int __init talitos_init(void) |
| 2594 | { | 2593 | { |
| 2595 | return of_register_platform_driver(&talitos_driver); | 2594 | return platform_driver_register(&talitos_driver); |
| 2596 | } | 2595 | } |
| 2597 | module_init(talitos_init); | 2596 | module_init(talitos_init); |
| 2598 | 2597 | ||
| 2599 | static void __exit talitos_exit(void) | 2598 | static void __exit talitos_exit(void) |
| 2600 | { | 2599 | { |
| 2601 | of_unregister_platform_driver(&talitos_driver); | 2600 | platform_driver_unregister(&talitos_driver); |
| 2602 | } | 2601 | } |
| 2603 | module_exit(talitos_exit); | 2602 | module_exit(talitos_exit); |
| 2604 | 2603 | ||
diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index 4de947a450fc..e3854a8f0de0 100644 --- a/drivers/dma/fsldma.c +++ b/drivers/dma/fsldma.c | |||
| @@ -1281,8 +1281,7 @@ static void fsl_dma_chan_remove(struct fsldma_chan *chan) | |||
| 1281 | kfree(chan); | 1281 | kfree(chan); |
| 1282 | } | 1282 | } |
| 1283 | 1283 | ||
| 1284 | static int __devinit fsldma_of_probe(struct platform_device *op, | 1284 | static int __devinit fsldma_of_probe(struct platform_device *op) |
| 1285 | const struct of_device_id *match) | ||
| 1286 | { | 1285 | { |
| 1287 | struct fsldma_device *fdev; | 1286 | struct fsldma_device *fdev; |
| 1288 | struct device_node *child; | 1287 | struct device_node *child; |
| @@ -1414,20 +1413,13 @@ static struct of_platform_driver fsldma_of_driver = { | |||
| 1414 | 1413 | ||
| 1415 | static __init int fsldma_init(void) | 1414 | static __init int fsldma_init(void) |
| 1416 | { | 1415 | { |
| 1417 | int ret; | ||
| 1418 | |||
| 1419 | pr_info("Freescale Elo / Elo Plus DMA driver\n"); | 1416 | pr_info("Freescale Elo / Elo Plus DMA driver\n"); |
| 1420 | 1417 | return platform_driver_register(&fsldma_of_driver); | |
| 1421 | ret = of_register_platform_driver(&fsldma_of_driver); | ||
| 1422 | if (ret) | ||
| 1423 | pr_err("fsldma: failed to register platform driver\n"); | ||
| 1424 | |||
| 1425 | return ret; | ||
| 1426 | } | 1418 | } |
| 1427 | 1419 | ||
| 1428 | static void __exit fsldma_exit(void) | 1420 | static void __exit fsldma_exit(void) |
| 1429 | { | 1421 | { |
| 1430 | of_unregister_platform_driver(&fsldma_of_driver); | 1422 | platform_driver_unregister(&fsldma_of_driver); |
| 1431 | } | 1423 | } |
| 1432 | 1424 | ||
| 1433 | subsys_initcall(fsldma_init); | 1425 | subsys_initcall(fsldma_init); |
diff --git a/drivers/dma/mpc512x_dma.c b/drivers/dma/mpc512x_dma.c index 59c270192ccc..4f95d31f5a20 100644 --- a/drivers/dma/mpc512x_dma.c +++ b/drivers/dma/mpc512x_dma.c | |||
| @@ -649,8 +649,7 @@ mpc_dma_prep_memcpy(struct dma_chan *chan, dma_addr_t dst, dma_addr_t src, | |||
| 649 | return &mdesc->desc; | 649 | return &mdesc->desc; |
| 650 | } | 650 | } |
| 651 | 651 | ||
| 652 | static int __devinit mpc_dma_probe(struct platform_device *op, | 652 | static int __devinit mpc_dma_probe(struct platform_device *op) |
| 653 | const struct of_device_id *match) | ||
| 654 | { | 653 | { |
| 655 | struct device_node *dn = op->dev.of_node; | 654 | struct device_node *dn = op->dev.of_node; |
| 656 | struct device *dev = &op->dev; | 655 | struct device *dev = &op->dev; |
| @@ -827,7 +826,7 @@ static struct of_device_id mpc_dma_match[] = { | |||
| 827 | {}, | 826 | {}, |
| 828 | }; | 827 | }; |
| 829 | 828 | ||
| 830 | static struct of_platform_driver mpc_dma_driver = { | 829 | static struct platform_driver mpc_dma_driver = { |
| 831 | .probe = mpc_dma_probe, | 830 | .probe = mpc_dma_probe, |
| 832 | .remove = __devexit_p(mpc_dma_remove), | 831 | .remove = __devexit_p(mpc_dma_remove), |
| 833 | .driver = { | 832 | .driver = { |
| @@ -839,13 +838,13 @@ static struct of_platform_driver mpc_dma_driver = { | |||
| 839 | 838 | ||
| 840 | static int __init mpc_dma_init(void) | 839 | static int __init mpc_dma_init(void) |
| 841 | { | 840 | { |
| 842 | return of_register_platform_driver(&mpc_dma_driver); | 841 | return platform_driver_register(&mpc_dma_driver); |
| 843 | } | 842 | } |
| 844 | module_init(mpc_dma_init); | 843 | module_init(mpc_dma_init); |
| 845 | 844 | ||
| 846 | static void __exit mpc_dma_exit(void) | 845 | static void __exit mpc_dma_exit(void) |
| 847 | { | 846 | { |
| 848 | of_unregister_platform_driver(&mpc_dma_driver); | 847 | platform_driver_unregister(&mpc_dma_driver); |
| 849 | } | 848 | } |
| 850 | module_exit(mpc_dma_exit); | 849 | module_exit(mpc_dma_exit); |
| 851 | 850 | ||
diff --git a/drivers/dma/ppc4xx/adma.c b/drivers/dma/ppc4xx/adma.c index cef584533ee8..3b0247e74cc4 100644 --- a/drivers/dma/ppc4xx/adma.c +++ b/drivers/dma/ppc4xx/adma.c | |||
| @@ -4393,8 +4393,7 @@ static void ppc440spe_adma_release_irqs(struct ppc440spe_adma_device *adev, | |||
| 4393 | /** | 4393 | /** |
| 4394 | * ppc440spe_adma_probe - probe the asynch device | 4394 | * ppc440spe_adma_probe - probe the asynch device |
| 4395 | */ | 4395 | */ |
| 4396 | static int __devinit ppc440spe_adma_probe(struct platform_device *ofdev, | 4396 | static int __devinit ppc440spe_adma_probe(struct platform_device *ofdev) |
| 4397 | const struct of_device_id *match) | ||
| 4398 | { | 4397 | { |
| 4399 | struct device_node *np = ofdev->dev.of_node; | 4398 | struct device_node *np = ofdev->dev.of_node; |
| 4400 | struct resource res; | 4399 | struct resource res; |
| @@ -4944,7 +4943,7 @@ static const struct of_device_id ppc440spe_adma_of_match[] __devinitconst = { | |||
| 4944 | }; | 4943 | }; |
| 4945 | MODULE_DEVICE_TABLE(of, ppc440spe_adma_of_match); | 4944 | MODULE_DEVICE_TABLE(of, ppc440spe_adma_of_match); |
| 4946 | 4945 | ||
| 4947 | static struct of_platform_driver ppc440spe_adma_driver = { | 4946 | static struct platform_driver ppc440spe_adma_driver = { |
| 4948 | .probe = ppc440spe_adma_probe, | 4947 | .probe = ppc440spe_adma_probe, |
| 4949 | .remove = __devexit_p(ppc440spe_adma_remove), | 4948 | .remove = __devexit_p(ppc440spe_adma_remove), |
| 4950 | .driver = { | 4949 | .driver = { |
| @@ -4962,7 +4961,7 @@ static __init int ppc440spe_adma_init(void) | |||
| 4962 | if (ret) | 4961 | if (ret) |
| 4963 | return ret; | 4962 | return ret; |
| 4964 | 4963 | ||
| 4965 | ret = of_register_platform_driver(&ppc440spe_adma_driver); | 4964 | ret = platform_driver_register(&ppc440spe_adma_driver); |
| 4966 | if (ret) { | 4965 | if (ret) { |
| 4967 | pr_err("%s: failed to register platform driver\n", | 4966 | pr_err("%s: failed to register platform driver\n", |
| 4968 | __func__); | 4967 | __func__); |
| @@ -4996,7 +4995,7 @@ out_dev: | |||
| 4996 | /* User will not be able to enable h/w RAID-6 */ | 4995 | /* User will not be able to enable h/w RAID-6 */ |
| 4997 | pr_err("%s: failed to create RAID-6 driver interface\n", | 4996 | pr_err("%s: failed to create RAID-6 driver interface\n", |
| 4998 | __func__); | 4997 | __func__); |
| 4999 | of_unregister_platform_driver(&ppc440spe_adma_driver); | 4998 | platform_driver_unregister(&ppc440spe_adma_driver); |
| 5000 | out_reg: | 4999 | out_reg: |
| 5001 | dcr_unmap(ppc440spe_mq_dcr_host, ppc440spe_mq_dcr_len); | 5000 | dcr_unmap(ppc440spe_mq_dcr_host, ppc440spe_mq_dcr_len); |
| 5002 | kfree(ppc440spe_dma_fifo_buf); | 5001 | kfree(ppc440spe_dma_fifo_buf); |
| @@ -5011,7 +5010,7 @@ static void __exit ppc440spe_adma_exit(void) | |||
| 5011 | &driver_attr_enable); | 5010 | &driver_attr_enable); |
| 5012 | driver_remove_file(&ppc440spe_adma_driver.driver, | 5011 | driver_remove_file(&ppc440spe_adma_driver.driver, |
| 5013 | &driver_attr_devices); | 5012 | &driver_attr_devices); |
| 5014 | of_unregister_platform_driver(&ppc440spe_adma_driver); | 5013 | platform_driver_unregister(&ppc440spe_adma_driver); |
| 5015 | dcr_unmap(ppc440spe_mq_dcr_host, ppc440spe_mq_dcr_len); | 5014 | dcr_unmap(ppc440spe_mq_dcr_host, ppc440spe_mq_dcr_len); |
| 5016 | kfree(ppc440spe_dma_fifo_buf); | 5015 | kfree(ppc440spe_dma_fifo_buf); |
| 5017 | } | 5016 | } |
diff --git a/drivers/edac/mpc85xx_edac.c b/drivers/edac/mpc85xx_edac.c index b123bb308a4a..ffb5ad080bee 100644 --- a/drivers/edac/mpc85xx_edac.c +++ b/drivers/edac/mpc85xx_edac.c | |||
| @@ -200,8 +200,7 @@ static irqreturn_t mpc85xx_pci_isr(int irq, void *dev_id) | |||
| 200 | return IRQ_HANDLED; | 200 | return IRQ_HANDLED; |
| 201 | } | 201 | } |
| 202 | 202 | ||
| 203 | static int __devinit mpc85xx_pci_err_probe(struct platform_device *op, | 203 | static int __devinit mpc85xx_pci_err_probe(struct platform_device *op) |
| 204 | const struct of_device_id *match) | ||
| 205 | { | 204 | { |
| 206 | struct edac_pci_ctl_info *pci; | 205 | struct edac_pci_ctl_info *pci; |
| 207 | struct mpc85xx_pci_pdata *pdata; | 206 | struct mpc85xx_pci_pdata *pdata; |
| @@ -338,7 +337,7 @@ static struct of_device_id mpc85xx_pci_err_of_match[] = { | |||
| 338 | }; | 337 | }; |
| 339 | MODULE_DEVICE_TABLE(of, mpc85xx_pci_err_of_match); | 338 | MODULE_DEVICE_TABLE(of, mpc85xx_pci_err_of_match); |
| 340 | 339 | ||
| 341 | static struct of_platform_driver mpc85xx_pci_err_driver = { | 340 | static struct platform_driver mpc85xx_pci_err_driver = { |
| 342 | .probe = mpc85xx_pci_err_probe, | 341 | .probe = mpc85xx_pci_err_probe, |
| 343 | .remove = __devexit_p(mpc85xx_pci_err_remove), | 342 | .remove = __devexit_p(mpc85xx_pci_err_remove), |
| 344 | .driver = { | 343 | .driver = { |
| @@ -503,8 +502,7 @@ static irqreturn_t mpc85xx_l2_isr(int irq, void *dev_id) | |||
| 503 | return IRQ_HANDLED; | 502 | return IRQ_HANDLED; |
| 504 | } | 503 | } |
| 505 | 504 | ||
| 506 | static int __devinit mpc85xx_l2_err_probe(struct platform_device *op, | 505 | static int __devinit mpc85xx_l2_err_probe(struct platform_device *op) |
| 507 | const struct of_device_id *match) | ||
| 508 | { | 506 | { |
| 509 | struct edac_device_ctl_info *edac_dev; | 507 | struct edac_device_ctl_info *edac_dev; |
| 510 | struct mpc85xx_l2_pdata *pdata; | 508 | struct mpc85xx_l2_pdata *pdata; |
| @@ -656,7 +654,7 @@ static struct of_device_id mpc85xx_l2_err_of_match[] = { | |||
| 656 | }; | 654 | }; |
| 657 | MODULE_DEVICE_TABLE(of, mpc85xx_l2_err_of_match); | 655 | MODULE_DEVICE_TABLE(of, mpc85xx_l2_err_of_match); |
| 658 | 656 | ||
| 659 | static struct of_platform_driver mpc85xx_l2_err_driver = { | 657 | static struct platform_driver mpc85xx_l2_err_driver = { |
| 660 | .probe = mpc85xx_l2_err_probe, | 658 | .probe = mpc85xx_l2_err_probe, |
| 661 | .remove = mpc85xx_l2_err_remove, | 659 | .remove = mpc85xx_l2_err_remove, |
| 662 | .driver = { | 660 | .driver = { |
| @@ -956,8 +954,7 @@ static void __devinit mpc85xx_init_csrows(struct mem_ctl_info *mci) | |||
| 956 | } | 954 | } |
| 957 | } | 955 | } |
| 958 | 956 | ||
| 959 | static int __devinit mpc85xx_mc_err_probe(struct platform_device *op, | 957 | static int __devinit mpc85xx_mc_err_probe(struct platform_device *op) |
| 960 | const struct of_device_id *match) | ||
| 961 | { | 958 | { |
| 962 | struct mem_ctl_info *mci; | 959 | struct mem_ctl_info *mci; |
| 963 | struct mpc85xx_mc_pdata *pdata; | 960 | struct mpc85xx_mc_pdata *pdata; |
| @@ -1136,7 +1133,7 @@ static struct of_device_id mpc85xx_mc_err_of_match[] = { | |||
| 1136 | }; | 1133 | }; |
| 1137 | MODULE_DEVICE_TABLE(of, mpc85xx_mc_err_of_match); | 1134 | MODULE_DEVICE_TABLE(of, mpc85xx_mc_err_of_match); |
| 1138 | 1135 | ||
| 1139 | static struct of_platform_driver mpc85xx_mc_err_driver = { | 1136 | static struct platform_driver mpc85xx_mc_err_driver = { |
| 1140 | .probe = mpc85xx_mc_err_probe, | 1137 | .probe = mpc85xx_mc_err_probe, |
| 1141 | .remove = mpc85xx_mc_err_remove, | 1138 | .remove = mpc85xx_mc_err_remove, |
| 1142 | .driver = { | 1139 | .driver = { |
| @@ -1171,16 +1168,16 @@ static int __init mpc85xx_mc_init(void) | |||
| 1171 | break; | 1168 | break; |
| 1172 | } | 1169 | } |
| 1173 | 1170 | ||
| 1174 | res = of_register_platform_driver(&mpc85xx_mc_err_driver); | 1171 | res = platform_driver_register(&mpc85xx_mc_err_driver); |
| 1175 | if (res) | 1172 | if (res) |
| 1176 | printk(KERN_WARNING EDAC_MOD_STR "MC fails to register\n"); | 1173 | printk(KERN_WARNING EDAC_MOD_STR "MC fails to register\n"); |
| 1177 | 1174 | ||
| 1178 | res = of_register_platform_driver(&mpc85xx_l2_err_driver); | 1175 | res = platform_driver_register(&mpc85xx_l2_err_driver); |
| 1179 | if (res) | 1176 | if (res) |
| 1180 | printk(KERN_WARNING EDAC_MOD_STR "L2 fails to register\n"); | 1177 | printk(KERN_WARNING EDAC_MOD_STR "L2 fails to register\n"); |
| 1181 | 1178 | ||
| 1182 | #ifdef CONFIG_PCI | 1179 | #ifdef CONFIG_PCI |
| 1183 | res = of_register_platform_driver(&mpc85xx_pci_err_driver); | 1180 | res = platform_driver_register(&mpc85xx_pci_err_driver); |
| 1184 | if (res) | 1181 | if (res) |
| 1185 | printk(KERN_WARNING EDAC_MOD_STR "PCI fails to register\n"); | 1182 | printk(KERN_WARNING EDAC_MOD_STR "PCI fails to register\n"); |
| 1186 | #endif | 1183 | #endif |
| @@ -1212,10 +1209,10 @@ static void __exit mpc85xx_mc_exit(void) | |||
| 1212 | on_each_cpu(mpc85xx_mc_restore_hid1, NULL, 0); | 1209 | on_each_cpu(mpc85xx_mc_restore_hid1, NULL, 0); |
| 1213 | #endif | 1210 | #endif |
| 1214 | #ifdef CONFIG_PCI | 1211 | #ifdef CONFIG_PCI |
| 1215 | of_unregister_platform_driver(&mpc85xx_pci_err_driver); | 1212 | platform_driver_unregister(&mpc85xx_pci_err_driver); |
| 1216 | #endif | 1213 | #endif |
| 1217 | of_unregister_platform_driver(&mpc85xx_l2_err_driver); | 1214 | platform_driver_unregister(&mpc85xx_l2_err_driver); |
| 1218 | of_unregister_platform_driver(&mpc85xx_mc_err_driver); | 1215 | platform_driver_unregister(&mpc85xx_mc_err_driver); |
| 1219 | } | 1216 | } |
| 1220 | 1217 | ||
| 1221 | module_exit(mpc85xx_mc_exit); | 1218 | module_exit(mpc85xx_mc_exit); |
diff --git a/drivers/edac/ppc4xx_edac.c b/drivers/edac/ppc4xx_edac.c index b9f0c20df1aa..c1f0045ceb8e 100644 --- a/drivers/edac/ppc4xx_edac.c +++ b/drivers/edac/ppc4xx_edac.c | |||
| @@ -184,8 +184,7 @@ struct ppc4xx_ecc_status { | |||
| 184 | 184 | ||
| 185 | /* Function Prototypes */ | 185 | /* Function Prototypes */ |
| 186 | 186 | ||
| 187 | static int ppc4xx_edac_probe(struct platform_device *device, | 187 | static int ppc4xx_edac_probe(struct platform_device *device) |
| 188 | const struct of_device_id *device_id); | ||
| 189 | static int ppc4xx_edac_remove(struct platform_device *device); | 188 | static int ppc4xx_edac_remove(struct platform_device *device); |
| 190 | 189 | ||
| 191 | /* Global Variables */ | 190 | /* Global Variables */ |
| @@ -201,7 +200,7 @@ static struct of_device_id ppc4xx_edac_match[] = { | |||
| 201 | { } | 200 | { } |
| 202 | }; | 201 | }; |
| 203 | 202 | ||
| 204 | static struct of_platform_driver ppc4xx_edac_driver = { | 203 | static struct platform_driver ppc4xx_edac_driver = { |
| 205 | .probe = ppc4xx_edac_probe, | 204 | .probe = ppc4xx_edac_probe, |
| 206 | .remove = ppc4xx_edac_remove, | 205 | .remove = ppc4xx_edac_remove, |
| 207 | .driver = { | 206 | .driver = { |
| @@ -997,9 +996,6 @@ ppc4xx_edac_init_csrows(struct mem_ctl_info *mci, u32 mcopt1) | |||
| 997 | * initialized. | 996 | * initialized. |
| 998 | * @op: A pointer to the OpenFirmware device tree node associated | 997 | * @op: A pointer to the OpenFirmware device tree node associated |
| 999 | * with the controller this EDAC instance is bound to. | 998 | * with the controller this EDAC instance is bound to. |
| 1000 | * @match: A pointer to the OpenFirmware device tree match | ||
| 1001 | * information associated with the controller this EDAC instance | ||
| 1002 | * is bound to. | ||
| 1003 | * @dcr_host: A pointer to the DCR data containing the DCR mapping | 999 | * @dcr_host: A pointer to the DCR data containing the DCR mapping |
| 1004 | * for this controller instance. | 1000 | * for this controller instance. |
| 1005 | * @mcopt1: The 32-bit Memory Controller Option 1 register value | 1001 | * @mcopt1: The 32-bit Memory Controller Option 1 register value |
| @@ -1015,7 +1011,6 @@ ppc4xx_edac_init_csrows(struct mem_ctl_info *mci, u32 mcopt1) | |||
| 1015 | static int __devinit | 1011 | static int __devinit |
| 1016 | ppc4xx_edac_mc_init(struct mem_ctl_info *mci, | 1012 | ppc4xx_edac_mc_init(struct mem_ctl_info *mci, |
| 1017 | struct platform_device *op, | 1013 | struct platform_device *op, |
| 1018 | const struct of_device_id *match, | ||
| 1019 | const dcr_host_t *dcr_host, | 1014 | const dcr_host_t *dcr_host, |
| 1020 | u32 mcopt1) | 1015 | u32 mcopt1) |
| 1021 | { | 1016 | { |
| @@ -1024,7 +1019,7 @@ ppc4xx_edac_mc_init(struct mem_ctl_info *mci, | |||
| 1024 | struct ppc4xx_edac_pdata *pdata = NULL; | 1019 | struct ppc4xx_edac_pdata *pdata = NULL; |
| 1025 | const struct device_node *np = op->dev.of_node; | 1020 | const struct device_node *np = op->dev.of_node; |
| 1026 | 1021 | ||
| 1027 | if (match == NULL) | 1022 | if (op->dev.of_match == NULL) |
| 1028 | return -EINVAL; | 1023 | return -EINVAL; |
| 1029 | 1024 | ||
| 1030 | /* Initial driver pointers and private data */ | 1025 | /* Initial driver pointers and private data */ |
| @@ -1227,9 +1222,6 @@ ppc4xx_edac_map_dcrs(const struct device_node *np, dcr_host_t *dcr_host) | |||
| 1227 | * ppc4xx_edac_probe - check controller and bind driver | 1222 | * ppc4xx_edac_probe - check controller and bind driver |
| 1228 | * @op: A pointer to the OpenFirmware device tree node associated | 1223 | * @op: A pointer to the OpenFirmware device tree node associated |
| 1229 | * with the controller being probed for driver binding. | 1224 | * with the controller being probed for driver binding. |
| 1230 | * @match: A pointer to the OpenFirmware device tree match | ||
| 1231 | * information associated with the controller being probed | ||
| 1232 | * for driver binding. | ||
| 1233 | * | 1225 | * |
| 1234 | * This routine probes a specific ibm,sdram-4xx-ddr2 controller | 1226 | * This routine probes a specific ibm,sdram-4xx-ddr2 controller |
| 1235 | * instance for binding with the driver. | 1227 | * instance for binding with the driver. |
| @@ -1237,8 +1229,7 @@ ppc4xx_edac_map_dcrs(const struct device_node *np, dcr_host_t *dcr_host) | |||
| 1237 | * Returns 0 if the controller instance was successfully bound to the | 1229 | * Returns 0 if the controller instance was successfully bound to the |
| 1238 | * driver; otherwise, < 0 on error. | 1230 | * driver; otherwise, < 0 on error. |
| 1239 | */ | 1231 | */ |
| 1240 | static int __devinit | 1232 | static int __devinit ppc4xx_edac_probe(struct platform_device *op) |
| 1241 | ppc4xx_edac_probe(struct platform_device *op, const struct of_device_id *match) | ||
| 1242 | { | 1233 | { |
| 1243 | int status = 0; | 1234 | int status = 0; |
| 1244 | u32 mcopt1, memcheck; | 1235 | u32 mcopt1, memcheck; |
| @@ -1304,7 +1295,7 @@ ppc4xx_edac_probe(struct platform_device *op, const struct of_device_id *match) | |||
| 1304 | goto done; | 1295 | goto done; |
| 1305 | } | 1296 | } |
| 1306 | 1297 | ||
| 1307 | status = ppc4xx_edac_mc_init(mci, op, match, &dcr_host, mcopt1); | 1298 | status = ppc4xx_edac_mc_init(mci, op, &dcr_host, mcopt1); |
| 1308 | 1299 | ||
| 1309 | if (status) { | 1300 | if (status) { |
| 1310 | ppc4xx_edac_mc_printk(KERN_ERR, mci, | 1301 | ppc4xx_edac_mc_printk(KERN_ERR, mci, |
| @@ -1421,7 +1412,7 @@ ppc4xx_edac_init(void) | |||
| 1421 | 1412 | ||
| 1422 | ppc4xx_edac_opstate_init(); | 1413 | ppc4xx_edac_opstate_init(); |
| 1423 | 1414 | ||
| 1424 | return of_register_platform_driver(&ppc4xx_edac_driver); | 1415 | return platform_driver_register(&ppc4xx_edac_driver); |
| 1425 | } | 1416 | } |
| 1426 | 1417 | ||
| 1427 | /** | 1418 | /** |
| @@ -1434,7 +1425,7 @@ ppc4xx_edac_init(void) | |||
| 1434 | static void __exit | 1425 | static void __exit |
| 1435 | ppc4xx_edac_exit(void) | 1426 | ppc4xx_edac_exit(void) |
| 1436 | { | 1427 | { |
| 1437 | of_unregister_platform_driver(&ppc4xx_edac_driver); | 1428 | platform_driver_unregister(&ppc4xx_edac_driver); |
| 1438 | } | 1429 | } |
| 1439 | 1430 | ||
| 1440 | module_init(ppc4xx_edac_init); | 1431 | module_init(ppc4xx_edac_init); |
diff --git a/drivers/hwmon/ultra45_env.c b/drivers/hwmon/ultra45_env.c index d863e13a50b8..1f36c635d933 100644 --- a/drivers/hwmon/ultra45_env.c +++ b/drivers/hwmon/ultra45_env.c | |||
| @@ -234,8 +234,7 @@ static const struct attribute_group env_group = { | |||
| 234 | .attrs = env_attributes, | 234 | .attrs = env_attributes, |
| 235 | }; | 235 | }; |
| 236 | 236 | ||
| 237 | static int __devinit env_probe(struct platform_device *op, | 237 | static int __devinit env_probe(struct platform_device *op) |
| 238 | const struct of_device_id *match) | ||
| 239 | { | 238 | { |
| 240 | struct env *p = kzalloc(sizeof(*p), GFP_KERNEL); | 239 | struct env *p = kzalloc(sizeof(*p), GFP_KERNEL); |
| 241 | int err = -ENOMEM; | 240 | int err = -ENOMEM; |
| @@ -299,7 +298,7 @@ static const struct of_device_id env_match[] = { | |||
| 299 | }; | 298 | }; |
| 300 | MODULE_DEVICE_TABLE(of, env_match); | 299 | MODULE_DEVICE_TABLE(of, env_match); |
| 301 | 300 | ||
| 302 | static struct of_platform_driver env_driver = { | 301 | static struct platform_driver env_driver = { |
| 303 | .driver = { | 302 | .driver = { |
| 304 | .name = "ultra45_env", | 303 | .name = "ultra45_env", |
| 305 | .owner = THIS_MODULE, | 304 | .owner = THIS_MODULE, |
| @@ -311,12 +310,12 @@ static struct of_platform_driver env_driver = { | |||
| 311 | 310 | ||
| 312 | static int __init env_init(void) | 311 | static int __init env_init(void) |
| 313 | { | 312 | { |
| 314 | return of_register_platform_driver(&env_driver); | 313 | return platform_driver_register(&env_driver); |
| 315 | } | 314 | } |
| 316 | 315 | ||
| 317 | static void __exit env_exit(void) | 316 | static void __exit env_exit(void) |
| 318 | { | 317 | { |
| 319 | of_unregister_platform_driver(&env_driver); | 318 | platform_driver_unregister(&env_driver); |
| 320 | } | 319 | } |
| 321 | 320 | ||
| 322 | module_init(env_init); | 321 | module_init(env_init); |
diff --git a/drivers/i2c/busses/i2c-cpm.c b/drivers/i2c/busses/i2c-cpm.c index f2de3be35df3..3a20961bef1e 100644 --- a/drivers/i2c/busses/i2c-cpm.c +++ b/drivers/i2c/busses/i2c-cpm.c | |||
| @@ -634,8 +634,7 @@ static void cpm_i2c_shutdown(struct cpm_i2c *cpm) | |||
| 634 | cpm_muram_free(cpm->i2c_addr); | 634 | cpm_muram_free(cpm->i2c_addr); |
| 635 | } | 635 | } |
| 636 | 636 | ||
| 637 | static int __devinit cpm_i2c_probe(struct platform_device *ofdev, | 637 | static int __devinit cpm_i2c_probe(struct platform_device *ofdev) |
| 638 | const struct of_device_id *match) | ||
| 639 | { | 638 | { |
| 640 | int result, len; | 639 | int result, len; |
| 641 | struct cpm_i2c *cpm; | 640 | struct cpm_i2c *cpm; |
| @@ -718,7 +717,7 @@ static const struct of_device_id cpm_i2c_match[] = { | |||
| 718 | 717 | ||
| 719 | MODULE_DEVICE_TABLE(of, cpm_i2c_match); | 718 | MODULE_DEVICE_TABLE(of, cpm_i2c_match); |
| 720 | 719 | ||
| 721 | static struct of_platform_driver cpm_i2c_driver = { | 720 | static struct platform_driver cpm_i2c_driver = { |
| 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 = { |
| @@ -730,12 +729,12 @@ static struct of_platform_driver cpm_i2c_driver = { | |||
| 730 | 729 | ||
| 731 | static int __init cpm_i2c_init(void) | 730 | static int __init cpm_i2c_init(void) |
| 732 | { | 731 | { |
| 733 | return of_register_platform_driver(&cpm_i2c_driver); | 732 | return platform_driver_register(&cpm_i2c_driver); |
| 734 | } | 733 | } |
| 735 | 734 | ||
| 736 | static void __exit cpm_i2c_exit(void) | 735 | static void __exit cpm_i2c_exit(void) |
| 737 | { | 736 | { |
| 738 | of_unregister_platform_driver(&cpm_i2c_driver); | 737 | platform_driver_unregister(&cpm_i2c_driver); |
| 739 | } | 738 | } |
| 740 | 739 | ||
| 741 | module_init(cpm_i2c_init); | 740 | module_init(cpm_i2c_init); |
diff --git a/drivers/i2c/busses/i2c-ibm_iic.c b/drivers/i2c/busses/i2c-ibm_iic.c index 6e3c38240336..e4f88dca99b5 100644 --- a/drivers/i2c/busses/i2c-ibm_iic.c +++ b/drivers/i2c/busses/i2c-ibm_iic.c | |||
| @@ -691,8 +691,7 @@ static int __devinit iic_request_irq(struct platform_device *ofdev, | |||
| 691 | /* | 691 | /* |
| 692 | * Register single IIC interface | 692 | * Register single IIC interface |
| 693 | */ | 693 | */ |
| 694 | static int __devinit iic_probe(struct platform_device *ofdev, | 694 | static int __devinit iic_probe(struct platform_device *ofdev) |
| 695 | const struct of_device_id *match) | ||
| 696 | { | 695 | { |
| 697 | struct device_node *np = ofdev->dev.of_node; | 696 | struct device_node *np = ofdev->dev.of_node; |
| 698 | struct ibm_iic_private *dev; | 697 | struct ibm_iic_private *dev; |
| @@ -806,7 +805,7 @@ static const struct of_device_id ibm_iic_match[] = { | |||
| 806 | {} | 805 | {} |
| 807 | }; | 806 | }; |
| 808 | 807 | ||
| 809 | static struct of_platform_driver ibm_iic_driver = { | 808 | static struct platform_driver ibm_iic_driver = { |
| 810 | .driver = { | 809 | .driver = { |
| 811 | .name = "ibm-iic", | 810 | .name = "ibm-iic", |
| 812 | .owner = THIS_MODULE, | 811 | .owner = THIS_MODULE, |
| @@ -818,12 +817,12 @@ static struct of_platform_driver ibm_iic_driver = { | |||
| 818 | 817 | ||
| 819 | static int __init iic_init(void) | 818 | static int __init iic_init(void) |
| 820 | { | 819 | { |
| 821 | return of_register_platform_driver(&ibm_iic_driver); | 820 | return platform_driver_register(&ibm_iic_driver); |
| 822 | } | 821 | } |
| 823 | 822 | ||
| 824 | static void __exit iic_exit(void) | 823 | static void __exit iic_exit(void) |
| 825 | { | 824 | { |
| 826 | of_unregister_platform_driver(&ibm_iic_driver); | 825 | platform_driver_unregister(&ibm_iic_driver); |
| 827 | } | 826 | } |
| 828 | 827 | ||
| 829 | module_init(iic_init); | 828 | module_init(iic_init); |
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c index b74e6dc6886c..75b984c519ac 100644 --- a/drivers/i2c/busses/i2c-mpc.c +++ b/drivers/i2c/busses/i2c-mpc.c | |||
| @@ -560,8 +560,7 @@ static struct i2c_adapter mpc_ops = { | |||
| 560 | .timeout = HZ, | 560 | .timeout = HZ, |
| 561 | }; | 561 | }; |
| 562 | 562 | ||
| 563 | static int __devinit fsl_i2c_probe(struct platform_device *op, | 563 | static int __devinit fsl_i2c_probe(struct platform_device *op) |
| 564 | const struct of_device_id *match) | ||
| 565 | { | 564 | { |
| 566 | struct mpc_i2c *i2c; | 565 | struct mpc_i2c *i2c; |
| 567 | const u32 *prop; | 566 | const u32 *prop; |
| @@ -569,6 +568,9 @@ static int __devinit fsl_i2c_probe(struct platform_device *op, | |||
| 569 | int result = 0; | 568 | int result = 0; |
| 570 | int plen; | 569 | int plen; |
| 571 | 570 | ||
| 571 | if (!op->dev.of_match) | ||
| 572 | return -EINVAL; | ||
| 573 | |||
| 572 | i2c = kzalloc(sizeof(*i2c), GFP_KERNEL); | 574 | i2c = kzalloc(sizeof(*i2c), GFP_KERNEL); |
| 573 | if (!i2c) | 575 | if (!i2c) |
| 574 | return -ENOMEM; | 576 | return -ENOMEM; |
| @@ -603,8 +605,8 @@ static int __devinit fsl_i2c_probe(struct platform_device *op, | |||
| 603 | clock = *prop; | 605 | clock = *prop; |
| 604 | } | 606 | } |
| 605 | 607 | ||
| 606 | if (match->data) { | 608 | if (op->dev.of_match->data) { |
| 607 | struct mpc_i2c_data *data = match->data; | 609 | struct mpc_i2c_data *data = op->dev.of_match->data; |
| 608 | data->setup(op->dev.of_node, i2c, clock, data->prescaler); | 610 | data->setup(op->dev.of_node, i2c, clock, data->prescaler); |
| 609 | } else { | 611 | } else { |
| 610 | /* Backwards compatibility */ | 612 | /* Backwards compatibility */ |
| @@ -700,7 +702,7 @@ static const struct of_device_id mpc_i2c_of_match[] = { | |||
| 700 | MODULE_DEVICE_TABLE(of, mpc_i2c_of_match); | 702 | MODULE_DEVICE_TABLE(of, mpc_i2c_of_match); |
| 701 | 703 | ||
| 702 | /* Structure for a device driver */ | 704 | /* Structure for a device driver */ |
| 703 | static struct of_platform_driver mpc_i2c_driver = { | 705 | static struct platform_driver mpc_i2c_driver = { |
| 704 | .probe = fsl_i2c_probe, | 706 | .probe = fsl_i2c_probe, |
| 705 | .remove = __devexit_p(fsl_i2c_remove), | 707 | .remove = __devexit_p(fsl_i2c_remove), |
| 706 | .driver = { | 708 | .driver = { |
| @@ -712,18 +714,12 @@ static struct of_platform_driver mpc_i2c_driver = { | |||
| 712 | 714 | ||
| 713 | static int __init fsl_i2c_init(void) | 715 | static int __init fsl_i2c_init(void) |
| 714 | { | 716 | { |
| 715 | int rv; | 717 | return platform_driver_register(&mpc_i2c_driver); |
| 716 | |||
| 717 | rv = of_register_platform_driver(&mpc_i2c_driver); | ||
| 718 | if (rv) | ||
| 719 | printk(KERN_ERR DRV_NAME | ||
| 720 | " of_register_platform_driver failed (%i)\n", rv); | ||
| 721 | return rv; | ||
| 722 | } | 718 | } |
| 723 | 719 | ||
| 724 | static void __exit fsl_i2c_exit(void) | 720 | static void __exit fsl_i2c_exit(void) |
| 725 | { | 721 | { |
| 726 | of_unregister_platform_driver(&mpc_i2c_driver); | 722 | platform_driver_unregister(&mpc_i2c_driver); |
| 727 | } | 723 | } |
| 728 | 724 | ||
| 729 | module_init(fsl_i2c_init); | 725 | module_init(fsl_i2c_init); |
diff --git a/drivers/input/misc/sparcspkr.c b/drivers/input/misc/sparcspkr.c index 8e130bf7d32b..0122f5351577 100644 --- a/drivers/input/misc/sparcspkr.c +++ b/drivers/input/misc/sparcspkr.c | |||
| @@ -173,18 +173,16 @@ static int __devinit sparcspkr_probe(struct device *dev) | |||
| 173 | return 0; | 173 | return 0; |
| 174 | } | 174 | } |
| 175 | 175 | ||
| 176 | static int sparcspkr_shutdown(struct platform_device *dev) | 176 | static void sparcspkr_shutdown(struct platform_device *dev) |
| 177 | { | 177 | { |
| 178 | struct sparcspkr_state *state = dev_get_drvdata(&dev->dev); | 178 | struct sparcspkr_state *state = dev_get_drvdata(&dev->dev); |
| 179 | struct input_dev *input_dev = state->input_dev; | 179 | struct input_dev *input_dev = state->input_dev; |
| 180 | 180 | ||
| 181 | /* turn off the speaker */ | 181 | /* turn off the speaker */ |
| 182 | state->event(input_dev, EV_SND, SND_BELL, 0); | 182 | state->event(input_dev, EV_SND, SND_BELL, 0); |
| 183 | |||
| 184 | return 0; | ||
| 185 | } | 183 | } |
| 186 | 184 | ||
| 187 | static int __devinit bbc_beep_probe(struct platform_device *op, const struct of_device_id *match) | 185 | static int __devinit bbc_beep_probe(struct platform_device *op) |
| 188 | { | 186 | { |
| 189 | struct sparcspkr_state *state; | 187 | struct sparcspkr_state *state; |
| 190 | struct bbc_beep_info *info; | 188 | struct bbc_beep_info *info; |
| @@ -258,7 +256,7 @@ static const struct of_device_id bbc_beep_match[] = { | |||
| 258 | {}, | 256 | {}, |
| 259 | }; | 257 | }; |
| 260 | 258 | ||
| 261 | static struct of_platform_driver bbc_beep_driver = { | 259 | static struct platform_driver bbc_beep_driver = { |
| 262 | .driver = { | 260 | .driver = { |
| 263 | .name = "bbcbeep", | 261 | .name = "bbcbeep", |
| 264 | .owner = THIS_MODULE, | 262 | .owner = THIS_MODULE, |
| @@ -269,7 +267,7 @@ static struct of_platform_driver bbc_beep_driver = { | |||
| 269 | .shutdown = sparcspkr_shutdown, | 267 | .shutdown = sparcspkr_shutdown, |
| 270 | }; | 268 | }; |
| 271 | 269 | ||
| 272 | static int __devinit grover_beep_probe(struct platform_device *op, const struct of_device_id *match) | 270 | static int __devinit grover_beep_probe(struct platform_device *op) |
| 273 | { | 271 | { |
| 274 | struct sparcspkr_state *state; | 272 | struct sparcspkr_state *state; |
| 275 | struct grover_beep_info *info; | 273 | struct grover_beep_info *info; |
| @@ -340,7 +338,7 @@ static const struct of_device_id grover_beep_match[] = { | |||
| 340 | {}, | 338 | {}, |
| 341 | }; | 339 | }; |
| 342 | 340 | ||
| 343 | static struct of_platform_driver grover_beep_driver = { | 341 | static struct platform_driver grover_beep_driver = { |
| 344 | .driver = { | 342 | .driver = { |
| 345 | .name = "groverbeep", | 343 | .name = "groverbeep", |
| 346 | .owner = THIS_MODULE, | 344 | .owner = THIS_MODULE, |
| @@ -353,12 +351,12 @@ static struct of_platform_driver grover_beep_driver = { | |||
| 353 | 351 | ||
| 354 | static int __init sparcspkr_init(void) | 352 | static int __init sparcspkr_init(void) |
| 355 | { | 353 | { |
| 356 | int err = of_register_platform_driver(&bbc_beep_driver); | 354 | int err = platform_driver_register(&bbc_beep_driver); |
| 357 | 355 | ||
| 358 | if (!err) { | 356 | if (!err) { |
| 359 | err = of_register_platform_driver(&grover_beep_driver); | 357 | err = platform_driver_register(&grover_beep_driver); |
| 360 | if (err) | 358 | if (err) |
| 361 | of_unregister_platform_driver(&bbc_beep_driver); | 359 | platform_driver_unregister(&bbc_beep_driver); |
| 362 | } | 360 | } |
| 363 | 361 | ||
| 364 | return err; | 362 | return err; |
| @@ -366,8 +364,8 @@ static int __init sparcspkr_init(void) | |||
| 366 | 364 | ||
| 367 | static void __exit sparcspkr_exit(void) | 365 | static void __exit sparcspkr_exit(void) |
| 368 | { | 366 | { |
| 369 | of_unregister_platform_driver(&bbc_beep_driver); | 367 | platform_driver_unregister(&bbc_beep_driver); |
| 370 | of_unregister_platform_driver(&grover_beep_driver); | 368 | platform_driver_unregister(&grover_beep_driver); |
| 371 | } | 369 | } |
| 372 | 370 | ||
| 373 | module_init(sparcspkr_init); | 371 | module_init(sparcspkr_init); |
diff --git a/drivers/input/serio/altera_ps2.c b/drivers/input/serio/altera_ps2.c index 7998560a1904..d363dc4571a3 100644 --- a/drivers/input/serio/altera_ps2.c +++ b/drivers/input/serio/altera_ps2.c | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | #include <linux/platform_device.h> | 19 | #include <linux/platform_device.h> |
| 20 | #include <linux/io.h> | 20 | #include <linux/io.h> |
| 21 | #include <linux/slab.h> | 21 | #include <linux/slab.h> |
| 22 | #include <linux/of.h> | ||
| 22 | 23 | ||
| 23 | #define DRV_NAME "altera_ps2" | 24 | #define DRV_NAME "altera_ps2" |
| 24 | 25 | ||
| @@ -173,6 +174,16 @@ static int __devexit altera_ps2_remove(struct platform_device *pdev) | |||
| 173 | return 0; | 174 | return 0; |
| 174 | } | 175 | } |
| 175 | 176 | ||
| 177 | #ifdef CONFIG_OF | ||
| 178 | static const struct of_device_id altera_ps2_match[] = { | ||
| 179 | { .compatible = "ALTR,ps2-1.0", }, | ||
| 180 | {}, | ||
| 181 | }; | ||
| 182 | MODULE_DEVICE_TABLE(of, altera_ps2_match); | ||
| 183 | #else /* CONFIG_OF */ | ||
| 184 | #define altera_ps2_match NULL | ||
| 185 | #endif /* CONFIG_OF */ | ||
| 186 | |||
| 176 | /* | 187 | /* |
| 177 | * Our device driver structure | 188 | * Our device driver structure |
| 178 | */ | 189 | */ |
| @@ -182,6 +193,7 @@ static struct platform_driver altera_ps2_driver = { | |||
| 182 | .driver = { | 193 | .driver = { |
| 183 | .name = DRV_NAME, | 194 | .name = DRV_NAME, |
| 184 | .owner = THIS_MODULE, | 195 | .owner = THIS_MODULE, |
| 196 | .of_match_table = altera_ps2_match, | ||
| 185 | }, | 197 | }, |
| 186 | }; | 198 | }; |
| 187 | 199 | ||
| @@ -189,13 +201,12 @@ static int __init altera_ps2_init(void) | |||
| 189 | { | 201 | { |
| 190 | return platform_driver_register(&altera_ps2_driver); | 202 | return platform_driver_register(&altera_ps2_driver); |
| 191 | } | 203 | } |
| 204 | module_init(altera_ps2_init); | ||
| 192 | 205 | ||
| 193 | static void __exit altera_ps2_exit(void) | 206 | static void __exit altera_ps2_exit(void) |
| 194 | { | 207 | { |
| 195 | platform_driver_unregister(&altera_ps2_driver); | 208 | platform_driver_unregister(&altera_ps2_driver); |
| 196 | } | 209 | } |
| 197 | |||
| 198 | module_init(altera_ps2_init); | ||
| 199 | module_exit(altera_ps2_exit); | 210 | module_exit(altera_ps2_exit); |
| 200 | 211 | ||
| 201 | MODULE_DESCRIPTION("Altera University Program PS2 controller driver"); | 212 | MODULE_DESCRIPTION("Altera University Program PS2 controller driver"); |
diff --git a/drivers/input/serio/i8042-sparcio.h b/drivers/input/serio/i8042-sparcio.h index c5cc4508d6df..395a9af3adcd 100644 --- a/drivers/input/serio/i8042-sparcio.h +++ b/drivers/input/serio/i8042-sparcio.h | |||
| @@ -49,7 +49,7 @@ static inline void i8042_write_command(int val) | |||
| 49 | #define OBP_PS2MS_NAME1 "kdmouse" | 49 | #define OBP_PS2MS_NAME1 "kdmouse" |
| 50 | #define OBP_PS2MS_NAME2 "mouse" | 50 | #define OBP_PS2MS_NAME2 "mouse" |
| 51 | 51 | ||
| 52 | static int __devinit sparc_i8042_probe(struct platform_device *op, const struct of_device_id *match) | 52 | static int __devinit sparc_i8042_probe(struct platform_device *op) |
| 53 | { | 53 | { |
| 54 | struct device_node *dp = op->dev.of_node; | 54 | struct device_node *dp = op->dev.of_node; |
| 55 | 55 | ||
| @@ -95,7 +95,7 @@ static const struct of_device_id sparc_i8042_match[] = { | |||
| 95 | }; | 95 | }; |
| 96 | MODULE_DEVICE_TABLE(of, sparc_i8042_match); | 96 | MODULE_DEVICE_TABLE(of, sparc_i8042_match); |
| 97 | 97 | ||
| 98 | static struct of_platform_driver sparc_i8042_driver = { | 98 | static struct platform_driver sparc_i8042_driver = { |
| 99 | .driver = { | 99 | .driver = { |
| 100 | .name = "i8042", | 100 | .name = "i8042", |
| 101 | .owner = THIS_MODULE, | 101 | .owner = THIS_MODULE, |
| @@ -116,7 +116,7 @@ static int __init i8042_platform_init(void) | |||
| 116 | if (!kbd_iobase) | 116 | if (!kbd_iobase) |
| 117 | return -ENODEV; | 117 | return -ENODEV; |
| 118 | } else { | 118 | } else { |
| 119 | int err = of_register_platform_driver(&sparc_i8042_driver); | 119 | int err = platform_driver_register(&sparc_i8042_driver); |
| 120 | if (err) | 120 | if (err) |
| 121 | return err; | 121 | return err; |
| 122 | 122 | ||
| @@ -140,7 +140,7 @@ static inline void i8042_platform_exit(void) | |||
| 140 | struct device_node *root = of_find_node_by_path("/"); | 140 | struct device_node *root = of_find_node_by_path("/"); |
| 141 | 141 | ||
| 142 | if (strcmp(root->name, "SUNW,JavaStation-1")) | 142 | if (strcmp(root->name, "SUNW,JavaStation-1")) |
| 143 | of_unregister_platform_driver(&sparc_i8042_driver); | 143 | platform_driver_unregister(&sparc_i8042_driver); |
| 144 | } | 144 | } |
| 145 | 145 | ||
| 146 | #else /* !CONFIG_PCI */ | 146 | #else /* !CONFIG_PCI */ |
diff --git a/drivers/input/serio/xilinx_ps2.c b/drivers/input/serio/xilinx_ps2.c index bb14449fb022..7540bafc95cf 100644 --- a/drivers/input/serio/xilinx_ps2.c +++ b/drivers/input/serio/xilinx_ps2.c | |||
| @@ -232,8 +232,7 @@ static void sxps2_close(struct serio *pserio) | |||
| 232 | * It returns 0, if the driver is bound to the PS/2 device, or a negative | 232 | * It returns 0, if the driver is bound to the PS/2 device, or a negative |
| 233 | * value if there is an error. | 233 | * value if there is an error. |
| 234 | */ | 234 | */ |
| 235 | static int __devinit xps2_of_probe(struct platform_device *ofdev, | 235 | static int __devinit xps2_of_probe(struct platform_device *ofdev) |
| 236 | const struct of_device_id *match) | ||
| 237 | { | 236 | { |
| 238 | struct resource r_irq; /* Interrupt resources */ | 237 | struct resource r_irq; /* Interrupt resources */ |
| 239 | struct resource r_mem; /* IO mem resources */ | 238 | struct resource r_mem; /* IO mem resources */ |
| @@ -361,7 +360,7 @@ static const struct of_device_id xps2_of_match[] __devinitconst = { | |||
| 361 | }; | 360 | }; |
| 362 | MODULE_DEVICE_TABLE(of, xps2_of_match); | 361 | MODULE_DEVICE_TABLE(of, xps2_of_match); |
| 363 | 362 | ||
| 364 | static struct of_platform_driver xps2_of_driver = { | 363 | static struct platform_driver xps2_of_driver = { |
| 365 | .driver = { | 364 | .driver = { |
| 366 | .name = DRIVER_NAME, | 365 | .name = DRIVER_NAME, |
| 367 | .owner = THIS_MODULE, | 366 | .owner = THIS_MODULE, |
| @@ -373,12 +372,12 @@ static struct of_platform_driver xps2_of_driver = { | |||
| 373 | 372 | ||
| 374 | static int __init xps2_init(void) | 373 | static int __init xps2_init(void) |
| 375 | { | 374 | { |
| 376 | return of_register_platform_driver(&xps2_of_driver); | 375 | return platform_driver_register(&xps2_of_driver); |
| 377 | } | 376 | } |
| 378 | 377 | ||
| 379 | static void __exit xps2_cleanup(void) | 378 | static void __exit xps2_cleanup(void) |
| 380 | { | 379 | { |
| 381 | of_unregister_platform_driver(&xps2_of_driver); | 380 | platform_driver_unregister(&xps2_of_driver); |
| 382 | } | 381 | } |
| 383 | 382 | ||
| 384 | module_init(xps2_init); | 383 | module_init(xps2_init); |
diff --git a/drivers/leds/leds-gpio.c b/drivers/leds/leds-gpio.c index 4d9fa38d9ff6..b0480c8fbcbf 100644 --- a/drivers/leds/leds-gpio.c +++ b/drivers/leds/leds-gpio.c | |||
| @@ -14,6 +14,8 @@ | |||
| 14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
| 15 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
| 16 | #include <linux/leds.h> | 16 | #include <linux/leds.h> |
| 17 | #include <linux/of_platform.h> | ||
| 18 | #include <linux/of_gpio.h> | ||
| 17 | #include <linux/slab.h> | 19 | #include <linux/slab.h> |
| 18 | #include <linux/workqueue.h> | 20 | #include <linux/workqueue.h> |
| 19 | 21 | ||
| @@ -151,96 +153,34 @@ static void delete_gpio_led(struct gpio_led_data *led) | |||
| 151 | gpio_free(led->gpio); | 153 | gpio_free(led->gpio); |
| 152 | } | 154 | } |
| 153 | 155 | ||
| 154 | #ifdef CONFIG_LEDS_GPIO_PLATFORM | 156 | struct gpio_leds_priv { |
| 155 | static int __devinit gpio_led_probe(struct platform_device *pdev) | 157 | int num_leds; |
| 156 | { | 158 | struct gpio_led_data leds[]; |
| 157 | struct gpio_led_platform_data *pdata = pdev->dev.platform_data; | 159 | }; |
| 158 | struct gpio_led_data *leds_data; | ||
| 159 | int i, ret = 0; | ||
| 160 | |||
| 161 | if (!pdata) | ||
| 162 | return -EBUSY; | ||
| 163 | |||
| 164 | leds_data = kzalloc(sizeof(struct gpio_led_data) * pdata->num_leds, | ||
| 165 | GFP_KERNEL); | ||
| 166 | if (!leds_data) | ||
| 167 | return -ENOMEM; | ||
| 168 | |||
| 169 | for (i = 0; i < pdata->num_leds; i++) { | ||
| 170 | ret = create_gpio_led(&pdata->leds[i], &leds_data[i], | ||
| 171 | &pdev->dev, pdata->gpio_blink_set); | ||
| 172 | if (ret < 0) | ||
| 173 | goto err; | ||
| 174 | } | ||
| 175 | |||
| 176 | platform_set_drvdata(pdev, leds_data); | ||
| 177 | |||
| 178 | return 0; | ||
| 179 | |||
| 180 | err: | ||
| 181 | for (i = i - 1; i >= 0; i--) | ||
| 182 | delete_gpio_led(&leds_data[i]); | ||
| 183 | |||
| 184 | kfree(leds_data); | ||
| 185 | |||
| 186 | return ret; | ||
| 187 | } | ||
| 188 | 160 | ||
| 189 | static int __devexit gpio_led_remove(struct platform_device *pdev) | 161 | static inline int sizeof_gpio_leds_priv(int num_leds) |
| 190 | { | 162 | { |
| 191 | int i; | 163 | return sizeof(struct gpio_leds_priv) + |
| 192 | struct gpio_led_platform_data *pdata = pdev->dev.platform_data; | 164 | (sizeof(struct gpio_led_data) * num_leds); |
| 193 | struct gpio_led_data *leds_data; | ||
| 194 | |||
| 195 | leds_data = platform_get_drvdata(pdev); | ||
| 196 | |||
| 197 | for (i = 0; i < pdata->num_leds; i++) | ||
| 198 | delete_gpio_led(&leds_data[i]); | ||
| 199 | |||
| 200 | kfree(leds_data); | ||
| 201 | |||
| 202 | return 0; | ||
| 203 | } | 165 | } |
| 204 | 166 | ||
| 205 | static struct platform_driver gpio_led_driver = { | ||
| 206 | .probe = gpio_led_probe, | ||
| 207 | .remove = __devexit_p(gpio_led_remove), | ||
| 208 | .driver = { | ||
| 209 | .name = "leds-gpio", | ||
| 210 | .owner = THIS_MODULE, | ||
| 211 | }, | ||
| 212 | }; | ||
| 213 | |||
| 214 | MODULE_ALIAS("platform:leds-gpio"); | ||
| 215 | #endif /* CONFIG_LEDS_GPIO_PLATFORM */ | ||
| 216 | |||
| 217 | /* Code to create from OpenFirmware platform devices */ | 167 | /* Code to create from OpenFirmware platform devices */ |
| 218 | #ifdef CONFIG_LEDS_GPIO_OF | 168 | #ifdef CONFIG_LEDS_GPIO_OF |
| 219 | #include <linux/of_platform.h> | 169 | static struct gpio_leds_priv * __devinit gpio_leds_create_of(struct platform_device *pdev) |
| 220 | #include <linux/of_gpio.h> | ||
| 221 | |||
| 222 | struct gpio_led_of_platform_data { | ||
| 223 | int num_leds; | ||
| 224 | struct gpio_led_data led_data[]; | ||
| 225 | }; | ||
| 226 | |||
| 227 | static int __devinit of_gpio_leds_probe(struct platform_device *ofdev, | ||
| 228 | const struct of_device_id *match) | ||
| 229 | { | 170 | { |
| 230 | struct device_node *np = ofdev->dev.of_node, *child; | 171 | struct device_node *np = pdev->dev.of_node, *child; |
| 231 | struct gpio_led_of_platform_data *pdata; | 172 | struct gpio_leds_priv *priv; |
| 232 | int count = 0, ret; | 173 | int count = 0, ret; |
| 233 | 174 | ||
| 234 | /* count LEDs defined by this device, so we know how much to allocate */ | 175 | /* count LEDs in this device, so we know how much to allocate */ |
| 235 | for_each_child_of_node(np, child) | 176 | for_each_child_of_node(np, child) |
| 236 | count++; | 177 | count++; |
| 237 | if (!count) | 178 | if (!count) |
| 238 | return 0; /* or ENODEV? */ | 179 | return NULL; |
| 239 | 180 | ||
| 240 | pdata = kzalloc(sizeof(*pdata) + sizeof(struct gpio_led_data) * count, | 181 | priv = kzalloc(sizeof_gpio_leds_priv(count), GFP_KERNEL); |
| 241 | GFP_KERNEL); | 182 | if (!priv) |
| 242 | if (!pdata) | 183 | return NULL; |
| 243 | return -ENOMEM; | ||
| 244 | 184 | ||
| 245 | for_each_child_of_node(np, child) { | 185 | for_each_child_of_node(np, child) { |
| 246 | struct gpio_led led = {}; | 186 | struct gpio_led led = {}; |
| @@ -256,92 +196,112 @@ static int __devinit of_gpio_leds_probe(struct platform_device *ofdev, | |||
| 256 | if (state) { | 196 | if (state) { |
| 257 | if (!strcmp(state, "keep")) | 197 | if (!strcmp(state, "keep")) |
| 258 | led.default_state = LEDS_GPIO_DEFSTATE_KEEP; | 198 | led.default_state = LEDS_GPIO_DEFSTATE_KEEP; |
| 259 | else if(!strcmp(state, "on")) | 199 | else if (!strcmp(state, "on")) |
| 260 | led.default_state = LEDS_GPIO_DEFSTATE_ON; | 200 | led.default_state = LEDS_GPIO_DEFSTATE_ON; |
| 261 | else | 201 | else |
| 262 | led.default_state = LEDS_GPIO_DEFSTATE_OFF; | 202 | led.default_state = LEDS_GPIO_DEFSTATE_OFF; |
| 263 | } | 203 | } |
| 264 | 204 | ||
| 265 | ret = create_gpio_led(&led, &pdata->led_data[pdata->num_leds++], | 205 | ret = create_gpio_led(&led, &priv->leds[priv->num_leds++], |
| 266 | &ofdev->dev, NULL); | 206 | &pdev->dev, NULL); |
| 267 | if (ret < 0) { | 207 | if (ret < 0) { |
| 268 | of_node_put(child); | 208 | of_node_put(child); |
| 269 | goto err; | 209 | goto err; |
| 270 | } | 210 | } |
| 271 | } | 211 | } |
| 272 | 212 | ||
| 273 | dev_set_drvdata(&ofdev->dev, pdata); | 213 | return priv; |
| 274 | |||
| 275 | return 0; | ||
| 276 | 214 | ||
| 277 | err: | 215 | err: |
| 278 | for (count = pdata->num_leds - 2; count >= 0; count--) | 216 | for (count = priv->num_leds - 2; count >= 0; count--) |
| 279 | delete_gpio_led(&pdata->led_data[count]); | 217 | delete_gpio_led(&priv->leds[count]); |
| 218 | kfree(priv); | ||
| 219 | return NULL; | ||
| 220 | } | ||
| 280 | 221 | ||
| 281 | kfree(pdata); | 222 | static const struct of_device_id of_gpio_leds_match[] = { |
| 223 | { .compatible = "gpio-leds", }, | ||
| 224 | {}, | ||
| 225 | }; | ||
| 226 | #else | ||
| 227 | static struct gpio_leds_priv * __devinit gpio_leds_create_of(struct platform_device *pdev) | ||
| 228 | { | ||
| 229 | return NULL; | ||
| 230 | } | ||
| 231 | #define of_gpio_leds_match NULL | ||
| 232 | #endif | ||
| 282 | 233 | ||
| 283 | return ret; | 234 | |
| 235 | static int __devinit gpio_led_probe(struct platform_device *pdev) | ||
| 236 | { | ||
| 237 | struct gpio_led_platform_data *pdata = pdev->dev.platform_data; | ||
| 238 | struct gpio_leds_priv *priv; | ||
| 239 | int i, ret = 0; | ||
| 240 | |||
| 241 | if (pdata && pdata->num_leds) { | ||
| 242 | priv = kzalloc(sizeof_gpio_leds_priv(pdata->num_leds), | ||
| 243 | GFP_KERNEL); | ||
| 244 | if (!priv) | ||
| 245 | return -ENOMEM; | ||
| 246 | |||
| 247 | priv->num_leds = pdata->num_leds; | ||
| 248 | for (i = 0; i < priv->num_leds; i++) { | ||
| 249 | ret = create_gpio_led(&pdata->leds[i], | ||
| 250 | &priv->leds[i], | ||
| 251 | &pdev->dev, pdata->gpio_blink_set); | ||
| 252 | if (ret < 0) { | ||
| 253 | /* On failure: unwind the led creations */ | ||
| 254 | for (i = i - 1; i >= 0; i--) | ||
| 255 | delete_gpio_led(&priv->leds[i]); | ||
| 256 | kfree(priv); | ||
| 257 | return ret; | ||
| 258 | } | ||
| 259 | } | ||
| 260 | } else { | ||
| 261 | priv = gpio_leds_create_of(pdev); | ||
| 262 | if (!priv) | ||
| 263 | return -ENODEV; | ||
| 264 | } | ||
| 265 | |||
| 266 | platform_set_drvdata(pdev, priv); | ||
| 267 | |||
| 268 | return 0; | ||
| 284 | } | 269 | } |
| 285 | 270 | ||
| 286 | static int __devexit of_gpio_leds_remove(struct platform_device *ofdev) | 271 | static int __devexit gpio_led_remove(struct platform_device *pdev) |
| 287 | { | 272 | { |
| 288 | struct gpio_led_of_platform_data *pdata = dev_get_drvdata(&ofdev->dev); | 273 | struct gpio_leds_priv *priv = dev_get_drvdata(&pdev->dev); |
| 289 | int i; | 274 | int i; |
| 290 | 275 | ||
| 291 | for (i = 0; i < pdata->num_leds; i++) | 276 | for (i = 0; i < priv->num_leds; i++) |
| 292 | delete_gpio_led(&pdata->led_data[i]); | 277 | delete_gpio_led(&priv->leds[i]); |
| 293 | |||
| 294 | kfree(pdata); | ||
| 295 | 278 | ||
| 296 | dev_set_drvdata(&ofdev->dev, NULL); | 279 | dev_set_drvdata(&pdev->dev, NULL); |
| 280 | kfree(priv); | ||
| 297 | 281 | ||
| 298 | return 0; | 282 | return 0; |
| 299 | } | 283 | } |
| 300 | 284 | ||
| 301 | static const struct of_device_id of_gpio_leds_match[] = { | 285 | static struct platform_driver gpio_led_driver = { |
| 302 | { .compatible = "gpio-leds", }, | 286 | .probe = gpio_led_probe, |
| 303 | {}, | 287 | .remove = __devexit_p(gpio_led_remove), |
| 304 | }; | 288 | .driver = { |
| 305 | 289 | .name = "leds-gpio", | |
| 306 | static struct of_platform_driver of_gpio_leds_driver = { | 290 | .owner = THIS_MODULE, |
| 307 | .driver = { | ||
| 308 | .name = "of_gpio_leds", | ||
| 309 | .owner = THIS_MODULE, | ||
| 310 | .of_match_table = of_gpio_leds_match, | 291 | .of_match_table = of_gpio_leds_match, |
| 311 | }, | 292 | }, |
| 312 | .probe = of_gpio_leds_probe, | ||
| 313 | .remove = __devexit_p(of_gpio_leds_remove), | ||
| 314 | }; | 293 | }; |
| 315 | #endif | 294 | |
| 295 | MODULE_ALIAS("platform:leds-gpio"); | ||
| 316 | 296 | ||
| 317 | static int __init gpio_led_init(void) | 297 | static int __init gpio_led_init(void) |
| 318 | { | 298 | { |
| 319 | int ret = 0; | 299 | return platform_driver_register(&gpio_led_driver); |
| 320 | |||
| 321 | #ifdef CONFIG_LEDS_GPIO_PLATFORM | ||
| 322 | ret = platform_driver_register(&gpio_led_driver); | ||
| 323 | if (ret) | ||
| 324 | return ret; | ||
| 325 | #endif | ||
| 326 | #ifdef CONFIG_LEDS_GPIO_OF | ||
| 327 | ret = of_register_platform_driver(&of_gpio_leds_driver); | ||
| 328 | #endif | ||
| 329 | #ifdef CONFIG_LEDS_GPIO_PLATFORM | ||
| 330 | if (ret) | ||
| 331 | platform_driver_unregister(&gpio_led_driver); | ||
| 332 | #endif | ||
| 333 | |||
| 334 | return ret; | ||
| 335 | } | 300 | } |
| 336 | 301 | ||
| 337 | static void __exit gpio_led_exit(void) | 302 | static void __exit gpio_led_exit(void) |
| 338 | { | 303 | { |
| 339 | #ifdef CONFIG_LEDS_GPIO_PLATFORM | ||
| 340 | platform_driver_unregister(&gpio_led_driver); | 304 | platform_driver_unregister(&gpio_led_driver); |
| 341 | #endif | ||
| 342 | #ifdef CONFIG_LEDS_GPIO_OF | ||
| 343 | of_unregister_platform_driver(&of_gpio_leds_driver); | ||
| 344 | #endif | ||
| 345 | } | 305 | } |
| 346 | 306 | ||
| 347 | module_init(gpio_led_init); | 307 | module_init(gpio_led_init); |
diff --git a/drivers/macintosh/smu.c b/drivers/macintosh/smu.c index 290cb325a94c..116a49ce74b2 100644 --- a/drivers/macintosh/smu.c +++ b/drivers/macintosh/smu.c | |||
| @@ -645,8 +645,7 @@ static void smu_expose_childs(struct work_struct *unused) | |||
| 645 | 645 | ||
| 646 | static DECLARE_WORK(smu_expose_childs_work, smu_expose_childs); | 646 | static DECLARE_WORK(smu_expose_childs_work, smu_expose_childs); |
| 647 | 647 | ||
| 648 | static int smu_platform_probe(struct platform_device* dev, | 648 | static int smu_platform_probe(struct platform_device* dev) |
| 649 | const struct of_device_id *match) | ||
| 650 | { | 649 | { |
| 651 | if (!smu) | 650 | if (!smu) |
| 652 | return -ENODEV; | 651 | return -ENODEV; |
| @@ -669,7 +668,7 @@ static const struct of_device_id smu_platform_match[] = | |||
| 669 | {}, | 668 | {}, |
| 670 | }; | 669 | }; |
| 671 | 670 | ||
| 672 | static struct of_platform_driver smu_of_platform_driver = | 671 | static struct platform_driver smu_of_platform_driver = |
| 673 | { | 672 | { |
| 674 | .driver = { | 673 | .driver = { |
| 675 | .name = "smu", | 674 | .name = "smu", |
| @@ -689,7 +688,7 @@ static int __init smu_init_sysfs(void) | |||
| 689 | * I'm a bit too far from figuring out how that works with those | 688 | * I'm a bit too far from figuring out how that works with those |
| 690 | * new chipsets, but that will come back and bite us | 689 | * new chipsets, but that will come back and bite us |
| 691 | */ | 690 | */ |
| 692 | of_register_platform_driver(&smu_of_platform_driver); | 691 | platform_driver_register(&smu_of_platform_driver); |
| 693 | return 0; | 692 | return 0; |
| 694 | } | 693 | } |
| 695 | 694 | ||
diff --git a/drivers/macintosh/therm_pm72.c b/drivers/macintosh/therm_pm72.c index f3a29f264db9..bca2af2e3760 100644 --- a/drivers/macintosh/therm_pm72.c +++ b/drivers/macintosh/therm_pm72.c | |||
| @@ -2210,7 +2210,7 @@ static void fcu_lookup_fans(struct device_node *fcu_node) | |||
| 2210 | } | 2210 | } |
| 2211 | } | 2211 | } |
| 2212 | 2212 | ||
| 2213 | static int fcu_of_probe(struct platform_device* dev, const struct of_device_id *match) | 2213 | static int fcu_of_probe(struct platform_device* dev) |
| 2214 | { | 2214 | { |
| 2215 | state = state_detached; | 2215 | state = state_detached; |
| 2216 | of_dev = dev; | 2216 | of_dev = dev; |
| @@ -2240,7 +2240,7 @@ static const struct of_device_id fcu_match[] = | |||
| 2240 | }; | 2240 | }; |
| 2241 | MODULE_DEVICE_TABLE(of, fcu_match); | 2241 | MODULE_DEVICE_TABLE(of, fcu_match); |
| 2242 | 2242 | ||
| 2243 | static struct of_platform_driver fcu_of_platform_driver = | 2243 | static struct platform_driver fcu_of_platform_driver = |
| 2244 | { | 2244 | { |
| 2245 | .driver = { | 2245 | .driver = { |
| 2246 | .name = "temperature", | 2246 | .name = "temperature", |
| @@ -2263,12 +2263,12 @@ static int __init therm_pm72_init(void) | |||
| 2263 | !rackmac) | 2263 | !rackmac) |
| 2264 | return -ENODEV; | 2264 | return -ENODEV; |
| 2265 | 2265 | ||
| 2266 | return of_register_platform_driver(&fcu_of_platform_driver); | 2266 | return platform_driver_register(&fcu_of_platform_driver); |
| 2267 | } | 2267 | } |
| 2268 | 2268 | ||
| 2269 | static void __exit therm_pm72_exit(void) | 2269 | static void __exit therm_pm72_exit(void) |
| 2270 | { | 2270 | { |
| 2271 | of_unregister_platform_driver(&fcu_of_platform_driver); | 2271 | platform_driver_unregister(&fcu_of_platform_driver); |
| 2272 | } | 2272 | } |
| 2273 | 2273 | ||
| 2274 | module_init(therm_pm72_init); | 2274 | module_init(therm_pm72_init); |
diff --git a/drivers/macintosh/therm_windtunnel.c b/drivers/macintosh/therm_windtunnel.c index c89f396e4c53..d37819fd5ad3 100644 --- a/drivers/macintosh/therm_windtunnel.c +++ b/drivers/macintosh/therm_windtunnel.c | |||
| @@ -443,8 +443,7 @@ static struct i2c_driver g4fan_driver = { | |||
| 443 | /* initialization / cleanup */ | 443 | /* initialization / cleanup */ |
| 444 | /************************************************************************/ | 444 | /************************************************************************/ |
| 445 | 445 | ||
| 446 | static int | 446 | static int therm_of_probe(struct platform_device *dev) |
| 447 | therm_of_probe( struct platform_device *dev, const struct of_device_id *match ) | ||
| 448 | { | 447 | { |
| 449 | return i2c_add_driver( &g4fan_driver ); | 448 | return i2c_add_driver( &g4fan_driver ); |
| 450 | } | 449 | } |
| @@ -462,7 +461,7 @@ static const struct of_device_id therm_of_match[] = {{ | |||
| 462 | }, {} | 461 | }, {} |
| 463 | }; | 462 | }; |
| 464 | 463 | ||
| 465 | static struct of_platform_driver therm_of_driver = { | 464 | static struct platform_driver therm_of_driver = { |
| 466 | .driver = { | 465 | .driver = { |
| 467 | .name = "temperature", | 466 | .name = "temperature", |
| 468 | .owner = THIS_MODULE, | 467 | .owner = THIS_MODULE, |
| @@ -509,14 +508,14 @@ g4fan_init( void ) | |||
| 509 | return -ENODEV; | 508 | return -ENODEV; |
| 510 | } | 509 | } |
| 511 | 510 | ||
| 512 | of_register_platform_driver( &therm_of_driver ); | 511 | platform_driver_register( &therm_of_driver ); |
| 513 | return 0; | 512 | return 0; |
| 514 | } | 513 | } |
| 515 | 514 | ||
| 516 | static void __exit | 515 | static void __exit |
| 517 | g4fan_exit( void ) | 516 | g4fan_exit( void ) |
| 518 | { | 517 | { |
| 519 | of_unregister_platform_driver( &therm_of_driver ); | 518 | platform_driver_unregister( &therm_of_driver ); |
| 520 | 519 | ||
| 521 | if( x.of_dev ) | 520 | if( x.of_dev ) |
| 522 | of_device_unregister( x.of_dev ); | 521 | of_device_unregister( x.of_dev ); |
diff --git a/drivers/media/video/fsl-viu.c b/drivers/media/video/fsl-viu.c index e4bba88254c7..031af1610154 100644 --- a/drivers/media/video/fsl-viu.c +++ b/drivers/media/video/fsl-viu.c | |||
| @@ -1445,8 +1445,7 @@ static struct video_device viu_template = { | |||
| 1445 | .current_norm = V4L2_STD_NTSC_M, | 1445 | .current_norm = V4L2_STD_NTSC_M, |
| 1446 | }; | 1446 | }; |
| 1447 | 1447 | ||
| 1448 | static int __devinit viu_of_probe(struct platform_device *op, | 1448 | static int __devinit viu_of_probe(struct platform_device *op) |
| 1449 | const struct of_device_id *match) | ||
| 1450 | { | 1449 | { |
| 1451 | struct viu_dev *viu_dev; | 1450 | struct viu_dev *viu_dev; |
| 1452 | struct video_device *vdev; | 1451 | struct video_device *vdev; |
| @@ -1627,7 +1626,7 @@ static struct of_device_id mpc512x_viu_of_match[] = { | |||
| 1627 | }; | 1626 | }; |
| 1628 | MODULE_DEVICE_TABLE(of, mpc512x_viu_of_match); | 1627 | MODULE_DEVICE_TABLE(of, mpc512x_viu_of_match); |
| 1629 | 1628 | ||
| 1630 | static struct of_platform_driver viu_of_platform_driver = { | 1629 | static struct platform_driver viu_of_platform_driver = { |
| 1631 | .probe = viu_of_probe, | 1630 | .probe = viu_of_probe, |
| 1632 | .remove = __devexit_p(viu_of_remove), | 1631 | .remove = __devexit_p(viu_of_remove), |
| 1633 | #ifdef CONFIG_PM | 1632 | #ifdef CONFIG_PM |
| @@ -1643,12 +1642,12 @@ static struct of_platform_driver viu_of_platform_driver = { | |||
| 1643 | 1642 | ||
| 1644 | static int __init viu_init(void) | 1643 | static int __init viu_init(void) |
| 1645 | { | 1644 | { |
| 1646 | return of_register_platform_driver(&viu_of_platform_driver); | 1645 | return platform_driver_register(&viu_of_platform_driver); |
| 1647 | } | 1646 | } |
| 1648 | 1647 | ||
| 1649 | static void __exit viu_exit(void) | 1648 | static void __exit viu_exit(void) |
| 1650 | { | 1649 | { |
| 1651 | of_unregister_platform_driver(&viu_of_platform_driver); | 1650 | platform_driver_unregister(&viu_of_platform_driver); |
| 1652 | } | 1651 | } |
| 1653 | 1652 | ||
| 1654 | module_init(viu_init); | 1653 | module_init(viu_init); |
diff --git a/drivers/mmc/host/sdhci-of-core.c b/drivers/mmc/host/sdhci-of-core.c index dd84124f4209..f9b611fc773e 100644 --- a/drivers/mmc/host/sdhci-of-core.c +++ b/drivers/mmc/host/sdhci-of-core.c | |||
| @@ -124,17 +124,20 @@ static bool __devinit sdhci_of_wp_inverted(struct device_node *np) | |||
| 124 | #endif | 124 | #endif |
| 125 | } | 125 | } |
| 126 | 126 | ||
| 127 | static int __devinit sdhci_of_probe(struct platform_device *ofdev, | 127 | static int __devinit sdhci_of_probe(struct platform_device *ofdev) |
| 128 | const struct of_device_id *match) | ||
| 129 | { | 128 | { |
| 130 | struct device_node *np = ofdev->dev.of_node; | 129 | struct device_node *np = ofdev->dev.of_node; |
| 131 | struct sdhci_of_data *sdhci_of_data = match->data; | 130 | struct sdhci_of_data *sdhci_of_data; |
| 132 | struct sdhci_host *host; | 131 | struct sdhci_host *host; |
| 133 | struct sdhci_of_host *of_host; | 132 | struct sdhci_of_host *of_host; |
| 134 | const __be32 *clk; | 133 | const __be32 *clk; |
| 135 | int size; | 134 | int size; |
| 136 | int ret; | 135 | int ret; |
| 137 | 136 | ||
| 137 | if (!ofdev->dev.of_match) | ||
| 138 | return -EINVAL; | ||
| 139 | sdhci_of_data = ofdev->dev.of_match->data; | ||
| 140 | |||
| 138 | if (!of_device_is_available(np)) | 141 | if (!of_device_is_available(np)) |
| 139 | return -ENODEV; | 142 | return -ENODEV; |
| 140 | 143 | ||
| @@ -217,7 +220,7 @@ static const struct of_device_id sdhci_of_match[] = { | |||
| 217 | }; | 220 | }; |
| 218 | MODULE_DEVICE_TABLE(of, sdhci_of_match); | 221 | MODULE_DEVICE_TABLE(of, sdhci_of_match); |
| 219 | 222 | ||
| 220 | static struct of_platform_driver sdhci_of_driver = { | 223 | static struct platform_driver sdhci_of_driver = { |
| 221 | .driver = { | 224 | .driver = { |
| 222 | .name = "sdhci-of", | 225 | .name = "sdhci-of", |
| 223 | .owner = THIS_MODULE, | 226 | .owner = THIS_MODULE, |
| @@ -231,13 +234,13 @@ static struct of_platform_driver sdhci_of_driver = { | |||
| 231 | 234 | ||
| 232 | static int __init sdhci_of_init(void) | 235 | static int __init sdhci_of_init(void) |
| 233 | { | 236 | { |
| 234 | return of_register_platform_driver(&sdhci_of_driver); | 237 | return platform_driver_register(&sdhci_of_driver); |
| 235 | } | 238 | } |
| 236 | module_init(sdhci_of_init); | 239 | module_init(sdhci_of_init); |
| 237 | 240 | ||
| 238 | static void __exit sdhci_of_exit(void) | 241 | static void __exit sdhci_of_exit(void) |
| 239 | { | 242 | { |
| 240 | of_unregister_platform_driver(&sdhci_of_driver); | 243 | platform_driver_unregister(&sdhci_of_driver); |
| 241 | } | 244 | } |
| 242 | module_exit(sdhci_of_exit); | 245 | module_exit(sdhci_of_exit); |
| 243 | 246 | ||
diff --git a/drivers/mtd/maps/physmap_of.c b/drivers/mtd/maps/physmap_of.c index 8506578e6a35..3db0cb083d31 100644 --- a/drivers/mtd/maps/physmap_of.c +++ b/drivers/mtd/maps/physmap_of.c | |||
| @@ -216,8 +216,7 @@ static void __devinit of_free_probes(const char **probes) | |||
| 216 | } | 216 | } |
| 217 | #endif | 217 | #endif |
| 218 | 218 | ||
| 219 | static int __devinit of_flash_probe(struct platform_device *dev, | 219 | static int __devinit of_flash_probe(struct platform_device *dev) |
| 220 | const struct of_device_id *match) | ||
| 221 | { | 220 | { |
| 222 | #ifdef CONFIG_MTD_PARTITIONS | 221 | #ifdef CONFIG_MTD_PARTITIONS |
| 223 | const char **part_probe_types; | 222 | const char **part_probe_types; |
| @@ -225,7 +224,7 @@ static int __devinit of_flash_probe(struct platform_device *dev, | |||
| 225 | struct device_node *dp = dev->dev.of_node; | 224 | struct device_node *dp = dev->dev.of_node; |
| 226 | struct resource res; | 225 | struct resource res; |
| 227 | struct of_flash *info; | 226 | struct of_flash *info; |
| 228 | const char *probe_type = match->data; | 227 | const char *probe_type; |
| 229 | const __be32 *width; | 228 | const __be32 *width; |
| 230 | int err; | 229 | int err; |
| 231 | int i; | 230 | int i; |
| @@ -235,6 +234,10 @@ static int __devinit of_flash_probe(struct platform_device *dev, | |||
| 235 | struct mtd_info **mtd_list = NULL; | 234 | struct mtd_info **mtd_list = NULL; |
| 236 | resource_size_t res_size; | 235 | resource_size_t res_size; |
| 237 | 236 | ||
| 237 | if (!dev->dev.of_match) | ||
| 238 | return -EINVAL; | ||
| 239 | probe_type = dev->dev.of_match->data; | ||
| 240 | |||
| 238 | reg_tuple_size = (of_n_addr_cells(dp) + of_n_size_cells(dp)) * sizeof(u32); | 241 | reg_tuple_size = (of_n_addr_cells(dp) + of_n_size_cells(dp)) * sizeof(u32); |
| 239 | 242 | ||
| 240 | /* | 243 | /* |
| @@ -418,7 +421,7 @@ static struct of_device_id of_flash_match[] = { | |||
| 418 | }; | 421 | }; |
| 419 | MODULE_DEVICE_TABLE(of, of_flash_match); | 422 | MODULE_DEVICE_TABLE(of, of_flash_match); |
| 420 | 423 | ||
| 421 | static struct of_platform_driver of_flash_driver = { | 424 | static struct platform_driver of_flash_driver = { |
| 422 | .driver = { | 425 | .driver = { |
| 423 | .name = "of-flash", | 426 | .name = "of-flash", |
| 424 | .owner = THIS_MODULE, | 427 | .owner = THIS_MODULE, |
| @@ -430,12 +433,12 @@ static struct of_platform_driver of_flash_driver = { | |||
| 430 | 433 | ||
| 431 | static int __init of_flash_init(void) | 434 | static int __init of_flash_init(void) |
| 432 | { | 435 | { |
| 433 | return of_register_platform_driver(&of_flash_driver); | 436 | return platform_driver_register(&of_flash_driver); |
| 434 | } | 437 | } |
| 435 | 438 | ||
| 436 | static void __exit of_flash_exit(void) | 439 | static void __exit of_flash_exit(void) |
| 437 | { | 440 | { |
| 438 | of_unregister_platform_driver(&of_flash_driver); | 441 | platform_driver_unregister(&of_flash_driver); |
| 439 | } | 442 | } |
| 440 | 443 | ||
| 441 | module_init(of_flash_init); | 444 | module_init(of_flash_init); |
diff --git a/drivers/mtd/maps/sun_uflash.c b/drivers/mtd/maps/sun_uflash.c index 3582ba1f9b09..3f1cb328a574 100644 --- a/drivers/mtd/maps/sun_uflash.c +++ b/drivers/mtd/maps/sun_uflash.c | |||
| @@ -108,7 +108,7 @@ int uflash_devinit(struct platform_device *op, struct device_node *dp) | |||
| 108 | return 0; | 108 | return 0; |
| 109 | } | 109 | } |
| 110 | 110 | ||
| 111 | static int __devinit uflash_probe(struct platform_device *op, const struct of_device_id *match) | 111 | static int __devinit uflash_probe(struct platform_device *op) |
| 112 | { | 112 | { |
| 113 | struct device_node *dp = op->dev.of_node; | 113 | struct device_node *dp = op->dev.of_node; |
| 114 | 114 | ||
| @@ -148,7 +148,7 @@ static const struct of_device_id uflash_match[] = { | |||
| 148 | 148 | ||
| 149 | MODULE_DEVICE_TABLE(of, uflash_match); | 149 | MODULE_DEVICE_TABLE(of, uflash_match); |
| 150 | 150 | ||
| 151 | static struct of_platform_driver uflash_driver = { | 151 | static struct platform_driver uflash_driver = { |
| 152 | .driver = { | 152 | .driver = { |
| 153 | .name = DRIVER_NAME, | 153 | .name = DRIVER_NAME, |
| 154 | .owner = THIS_MODULE, | 154 | .owner = THIS_MODULE, |
| @@ -160,12 +160,12 @@ static struct of_platform_driver uflash_driver = { | |||
| 160 | 160 | ||
| 161 | static int __init uflash_init(void) | 161 | static int __init uflash_init(void) |
| 162 | { | 162 | { |
| 163 | return of_register_platform_driver(&uflash_driver); | 163 | return platform_driver_register(&uflash_driver); |
| 164 | } | 164 | } |
| 165 | 165 | ||
| 166 | static void __exit uflash_exit(void) | 166 | static void __exit uflash_exit(void) |
| 167 | { | 167 | { |
| 168 | of_unregister_platform_driver(&uflash_driver); | 168 | platform_driver_unregister(&uflash_driver); |
| 169 | } | 169 | } |
| 170 | 170 | ||
| 171 | module_init(uflash_init); | 171 | module_init(uflash_init); |
diff --git a/drivers/mtd/nand/fsl_upm.c b/drivers/mtd/nand/fsl_upm.c index efdcca94ce55..073ee026a17c 100644 --- a/drivers/mtd/nand/fsl_upm.c +++ b/drivers/mtd/nand/fsl_upm.c | |||
| @@ -217,8 +217,7 @@ err: | |||
| 217 | return ret; | 217 | return ret; |
| 218 | } | 218 | } |
| 219 | 219 | ||
| 220 | static int __devinit fun_probe(struct platform_device *ofdev, | 220 | static int __devinit fun_probe(struct platform_device *ofdev) |
| 221 | const struct of_device_id *ofid) | ||
| 222 | { | 221 | { |
| 223 | struct fsl_upm_nand *fun; | 222 | struct fsl_upm_nand *fun; |
| 224 | struct resource io_res; | 223 | struct resource io_res; |
| @@ -360,7 +359,7 @@ static const struct of_device_id of_fun_match[] = { | |||
| 360 | }; | 359 | }; |
| 361 | MODULE_DEVICE_TABLE(of, of_fun_match); | 360 | MODULE_DEVICE_TABLE(of, of_fun_match); |
| 362 | 361 | ||
| 363 | static struct of_platform_driver of_fun_driver = { | 362 | static struct platform_driver of_fun_driver = { |
| 364 | .driver = { | 363 | .driver = { |
| 365 | .name = "fsl,upm-nand", | 364 | .name = "fsl,upm-nand", |
| 366 | .owner = THIS_MODULE, | 365 | .owner = THIS_MODULE, |
| @@ -372,13 +371,13 @@ static struct of_platform_driver of_fun_driver = { | |||
| 372 | 371 | ||
| 373 | static int __init fun_module_init(void) | 372 | static int __init fun_module_init(void) |
| 374 | { | 373 | { |
| 375 | return of_register_platform_driver(&of_fun_driver); | 374 | return platform_driver_register(&of_fun_driver); |
| 376 | } | 375 | } |
| 377 | module_init(fun_module_init); | 376 | module_init(fun_module_init); |
| 378 | 377 | ||
| 379 | static void __exit fun_module_exit(void) | 378 | static void __exit fun_module_exit(void) |
| 380 | { | 379 | { |
| 381 | of_unregister_platform_driver(&of_fun_driver); | 380 | platform_driver_unregister(&of_fun_driver); |
| 382 | } | 381 | } |
| 383 | module_exit(fun_module_exit); | 382 | module_exit(fun_module_exit); |
| 384 | 383 | ||
diff --git a/drivers/mtd/nand/mpc5121_nfc.c b/drivers/mtd/nand/mpc5121_nfc.c index 469e649c911c..c2f95437e5e9 100644 --- a/drivers/mtd/nand/mpc5121_nfc.c +++ b/drivers/mtd/nand/mpc5121_nfc.c | |||
| @@ -650,8 +650,7 @@ static void mpc5121_nfc_free(struct device *dev, struct mtd_info *mtd) | |||
| 650 | iounmap(prv->csreg); | 650 | iounmap(prv->csreg); |
| 651 | } | 651 | } |
| 652 | 652 | ||
| 653 | static int __devinit mpc5121_nfc_probe(struct platform_device *op, | 653 | static int __devinit mpc5121_nfc_probe(struct platform_device *op) |
| 654 | const struct of_device_id *match) | ||
| 655 | { | 654 | { |
| 656 | struct device_node *rootnode, *dn = op->dev.of_node; | 655 | struct device_node *rootnode, *dn = op->dev.of_node; |
| 657 | struct device *dev = &op->dev; | 656 | struct device *dev = &op->dev; |
| @@ -891,7 +890,7 @@ static struct of_device_id mpc5121_nfc_match[] __devinitdata = { | |||
| 891 | {}, | 890 | {}, |
| 892 | }; | 891 | }; |
| 893 | 892 | ||
| 894 | static struct of_platform_driver mpc5121_nfc_driver = { | 893 | static struct platform_driver mpc5121_nfc_driver = { |
| 895 | .probe = mpc5121_nfc_probe, | 894 | .probe = mpc5121_nfc_probe, |
| 896 | .remove = __devexit_p(mpc5121_nfc_remove), | 895 | .remove = __devexit_p(mpc5121_nfc_remove), |
| 897 | .driver = { | 896 | .driver = { |
| @@ -903,14 +902,14 @@ static struct of_platform_driver mpc5121_nfc_driver = { | |||
| 903 | 902 | ||
| 904 | static int __init mpc5121_nfc_init(void) | 903 | static int __init mpc5121_nfc_init(void) |
| 905 | { | 904 | { |
| 906 | return of_register_platform_driver(&mpc5121_nfc_driver); | 905 | return platform_driver_register(&mpc5121_nfc_driver); |
| 907 | } | 906 | } |
| 908 | 907 | ||
| 909 | module_init(mpc5121_nfc_init); | 908 | module_init(mpc5121_nfc_init); |
| 910 | 909 | ||
| 911 | static void __exit mpc5121_nfc_cleanup(void) | 910 | static void __exit mpc5121_nfc_cleanup(void) |
| 912 | { | 911 | { |
| 913 | of_unregister_platform_driver(&mpc5121_nfc_driver); | 912 | platform_driver_unregister(&mpc5121_nfc_driver); |
| 914 | } | 913 | } |
| 915 | 914 | ||
| 916 | module_exit(mpc5121_nfc_cleanup); | 915 | module_exit(mpc5121_nfc_cleanup); |
diff --git a/drivers/mtd/nand/ndfc.c b/drivers/mtd/nand/ndfc.c index c9ae0a5023b6..bbe6d451290d 100644 --- a/drivers/mtd/nand/ndfc.c +++ b/drivers/mtd/nand/ndfc.c | |||
| @@ -225,8 +225,7 @@ err: | |||
| 225 | return ret; | 225 | return ret; |
| 226 | } | 226 | } |
| 227 | 227 | ||
| 228 | static int __devinit ndfc_probe(struct platform_device *ofdev, | 228 | static int __devinit ndfc_probe(struct platform_device *ofdev) |
| 229 | const struct of_device_id *match) | ||
| 230 | { | 229 | { |
| 231 | struct ndfc_controller *ndfc = &ndfc_ctrl; | 230 | struct ndfc_controller *ndfc = &ndfc_ctrl; |
| 232 | const __be32 *reg; | 231 | const __be32 *reg; |
| @@ -292,7 +291,7 @@ static const struct of_device_id ndfc_match[] = { | |||
| 292 | }; | 291 | }; |
| 293 | MODULE_DEVICE_TABLE(of, ndfc_match); | 292 | MODULE_DEVICE_TABLE(of, ndfc_match); |
| 294 | 293 | ||
| 295 | static struct of_platform_driver ndfc_driver = { | 294 | static struct platform_driver ndfc_driver = { |
| 296 | .driver = { | 295 | .driver = { |
| 297 | .name = "ndfc", | 296 | .name = "ndfc", |
| 298 | .owner = THIS_MODULE, | 297 | .owner = THIS_MODULE, |
| @@ -304,12 +303,12 @@ static struct of_platform_driver ndfc_driver = { | |||
| 304 | 303 | ||
| 305 | static int __init ndfc_nand_init(void) | 304 | static int __init ndfc_nand_init(void) |
| 306 | { | 305 | { |
| 307 | return of_register_platform_driver(&ndfc_driver); | 306 | return platform_driver_register(&ndfc_driver); |
| 308 | } | 307 | } |
| 309 | 308 | ||
| 310 | static void __exit ndfc_nand_exit(void) | 309 | static void __exit ndfc_nand_exit(void) |
| 311 | { | 310 | { |
| 312 | of_unregister_platform_driver(&ndfc_driver); | 311 | platform_driver_unregister(&ndfc_driver); |
| 313 | } | 312 | } |
| 314 | 313 | ||
| 315 | module_init(ndfc_nand_init); | 314 | module_init(ndfc_nand_init); |
diff --git a/drivers/mtd/nand/pasemi_nand.c b/drivers/mtd/nand/pasemi_nand.c index bb277a54986f..59efa829ef24 100644 --- a/drivers/mtd/nand/pasemi_nand.c +++ b/drivers/mtd/nand/pasemi_nand.c | |||
| @@ -89,8 +89,7 @@ int pasemi_device_ready(struct mtd_info *mtd) | |||
| 89 | return !!(inl(lpcctl) & LBICTRL_LPCCTL_NR); | 89 | return !!(inl(lpcctl) & LBICTRL_LPCCTL_NR); |
| 90 | } | 90 | } |
| 91 | 91 | ||
| 92 | static int __devinit pasemi_nand_probe(struct platform_device *ofdev, | 92 | static int __devinit pasemi_nand_probe(struct platform_device *ofdev) |
| 93 | const struct of_device_id *match) | ||
| 94 | { | 93 | { |
| 95 | struct pci_dev *pdev; | 94 | struct pci_dev *pdev; |
| 96 | struct device_node *np = ofdev->dev.of_node; | 95 | struct device_node *np = ofdev->dev.of_node; |
| @@ -219,7 +218,7 @@ static const struct of_device_id pasemi_nand_match[] = | |||
| 219 | 218 | ||
| 220 | MODULE_DEVICE_TABLE(of, pasemi_nand_match); | 219 | MODULE_DEVICE_TABLE(of, pasemi_nand_match); |
| 221 | 220 | ||
| 222 | static struct of_platform_driver pasemi_nand_driver = | 221 | static struct platform_driver pasemi_nand_driver = |
| 223 | { | 222 | { |
| 224 | .driver = { | 223 | .driver = { |
| 225 | .name = (char*)driver_name, | 224 | .name = (char*)driver_name, |
| @@ -232,13 +231,13 @@ static struct of_platform_driver pasemi_nand_driver = | |||
| 232 | 231 | ||
| 233 | static int __init pasemi_nand_init(void) | 232 | static int __init pasemi_nand_init(void) |
| 234 | { | 233 | { |
| 235 | return of_register_platform_driver(&pasemi_nand_driver); | 234 | return platform_driver_register(&pasemi_nand_driver); |
| 236 | } | 235 | } |
| 237 | module_init(pasemi_nand_init); | 236 | module_init(pasemi_nand_init); |
| 238 | 237 | ||
| 239 | static void __exit pasemi_nand_exit(void) | 238 | static void __exit pasemi_nand_exit(void) |
| 240 | { | 239 | { |
| 241 | of_unregister_platform_driver(&pasemi_nand_driver); | 240 | platform_driver_unregister(&pasemi_nand_driver); |
| 242 | } | 241 | } |
| 243 | module_exit(pasemi_nand_exit); | 242 | module_exit(pasemi_nand_exit); |
| 244 | 243 | ||
diff --git a/drivers/mtd/nand/socrates_nand.c b/drivers/mtd/nand/socrates_nand.c index a8e403eebedb..a853548986f0 100644 --- a/drivers/mtd/nand/socrates_nand.c +++ b/drivers/mtd/nand/socrates_nand.c | |||
| @@ -162,8 +162,7 @@ static const char *part_probes[] = { "cmdlinepart", NULL }; | |||
| 162 | /* | 162 | /* |
| 163 | * Probe for the NAND device. | 163 | * Probe for the NAND device. |
| 164 | */ | 164 | */ |
| 165 | static int __devinit socrates_nand_probe(struct platform_device *ofdev, | 165 | static int __devinit socrates_nand_probe(struct platform_device *ofdev) |
| 166 | const struct of_device_id *ofid) | ||
| 167 | { | 166 | { |
| 168 | struct socrates_nand_host *host; | 167 | struct socrates_nand_host *host; |
| 169 | struct mtd_info *mtd; | 168 | struct mtd_info *mtd; |
| @@ -300,7 +299,7 @@ static const struct of_device_id socrates_nand_match[] = | |||
| 300 | 299 | ||
| 301 | MODULE_DEVICE_TABLE(of, socrates_nand_match); | 300 | MODULE_DEVICE_TABLE(of, socrates_nand_match); |
| 302 | 301 | ||
| 303 | static struct of_platform_driver socrates_nand_driver = { | 302 | static struct platform_driver socrates_nand_driver = { |
| 304 | .driver = { | 303 | .driver = { |
| 305 | .name = "socrates_nand", | 304 | .name = "socrates_nand", |
| 306 | .owner = THIS_MODULE, | 305 | .owner = THIS_MODULE, |
| @@ -312,12 +311,12 @@ static struct of_platform_driver socrates_nand_driver = { | |||
| 312 | 311 | ||
| 313 | static int __init socrates_nand_init(void) | 312 | static int __init socrates_nand_init(void) |
| 314 | { | 313 | { |
| 315 | return of_register_platform_driver(&socrates_nand_driver); | 314 | return platform_driver_register(&socrates_nand_driver); |
| 316 | } | 315 | } |
| 317 | 316 | ||
| 318 | static void __exit socrates_nand_exit(void) | 317 | static void __exit socrates_nand_exit(void) |
| 319 | { | 318 | { |
| 320 | of_unregister_platform_driver(&socrates_nand_driver); | 319 | platform_driver_unregister(&socrates_nand_driver); |
| 321 | } | 320 | } |
| 322 | 321 | ||
| 323 | module_init(socrates_nand_init); | 322 | module_init(socrates_nand_init); |
diff --git a/drivers/net/can/mscan/mpc5xxx_can.c b/drivers/net/can/mscan/mpc5xxx_can.c index 312b9c8f4f3b..c0a1bc5b1435 100644 --- a/drivers/net/can/mscan/mpc5xxx_can.c +++ b/drivers/net/can/mscan/mpc5xxx_can.c | |||
| @@ -247,10 +247,9 @@ static u32 __devinit mpc512x_can_get_clock(struct platform_device *ofdev, | |||
| 247 | } | 247 | } |
| 248 | #endif /* CONFIG_PPC_MPC512x */ | 248 | #endif /* CONFIG_PPC_MPC512x */ |
| 249 | 249 | ||
| 250 | static int __devinit mpc5xxx_can_probe(struct platform_device *ofdev, | 250 | static int __devinit mpc5xxx_can_probe(struct platform_device *ofdev) |
| 251 | const struct of_device_id *id) | ||
| 252 | { | 251 | { |
| 253 | struct mpc5xxx_can_data *data = (struct mpc5xxx_can_data *)id->data; | 252 | struct mpc5xxx_can_data *data; |
| 254 | struct device_node *np = ofdev->dev.of_node; | 253 | struct device_node *np = ofdev->dev.of_node; |
| 255 | struct net_device *dev; | 254 | struct net_device *dev; |
| 256 | struct mscan_priv *priv; | 255 | struct mscan_priv *priv; |
| @@ -259,6 +258,10 @@ static int __devinit mpc5xxx_can_probe(struct platform_device *ofdev, | |||
| 259 | int irq, mscan_clksrc = 0; | 258 | int irq, mscan_clksrc = 0; |
| 260 | int err = -ENOMEM; | 259 | int err = -ENOMEM; |
| 261 | 260 | ||
| 261 | if (!ofdev->dev.of_match) | ||
| 262 | return -EINVAL; | ||
| 263 | data = (struct mpc5xxx_can_data *)of_dev->dev.of_match->data; | ||
| 264 | |||
| 262 | base = of_iomap(np, 0); | 265 | base = of_iomap(np, 0); |
| 263 | if (!base) { | 266 | if (!base) { |
| 264 | dev_err(&ofdev->dev, "couldn't ioremap\n"); | 267 | dev_err(&ofdev->dev, "couldn't ioremap\n"); |
| @@ -391,7 +394,7 @@ static struct of_device_id __devinitdata mpc5xxx_can_table[] = { | |||
| 391 | {}, | 394 | {}, |
| 392 | }; | 395 | }; |
| 393 | 396 | ||
| 394 | static struct of_platform_driver mpc5xxx_can_driver = { | 397 | static struct platform_driver mpc5xxx_can_driver = { |
| 395 | .driver = { | 398 | .driver = { |
| 396 | .name = "mpc5xxx_can", | 399 | .name = "mpc5xxx_can", |
| 397 | .owner = THIS_MODULE, | 400 | .owner = THIS_MODULE, |
| @@ -407,13 +410,13 @@ static struct of_platform_driver mpc5xxx_can_driver = { | |||
| 407 | 410 | ||
| 408 | static int __init mpc5xxx_can_init(void) | 411 | static int __init mpc5xxx_can_init(void) |
| 409 | { | 412 | { |
| 410 | return of_register_platform_driver(&mpc5xxx_can_driver); | 413 | return platform_driver_register(&mpc5xxx_can_driver); |
| 411 | } | 414 | } |
| 412 | module_init(mpc5xxx_can_init); | 415 | module_init(mpc5xxx_can_init); |
| 413 | 416 | ||
| 414 | static void __exit mpc5xxx_can_exit(void) | 417 | static void __exit mpc5xxx_can_exit(void) |
| 415 | { | 418 | { |
| 416 | return of_unregister_platform_driver(&mpc5xxx_can_driver); | 419 | platform_driver_unregister(&mpc5xxx_can_driver); |
| 417 | }; | 420 | }; |
| 418 | module_exit(mpc5xxx_can_exit); | 421 | module_exit(mpc5xxx_can_exit); |
| 419 | 422 | ||
diff --git a/drivers/net/can/sja1000/sja1000_of_platform.c b/drivers/net/can/sja1000/sja1000_of_platform.c index 09c3e9db9316..9793df6e3455 100644 --- a/drivers/net/can/sja1000/sja1000_of_platform.c +++ b/drivers/net/can/sja1000/sja1000_of_platform.c | |||
| @@ -87,8 +87,7 @@ static int __devexit sja1000_ofp_remove(struct platform_device *ofdev) | |||
| 87 | return 0; | 87 | return 0; |
| 88 | } | 88 | } |
| 89 | 89 | ||
| 90 | static int __devinit sja1000_ofp_probe(struct platform_device *ofdev, | 90 | static int __devinit sja1000_ofp_probe(struct platform_device *ofdev) |
| 91 | const struct of_device_id *id) | ||
| 92 | { | 91 | { |
| 93 | struct device_node *np = ofdev->dev.of_node; | 92 | struct device_node *np = ofdev->dev.of_node; |
| 94 | struct net_device *dev; | 93 | struct net_device *dev; |
| @@ -210,7 +209,7 @@ static struct of_device_id __devinitdata sja1000_ofp_table[] = { | |||
| 210 | }; | 209 | }; |
| 211 | MODULE_DEVICE_TABLE(of, sja1000_ofp_table); | 210 | MODULE_DEVICE_TABLE(of, sja1000_ofp_table); |
| 212 | 211 | ||
| 213 | static struct of_platform_driver sja1000_ofp_driver = { | 212 | static struct platform_driver sja1000_ofp_driver = { |
| 214 | .driver = { | 213 | .driver = { |
| 215 | .owner = THIS_MODULE, | 214 | .owner = THIS_MODULE, |
| 216 | .name = DRV_NAME, | 215 | .name = DRV_NAME, |
| @@ -222,12 +221,12 @@ static struct of_platform_driver sja1000_ofp_driver = { | |||
| 222 | 221 | ||
| 223 | static int __init sja1000_ofp_init(void) | 222 | static int __init sja1000_ofp_init(void) |
| 224 | { | 223 | { |
| 225 | return of_register_platform_driver(&sja1000_ofp_driver); | 224 | return platform_driver_register(&sja1000_ofp_driver); |
| 226 | } | 225 | } |
| 227 | module_init(sja1000_ofp_init); | 226 | module_init(sja1000_ofp_init); |
| 228 | 227 | ||
| 229 | static void __exit sja1000_ofp_exit(void) | 228 | static void __exit sja1000_ofp_exit(void) |
| 230 | { | 229 | { |
| 231 | return of_unregister_platform_driver(&sja1000_ofp_driver); | 230 | return platform_driver_unregister(&sja1000_ofp_driver); |
| 232 | }; | 231 | }; |
| 233 | module_exit(sja1000_ofp_exit); | 232 | module_exit(sja1000_ofp_exit); |
diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c index 50c1213f61fe..9f81b1ac130e 100644 --- a/drivers/net/fec_mpc52xx.c +++ b/drivers/net/fec_mpc52xx.c | |||
| @@ -840,8 +840,7 @@ static const struct net_device_ops mpc52xx_fec_netdev_ops = { | |||
| 840 | /* OF Driver */ | 840 | /* OF Driver */ |
| 841 | /* ======================================================================== */ | 841 | /* ======================================================================== */ |
| 842 | 842 | ||
| 843 | static int __devinit | 843 | static int __devinit mpc52xx_fec_probe(struct platform_device *op) |
| 844 | mpc52xx_fec_probe(struct platform_device *op, const struct of_device_id *match) | ||
| 845 | { | 844 | { |
| 846 | int rv; | 845 | int rv; |
| 847 | struct net_device *ndev; | 846 | struct net_device *ndev; |
| @@ -1049,7 +1048,7 @@ static struct of_device_id mpc52xx_fec_match[] = { | |||
| 1049 | 1048 | ||
| 1050 | MODULE_DEVICE_TABLE(of, mpc52xx_fec_match); | 1049 | MODULE_DEVICE_TABLE(of, mpc52xx_fec_match); |
| 1051 | 1050 | ||
| 1052 | static struct of_platform_driver mpc52xx_fec_driver = { | 1051 | static struct platform_driver mpc52xx_fec_driver = { |
| 1053 | .driver = { | 1052 | .driver = { |
| 1054 | .name = DRIVER_NAME, | 1053 | .name = DRIVER_NAME, |
| 1055 | .owner = THIS_MODULE, | 1054 | .owner = THIS_MODULE, |
| @@ -1073,21 +1072,21 @@ mpc52xx_fec_init(void) | |||
| 1073 | { | 1072 | { |
| 1074 | #ifdef CONFIG_FEC_MPC52xx_MDIO | 1073 | #ifdef CONFIG_FEC_MPC52xx_MDIO |
| 1075 | int ret; | 1074 | int ret; |
| 1076 | ret = of_register_platform_driver(&mpc52xx_fec_mdio_driver); | 1075 | ret = platform_driver_register(&mpc52xx_fec_mdio_driver); |
| 1077 | if (ret) { | 1076 | if (ret) { |
| 1078 | printk(KERN_ERR DRIVER_NAME ": failed to register mdio driver\n"); | 1077 | printk(KERN_ERR DRIVER_NAME ": failed to register mdio driver\n"); |
| 1079 | return ret; | 1078 | return ret; |
| 1080 | } | 1079 | } |
| 1081 | #endif | 1080 | #endif |
| 1082 | return of_register_platform_driver(&mpc52xx_fec_driver); | 1081 | return platform_driver_register(&mpc52xx_fec_driver); |
| 1083 | } | 1082 | } |
| 1084 | 1083 | ||
| 1085 | static void __exit | 1084 | static void __exit |
| 1086 | mpc52xx_fec_exit(void) | 1085 | mpc52xx_fec_exit(void) |
| 1087 | { | 1086 | { |
| 1088 | of_unregister_platform_driver(&mpc52xx_fec_driver); | 1087 | platform_driver_unregister(&mpc52xx_fec_driver); |
| 1089 | #ifdef CONFIG_FEC_MPC52xx_MDIO | 1088 | #ifdef CONFIG_FEC_MPC52xx_MDIO |
| 1090 | of_unregister_platform_driver(&mpc52xx_fec_mdio_driver); | 1089 | platform_driver_unregister(&mpc52xx_fec_mdio_driver); |
| 1091 | #endif | 1090 | #endif |
| 1092 | } | 1091 | } |
| 1093 | 1092 | ||
diff --git a/drivers/net/fec_mpc52xx.h b/drivers/net/fec_mpc52xx.h index a227a525bdbb..41d2dffde55b 100644 --- a/drivers/net/fec_mpc52xx.h +++ b/drivers/net/fec_mpc52xx.h | |||
| @@ -289,6 +289,6 @@ struct mpc52xx_fec { | |||
| 289 | #define FEC_XMIT_FSM_ENABLE_CRC 0x01000000 | 289 | #define FEC_XMIT_FSM_ENABLE_CRC 0x01000000 |
| 290 | 290 | ||
| 291 | 291 | ||
| 292 | extern struct of_platform_driver mpc52xx_fec_mdio_driver; | 292 | extern struct platform_driver mpc52xx_fec_mdio_driver; |
| 293 | 293 | ||
| 294 | #endif /* __DRIVERS_NET_MPC52XX_FEC_H__ */ | 294 | #endif /* __DRIVERS_NET_MPC52XX_FEC_H__ */ |
diff --git a/drivers/net/fec_mpc52xx_phy.c b/drivers/net/fec_mpc52xx_phy.c index 0b4cb6f15984..360a578c2bb7 100644 --- a/drivers/net/fec_mpc52xx_phy.c +++ b/drivers/net/fec_mpc52xx_phy.c | |||
| @@ -61,8 +61,7 @@ static int mpc52xx_fec_mdio_write(struct mii_bus *bus, int phy_id, int reg, | |||
| 61 | data | FEC_MII_WRITE_FRAME); | 61 | data | FEC_MII_WRITE_FRAME); |
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | static int mpc52xx_fec_mdio_probe(struct platform_device *of, | 64 | static int mpc52xx_fec_mdio_probe(struct platform_device *of) |
| 65 | const struct of_device_id *match) | ||
| 66 | { | 65 | { |
| 67 | struct device *dev = &of->dev; | 66 | struct device *dev = &of->dev; |
| 68 | struct device_node *np = of->dev.of_node; | 67 | struct device_node *np = of->dev.of_node; |
| @@ -145,7 +144,7 @@ static struct of_device_id mpc52xx_fec_mdio_match[] = { | |||
| 145 | }; | 144 | }; |
| 146 | MODULE_DEVICE_TABLE(of, mpc52xx_fec_mdio_match); | 145 | MODULE_DEVICE_TABLE(of, mpc52xx_fec_mdio_match); |
| 147 | 146 | ||
| 148 | struct of_platform_driver mpc52xx_fec_mdio_driver = { | 147 | struct platform_driver mpc52xx_fec_mdio_driver = { |
| 149 | .driver = { | 148 | .driver = { |
| 150 | .name = "mpc5200b-fec-phy", | 149 | .name = "mpc5200b-fec-phy", |
| 151 | .owner = THIS_MODULE, | 150 | .owner = THIS_MODULE, |
diff --git a/drivers/net/fs_enet/fs_enet-main.c b/drivers/net/fs_enet/fs_enet-main.c index 7a1f3d0ffa78..24cb953900dd 100644 --- a/drivers/net/fs_enet/fs_enet-main.c +++ b/drivers/net/fs_enet/fs_enet-main.c | |||
| @@ -998,8 +998,7 @@ static const struct net_device_ops fs_enet_netdev_ops = { | |||
| 998 | #endif | 998 | #endif |
| 999 | }; | 999 | }; |
| 1000 | 1000 | ||
| 1001 | static int __devinit fs_enet_probe(struct platform_device *ofdev, | 1001 | static int __devinit fs_enet_probe(struct platform_device *ofdev) |
| 1002 | const struct of_device_id *match) | ||
| 1003 | { | 1002 | { |
| 1004 | struct net_device *ndev; | 1003 | struct net_device *ndev; |
| 1005 | struct fs_enet_private *fep; | 1004 | struct fs_enet_private *fep; |
| @@ -1008,11 +1007,14 @@ static int __devinit fs_enet_probe(struct platform_device *ofdev, | |||
| 1008 | const u8 *mac_addr; | 1007 | const u8 *mac_addr; |
| 1009 | int privsize, len, ret = -ENODEV; | 1008 | int privsize, len, ret = -ENODEV; |
| 1010 | 1009 | ||
| 1010 | if (!ofdev->dev.of_match) | ||
| 1011 | return -EINVAL; | ||
| 1012 | |||
| 1011 | fpi = kzalloc(sizeof(*fpi), GFP_KERNEL); | 1013 | fpi = kzalloc(sizeof(*fpi), GFP_KERNEL); |
| 1012 | if (!fpi) | 1014 | if (!fpi) |
| 1013 | return -ENOMEM; | 1015 | return -ENOMEM; |
| 1014 | 1016 | ||
| 1015 | if (!IS_FEC(match)) { | 1017 | if (!IS_FEC(ofdev->dev.of_match)) { |
| 1016 | data = of_get_property(ofdev->dev.of_node, "fsl,cpm-command", &len); | 1018 | data = of_get_property(ofdev->dev.of_node, "fsl,cpm-command", &len); |
| 1017 | if (!data || len != 4) | 1019 | if (!data || len != 4) |
| 1018 | goto out_free_fpi; | 1020 | goto out_free_fpi; |
| @@ -1047,7 +1049,7 @@ static int __devinit fs_enet_probe(struct platform_device *ofdev, | |||
| 1047 | fep->dev = &ofdev->dev; | 1049 | fep->dev = &ofdev->dev; |
| 1048 | fep->ndev = ndev; | 1050 | fep->ndev = ndev; |
| 1049 | fep->fpi = fpi; | 1051 | fep->fpi = fpi; |
| 1050 | fep->ops = match->data; | 1052 | fep->ops = ofdev->dev.of_match->data; |
| 1051 | 1053 | ||
| 1052 | ret = fep->ops->setup_data(ndev); | 1054 | ret = fep->ops->setup_data(ndev); |
| 1053 | if (ret) | 1055 | if (ret) |
| @@ -1156,7 +1158,7 @@ static struct of_device_id fs_enet_match[] = { | |||
| 1156 | }; | 1158 | }; |
| 1157 | MODULE_DEVICE_TABLE(of, fs_enet_match); | 1159 | MODULE_DEVICE_TABLE(of, fs_enet_match); |
| 1158 | 1160 | ||
| 1159 | static struct of_platform_driver fs_enet_driver = { | 1161 | static struct platform_driver fs_enet_driver = { |
| 1160 | .driver = { | 1162 | .driver = { |
| 1161 | .owner = THIS_MODULE, | 1163 | .owner = THIS_MODULE, |
| 1162 | .name = "fs_enet", | 1164 | .name = "fs_enet", |
| @@ -1168,12 +1170,12 @@ static struct of_platform_driver fs_enet_driver = { | |||
| 1168 | 1170 | ||
| 1169 | static int __init fs_init(void) | 1171 | static int __init fs_init(void) |
| 1170 | { | 1172 | { |
| 1171 | return of_register_platform_driver(&fs_enet_driver); | 1173 | return platform_driver_register(&fs_enet_driver); |
| 1172 | } | 1174 | } |
| 1173 | 1175 | ||
| 1174 | static void __exit fs_cleanup(void) | 1176 | static void __exit fs_cleanup(void) |
| 1175 | { | 1177 | { |
| 1176 | of_unregister_platform_driver(&fs_enet_driver); | 1178 | platform_driver_unregister(&fs_enet_driver); |
| 1177 | } | 1179 | } |
| 1178 | 1180 | ||
| 1179 | #ifdef CONFIG_NET_POLL_CONTROLLER | 1181 | #ifdef CONFIG_NET_POLL_CONTROLLER |
diff --git a/drivers/net/fs_enet/mii-bitbang.c b/drivers/net/fs_enet/mii-bitbang.c index 3cda2b515471..ad2975440719 100644 --- a/drivers/net/fs_enet/mii-bitbang.c +++ b/drivers/net/fs_enet/mii-bitbang.c | |||
| @@ -150,8 +150,7 @@ static int __devinit fs_mii_bitbang_init(struct mii_bus *bus, | |||
| 150 | return 0; | 150 | return 0; |
| 151 | } | 151 | } |
| 152 | 152 | ||
| 153 | static int __devinit fs_enet_mdio_probe(struct platform_device *ofdev, | 153 | static int __devinit fs_enet_mdio_probe(struct platform_device *ofdev) |
| 154 | const struct of_device_id *match) | ||
| 155 | { | 154 | { |
| 156 | struct mii_bus *new_bus; | 155 | struct mii_bus *new_bus; |
| 157 | struct bb_info *bitbang; | 156 | struct bb_info *bitbang; |
| @@ -223,7 +222,7 @@ static struct of_device_id fs_enet_mdio_bb_match[] = { | |||
| 223 | }; | 222 | }; |
| 224 | MODULE_DEVICE_TABLE(of, fs_enet_mdio_bb_match); | 223 | MODULE_DEVICE_TABLE(of, fs_enet_mdio_bb_match); |
| 225 | 224 | ||
| 226 | static struct of_platform_driver fs_enet_bb_mdio_driver = { | 225 | static struct platform_driver fs_enet_bb_mdio_driver = { |
| 227 | .driver = { | 226 | .driver = { |
| 228 | .name = "fsl-bb-mdio", | 227 | .name = "fsl-bb-mdio", |
| 229 | .owner = THIS_MODULE, | 228 | .owner = THIS_MODULE, |
| @@ -235,12 +234,12 @@ static struct of_platform_driver fs_enet_bb_mdio_driver = { | |||
| 235 | 234 | ||
| 236 | static int fs_enet_mdio_bb_init(void) | 235 | static int fs_enet_mdio_bb_init(void) |
| 237 | { | 236 | { |
| 238 | return of_register_platform_driver(&fs_enet_bb_mdio_driver); | 237 | return platform_driver_register(&fs_enet_bb_mdio_driver); |
| 239 | } | 238 | } |
| 240 | 239 | ||
| 241 | static void fs_enet_mdio_bb_exit(void) | 240 | static void fs_enet_mdio_bb_exit(void) |
| 242 | { | 241 | { |
| 243 | of_unregister_platform_driver(&fs_enet_bb_mdio_driver); | 242 | platform_driver_unregister(&fs_enet_bb_mdio_driver); |
| 244 | } | 243 | } |
| 245 | 244 | ||
| 246 | module_init(fs_enet_mdio_bb_init); | 245 | module_init(fs_enet_mdio_bb_init); |
diff --git a/drivers/net/fs_enet/mii-fec.c b/drivers/net/fs_enet/mii-fec.c index dbb9c48623df..7e840d373ab3 100644 --- a/drivers/net/fs_enet/mii-fec.c +++ b/drivers/net/fs_enet/mii-fec.c | |||
| @@ -101,15 +101,18 @@ static int fs_enet_fec_mii_reset(struct mii_bus *bus) | |||
| 101 | return 0; | 101 | return 0; |
| 102 | } | 102 | } |
| 103 | 103 | ||
| 104 | static int __devinit fs_enet_mdio_probe(struct platform_device *ofdev, | 104 | static int __devinit fs_enet_mdio_probe(struct platform_device *ofdev) |
| 105 | const struct of_device_id *match) | ||
| 106 | { | 105 | { |
| 107 | struct resource res; | 106 | struct resource res; |
| 108 | struct mii_bus *new_bus; | 107 | struct mii_bus *new_bus; |
| 109 | struct fec_info *fec; | 108 | struct fec_info *fec; |
| 110 | int (*get_bus_freq)(struct device_node *) = match->data; | 109 | int (*get_bus_freq)(struct device_node *); |
| 111 | int ret = -ENOMEM, clock, speed; | 110 | int ret = -ENOMEM, clock, speed; |
| 112 | 111 | ||
| 112 | if (!ofdev->dev.of_match) | ||
| 113 | return -EINVAL; | ||
| 114 | get_bus_freq = ofdev->dev.of_match->data; | ||
| 115 | |||
| 113 | new_bus = mdiobus_alloc(); | 116 | new_bus = mdiobus_alloc(); |
| 114 | if (!new_bus) | 117 | if (!new_bus) |
| 115 | goto out; | 118 | goto out; |
| @@ -221,7 +224,7 @@ static struct of_device_id fs_enet_mdio_fec_match[] = { | |||
| 221 | }; | 224 | }; |
| 222 | MODULE_DEVICE_TABLE(of, fs_enet_mdio_fec_match); | 225 | MODULE_DEVICE_TABLE(of, fs_enet_mdio_fec_match); |
| 223 | 226 | ||
| 224 | static struct of_platform_driver fs_enet_fec_mdio_driver = { | 227 | static struct platform_driver fs_enet_fec_mdio_driver = { |
| 225 | .driver = { | 228 | .driver = { |
| 226 | .name = "fsl-fec-mdio", | 229 | .name = "fsl-fec-mdio", |
| 227 | .owner = THIS_MODULE, | 230 | .owner = THIS_MODULE, |
| @@ -233,12 +236,12 @@ static struct of_platform_driver fs_enet_fec_mdio_driver = { | |||
| 233 | 236 | ||
| 234 | static int fs_enet_mdio_fec_init(void) | 237 | static int fs_enet_mdio_fec_init(void) |
| 235 | { | 238 | { |
| 236 | return of_register_platform_driver(&fs_enet_fec_mdio_driver); | 239 | return platform_driver_register(&fs_enet_fec_mdio_driver); |
| 237 | } | 240 | } |
| 238 | 241 | ||
| 239 | static void fs_enet_mdio_fec_exit(void) | 242 | static void fs_enet_mdio_fec_exit(void) |
| 240 | { | 243 | { |
| 241 | of_unregister_platform_driver(&fs_enet_fec_mdio_driver); | 244 | platform_driver_unregister(&fs_enet_fec_mdio_driver); |
| 242 | } | 245 | } |
| 243 | 246 | ||
| 244 | module_init(fs_enet_mdio_fec_init); | 247 | module_init(fs_enet_mdio_fec_init); |
diff --git a/drivers/net/fsl_pq_mdio.c b/drivers/net/fsl_pq_mdio.c index 8d3a2ccbc953..52f4e8ad48e7 100644 --- a/drivers/net/fsl_pq_mdio.c +++ b/drivers/net/fsl_pq_mdio.c | |||
| @@ -265,8 +265,7 @@ static int get_ucc_id_for_range(u64 start, u64 end, u32 *ucc_id) | |||
| 265 | #endif | 265 | #endif |
| 266 | 266 | ||
| 267 | 267 | ||
| 268 | static int fsl_pq_mdio_probe(struct platform_device *ofdev, | 268 | static int fsl_pq_mdio_probe(struct platform_device *ofdev) |
| 269 | const struct of_device_id *match) | ||
| 270 | { | 269 | { |
| 271 | struct device_node *np = ofdev->dev.of_node; | 270 | struct device_node *np = ofdev->dev.of_node; |
| 272 | struct device_node *tbi; | 271 | struct device_node *tbi; |
| @@ -471,7 +470,7 @@ static struct of_device_id fsl_pq_mdio_match[] = { | |||
| 471 | }; | 470 | }; |
| 472 | MODULE_DEVICE_TABLE(of, fsl_pq_mdio_match); | 471 | MODULE_DEVICE_TABLE(of, fsl_pq_mdio_match); |
| 473 | 472 | ||
| 474 | static struct of_platform_driver fsl_pq_mdio_driver = { | 473 | static struct platform_driver fsl_pq_mdio_driver = { |
| 475 | .driver = { | 474 | .driver = { |
| 476 | .name = "fsl-pq_mdio", | 475 | .name = "fsl-pq_mdio", |
| 477 | .owner = THIS_MODULE, | 476 | .owner = THIS_MODULE, |
| @@ -483,13 +482,13 @@ static struct of_platform_driver fsl_pq_mdio_driver = { | |||
| 483 | 482 | ||
| 484 | int __init fsl_pq_mdio_init(void) | 483 | int __init fsl_pq_mdio_init(void) |
| 485 | { | 484 | { |
| 486 | return of_register_platform_driver(&fsl_pq_mdio_driver); | 485 | return platform_driver_register(&fsl_pq_mdio_driver); |
| 487 | } | 486 | } |
| 488 | module_init(fsl_pq_mdio_init); | 487 | module_init(fsl_pq_mdio_init); |
| 489 | 488 | ||
| 490 | void fsl_pq_mdio_exit(void) | 489 | void fsl_pq_mdio_exit(void) |
| 491 | { | 490 | { |
| 492 | of_unregister_platform_driver(&fsl_pq_mdio_driver); | 491 | platform_driver_unregister(&fsl_pq_mdio_driver); |
| 493 | } | 492 | } |
| 494 | module_exit(fsl_pq_mdio_exit); | 493 | module_exit(fsl_pq_mdio_exit); |
| 495 | MODULE_LICENSE("GPL"); | 494 | MODULE_LICENSE("GPL"); |
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c index 5ed8f9f9419f..ccb231c4d933 100644 --- a/drivers/net/gianfar.c +++ b/drivers/net/gianfar.c | |||
| @@ -123,8 +123,7 @@ static irqreturn_t gfar_interrupt(int irq, void *dev_id); | |||
| 123 | static void adjust_link(struct net_device *dev); | 123 | static void adjust_link(struct net_device *dev); |
| 124 | static void init_registers(struct net_device *dev); | 124 | static void init_registers(struct net_device *dev); |
| 125 | static int init_phy(struct net_device *dev); | 125 | static int init_phy(struct net_device *dev); |
| 126 | static int gfar_probe(struct platform_device *ofdev, | 126 | static int gfar_probe(struct platform_device *ofdev); |
| 127 | const struct of_device_id *match); | ||
| 128 | static int gfar_remove(struct platform_device *ofdev); | 127 | static int gfar_remove(struct platform_device *ofdev); |
| 129 | static void free_skb_resources(struct gfar_private *priv); | 128 | static void free_skb_resources(struct gfar_private *priv); |
| 130 | static void gfar_set_multi(struct net_device *dev); | 129 | static void gfar_set_multi(struct net_device *dev); |
| @@ -957,8 +956,7 @@ static void gfar_detect_errata(struct gfar_private *priv) | |||
| 957 | 956 | ||
| 958 | /* Set up the ethernet device structure, private data, | 957 | /* Set up the ethernet device structure, private data, |
| 959 | * and anything else we need before we start */ | 958 | * and anything else we need before we start */ |
| 960 | static int gfar_probe(struct platform_device *ofdev, | 959 | static int gfar_probe(struct platform_device *ofdev) |
| 961 | const struct of_device_id *match) | ||
| 962 | { | 960 | { |
| 963 | u32 tempval; | 961 | u32 tempval; |
| 964 | struct net_device *dev = NULL; | 962 | struct net_device *dev = NULL; |
| @@ -3256,7 +3254,7 @@ static struct of_device_id gfar_match[] = | |||
| 3256 | MODULE_DEVICE_TABLE(of, gfar_match); | 3254 | MODULE_DEVICE_TABLE(of, gfar_match); |
| 3257 | 3255 | ||
| 3258 | /* Structure for a device driver */ | 3256 | /* Structure for a device driver */ |
| 3259 | static struct of_platform_driver gfar_driver = { | 3257 | static struct platform_driver gfar_driver = { |
| 3260 | .driver = { | 3258 | .driver = { |
| 3261 | .name = "fsl-gianfar", | 3259 | .name = "fsl-gianfar", |
| 3262 | .owner = THIS_MODULE, | 3260 | .owner = THIS_MODULE, |
| @@ -3269,12 +3267,12 @@ static struct of_platform_driver gfar_driver = { | |||
| 3269 | 3267 | ||
| 3270 | static int __init gfar_init(void) | 3268 | static int __init gfar_init(void) |
| 3271 | { | 3269 | { |
| 3272 | return of_register_platform_driver(&gfar_driver); | 3270 | return platform_driver_register(&gfar_driver); |
| 3273 | } | 3271 | } |
| 3274 | 3272 | ||
| 3275 | static void __exit gfar_exit(void) | 3273 | static void __exit gfar_exit(void) |
| 3276 | { | 3274 | { |
| 3277 | of_unregister_platform_driver(&gfar_driver); | 3275 | platform_driver_unregister(&gfar_driver); |
| 3278 | } | 3276 | } |
| 3279 | 3277 | ||
| 3280 | module_init(gfar_init); | 3278 | module_init(gfar_init); |
diff --git a/drivers/net/greth.c b/drivers/net/greth.c index fdb0333f5cb6..396ff7d785d1 100644 --- a/drivers/net/greth.c +++ b/drivers/net/greth.c | |||
| @@ -1411,7 +1411,7 @@ error: | |||
| 1411 | } | 1411 | } |
| 1412 | 1412 | ||
| 1413 | /* Initialize the GRETH MAC */ | 1413 | /* Initialize the GRETH MAC */ |
| 1414 | static int __devinit greth_of_probe(struct platform_device *ofdev, const struct of_device_id *match) | 1414 | static int __devinit greth_of_probe(struct platform_device *ofdev) |
| 1415 | { | 1415 | { |
| 1416 | struct net_device *dev; | 1416 | struct net_device *dev; |
| 1417 | struct greth_private *greth; | 1417 | struct greth_private *greth; |
| @@ -1646,7 +1646,7 @@ static struct of_device_id greth_of_match[] = { | |||
| 1646 | 1646 | ||
| 1647 | MODULE_DEVICE_TABLE(of, greth_of_match); | 1647 | MODULE_DEVICE_TABLE(of, greth_of_match); |
| 1648 | 1648 | ||
| 1649 | static struct of_platform_driver greth_of_driver = { | 1649 | static struct platform_driver greth_of_driver = { |
| 1650 | .driver = { | 1650 | .driver = { |
| 1651 | .name = "grlib-greth", | 1651 | .name = "grlib-greth", |
| 1652 | .owner = THIS_MODULE, | 1652 | .owner = THIS_MODULE, |
| @@ -1658,12 +1658,12 @@ static struct of_platform_driver greth_of_driver = { | |||
| 1658 | 1658 | ||
| 1659 | static int __init greth_init(void) | 1659 | static int __init greth_init(void) |
| 1660 | { | 1660 | { |
| 1661 | return of_register_platform_driver(&greth_of_driver); | 1661 | return platform_driver_register(&greth_of_driver); |
| 1662 | } | 1662 | } |
| 1663 | 1663 | ||
| 1664 | static void __exit greth_cleanup(void) | 1664 | static void __exit greth_cleanup(void) |
| 1665 | { | 1665 | { |
| 1666 | of_unregister_platform_driver(&greth_of_driver); | 1666 | platform_driver_unregister(&greth_of_driver); |
| 1667 | } | 1667 | } |
| 1668 | 1668 | ||
| 1669 | module_init(greth_init); | 1669 | module_init(greth_init); |
diff --git a/drivers/net/ibm_newemac/core.c b/drivers/net/ibm_newemac/core.c index 6d9275c52e05..3bb990b6651a 100644 --- a/drivers/net/ibm_newemac/core.c +++ b/drivers/net/ibm_newemac/core.c | |||
| @@ -2719,8 +2719,7 @@ static const struct net_device_ops emac_gige_netdev_ops = { | |||
| 2719 | .ndo_change_mtu = emac_change_mtu, | 2719 | .ndo_change_mtu = emac_change_mtu, |
| 2720 | }; | 2720 | }; |
| 2721 | 2721 | ||
| 2722 | static int __devinit emac_probe(struct platform_device *ofdev, | 2722 | static int __devinit emac_probe(struct platform_device *ofdev) |
| 2723 | const struct of_device_id *match) | ||
| 2724 | { | 2723 | { |
| 2725 | struct net_device *ndev; | 2724 | struct net_device *ndev; |
| 2726 | struct emac_instance *dev; | 2725 | struct emac_instance *dev; |
| @@ -2994,7 +2993,7 @@ static struct of_device_id emac_match[] = | |||
| 2994 | }; | 2993 | }; |
| 2995 | MODULE_DEVICE_TABLE(of, emac_match); | 2994 | MODULE_DEVICE_TABLE(of, emac_match); |
| 2996 | 2995 | ||
| 2997 | static struct of_platform_driver emac_driver = { | 2996 | static struct platform_driver emac_driver = { |
| 2998 | .driver = { | 2997 | .driver = { |
| 2999 | .name = "emac", | 2998 | .name = "emac", |
| 3000 | .owner = THIS_MODULE, | 2999 | .owner = THIS_MODULE, |
| @@ -3069,7 +3068,7 @@ static int __init emac_init(void) | |||
| 3069 | rc = tah_init(); | 3068 | rc = tah_init(); |
| 3070 | if (rc) | 3069 | if (rc) |
| 3071 | goto err_rgmii; | 3070 | goto err_rgmii; |
| 3072 | rc = of_register_platform_driver(&emac_driver); | 3071 | rc = platform_driver_register(&emac_driver); |
| 3073 | if (rc) | 3072 | if (rc) |
| 3074 | goto err_tah; | 3073 | goto err_tah; |
| 3075 | 3074 | ||
| @@ -3091,7 +3090,7 @@ static void __exit emac_exit(void) | |||
| 3091 | { | 3090 | { |
| 3092 | int i; | 3091 | int i; |
| 3093 | 3092 | ||
| 3094 | of_unregister_platform_driver(&emac_driver); | 3093 | platform_driver_unregister(&emac_driver); |
| 3095 | 3094 | ||
| 3096 | tah_exit(); | 3095 | tah_exit(); |
| 3097 | rgmii_exit(); | 3096 | rgmii_exit(); |
diff --git a/drivers/net/ibm_newemac/mal.c b/drivers/net/ibm_newemac/mal.c index d5717e2123e1..d268f404b7b0 100644 --- a/drivers/net/ibm_newemac/mal.c +++ b/drivers/net/ibm_newemac/mal.c | |||
| @@ -517,8 +517,7 @@ void *mal_dump_regs(struct mal_instance *mal, void *buf) | |||
| 517 | return regs + 1; | 517 | return regs + 1; |
| 518 | } | 518 | } |
| 519 | 519 | ||
| 520 | static int __devinit mal_probe(struct platform_device *ofdev, | 520 | static int __devinit mal_probe(struct platform_device *ofdev) |
| 521 | const struct of_device_id *match) | ||
| 522 | { | 521 | { |
| 523 | struct mal_instance *mal; | 522 | struct mal_instance *mal; |
| 524 | int err = 0, i, bd_size; | 523 | int err = 0, i, bd_size; |
| @@ -789,7 +788,7 @@ static struct of_device_id mal_platform_match[] = | |||
| 789 | {}, | 788 | {}, |
| 790 | }; | 789 | }; |
| 791 | 790 | ||
| 792 | static struct of_platform_driver mal_of_driver = { | 791 | static struct platform_driver mal_of_driver = { |
| 793 | .driver = { | 792 | .driver = { |
| 794 | .name = "mcmal", | 793 | .name = "mcmal", |
| 795 | .owner = THIS_MODULE, | 794 | .owner = THIS_MODULE, |
| @@ -801,10 +800,10 @@ static struct of_platform_driver mal_of_driver = { | |||
| 801 | 800 | ||
| 802 | int __init mal_init(void) | 801 | int __init mal_init(void) |
| 803 | { | 802 | { |
| 804 | return of_register_platform_driver(&mal_of_driver); | 803 | return platform_driver_register(&mal_of_driver); |
| 805 | } | 804 | } |
| 806 | 805 | ||
| 807 | void mal_exit(void) | 806 | void mal_exit(void) |
| 808 | { | 807 | { |
| 809 | of_unregister_platform_driver(&mal_of_driver); | 808 | platform_driver_unregister(&mal_of_driver); |
| 810 | } | 809 | } |
diff --git a/drivers/net/ibm_newemac/rgmii.c b/drivers/net/ibm_newemac/rgmii.c index dd61798897ac..4fa53f3def64 100644 --- a/drivers/net/ibm_newemac/rgmii.c +++ b/drivers/net/ibm_newemac/rgmii.c | |||
| @@ -228,8 +228,7 @@ void *rgmii_dump_regs(struct platform_device *ofdev, void *buf) | |||
| 228 | } | 228 | } |
| 229 | 229 | ||
| 230 | 230 | ||
| 231 | static int __devinit rgmii_probe(struct platform_device *ofdev, | 231 | static int __devinit rgmii_probe(struct platform_device *ofdev) |
| 232 | const struct of_device_id *match) | ||
| 233 | { | 232 | { |
| 234 | struct device_node *np = ofdev->dev.of_node; | 233 | struct device_node *np = ofdev->dev.of_node; |
| 235 | struct rgmii_instance *dev; | 234 | struct rgmii_instance *dev; |
| @@ -318,7 +317,7 @@ static struct of_device_id rgmii_match[] = | |||
| 318 | {}, | 317 | {}, |
| 319 | }; | 318 | }; |
| 320 | 319 | ||
| 321 | static struct of_platform_driver rgmii_driver = { | 320 | static struct platform_driver rgmii_driver = { |
| 322 | .driver = { | 321 | .driver = { |
| 323 | .name = "emac-rgmii", | 322 | .name = "emac-rgmii", |
| 324 | .owner = THIS_MODULE, | 323 | .owner = THIS_MODULE, |
| @@ -330,10 +329,10 @@ static struct of_platform_driver rgmii_driver = { | |||
| 330 | 329 | ||
| 331 | int __init rgmii_init(void) | 330 | int __init rgmii_init(void) |
| 332 | { | 331 | { |
| 333 | return of_register_platform_driver(&rgmii_driver); | 332 | return platform_driver_register(&rgmii_driver); |
| 334 | } | 333 | } |
| 335 | 334 | ||
| 336 | void rgmii_exit(void) | 335 | void rgmii_exit(void) |
| 337 | { | 336 | { |
| 338 | of_unregister_platform_driver(&rgmii_driver); | 337 | platform_driver_unregister(&rgmii_driver); |
| 339 | } | 338 | } |
diff --git a/drivers/net/ibm_newemac/tah.c b/drivers/net/ibm_newemac/tah.c index 299aa49490c0..8ead6a96abaa 100644 --- a/drivers/net/ibm_newemac/tah.c +++ b/drivers/net/ibm_newemac/tah.c | |||
| @@ -87,8 +87,7 @@ void *tah_dump_regs(struct platform_device *ofdev, void *buf) | |||
| 87 | return regs + 1; | 87 | return regs + 1; |
| 88 | } | 88 | } |
| 89 | 89 | ||
| 90 | static int __devinit tah_probe(struct platform_device *ofdev, | 90 | static int __devinit tah_probe(struct platform_device *ofdev) |
| 91 | const struct of_device_id *match) | ||
| 92 | { | 91 | { |
| 93 | struct device_node *np = ofdev->dev.of_node; | 92 | struct device_node *np = ofdev->dev.of_node; |
| 94 | struct tah_instance *dev; | 93 | struct tah_instance *dev; |
| @@ -165,7 +164,7 @@ static struct of_device_id tah_match[] = | |||
| 165 | {}, | 164 | {}, |
| 166 | }; | 165 | }; |
| 167 | 166 | ||
| 168 | static struct of_platform_driver tah_driver = { | 167 | static struct platform_driver tah_driver = { |
| 169 | .driver = { | 168 | .driver = { |
| 170 | .name = "emac-tah", | 169 | .name = "emac-tah", |
| 171 | .owner = THIS_MODULE, | 170 | .owner = THIS_MODULE, |
| @@ -177,10 +176,10 @@ static struct of_platform_driver tah_driver = { | |||
| 177 | 176 | ||
| 178 | int __init tah_init(void) | 177 | int __init tah_init(void) |
| 179 | { | 178 | { |
| 180 | return of_register_platform_driver(&tah_driver); | 179 | return platform_driver_register(&tah_driver); |
| 181 | } | 180 | } |
| 182 | 181 | ||
| 183 | void tah_exit(void) | 182 | void tah_exit(void) |
| 184 | { | 183 | { |
| 185 | of_unregister_platform_driver(&tah_driver); | 184 | platform_driver_unregister(&tah_driver); |
| 186 | } | 185 | } |
diff --git a/drivers/net/ibm_newemac/zmii.c b/drivers/net/ibm_newemac/zmii.c index 34ed6ee8ca8a..97449e786d61 100644 --- a/drivers/net/ibm_newemac/zmii.c +++ b/drivers/net/ibm_newemac/zmii.c | |||
| @@ -231,8 +231,7 @@ void *zmii_dump_regs(struct platform_device *ofdev, void *buf) | |||
| 231 | return regs + 1; | 231 | return regs + 1; |
| 232 | } | 232 | } |
| 233 | 233 | ||
| 234 | static int __devinit zmii_probe(struct platform_device *ofdev, | 234 | static int __devinit zmii_probe(struct platform_device *ofdev) |
| 235 | const struct of_device_id *match) | ||
| 236 | { | 235 | { |
| 237 | struct device_node *np = ofdev->dev.of_node; | 236 | struct device_node *np = ofdev->dev.of_node; |
| 238 | struct zmii_instance *dev; | 237 | struct zmii_instance *dev; |
| @@ -312,7 +311,7 @@ static struct of_device_id zmii_match[] = | |||
| 312 | {}, | 311 | {}, |
| 313 | }; | 312 | }; |
| 314 | 313 | ||
| 315 | static struct of_platform_driver zmii_driver = { | 314 | static struct platform_driver zmii_driver = { |
| 316 | .driver = { | 315 | .driver = { |
| 317 | .name = "emac-zmii", | 316 | .name = "emac-zmii", |
| 318 | .owner = THIS_MODULE, | 317 | .owner = THIS_MODULE, |
| @@ -324,10 +323,10 @@ static struct of_platform_driver zmii_driver = { | |||
| 324 | 323 | ||
| 325 | int __init zmii_init(void) | 324 | int __init zmii_init(void) |
| 326 | { | 325 | { |
| 327 | return of_register_platform_driver(&zmii_driver); | 326 | return platform_driver_register(&zmii_driver); |
| 328 | } | 327 | } |
| 329 | 328 | ||
| 330 | void zmii_exit(void) | 329 | void zmii_exit(void) |
| 331 | { | 330 | { |
| 332 | of_unregister_platform_driver(&zmii_driver); | 331 | platform_driver_unregister(&zmii_driver); |
| 333 | } | 332 | } |
diff --git a/drivers/net/ll_temac_main.c b/drivers/net/ll_temac_main.c index f35554d11441..b7948ccfcf7d 100644 --- a/drivers/net/ll_temac_main.c +++ b/drivers/net/ll_temac_main.c | |||
| @@ -952,8 +952,7 @@ static const struct attribute_group temac_attr_group = { | |||
| 952 | .attrs = temac_device_attrs, | 952 | .attrs = temac_device_attrs, |
| 953 | }; | 953 | }; |
| 954 | 954 | ||
| 955 | static int __devinit | 955 | static int __devinit temac_of_probe(struct platform_device *op) |
| 956 | temac_of_probe(struct platform_device *op, const struct of_device_id *match) | ||
| 957 | { | 956 | { |
| 958 | struct device_node *np; | 957 | struct device_node *np; |
| 959 | struct temac_local *lp; | 958 | struct temac_local *lp; |
| @@ -1123,7 +1122,7 @@ static struct of_device_id temac_of_match[] __devinitdata = { | |||
| 1123 | }; | 1122 | }; |
| 1124 | MODULE_DEVICE_TABLE(of, temac_of_match); | 1123 | MODULE_DEVICE_TABLE(of, temac_of_match); |
| 1125 | 1124 | ||
| 1126 | static struct of_platform_driver temac_of_driver = { | 1125 | static struct platform_driver temac_of_driver = { |
| 1127 | .probe = temac_of_probe, | 1126 | .probe = temac_of_probe, |
| 1128 | .remove = __devexit_p(temac_of_remove), | 1127 | .remove = __devexit_p(temac_of_remove), |
| 1129 | .driver = { | 1128 | .driver = { |
| @@ -1135,13 +1134,13 @@ static struct of_platform_driver temac_of_driver = { | |||
| 1135 | 1134 | ||
| 1136 | static int __init temac_init(void) | 1135 | static int __init temac_init(void) |
| 1137 | { | 1136 | { |
| 1138 | return of_register_platform_driver(&temac_of_driver); | 1137 | return platform_driver_register(&temac_of_driver); |
| 1139 | } | 1138 | } |
| 1140 | module_init(temac_init); | 1139 | module_init(temac_init); |
| 1141 | 1140 | ||
| 1142 | static void __exit temac_exit(void) | 1141 | static void __exit temac_exit(void) |
| 1143 | { | 1142 | { |
| 1144 | of_unregister_platform_driver(&temac_of_driver); | 1143 | platform_driver_unregister(&temac_of_driver); |
| 1145 | } | 1144 | } |
| 1146 | module_exit(temac_exit); | 1145 | module_exit(temac_exit); |
| 1147 | 1146 | ||
diff --git a/drivers/net/myri_sbus.c b/drivers/net/myri_sbus.c index 4846e131a04e..a761076b69c3 100644 --- a/drivers/net/myri_sbus.c +++ b/drivers/net/myri_sbus.c | |||
| @@ -926,7 +926,7 @@ static const struct net_device_ops myri_ops = { | |||
| 926 | .ndo_validate_addr = eth_validate_addr, | 926 | .ndo_validate_addr = eth_validate_addr, |
| 927 | }; | 927 | }; |
| 928 | 928 | ||
| 929 | static int __devinit myri_sbus_probe(struct platform_device *op, const struct of_device_id *match) | 929 | static int __devinit myri_sbus_probe(struct platform_device *op) |
| 930 | { | 930 | { |
| 931 | struct device_node *dp = op->dev.of_node; | 931 | struct device_node *dp = op->dev.of_node; |
| 932 | static unsigned version_printed; | 932 | static unsigned version_printed; |
| @@ -1160,7 +1160,7 @@ static const struct of_device_id myri_sbus_match[] = { | |||
| 1160 | 1160 | ||
| 1161 | MODULE_DEVICE_TABLE(of, myri_sbus_match); | 1161 | MODULE_DEVICE_TABLE(of, myri_sbus_match); |
| 1162 | 1162 | ||
| 1163 | static struct of_platform_driver myri_sbus_driver = { | 1163 | static struct platform_driver myri_sbus_driver = { |
| 1164 | .driver = { | 1164 | .driver = { |
| 1165 | .name = "myri", | 1165 | .name = "myri", |
| 1166 | .owner = THIS_MODULE, | 1166 | .owner = THIS_MODULE, |
| @@ -1172,12 +1172,12 @@ static struct of_platform_driver myri_sbus_driver = { | |||
| 1172 | 1172 | ||
| 1173 | static int __init myri_sbus_init(void) | 1173 | static int __init myri_sbus_init(void) |
| 1174 | { | 1174 | { |
| 1175 | return of_register_platform_driver(&myri_sbus_driver); | 1175 | return platform_driver_register(&myri_sbus_driver); |
| 1176 | } | 1176 | } |
| 1177 | 1177 | ||
| 1178 | static void __exit myri_sbus_exit(void) | 1178 | static void __exit myri_sbus_exit(void) |
| 1179 | { | 1179 | { |
| 1180 | of_unregister_platform_driver(&myri_sbus_driver); | 1180 | platform_driver_unregister(&myri_sbus_driver); |
| 1181 | } | 1181 | } |
| 1182 | 1182 | ||
| 1183 | module_init(myri_sbus_init); | 1183 | module_init(myri_sbus_init); |
diff --git a/drivers/net/niu.c b/drivers/net/niu.c index 9fb59d3f9c92..40fa59e2fd5c 100644 --- a/drivers/net/niu.c +++ b/drivers/net/niu.c | |||
| @@ -10062,8 +10062,7 @@ static const struct niu_ops niu_phys_ops = { | |||
| 10062 | .unmap_single = niu_phys_unmap_single, | 10062 | .unmap_single = niu_phys_unmap_single, |
| 10063 | }; | 10063 | }; |
| 10064 | 10064 | ||
| 10065 | static int __devinit niu_of_probe(struct platform_device *op, | 10065 | static int __devinit niu_of_probe(struct platform_device *op) |
| 10066 | const struct of_device_id *match) | ||
| 10067 | { | 10066 | { |
| 10068 | union niu_parent_id parent_id; | 10067 | union niu_parent_id parent_id; |
| 10069 | struct net_device *dev; | 10068 | struct net_device *dev; |
| @@ -10223,7 +10222,7 @@ static const struct of_device_id niu_match[] = { | |||
| 10223 | }; | 10222 | }; |
| 10224 | MODULE_DEVICE_TABLE(of, niu_match); | 10223 | MODULE_DEVICE_TABLE(of, niu_match); |
| 10225 | 10224 | ||
| 10226 | static struct of_platform_driver niu_of_driver = { | 10225 | static struct platform_driver niu_of_driver = { |
| 10227 | .driver = { | 10226 | .driver = { |
| 10228 | .name = "niu", | 10227 | .name = "niu", |
| 10229 | .owner = THIS_MODULE, | 10228 | .owner = THIS_MODULE, |
| @@ -10244,14 +10243,14 @@ static int __init niu_init(void) | |||
| 10244 | niu_debug = netif_msg_init(debug, NIU_MSG_DEFAULT); | 10243 | niu_debug = netif_msg_init(debug, NIU_MSG_DEFAULT); |
| 10245 | 10244 | ||
| 10246 | #ifdef CONFIG_SPARC64 | 10245 | #ifdef CONFIG_SPARC64 |
| 10247 | err = of_register_platform_driver(&niu_of_driver); | 10246 | err = platform_driver_register(&niu_of_driver); |
| 10248 | #endif | 10247 | #endif |
| 10249 | 10248 | ||
| 10250 | if (!err) { | 10249 | if (!err) { |
| 10251 | err = pci_register_driver(&niu_pci_driver); | 10250 | err = pci_register_driver(&niu_pci_driver); |
| 10252 | #ifdef CONFIG_SPARC64 | 10251 | #ifdef CONFIG_SPARC64 |
| 10253 | if (err) | 10252 | if (err) |
| 10254 | of_unregister_platform_driver(&niu_of_driver); | 10253 | platform_driver_unregister(&niu_of_driver); |
| 10255 | #endif | 10254 | #endif |
| 10256 | } | 10255 | } |
| 10257 | 10256 | ||
| @@ -10262,7 +10261,7 @@ static void __exit niu_exit(void) | |||
| 10262 | { | 10261 | { |
| 10263 | pci_unregister_driver(&niu_pci_driver); | 10262 | pci_unregister_driver(&niu_pci_driver); |
| 10264 | #ifdef CONFIG_SPARC64 | 10263 | #ifdef CONFIG_SPARC64 |
| 10265 | of_unregister_platform_driver(&niu_of_driver); | 10264 | platform_driver_unregister(&niu_of_driver); |
| 10266 | #endif | 10265 | #endif |
| 10267 | } | 10266 | } |
| 10268 | 10267 | ||
diff --git a/drivers/net/phy/mdio-gpio.c b/drivers/net/phy/mdio-gpio.c index f62c7b717bc8..47c8339a0359 100644 --- a/drivers/net/phy/mdio-gpio.c +++ b/drivers/net/phy/mdio-gpio.c | |||
| @@ -188,8 +188,7 @@ static int __devexit mdio_gpio_remove(struct platform_device *pdev) | |||
| 188 | 188 | ||
| 189 | #ifdef CONFIG_OF_GPIO | 189 | #ifdef CONFIG_OF_GPIO |
| 190 | 190 | ||
| 191 | static int __devinit mdio_ofgpio_probe(struct platform_device *ofdev, | 191 | static int __devinit mdio_ofgpio_probe(struct platform_device *ofdev) |
| 192 | const struct of_device_id *match) | ||
| 193 | { | 192 | { |
| 194 | struct mdio_gpio_platform_data *pdata; | 193 | struct mdio_gpio_platform_data *pdata; |
| 195 | struct mii_bus *new_bus; | 194 | struct mii_bus *new_bus; |
| @@ -240,7 +239,7 @@ static struct of_device_id mdio_ofgpio_match[] = { | |||
| 240 | }; | 239 | }; |
| 241 | MODULE_DEVICE_TABLE(of, mdio_ofgpio_match); | 240 | MODULE_DEVICE_TABLE(of, mdio_ofgpio_match); |
| 242 | 241 | ||
| 243 | static struct of_platform_driver mdio_ofgpio_driver = { | 242 | static struct platform_driver mdio_ofgpio_driver = { |
| 244 | .driver = { | 243 | .driver = { |
| 245 | .name = "mdio-gpio", | 244 | .name = "mdio-gpio", |
| 246 | .owner = THIS_MODULE, | 245 | .owner = THIS_MODULE, |
| @@ -252,12 +251,12 @@ static struct of_platform_driver mdio_ofgpio_driver = { | |||
| 252 | 251 | ||
| 253 | static inline int __init mdio_ofgpio_init(void) | 252 | static inline int __init mdio_ofgpio_init(void) |
| 254 | { | 253 | { |
| 255 | return of_register_platform_driver(&mdio_ofgpio_driver); | 254 | return platform_driver_register(&mdio_ofgpio_driver); |
| 256 | } | 255 | } |
| 257 | 256 | ||
| 258 | static inline void __exit mdio_ofgpio_exit(void) | 257 | static inline void __exit mdio_ofgpio_exit(void) |
| 259 | { | 258 | { |
| 260 | of_unregister_platform_driver(&mdio_ofgpio_driver); | 259 | platform_driver_unregister(&mdio_ofgpio_driver); |
| 261 | } | 260 | } |
| 262 | #else | 261 | #else |
| 263 | static inline int __init mdio_ofgpio_init(void) { return 0; } | 262 | static inline int __init mdio_ofgpio_init(void) { return 0; } |
diff --git a/drivers/net/sunbmac.c b/drivers/net/sunbmac.c index 0a6a5ced3c1c..aa4765803a4c 100644 --- a/drivers/net/sunbmac.c +++ b/drivers/net/sunbmac.c | |||
| @@ -1242,8 +1242,7 @@ fail_and_cleanup: | |||
| 1242 | /* QEC can be the parent of either QuadEthernet or a BigMAC. We want | 1242 | /* QEC can be the parent of either QuadEthernet or a BigMAC. We want |
| 1243 | * the latter. | 1243 | * the latter. |
| 1244 | */ | 1244 | */ |
| 1245 | static int __devinit bigmac_sbus_probe(struct platform_device *op, | 1245 | static int __devinit bigmac_sbus_probe(struct platform_device *op) |
| 1246 | const struct of_device_id *match) | ||
| 1247 | { | 1246 | { |
| 1248 | struct device *parent = op->dev.parent; | 1247 | struct device *parent = op->dev.parent; |
| 1249 | struct platform_device *qec_op; | 1248 | struct platform_device *qec_op; |
| @@ -1289,7 +1288,7 @@ static const struct of_device_id bigmac_sbus_match[] = { | |||
| 1289 | 1288 | ||
| 1290 | MODULE_DEVICE_TABLE(of, bigmac_sbus_match); | 1289 | MODULE_DEVICE_TABLE(of, bigmac_sbus_match); |
| 1291 | 1290 | ||
| 1292 | static struct of_platform_driver bigmac_sbus_driver = { | 1291 | static struct platform_driver bigmac_sbus_driver = { |
| 1293 | .driver = { | 1292 | .driver = { |
| 1294 | .name = "sunbmac", | 1293 | .name = "sunbmac", |
| 1295 | .owner = THIS_MODULE, | 1294 | .owner = THIS_MODULE, |
| @@ -1301,12 +1300,12 @@ static struct of_platform_driver bigmac_sbus_driver = { | |||
| 1301 | 1300 | ||
| 1302 | static int __init bigmac_init(void) | 1301 | static int __init bigmac_init(void) |
| 1303 | { | 1302 | { |
| 1304 | return of_register_platform_driver(&bigmac_sbus_driver); | 1303 | return platform_driver_register(&bigmac_sbus_driver); |
| 1305 | } | 1304 | } |
| 1306 | 1305 | ||
| 1307 | static void __exit bigmac_exit(void) | 1306 | static void __exit bigmac_exit(void) |
| 1308 | { | 1307 | { |
| 1309 | of_unregister_platform_driver(&bigmac_sbus_driver); | 1308 | platform_driver_unregister(&bigmac_sbus_driver); |
| 1310 | } | 1309 | } |
| 1311 | 1310 | ||
| 1312 | module_init(bigmac_init); | 1311 | module_init(bigmac_init); |
diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c index 55bbb9c15d96..eb4f59fb01e9 100644 --- a/drivers/net/sunhme.c +++ b/drivers/net/sunhme.c | |||
| @@ -3237,11 +3237,15 @@ static void happy_meal_pci_exit(void) | |||
| 3237 | #endif | 3237 | #endif |
| 3238 | 3238 | ||
| 3239 | #ifdef CONFIG_SBUS | 3239 | #ifdef CONFIG_SBUS |
| 3240 | static int __devinit hme_sbus_probe(struct platform_device *op, const struct of_device_id *match) | 3240 | static int __devinit hme_sbus_probe(struct platform_device *op) |
| 3241 | { | 3241 | { |
| 3242 | struct device_node *dp = op->dev.of_node; | 3242 | struct device_node *dp = op->dev.of_node; |
| 3243 | const char *model = of_get_property(dp, "model", NULL); | 3243 | const char *model = of_get_property(dp, "model", NULL); |
| 3244 | int is_qfe = (match->data != NULL); | 3244 | int is_qfe; |
| 3245 | |||
| 3246 | if (!op->dev.of_match) | ||
| 3247 | return -EINVAL; | ||
| 3248 | is_qfe = (op->dev.of_match->data != NULL); | ||
| 3245 | 3249 | ||
| 3246 | if (!is_qfe && model && !strcmp(model, "SUNW,sbus-qfe")) | 3250 | if (!is_qfe && model && !strcmp(model, "SUNW,sbus-qfe")) |
| 3247 | is_qfe = 1; | 3251 | is_qfe = 1; |
| @@ -3292,7 +3296,7 @@ static const struct of_device_id hme_sbus_match[] = { | |||
| 3292 | 3296 | ||
| 3293 | MODULE_DEVICE_TABLE(of, hme_sbus_match); | 3297 | MODULE_DEVICE_TABLE(of, hme_sbus_match); |
| 3294 | 3298 | ||
| 3295 | static struct of_platform_driver hme_sbus_driver = { | 3299 | static struct platform_driver hme_sbus_driver = { |
| 3296 | .driver = { | 3300 | .driver = { |
| 3297 | .name = "hme", | 3301 | .name = "hme", |
| 3298 | .owner = THIS_MODULE, | 3302 | .owner = THIS_MODULE, |
| @@ -3306,7 +3310,7 @@ static int __init happy_meal_sbus_init(void) | |||
| 3306 | { | 3310 | { |
| 3307 | int err; | 3311 | int err; |
| 3308 | 3312 | ||
| 3309 | err = of_register_platform_driver(&hme_sbus_driver); | 3313 | err = platform_driver_register(&hme_sbus_driver); |
| 3310 | if (!err) | 3314 | if (!err) |
| 3311 | err = quattro_sbus_register_irqs(); | 3315 | err = quattro_sbus_register_irqs(); |
| 3312 | 3316 | ||
| @@ -3315,7 +3319,7 @@ static int __init happy_meal_sbus_init(void) | |||
| 3315 | 3319 | ||
| 3316 | static void happy_meal_sbus_exit(void) | 3320 | static void happy_meal_sbus_exit(void) |
| 3317 | { | 3321 | { |
| 3318 | of_unregister_platform_driver(&hme_sbus_driver); | 3322 | platform_driver_unregister(&hme_sbus_driver); |
| 3319 | quattro_sbus_free_irqs(); | 3323 | quattro_sbus_free_irqs(); |
| 3320 | 3324 | ||
| 3321 | while (qfe_sbus_list) { | 3325 | while (qfe_sbus_list) { |
diff --git a/drivers/net/sunlance.c b/drivers/net/sunlance.c index 767e1e2b210d..32a5c7f63c43 100644 --- a/drivers/net/sunlance.c +++ b/drivers/net/sunlance.c | |||
| @@ -1495,7 +1495,7 @@ fail: | |||
| 1495 | return -ENODEV; | 1495 | return -ENODEV; |
| 1496 | } | 1496 | } |
| 1497 | 1497 | ||
| 1498 | static int __devinit sunlance_sbus_probe(struct platform_device *op, const struct of_device_id *match) | 1498 | static int __devinit sunlance_sbus_probe(struct platform_device *op) |
| 1499 | { | 1499 | { |
| 1500 | struct platform_device *parent = to_platform_device(op->dev.parent); | 1500 | struct platform_device *parent = to_platform_device(op->dev.parent); |
| 1501 | struct device_node *parent_dp = parent->dev.of_node; | 1501 | struct device_node *parent_dp = parent->dev.of_node; |
| @@ -1536,7 +1536,7 @@ static const struct of_device_id sunlance_sbus_match[] = { | |||
| 1536 | 1536 | ||
| 1537 | MODULE_DEVICE_TABLE(of, sunlance_sbus_match); | 1537 | MODULE_DEVICE_TABLE(of, sunlance_sbus_match); |
| 1538 | 1538 | ||
| 1539 | static struct of_platform_driver sunlance_sbus_driver = { | 1539 | static struct platform_driver sunlance_sbus_driver = { |
| 1540 | .driver = { | 1540 | .driver = { |
| 1541 | .name = "sunlance", | 1541 | .name = "sunlance", |
| 1542 | .owner = THIS_MODULE, | 1542 | .owner = THIS_MODULE, |
| @@ -1550,12 +1550,12 @@ static struct of_platform_driver sunlance_sbus_driver = { | |||
| 1550 | /* Find all the lance cards on the system and initialize them */ | 1550 | /* Find all the lance cards on the system and initialize them */ |
| 1551 | static int __init sparc_lance_init(void) | 1551 | static int __init sparc_lance_init(void) |
| 1552 | { | 1552 | { |
| 1553 | return of_register_platform_driver(&sunlance_sbus_driver); | 1553 | return platform_driver_register(&sunlance_sbus_driver); |
| 1554 | } | 1554 | } |
| 1555 | 1555 | ||
| 1556 | static void __exit sparc_lance_exit(void) | 1556 | static void __exit sparc_lance_exit(void) |
| 1557 | { | 1557 | { |
| 1558 | of_unregister_platform_driver(&sunlance_sbus_driver); | 1558 | platform_driver_unregister(&sunlance_sbus_driver); |
| 1559 | } | 1559 | } |
| 1560 | 1560 | ||
| 1561 | module_init(sparc_lance_init); | 1561 | module_init(sparc_lance_init); |
diff --git a/drivers/net/sunqe.c b/drivers/net/sunqe.c index 9536b2f010be..18ecdc303751 100644 --- a/drivers/net/sunqe.c +++ b/drivers/net/sunqe.c | |||
| @@ -941,7 +941,7 @@ fail: | |||
| 941 | return res; | 941 | return res; |
| 942 | } | 942 | } |
| 943 | 943 | ||
| 944 | static int __devinit qec_sbus_probe(struct platform_device *op, const struct of_device_id *match) | 944 | static int __devinit qec_sbus_probe(struct platform_device *op) |
| 945 | { | 945 | { |
| 946 | return qec_ether_init(op); | 946 | return qec_ether_init(op); |
| 947 | } | 947 | } |
| @@ -976,7 +976,7 @@ static const struct of_device_id qec_sbus_match[] = { | |||
| 976 | 976 | ||
| 977 | MODULE_DEVICE_TABLE(of, qec_sbus_match); | 977 | MODULE_DEVICE_TABLE(of, qec_sbus_match); |
| 978 | 978 | ||
| 979 | static struct of_platform_driver qec_sbus_driver = { | 979 | static struct platform_driver qec_sbus_driver = { |
| 980 | .driver = { | 980 | .driver = { |
| 981 | .name = "qec", | 981 | .name = "qec", |
| 982 | .owner = THIS_MODULE, | 982 | .owner = THIS_MODULE, |
| @@ -988,12 +988,12 @@ static struct of_platform_driver qec_sbus_driver = { | |||
| 988 | 988 | ||
| 989 | static int __init qec_init(void) | 989 | static int __init qec_init(void) |
| 990 | { | 990 | { |
| 991 | return of_register_platform_driver(&qec_sbus_driver); | 991 | return platform_driver_register(&qec_sbus_driver); |
| 992 | } | 992 | } |
| 993 | 993 | ||
| 994 | static void __exit qec_exit(void) | 994 | static void __exit qec_exit(void) |
| 995 | { | 995 | { |
| 996 | of_unregister_platform_driver(&qec_sbus_driver); | 996 | platform_driver_unregister(&qec_sbus_driver); |
| 997 | 997 | ||
| 998 | while (root_qec_dev) { | 998 | while (root_qec_dev) { |
| 999 | struct sunqec *next = root_qec_dev->next_module; | 999 | struct sunqec *next = root_qec_dev->next_module; |
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c index 715e7b47e7e9..ef041057d9d3 100644 --- a/drivers/net/ucc_geth.c +++ b/drivers/net/ucc_geth.c | |||
| @@ -3740,7 +3740,7 @@ static const struct net_device_ops ucc_geth_netdev_ops = { | |||
| 3740 | #endif | 3740 | #endif |
| 3741 | }; | 3741 | }; |
| 3742 | 3742 | ||
| 3743 | static int ucc_geth_probe(struct platform_device* ofdev, const struct of_device_id *match) | 3743 | static int ucc_geth_probe(struct platform_device* ofdev) |
| 3744 | { | 3744 | { |
| 3745 | struct device *device = &ofdev->dev; | 3745 | struct device *device = &ofdev->dev; |
| 3746 | struct device_node *np = ofdev->dev.of_node; | 3746 | struct device_node *np = ofdev->dev.of_node; |
| @@ -3986,7 +3986,7 @@ static struct of_device_id ucc_geth_match[] = { | |||
| 3986 | 3986 | ||
| 3987 | MODULE_DEVICE_TABLE(of, ucc_geth_match); | 3987 | MODULE_DEVICE_TABLE(of, ucc_geth_match); |
| 3988 | 3988 | ||
| 3989 | static struct of_platform_driver ucc_geth_driver = { | 3989 | static struct platform_driver ucc_geth_driver = { |
| 3990 | .driver = { | 3990 | .driver = { |
| 3991 | .name = DRV_NAME, | 3991 | .name = DRV_NAME, |
| 3992 | .owner = THIS_MODULE, | 3992 | .owner = THIS_MODULE, |
| @@ -4008,14 +4008,14 @@ static int __init ucc_geth_init(void) | |||
| 4008 | memcpy(&(ugeth_info[i]), &ugeth_primary_info, | 4008 | memcpy(&(ugeth_info[i]), &ugeth_primary_info, |
| 4009 | sizeof(ugeth_primary_info)); | 4009 | sizeof(ugeth_primary_info)); |
| 4010 | 4010 | ||
| 4011 | ret = of_register_platform_driver(&ucc_geth_driver); | 4011 | ret = platform_driver_register(&ucc_geth_driver); |
| 4012 | 4012 | ||
| 4013 | return ret; | 4013 | return ret; |
| 4014 | } | 4014 | } |
| 4015 | 4015 | ||
| 4016 | static void __exit ucc_geth_exit(void) | 4016 | static void __exit ucc_geth_exit(void) |
| 4017 | { | 4017 | { |
| 4018 | of_unregister_platform_driver(&ucc_geth_driver); | 4018 | platform_driver_unregister(&ucc_geth_driver); |
| 4019 | } | 4019 | } |
| 4020 | 4020 | ||
| 4021 | module_init(ucc_geth_init); | 4021 | module_init(ucc_geth_init); |
diff --git a/drivers/net/xilinx_emaclite.c b/drivers/net/xilinx_emaclite.c index cad66ce1640b..2642af4ee491 100644 --- a/drivers/net/xilinx_emaclite.c +++ b/drivers/net/xilinx_emaclite.c | |||
| @@ -1101,8 +1101,7 @@ static struct net_device_ops xemaclite_netdev_ops; | |||
| 1101 | * Return: 0, if the driver is bound to the Emaclite device, or | 1101 | * Return: 0, if the driver is bound to the Emaclite device, or |
| 1102 | * a negative error if there is failure. | 1102 | * a negative error if there is failure. |
| 1103 | */ | 1103 | */ |
| 1104 | static int __devinit xemaclite_of_probe(struct platform_device *ofdev, | 1104 | static int __devinit xemaclite_of_probe(struct platform_device *ofdev) |
| 1105 | const struct of_device_id *match) | ||
| 1106 | { | 1105 | { |
| 1107 | struct resource r_irq; /* Interrupt resources */ | 1106 | struct resource r_irq; /* Interrupt resources */ |
| 1108 | struct resource r_mem; /* IO mem resources */ | 1107 | struct resource r_mem; /* IO mem resources */ |
| @@ -1288,7 +1287,7 @@ static struct of_device_id xemaclite_of_match[] __devinitdata = { | |||
| 1288 | }; | 1287 | }; |
| 1289 | MODULE_DEVICE_TABLE(of, xemaclite_of_match); | 1288 | MODULE_DEVICE_TABLE(of, xemaclite_of_match); |
| 1290 | 1289 | ||
| 1291 | static struct of_platform_driver xemaclite_of_driver = { | 1290 | static struct platform_driver xemaclite_of_driver = { |
| 1292 | .driver = { | 1291 | .driver = { |
| 1293 | .name = DRIVER_NAME, | 1292 | .name = DRIVER_NAME, |
| 1294 | .owner = THIS_MODULE, | 1293 | .owner = THIS_MODULE, |
| @@ -1306,7 +1305,7 @@ static struct of_platform_driver xemaclite_of_driver = { | |||
| 1306 | static int __init xemaclite_init(void) | 1305 | static int __init xemaclite_init(void) |
| 1307 | { | 1306 | { |
| 1308 | /* No kernel boot options used, we just need to register the driver */ | 1307 | /* No kernel boot options used, we just need to register the driver */ |
| 1309 | return of_register_platform_driver(&xemaclite_of_driver); | 1308 | return platform_driver_register(&xemaclite_of_driver); |
| 1310 | } | 1309 | } |
| 1311 | 1310 | ||
| 1312 | /** | 1311 | /** |
| @@ -1314,7 +1313,7 @@ static int __init xemaclite_init(void) | |||
| 1314 | */ | 1313 | */ |
| 1315 | static void __exit xemaclite_cleanup(void) | 1314 | static void __exit xemaclite_cleanup(void) |
| 1316 | { | 1315 | { |
| 1317 | of_unregister_platform_driver(&xemaclite_of_driver); | 1316 | platform_driver_unregister(&xemaclite_of_driver); |
| 1318 | } | 1317 | } |
| 1319 | 1318 | ||
| 1320 | module_init(xemaclite_init); | 1319 | module_init(xemaclite_init); |
diff --git a/drivers/of/device.c b/drivers/of/device.c index 45d86530799f..62b4b32ac887 100644 --- a/drivers/of/device.c +++ b/drivers/of/device.c | |||
| @@ -47,40 +47,6 @@ void of_dev_put(struct platform_device *dev) | |||
| 47 | } | 47 | } |
| 48 | EXPORT_SYMBOL(of_dev_put); | 48 | EXPORT_SYMBOL(of_dev_put); |
| 49 | 49 | ||
| 50 | static ssize_t devspec_show(struct device *dev, | ||
| 51 | struct device_attribute *attr, char *buf) | ||
| 52 | { | ||
| 53 | struct platform_device *ofdev; | ||
| 54 | |||
| 55 | ofdev = to_platform_device(dev); | ||
| 56 | return sprintf(buf, "%s\n", ofdev->dev.of_node->full_name); | ||
| 57 | } | ||
| 58 | |||
| 59 | static ssize_t name_show(struct device *dev, | ||
| 60 | struct device_attribute *attr, char *buf) | ||
| 61 | { | ||
| 62 | struct platform_device *ofdev; | ||
| 63 | |||
| 64 | ofdev = to_platform_device(dev); | ||
| 65 | return sprintf(buf, "%s\n", ofdev->dev.of_node->name); | ||
| 66 | } | ||
| 67 | |||
| 68 | static ssize_t modalias_show(struct device *dev, | ||
| 69 | struct device_attribute *attr, char *buf) | ||
| 70 | { | ||
| 71 | ssize_t len = of_device_get_modalias(dev, buf, PAGE_SIZE - 2); | ||
| 72 | buf[len] = '\n'; | ||
| 73 | buf[len+1] = 0; | ||
| 74 | return len+1; | ||
| 75 | } | ||
| 76 | |||
| 77 | struct device_attribute of_platform_device_attrs[] = { | ||
| 78 | __ATTR_RO(devspec), | ||
| 79 | __ATTR_RO(name), | ||
| 80 | __ATTR_RO(modalias), | ||
| 81 | __ATTR_NULL | ||
| 82 | }; | ||
| 83 | |||
| 84 | int of_device_add(struct platform_device *ofdev) | 50 | int of_device_add(struct platform_device *ofdev) |
| 85 | { | 51 | { |
| 86 | BUG_ON(ofdev->dev.of_node == NULL); | 52 | BUG_ON(ofdev->dev.of_node == NULL); |
diff --git a/drivers/of/platform.c b/drivers/of/platform.c index c01cd1ac7617..1ce4c45c4ab2 100644 --- a/drivers/of/platform.c +++ b/drivers/of/platform.c | |||
| @@ -42,471 +42,10 @@ struct platform_device *of_find_device_by_node(struct device_node *np) | |||
| 42 | } | 42 | } |
| 43 | EXPORT_SYMBOL(of_find_device_by_node); | 43 | EXPORT_SYMBOL(of_find_device_by_node); |
| 44 | 44 | ||
| 45 | static int platform_driver_probe_shim(struct platform_device *pdev) | ||
| 46 | { | ||
| 47 | struct platform_driver *pdrv; | ||
| 48 | struct of_platform_driver *ofpdrv; | ||
| 49 | const struct of_device_id *match; | ||
| 50 | |||
| 51 | pdrv = container_of(pdev->dev.driver, struct platform_driver, driver); | ||
| 52 | ofpdrv = container_of(pdrv, struct of_platform_driver, platform_driver); | ||
| 53 | |||
| 54 | /* There is an unlikely chance that an of_platform driver might match | ||
| 55 | * on a non-OF platform device. If so, then of_match_device() will | ||
| 56 | * come up empty. Return -EINVAL in this case so other drivers get | ||
| 57 | * the chance to bind. */ | ||
| 58 | match = of_match_device(pdev->dev.driver->of_match_table, &pdev->dev); | ||
| 59 | return match ? ofpdrv->probe(pdev, match) : -EINVAL; | ||
| 60 | } | ||
| 61 | |||
| 62 | static void platform_driver_shutdown_shim(struct platform_device *pdev) | ||
| 63 | { | ||
| 64 | struct platform_driver *pdrv; | ||
| 65 | struct of_platform_driver *ofpdrv; | ||
| 66 | |||
| 67 | pdrv = container_of(pdev->dev.driver, struct platform_driver, driver); | ||
| 68 | ofpdrv = container_of(pdrv, struct of_platform_driver, platform_driver); | ||
| 69 | ofpdrv->shutdown(pdev); | ||
| 70 | } | ||
| 71 | |||
| 72 | /** | ||
| 73 | * of_register_platform_driver | ||
| 74 | */ | ||
| 75 | int of_register_platform_driver(struct of_platform_driver *drv) | ||
| 76 | { | ||
| 77 | char *of_name; | ||
| 78 | |||
| 79 | /* setup of_platform_driver to platform_driver adaptors */ | ||
| 80 | drv->platform_driver.driver = drv->driver; | ||
| 81 | |||
| 82 | /* Prefix the driver name with 'of:' to avoid namespace collisions | ||
| 83 | * and bogus matches. There are some drivers in the tree that | ||
| 84 | * register both an of_platform_driver and a platform_driver with | ||
| 85 | * the same name. This is a temporary measure until they are all | ||
| 86 | * cleaned up --gcl July 29, 2010 */ | ||
| 87 | of_name = kmalloc(strlen(drv->driver.name) + 5, GFP_KERNEL); | ||
| 88 | if (!of_name) | ||
| 89 | return -ENOMEM; | ||
| 90 | sprintf(of_name, "of:%s", drv->driver.name); | ||
| 91 | drv->platform_driver.driver.name = of_name; | ||
| 92 | |||
| 93 | if (drv->probe) | ||
| 94 | drv->platform_driver.probe = platform_driver_probe_shim; | ||
| 95 | drv->platform_driver.remove = drv->remove; | ||
| 96 | if (drv->shutdown) | ||
| 97 | drv->platform_driver.shutdown = platform_driver_shutdown_shim; | ||
| 98 | drv->platform_driver.suspend = drv->suspend; | ||
| 99 | drv->platform_driver.resume = drv->resume; | ||
| 100 | |||
| 101 | return platform_driver_register(&drv->platform_driver); | ||
| 102 | } | ||
| 103 | EXPORT_SYMBOL(of_register_platform_driver); | ||
| 104 | |||
| 105 | void of_unregister_platform_driver(struct of_platform_driver *drv) | ||
| 106 | { | ||
| 107 | platform_driver_unregister(&drv->platform_driver); | ||
| 108 | kfree(drv->platform_driver.driver.name); | ||
| 109 | drv->platform_driver.driver.name = NULL; | ||
| 110 | } | ||
| 111 | EXPORT_SYMBOL(of_unregister_platform_driver); | ||
| 112 | |||
| 113 | #if defined(CONFIG_PPC_DCR) | 45 | #if defined(CONFIG_PPC_DCR) |
| 114 | #include <asm/dcr.h> | 46 | #include <asm/dcr.h> |
| 115 | #endif | 47 | #endif |
| 116 | 48 | ||
| 117 | extern struct device_attribute of_platform_device_attrs[]; | ||
| 118 | |||
| 119 | static int of_platform_bus_match(struct device *dev, struct device_driver *drv) | ||
| 120 | { | ||
| 121 | const struct of_device_id *matches = drv->of_match_table; | ||
| 122 | |||
| 123 | if (!matches) | ||
| 124 | return 0; | ||
| 125 | |||
| 126 | return of_match_device(matches, dev) != NULL; | ||
| 127 | } | ||
| 128 | |||
| 129 | static int of_platform_device_probe(struct device *dev) | ||
| 130 | { | ||
| 131 | int error = -ENODEV; | ||
| 132 | struct of_platform_driver *drv; | ||
| 133 | struct platform_device *of_dev; | ||
| 134 | const struct of_device_id *match; | ||
| 135 | |||
| 136 | drv = to_of_platform_driver(dev->driver); | ||
| 137 | of_dev = to_platform_device(dev); | ||
| 138 | |||
| 139 | if (!drv->probe) | ||
| 140 | return error; | ||
| 141 | |||
| 142 | of_dev_get(of_dev); | ||
| 143 | |||
| 144 | match = of_match_device(drv->driver.of_match_table, dev); | ||
| 145 | if (match) | ||
| 146 | error = drv->probe(of_dev, match); | ||
| 147 | if (error) | ||
| 148 | of_dev_put(of_dev); | ||
| 149 | |||
| 150 | return error; | ||
| 151 | } | ||
| 152 | |||
| 153 | static int of_platform_device_remove(struct device *dev) | ||
| 154 | { | ||
| 155 | struct platform_device *of_dev = to_platform_device(dev); | ||
| 156 | struct of_platform_driver *drv = to_of_platform_driver(dev->driver); | ||
| 157 | |||
| 158 | if (dev->driver && drv->remove) | ||
| 159 | drv->remove(of_dev); | ||
| 160 | return 0; | ||
| 161 | } | ||
| 162 | |||
| 163 | static void of_platform_device_shutdown(struct device *dev) | ||
| 164 | { | ||
| 165 | struct platform_device *of_dev = to_platform_device(dev); | ||
| 166 | struct of_platform_driver *drv = to_of_platform_driver(dev->driver); | ||
| 167 | |||
| 168 | if (dev->driver && drv->shutdown) | ||
| 169 | drv->shutdown(of_dev); | ||
| 170 | } | ||
| 171 | |||
| 172 | #ifdef CONFIG_PM_SLEEP | ||
| 173 | |||
| 174 | static int of_platform_legacy_suspend(struct device *dev, pm_message_t mesg) | ||
| 175 | { | ||
| 176 | struct platform_device *of_dev = to_platform_device(dev); | ||
| 177 | struct of_platform_driver *drv = to_of_platform_driver(dev->driver); | ||
| 178 | int ret = 0; | ||
| 179 | |||
| 180 | if (dev->driver && drv->suspend) | ||
| 181 | ret = drv->suspend(of_dev, mesg); | ||
| 182 | return ret; | ||
| 183 | } | ||
| 184 | |||
| 185 | static int of_platform_legacy_resume(struct device *dev) | ||
| 186 | { | ||
| 187 | struct platform_device *of_dev = to_platform_device(dev); | ||
| 188 | struct of_platform_driver *drv = to_of_platform_driver(dev->driver); | ||
| 189 | int ret = 0; | ||
| 190 | |||
| 191 | if (dev->driver && drv->resume) | ||
| 192 | ret = drv->resume(of_dev); | ||
| 193 | return ret; | ||
| 194 | } | ||
| 195 | |||
| 196 | static int of_platform_pm_prepare(struct device *dev) | ||
| 197 | { | ||
| 198 | struct device_driver *drv = dev->driver; | ||
| 199 | int ret = 0; | ||
| 200 | |||
| 201 | if (drv && drv->pm && drv->pm->prepare) | ||
| 202 | ret = drv->pm->prepare(dev); | ||
| 203 | |||
| 204 | return ret; | ||
| 205 | } | ||
| 206 | |||
| 207 | static void of_platform_pm_complete(struct device *dev) | ||
| 208 | { | ||
| 209 | struct device_driver *drv = dev->driver; | ||
| 210 | |||
| 211 | if (drv && drv->pm && drv->pm->complete) | ||
| 212 | drv->pm->complete(dev); | ||
| 213 | } | ||
| 214 | |||
| 215 | #ifdef CONFIG_SUSPEND | ||
| 216 | |||
| 217 | static int of_platform_pm_suspend(struct device *dev) | ||
| 218 | { | ||
| 219 | struct device_driver *drv = dev->driver; | ||
| 220 | int ret = 0; | ||
| 221 | |||
| 222 | if (!drv) | ||
| 223 | return 0; | ||
| 224 | |||
| 225 | if (drv->pm) { | ||
| 226 | if (drv->pm->suspend) | ||
| 227 | ret = drv->pm->suspend(dev); | ||
| 228 | } else { | ||
| 229 | ret = of_platform_legacy_suspend(dev, PMSG_SUSPEND); | ||
| 230 | } | ||
| 231 | |||
| 232 | return ret; | ||
| 233 | } | ||
| 234 | |||
| 235 | static int of_platform_pm_suspend_noirq(struct device *dev) | ||
| 236 | { | ||
| 237 | struct device_driver *drv = dev->driver; | ||
| 238 | int ret = 0; | ||
| 239 | |||
| 240 | if (!drv) | ||
| 241 | return 0; | ||
| 242 | |||
| 243 | if (drv->pm) { | ||
| 244 | if (drv->pm->suspend_noirq) | ||
| 245 | ret = drv->pm->suspend_noirq(dev); | ||
| 246 | } | ||
| 247 | |||
| 248 | return ret; | ||
| 249 | } | ||
| 250 | |||
| 251 | static int of_platform_pm_resume(struct device *dev) | ||
| 252 | { | ||
| 253 | struct device_driver *drv = dev->driver; | ||
| 254 | int ret = 0; | ||
| 255 | |||
| 256 | if (!drv) | ||
| 257 | return 0; | ||
| 258 | |||
| 259 | if (drv->pm) { | ||
| 260 | if (drv->pm->resume) | ||
| 261 | ret = drv->pm->resume(dev); | ||
| 262 | } else { | ||
| 263 | ret = of_platform_legacy_resume(dev); | ||
| 264 | } | ||
| 265 | |||
| 266 | return ret; | ||
| 267 | } | ||
| 268 | |||
| 269 | static int of_platform_pm_resume_noirq(struct device *dev) | ||
| 270 | { | ||
| 271 | struct device_driver *drv = dev->driver; | ||
| 272 | int ret = 0; | ||
| 273 | |||
| 274 | if (!drv) | ||
| 275 | return 0; | ||
| 276 | |||
| 277 | if (drv->pm) { | ||
| 278 | if (drv->pm->resume_noirq) | ||
| 279 | ret = drv->pm->resume_noirq(dev); | ||
| 280 | } | ||
| 281 | |||
| 282 | return ret; | ||
| 283 | } | ||
| 284 | |||
| 285 | #else /* !CONFIG_SUSPEND */ | ||
| 286 | |||
| 287 | #define of_platform_pm_suspend NULL | ||
| 288 | #define of_platform_pm_resume NULL | ||
| 289 | #define of_platform_pm_suspend_noirq NULL | ||
| 290 | #define of_platform_pm_resume_noirq NULL | ||
| 291 | |||
| 292 | #endif /* !CONFIG_SUSPEND */ | ||
| 293 | |||
| 294 | #ifdef CONFIG_HIBERNATION | ||
| 295 | |||
| 296 | static int of_platform_pm_freeze(struct device *dev) | ||
| 297 | { | ||
| 298 | struct device_driver *drv = dev->driver; | ||
| 299 | int ret = 0; | ||
| 300 | |||
| 301 | if (!drv) | ||
| 302 | return 0; | ||
| 303 | |||
| 304 | if (drv->pm) { | ||
| 305 | if (drv->pm->freeze) | ||
| 306 | ret = drv->pm->freeze(dev); | ||
| 307 | } else { | ||
| 308 | ret = of_platform_legacy_suspend(dev, PMSG_FREEZE); | ||
| 309 | } | ||
| 310 | |||
| 311 | return ret; | ||
| 312 | } | ||
| 313 | |||
| 314 | static int of_platform_pm_freeze_noirq(struct device *dev) | ||
| 315 | { | ||
| 316 | struct device_driver *drv = dev->driver; | ||
| 317 | int ret = 0; | ||
| 318 | |||
| 319 | if (!drv) | ||
| 320 | return 0; | ||
| 321 | |||
| 322 | if (drv->pm) { | ||
| 323 | if (drv->pm->freeze_noirq) | ||
| 324 | ret = drv->pm->freeze_noirq(dev); | ||
| 325 | } | ||
| 326 | |||
| 327 | return ret; | ||
| 328 | } | ||
| 329 | |||
| 330 | static int of_platform_pm_thaw(struct device *dev) | ||
| 331 | { | ||
| 332 | struct device_driver *drv = dev->driver; | ||
| 333 | int ret = 0; | ||
| 334 | |||
| 335 | if (!drv) | ||
| 336 | return 0; | ||
| 337 | |||
| 338 | if (drv->pm) { | ||
| 339 | if (drv->pm->thaw) | ||
| 340 | ret = drv->pm->thaw(dev); | ||
| 341 | } else { | ||
| 342 | ret = of_platform_legacy_resume(dev); | ||
| 343 | } | ||
| 344 | |||
| 345 | return ret; | ||
| 346 | } | ||
| 347 | |||
| 348 | static int of_platform_pm_thaw_noirq(struct device *dev) | ||
| 349 | { | ||
| 350 | struct device_driver *drv = dev->driver; | ||
| 351 | int ret = 0; | ||
| 352 | |||
| 353 | if (!drv) | ||
| 354 | return 0; | ||
| 355 | |||
| 356 | if (drv->pm) { | ||
| 357 | if (drv->pm->thaw_noirq) | ||
| 358 | ret = drv->pm->thaw_noirq(dev); | ||
| 359 | } | ||
| 360 | |||
| 361 | return ret; | ||
| 362 | } | ||
| 363 | |||
| 364 | static int of_platform_pm_poweroff(struct device *dev) | ||
| 365 | { | ||
| 366 | struct device_driver *drv = dev->driver; | ||
| 367 | int ret = 0; | ||
| 368 | |||
| 369 | if (!drv) | ||
| 370 | return 0; | ||
| 371 | |||
| 372 | if (drv->pm) { | ||
| 373 | if (drv->pm->poweroff) | ||
| 374 | ret = drv->pm->poweroff(dev); | ||
| 375 | } else { | ||
| 376 | ret = of_platform_legacy_suspend(dev, PMSG_HIBERNATE); | ||
| 377 | } | ||
| 378 | |||
| 379 | return ret; | ||
| 380 | } | ||
| 381 | |||
| 382 | static int of_platform_pm_poweroff_noirq(struct device *dev) | ||
| 383 | { | ||
| 384 | struct device_driver *drv = dev->driver; | ||
| 385 | int ret = 0; | ||
| 386 | |||
| 387 | if (!drv) | ||
| 388 | return 0; | ||
| 389 | |||
| 390 | if (drv->pm) { | ||
| 391 | if (drv->pm->poweroff_noirq) | ||
| 392 | ret = drv->pm->poweroff_noirq(dev); | ||
| 393 | } | ||
| 394 | |||
| 395 | return ret; | ||
| 396 | } | ||
| 397 | |||
| 398 | static int of_platform_pm_restore(struct device *dev) | ||
| 399 | { | ||
| 400 | struct device_driver *drv = dev->driver; | ||
| 401 | int ret = 0; | ||
| 402 | |||
| 403 | if (!drv) | ||
| 404 | return 0; | ||
| 405 | |||
| 406 | if (drv->pm) { | ||
| 407 | if (drv->pm->restore) | ||
| 408 | ret = drv->pm->restore(dev); | ||
| 409 | } else { | ||
| 410 | ret = of_platform_legacy_resume(dev); | ||
| 411 | } | ||
| 412 | |||
| 413 | return ret; | ||
| 414 | } | ||
| 415 | |||
| 416 | static int of_platform_pm_restore_noirq(struct device *dev) | ||
| 417 | { | ||
| 418 | struct device_driver *drv = dev->driver; | ||
| 419 | int ret = 0; | ||
| 420 | |||
| 421 | if (!drv) | ||
| 422 | return 0; | ||
| 423 | |||
| 424 | if (drv->pm) { | ||
| 425 | if (drv->pm->restore_noirq) | ||
| 426 | ret = drv->pm->restore_noirq(dev); | ||
| 427 | } | ||
| 428 | |||
| 429 | return ret; | ||
| 430 | } | ||
| 431 | |||
| 432 | #else /* !CONFIG_HIBERNATION */ | ||
| 433 | |||
| 434 | #define of_platform_pm_freeze NULL | ||
| 435 | #define of_platform_pm_thaw NULL | ||
| 436 | #define of_platform_pm_poweroff NULL | ||
| 437 | #define of_platform_pm_restore NULL | ||
| 438 | #define of_platform_pm_freeze_noirq NULL | ||
| 439 | #define of_platform_pm_thaw_noirq NULL | ||
| 440 | #define of_platform_pm_poweroff_noirq NULL | ||
| 441 | #define of_platform_pm_restore_noirq NULL | ||
| 442 | |||
| 443 | #endif /* !CONFIG_HIBERNATION */ | ||
| 444 | |||
| 445 | static struct dev_pm_ops of_platform_dev_pm_ops = { | ||
| 446 | .prepare = of_platform_pm_prepare, | ||
| 447 | .complete = of_platform_pm_complete, | ||
| 448 | .suspend = of_platform_pm_suspend, | ||
| 449 | .resume = of_platform_pm_resume, | ||
| 450 | .freeze = of_platform_pm_freeze, | ||
| 451 | .thaw = of_platform_pm_thaw, | ||
| 452 | .poweroff = of_platform_pm_poweroff, | ||
| 453 | .restore = of_platform_pm_restore, | ||
| 454 | .suspend_noirq = of_platform_pm_suspend_noirq, | ||
| 455 | .resume_noirq = of_platform_pm_resume_noirq, | ||
| 456 | .freeze_noirq = of_platform_pm_freeze_noirq, | ||
| 457 | .thaw_noirq = of_platform_pm_thaw_noirq, | ||
| 458 | .poweroff_noirq = of_platform_pm_poweroff_noirq, | ||
| 459 | .restore_noirq = of_platform_pm_restore_noirq, | ||
| 460 | }; | ||
| 461 | |||
| 462 | #define OF_PLATFORM_PM_OPS_PTR (&of_platform_dev_pm_ops) | ||
| 463 | |||
| 464 | #else /* !CONFIG_PM_SLEEP */ | ||
| 465 | |||
| 466 | #define OF_PLATFORM_PM_OPS_PTR NULL | ||
| 467 | |||
| 468 | #endif /* !CONFIG_PM_SLEEP */ | ||
| 469 | |||
| 470 | int of_bus_type_init(struct bus_type *bus, const char *name) | ||
| 471 | { | ||
| 472 | bus->name = name; | ||
| 473 | bus->match = of_platform_bus_match; | ||
| 474 | bus->probe = of_platform_device_probe; | ||
| 475 | bus->remove = of_platform_device_remove; | ||
| 476 | bus->shutdown = of_platform_device_shutdown; | ||
| 477 | bus->dev_attrs = of_platform_device_attrs; | ||
| 478 | bus->pm = OF_PLATFORM_PM_OPS_PTR; | ||
| 479 | return bus_register(bus); | ||
| 480 | } | ||
| 481 | |||
| 482 | int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus) | ||
| 483 | { | ||
| 484 | /* | ||
| 485 | * Temporary: of_platform_bus used to be distinct from the platform | ||
| 486 | * bus. It isn't anymore, and so drivers on the platform bus need | ||
| 487 | * to be registered in a special way. | ||
| 488 | * | ||
| 489 | * After all of_platform_bus_type drivers are converted to | ||
| 490 | * platform_drivers, this exception can be removed. | ||
| 491 | */ | ||
| 492 | if (bus == &platform_bus_type) | ||
| 493 | return of_register_platform_driver(drv); | ||
| 494 | |||
| 495 | /* register with core */ | ||
| 496 | drv->driver.bus = bus; | ||
| 497 | return driver_register(&drv->driver); | ||
| 498 | } | ||
| 499 | EXPORT_SYMBOL(of_register_driver); | ||
| 500 | |||
| 501 | void of_unregister_driver(struct of_platform_driver *drv) | ||
| 502 | { | ||
| 503 | if (drv->driver.bus == &platform_bus_type) | ||
| 504 | of_unregister_platform_driver(drv); | ||
| 505 | else | ||
| 506 | driver_unregister(&drv->driver); | ||
| 507 | } | ||
| 508 | EXPORT_SYMBOL(of_unregister_driver); | ||
| 509 | |||
| 510 | #if !defined(CONFIG_SPARC) | 49 | #if !defined(CONFIG_SPARC) |
| 511 | /* | 50 | /* |
| 512 | * The following routines scan a subtree and registers a device for | 51 | * The following routines scan a subtree and registers a device for |
diff --git a/drivers/parport/parport_sunbpp.c b/drivers/parport/parport_sunbpp.c index 55ba118f1cf1..910c5a26e347 100644 --- a/drivers/parport/parport_sunbpp.c +++ b/drivers/parport/parport_sunbpp.c | |||
| @@ -286,7 +286,7 @@ static struct parport_operations parport_sunbpp_ops = | |||
| 286 | .owner = THIS_MODULE, | 286 | .owner = THIS_MODULE, |
| 287 | }; | 287 | }; |
| 288 | 288 | ||
| 289 | static int __devinit bpp_probe(struct platform_device *op, const struct of_device_id *match) | 289 | static int __devinit bpp_probe(struct platform_device *op) |
| 290 | { | 290 | { |
| 291 | struct parport_operations *ops; | 291 | struct parport_operations *ops; |
| 292 | struct bpp_regs __iomem *regs; | 292 | struct bpp_regs __iomem *regs; |
| @@ -381,7 +381,7 @@ static const struct of_device_id bpp_match[] = { | |||
| 381 | 381 | ||
| 382 | MODULE_DEVICE_TABLE(of, bpp_match); | 382 | MODULE_DEVICE_TABLE(of, bpp_match); |
| 383 | 383 | ||
| 384 | static struct of_platform_driver bpp_sbus_driver = { | 384 | static struct platform_driver bpp_sbus_driver = { |
| 385 | .driver = { | 385 | .driver = { |
| 386 | .name = "bpp", | 386 | .name = "bpp", |
| 387 | .owner = THIS_MODULE, | 387 | .owner = THIS_MODULE, |
| @@ -393,12 +393,12 @@ static struct of_platform_driver bpp_sbus_driver = { | |||
| 393 | 393 | ||
| 394 | static int __init parport_sunbpp_init(void) | 394 | static int __init parport_sunbpp_init(void) |
| 395 | { | 395 | { |
| 396 | return of_register_platform_driver(&bpp_sbus_driver); | 396 | return platform_driver_register(&bpp_sbus_driver); |
| 397 | } | 397 | } |
| 398 | 398 | ||
| 399 | static void __exit parport_sunbpp_exit(void) | 399 | static void __exit parport_sunbpp_exit(void) |
| 400 | { | 400 | { |
| 401 | of_unregister_platform_driver(&bpp_sbus_driver); | 401 | platform_driver_unregister(&bpp_sbus_driver); |
| 402 | } | 402 | } |
| 403 | 403 | ||
| 404 | MODULE_AUTHOR("Derrick J Brashear"); | 404 | MODULE_AUTHOR("Derrick J Brashear"); |
diff --git a/drivers/pcmcia/electra_cf.c b/drivers/pcmcia/electra_cf.c index 546d3024b6f0..6defd4a8168e 100644 --- a/drivers/pcmcia/electra_cf.c +++ b/drivers/pcmcia/electra_cf.c | |||
| @@ -181,8 +181,7 @@ static struct pccard_operations electra_cf_ops = { | |||
| 181 | .set_mem_map = electra_cf_set_mem_map, | 181 | .set_mem_map = electra_cf_set_mem_map, |
| 182 | }; | 182 | }; |
| 183 | 183 | ||
| 184 | static int __devinit electra_cf_probe(struct platform_device *ofdev, | 184 | static int __devinit electra_cf_probe(struct platform_device *ofdev) |
| 185 | const struct of_device_id *match) | ||
| 186 | { | 185 | { |
| 187 | struct device *device = &ofdev->dev; | 186 | struct device *device = &ofdev->dev; |
| 188 | struct device_node *np = ofdev->dev.of_node; | 187 | struct device_node *np = ofdev->dev.of_node; |
| @@ -356,7 +355,7 @@ static const struct of_device_id electra_cf_match[] = { | |||
| 356 | }; | 355 | }; |
| 357 | MODULE_DEVICE_TABLE(of, electra_cf_match); | 356 | MODULE_DEVICE_TABLE(of, electra_cf_match); |
| 358 | 357 | ||
| 359 | static struct of_platform_driver electra_cf_driver = { | 358 | static struct platform_driver electra_cf_driver = { |
| 360 | .driver = { | 359 | .driver = { |
| 361 | .name = (char *)driver_name, | 360 | .name = (char *)driver_name, |
| 362 | .owner = THIS_MODULE, | 361 | .owner = THIS_MODULE, |
| @@ -368,13 +367,13 @@ static struct of_platform_driver electra_cf_driver = { | |||
| 368 | 367 | ||
| 369 | static int __init electra_cf_init(void) | 368 | static int __init electra_cf_init(void) |
| 370 | { | 369 | { |
| 371 | return of_register_platform_driver(&electra_cf_driver); | 370 | return platform_driver_register(&electra_cf_driver); |
| 372 | } | 371 | } |
| 373 | module_init(electra_cf_init); | 372 | module_init(electra_cf_init); |
| 374 | 373 | ||
| 375 | static void __exit electra_cf_exit(void) | 374 | static void __exit electra_cf_exit(void) |
| 376 | { | 375 | { |
| 377 | of_unregister_platform_driver(&electra_cf_driver); | 376 | platform_driver_unregister(&electra_cf_driver); |
| 378 | } | 377 | } |
| 379 | module_exit(electra_cf_exit); | 378 | module_exit(electra_cf_exit); |
| 380 | 379 | ||
diff --git a/drivers/pcmcia/m8xx_pcmcia.c b/drivers/pcmcia/m8xx_pcmcia.c index 0db482771fb5..271a590a5f3c 100644 --- a/drivers/pcmcia/m8xx_pcmcia.c +++ b/drivers/pcmcia/m8xx_pcmcia.c | |||
| @@ -1148,8 +1148,7 @@ static struct pccard_operations m8xx_services = { | |||
| 1148 | .set_mem_map = m8xx_set_mem_map, | 1148 | .set_mem_map = m8xx_set_mem_map, |
| 1149 | }; | 1149 | }; |
| 1150 | 1150 | ||
| 1151 | static int __init m8xx_probe(struct platform_device *ofdev, | 1151 | static int __init m8xx_probe(struct platform_device *ofdev) |
| 1152 | const struct of_device_id *match) | ||
| 1153 | { | 1152 | { |
| 1154 | struct pcmcia_win *w; | 1153 | struct pcmcia_win *w; |
| 1155 | unsigned int i, m, hwirq; | 1154 | unsigned int i, m, hwirq; |
| @@ -1295,7 +1294,7 @@ static const struct of_device_id m8xx_pcmcia_match[] = { | |||
| 1295 | 1294 | ||
| 1296 | MODULE_DEVICE_TABLE(of, m8xx_pcmcia_match); | 1295 | MODULE_DEVICE_TABLE(of, m8xx_pcmcia_match); |
| 1297 | 1296 | ||
| 1298 | static struct of_platform_driver m8xx_pcmcia_driver = { | 1297 | static struct platform_driver m8xx_pcmcia_driver = { |
| 1299 | .driver = { | 1298 | .driver = { |
| 1300 | .name = driver_name, | 1299 | .name = driver_name, |
| 1301 | .owner = THIS_MODULE, | 1300 | .owner = THIS_MODULE, |
| @@ -1307,12 +1306,12 @@ static struct of_platform_driver m8xx_pcmcia_driver = { | |||
| 1307 | 1306 | ||
| 1308 | static int __init m8xx_init(void) | 1307 | static int __init m8xx_init(void) |
| 1309 | { | 1308 | { |
| 1310 | return of_register_platform_driver(&m8xx_pcmcia_driver); | 1309 | return platform_driver_register(&m8xx_pcmcia_driver); |
| 1311 | } | 1310 | } |
| 1312 | 1311 | ||
| 1313 | static void __exit m8xx_exit(void) | 1312 | static void __exit m8xx_exit(void) |
| 1314 | { | 1313 | { |
| 1315 | of_unregister_platform_driver(&m8xx_pcmcia_driver); | 1314 | platform_driver_unregister(&m8xx_pcmcia_driver); |
| 1316 | } | 1315 | } |
| 1317 | 1316 | ||
| 1318 | module_init(m8xx_init); | 1317 | module_init(m8xx_init); |
diff --git a/drivers/rtc/rtc-mpc5121.c b/drivers/rtc/rtc-mpc5121.c index b40c1ff1ebc8..09ccd8d3ba2a 100644 --- a/drivers/rtc/rtc-mpc5121.c +++ b/drivers/rtc/rtc-mpc5121.c | |||
| @@ -248,8 +248,7 @@ static const struct rtc_class_ops mpc5121_rtc_ops = { | |||
| 248 | .alarm_irq_enable = mpc5121_rtc_alarm_irq_enable, | 248 | .alarm_irq_enable = mpc5121_rtc_alarm_irq_enable, |
| 249 | }; | 249 | }; |
| 250 | 250 | ||
| 251 | static int __devinit mpc5121_rtc_probe(struct platform_device *op, | 251 | static int __devinit mpc5121_rtc_probe(struct platform_device *op) |
| 252 | const struct of_device_id *match) | ||
| 253 | { | 252 | { |
| 254 | struct mpc5121_rtc_data *rtc; | 253 | struct mpc5121_rtc_data *rtc; |
| 255 | int err = 0; | 254 | int err = 0; |
| @@ -344,7 +343,7 @@ static struct of_device_id mpc5121_rtc_match[] __devinitdata = { | |||
| 344 | {}, | 343 | {}, |
| 345 | }; | 344 | }; |
| 346 | 345 | ||
| 347 | static struct of_platform_driver mpc5121_rtc_driver = { | 346 | static struct platform_driver mpc5121_rtc_driver = { |
| 348 | .driver = { | 347 | .driver = { |
| 349 | .name = "mpc5121-rtc", | 348 | .name = "mpc5121-rtc", |
| 350 | .owner = THIS_MODULE, | 349 | .owner = THIS_MODULE, |
| @@ -356,13 +355,13 @@ static struct of_platform_driver mpc5121_rtc_driver = { | |||
| 356 | 355 | ||
| 357 | static int __init mpc5121_rtc_init(void) | 356 | static int __init mpc5121_rtc_init(void) |
| 358 | { | 357 | { |
| 359 | return of_register_platform_driver(&mpc5121_rtc_driver); | 358 | return platform_driver_register(&mpc5121_rtc_driver); |
| 360 | } | 359 | } |
| 361 | module_init(mpc5121_rtc_init); | 360 | module_init(mpc5121_rtc_init); |
| 362 | 361 | ||
| 363 | static void __exit mpc5121_rtc_exit(void) | 362 | static void __exit mpc5121_rtc_exit(void) |
| 364 | { | 363 | { |
| 365 | of_unregister_platform_driver(&mpc5121_rtc_driver); | 364 | platform_driver_unregister(&mpc5121_rtc_driver); |
| 366 | } | 365 | } |
| 367 | module_exit(mpc5121_rtc_exit); | 366 | module_exit(mpc5121_rtc_exit); |
| 368 | 367 | ||
diff --git a/drivers/sbus/char/bbc_i2c.c b/drivers/sbus/char/bbc_i2c.c index 614a5e114a19..5f94d22c491e 100644 --- a/drivers/sbus/char/bbc_i2c.c +++ b/drivers/sbus/char/bbc_i2c.c | |||
| @@ -361,8 +361,7 @@ fail: | |||
| 361 | extern int bbc_envctrl_init(struct bbc_i2c_bus *bp); | 361 | extern int bbc_envctrl_init(struct bbc_i2c_bus *bp); |
| 362 | extern void bbc_envctrl_cleanup(struct bbc_i2c_bus *bp); | 362 | extern void bbc_envctrl_cleanup(struct bbc_i2c_bus *bp); |
| 363 | 363 | ||
| 364 | static int __devinit bbc_i2c_probe(struct platform_device *op, | 364 | static int __devinit bbc_i2c_probe(struct platform_device *op) |
| 365 | const struct of_device_id *match) | ||
| 366 | { | 365 | { |
| 367 | struct bbc_i2c_bus *bp; | 366 | struct bbc_i2c_bus *bp; |
| 368 | int err, index = 0; | 367 | int err, index = 0; |
| @@ -413,7 +412,7 @@ static const struct of_device_id bbc_i2c_match[] = { | |||
| 413 | }; | 412 | }; |
| 414 | MODULE_DEVICE_TABLE(of, bbc_i2c_match); | 413 | MODULE_DEVICE_TABLE(of, bbc_i2c_match); |
| 415 | 414 | ||
| 416 | static struct of_platform_driver bbc_i2c_driver = { | 415 | static struct platform_driver bbc_i2c_driver = { |
| 417 | .driver = { | 416 | .driver = { |
| 418 | .name = "bbc_i2c", | 417 | .name = "bbc_i2c", |
| 419 | .owner = THIS_MODULE, | 418 | .owner = THIS_MODULE, |
| @@ -425,12 +424,12 @@ static struct of_platform_driver bbc_i2c_driver = { | |||
| 425 | 424 | ||
| 426 | static int __init bbc_i2c_init(void) | 425 | static int __init bbc_i2c_init(void) |
| 427 | { | 426 | { |
| 428 | return of_register_platform_driver(&bbc_i2c_driver); | 427 | return platform_driver_register(&bbc_i2c_driver); |
| 429 | } | 428 | } |
| 430 | 429 | ||
| 431 | static void __exit bbc_i2c_exit(void) | 430 | static void __exit bbc_i2c_exit(void) |
| 432 | { | 431 | { |
| 433 | of_unregister_platform_driver(&bbc_i2c_driver); | 432 | platform_driver_unregister(&bbc_i2c_driver); |
| 434 | } | 433 | } |
| 435 | 434 | ||
| 436 | module_init(bbc_i2c_init); | 435 | module_init(bbc_i2c_init); |
diff --git a/drivers/sbus/char/display7seg.c b/drivers/sbus/char/display7seg.c index 55f71ea9c418..740da4465447 100644 --- a/drivers/sbus/char/display7seg.c +++ b/drivers/sbus/char/display7seg.c | |||
| @@ -171,8 +171,7 @@ static struct miscdevice d7s_miscdev = { | |||
| 171 | .fops = &d7s_fops | 171 | .fops = &d7s_fops |
| 172 | }; | 172 | }; |
| 173 | 173 | ||
| 174 | static int __devinit d7s_probe(struct platform_device *op, | 174 | static int __devinit d7s_probe(struct platform_device *op) |
| 175 | const struct of_device_id *match) | ||
| 176 | { | 175 | { |
| 177 | struct device_node *opts; | 176 | struct device_node *opts; |
| 178 | int err = -EINVAL; | 177 | int err = -EINVAL; |
| @@ -266,7 +265,7 @@ static const struct of_device_id d7s_match[] = { | |||
| 266 | }; | 265 | }; |
| 267 | MODULE_DEVICE_TABLE(of, d7s_match); | 266 | MODULE_DEVICE_TABLE(of, d7s_match); |
| 268 | 267 | ||
| 269 | static struct of_platform_driver d7s_driver = { | 268 | static struct platform_driver d7s_driver = { |
| 270 | .driver = { | 269 | .driver = { |
| 271 | .name = DRIVER_NAME, | 270 | .name = DRIVER_NAME, |
| 272 | .owner = THIS_MODULE, | 271 | .owner = THIS_MODULE, |
| @@ -278,12 +277,12 @@ static struct of_platform_driver d7s_driver = { | |||
| 278 | 277 | ||
| 279 | static int __init d7s_init(void) | 278 | static int __init d7s_init(void) |
| 280 | { | 279 | { |
| 281 | return of_register_platform_driver(&d7s_driver); | 280 | return platform_driver_register(&d7s_driver); |
| 282 | } | 281 | } |
| 283 | 282 | ||
| 284 | static void __exit d7s_exit(void) | 283 | static void __exit d7s_exit(void) |
| 285 | { | 284 | { |
| 286 | of_unregister_platform_driver(&d7s_driver); | 285 | platform_driver_unregister(&d7s_driver); |
| 287 | } | 286 | } |
| 288 | 287 | ||
| 289 | module_init(d7s_init); | 288 | module_init(d7s_init); |
diff --git a/drivers/sbus/char/envctrl.c b/drivers/sbus/char/envctrl.c index 8ce414e39489..be7b4e56154f 100644 --- a/drivers/sbus/char/envctrl.c +++ b/drivers/sbus/char/envctrl.c | |||
| @@ -1028,8 +1028,7 @@ static int kenvctrld(void *__unused) | |||
| 1028 | return 0; | 1028 | return 0; |
| 1029 | } | 1029 | } |
| 1030 | 1030 | ||
| 1031 | static int __devinit envctrl_probe(struct platform_device *op, | 1031 | static int __devinit envctrl_probe(struct platform_device *op) |
| 1032 | const struct of_device_id *match) | ||
| 1033 | { | 1032 | { |
| 1034 | struct device_node *dp; | 1033 | struct device_node *dp; |
| 1035 | int index, err; | 1034 | int index, err; |
| @@ -1129,7 +1128,7 @@ static const struct of_device_id envctrl_match[] = { | |||
| 1129 | }; | 1128 | }; |
| 1130 | MODULE_DEVICE_TABLE(of, envctrl_match); | 1129 | MODULE_DEVICE_TABLE(of, envctrl_match); |
| 1131 | 1130 | ||
| 1132 | static struct of_platform_driver envctrl_driver = { | 1131 | static struct platform_driver envctrl_driver = { |
| 1133 | .driver = { | 1132 | .driver = { |
| 1134 | .name = DRIVER_NAME, | 1133 | .name = DRIVER_NAME, |
| 1135 | .owner = THIS_MODULE, | 1134 | .owner = THIS_MODULE, |
| @@ -1141,12 +1140,12 @@ static struct of_platform_driver envctrl_driver = { | |||
| 1141 | 1140 | ||
| 1142 | static int __init envctrl_init(void) | 1141 | static int __init envctrl_init(void) |
| 1143 | { | 1142 | { |
| 1144 | return of_register_platform_driver(&envctrl_driver); | 1143 | return platform_driver_register(&envctrl_driver); |
| 1145 | } | 1144 | } |
| 1146 | 1145 | ||
| 1147 | static void __exit envctrl_exit(void) | 1146 | static void __exit envctrl_exit(void) |
| 1148 | { | 1147 | { |
| 1149 | of_unregister_platform_driver(&envctrl_driver); | 1148 | platform_driver_unregister(&envctrl_driver); |
| 1150 | } | 1149 | } |
| 1151 | 1150 | ||
| 1152 | module_init(envctrl_init); | 1151 | module_init(envctrl_init); |
diff --git a/drivers/sbus/char/flash.c b/drivers/sbus/char/flash.c index 2b4b4b613c48..73dd4e7afaaa 100644 --- a/drivers/sbus/char/flash.c +++ b/drivers/sbus/char/flash.c | |||
| @@ -160,8 +160,7 @@ static const struct file_operations flash_fops = { | |||
| 160 | 160 | ||
| 161 | static struct miscdevice flash_dev = { FLASH_MINOR, "flash", &flash_fops }; | 161 | static struct miscdevice flash_dev = { FLASH_MINOR, "flash", &flash_fops }; |
| 162 | 162 | ||
| 163 | static int __devinit flash_probe(struct platform_device *op, | 163 | static int __devinit flash_probe(struct platform_device *op) |
| 164 | const struct of_device_id *match) | ||
| 165 | { | 164 | { |
| 166 | struct device_node *dp = op->dev.of_node; | 165 | struct device_node *dp = op->dev.of_node; |
| 167 | struct device_node *parent; | 166 | struct device_node *parent; |
| @@ -207,7 +206,7 @@ static const struct of_device_id flash_match[] = { | |||
| 207 | }; | 206 | }; |
| 208 | MODULE_DEVICE_TABLE(of, flash_match); | 207 | MODULE_DEVICE_TABLE(of, flash_match); |
| 209 | 208 | ||
| 210 | static struct of_platform_driver flash_driver = { | 209 | static struct platform_driver flash_driver = { |
| 211 | .driver = { | 210 | .driver = { |
| 212 | .name = "flash", | 211 | .name = "flash", |
| 213 | .owner = THIS_MODULE, | 212 | .owner = THIS_MODULE, |
| @@ -219,12 +218,12 @@ static struct of_platform_driver flash_driver = { | |||
| 219 | 218 | ||
| 220 | static int __init flash_init(void) | 219 | static int __init flash_init(void) |
| 221 | { | 220 | { |
| 222 | return of_register_platform_driver(&flash_driver); | 221 | return platform_driver_register(&flash_driver); |
| 223 | } | 222 | } |
| 224 | 223 | ||
| 225 | static void __exit flash_cleanup(void) | 224 | static void __exit flash_cleanup(void) |
| 226 | { | 225 | { |
| 227 | of_unregister_platform_driver(&flash_driver); | 226 | platform_driver_unregister(&flash_driver); |
| 228 | } | 227 | } |
| 229 | 228 | ||
| 230 | module_init(flash_init); | 229 | module_init(flash_init); |
diff --git a/drivers/sbus/char/uctrl.c b/drivers/sbus/char/uctrl.c index 1b345be5cc02..ebce9639a26a 100644 --- a/drivers/sbus/char/uctrl.c +++ b/drivers/sbus/char/uctrl.c | |||
| @@ -348,8 +348,7 @@ static void uctrl_get_external_status(struct uctrl_driver *driver) | |||
| 348 | 348 | ||
| 349 | } | 349 | } |
| 350 | 350 | ||
| 351 | static int __devinit uctrl_probe(struct platform_device *op, | 351 | static int __devinit uctrl_probe(struct platform_device *op) |
| 352 | const struct of_device_id *match) | ||
| 353 | { | 352 | { |
| 354 | struct uctrl_driver *p; | 353 | struct uctrl_driver *p; |
| 355 | int err = -ENOMEM; | 354 | int err = -ENOMEM; |
| @@ -425,7 +424,7 @@ static const struct of_device_id uctrl_match[] = { | |||
| 425 | }; | 424 | }; |
| 426 | MODULE_DEVICE_TABLE(of, uctrl_match); | 425 | MODULE_DEVICE_TABLE(of, uctrl_match); |
| 427 | 426 | ||
| 428 | static struct of_platform_driver uctrl_driver = { | 427 | static struct platform_driver uctrl_driver = { |
| 429 | .driver = { | 428 | .driver = { |
| 430 | .name = "uctrl", | 429 | .name = "uctrl", |
| 431 | .owner = THIS_MODULE, | 430 | .owner = THIS_MODULE, |
| @@ -438,12 +437,12 @@ static struct of_platform_driver uctrl_driver = { | |||
| 438 | 437 | ||
| 439 | static int __init uctrl_init(void) | 438 | static int __init uctrl_init(void) |
| 440 | { | 439 | { |
| 441 | return of_register_platform_driver(&uctrl_driver); | 440 | return platform_driver_register(&uctrl_driver); |
| 442 | } | 441 | } |
| 443 | 442 | ||
| 444 | static void __exit uctrl_exit(void) | 443 | static void __exit uctrl_exit(void) |
| 445 | { | 444 | { |
| 446 | of_unregister_platform_driver(&uctrl_driver); | 445 | platform_driver_unregister(&uctrl_driver); |
| 447 | } | 446 | } |
| 448 | 447 | ||
| 449 | module_init(uctrl_init); | 448 | module_init(uctrl_init); |
diff --git a/drivers/scsi/qlogicpti.c b/drivers/scsi/qlogicpti.c index 664c9572d0c9..e2d45c91b8e8 100644 --- a/drivers/scsi/qlogicpti.c +++ b/drivers/scsi/qlogicpti.c | |||
| @@ -1292,15 +1292,19 @@ static struct scsi_host_template qpti_template = { | |||
| 1292 | .use_clustering = ENABLE_CLUSTERING, | 1292 | .use_clustering = ENABLE_CLUSTERING, |
| 1293 | }; | 1293 | }; |
| 1294 | 1294 | ||
| 1295 | static int __devinit qpti_sbus_probe(struct platform_device *op, const struct of_device_id *match) | 1295 | static int __devinit qpti_sbus_probe(struct platform_device *op) |
| 1296 | { | 1296 | { |
| 1297 | struct scsi_host_template *tpnt = match->data; | 1297 | struct scsi_host_template *tpnt; |
| 1298 | struct device_node *dp = op->dev.of_node; | 1298 | struct device_node *dp = op->dev.of_node; |
| 1299 | struct Scsi_Host *host; | 1299 | struct Scsi_Host *host; |
| 1300 | struct qlogicpti *qpti; | 1300 | struct qlogicpti *qpti; |
| 1301 | static int nqptis; | 1301 | static int nqptis; |
| 1302 | const char *fcode; | 1302 | const char *fcode; |
| 1303 | 1303 | ||
| 1304 | if (!op->dev.of_match) | ||
| 1305 | return -EINVAL; | ||
| 1306 | tpnt = op->dev.of_match->data; | ||
| 1307 | |||
| 1304 | /* Sometimes Antares cards come up not completely | 1308 | /* Sometimes Antares cards come up not completely |
| 1305 | * setup, and we get a report of a zero IRQ. | 1309 | * setup, and we get a report of a zero IRQ. |
| 1306 | */ | 1310 | */ |
| @@ -1457,7 +1461,7 @@ static const struct of_device_id qpti_match[] = { | |||
| 1457 | }; | 1461 | }; |
| 1458 | MODULE_DEVICE_TABLE(of, qpti_match); | 1462 | MODULE_DEVICE_TABLE(of, qpti_match); |
| 1459 | 1463 | ||
| 1460 | static struct of_platform_driver qpti_sbus_driver = { | 1464 | static struct platform_driver qpti_sbus_driver = { |
| 1461 | .driver = { | 1465 | .driver = { |
| 1462 | .name = "qpti", | 1466 | .name = "qpti", |
| 1463 | .owner = THIS_MODULE, | 1467 | .owner = THIS_MODULE, |
| @@ -1469,12 +1473,12 @@ static struct of_platform_driver qpti_sbus_driver = { | |||
| 1469 | 1473 | ||
| 1470 | static int __init qpti_init(void) | 1474 | static int __init qpti_init(void) |
| 1471 | { | 1475 | { |
| 1472 | return of_register_platform_driver(&qpti_sbus_driver); | 1476 | return platform_driver_register(&qpti_sbus_driver); |
| 1473 | } | 1477 | } |
| 1474 | 1478 | ||
| 1475 | static void __exit qpti_exit(void) | 1479 | static void __exit qpti_exit(void) |
| 1476 | { | 1480 | { |
| 1477 | of_unregister_platform_driver(&qpti_sbus_driver); | 1481 | platform_driver_unregister(&qpti_sbus_driver); |
| 1478 | } | 1482 | } |
| 1479 | 1483 | ||
| 1480 | MODULE_DESCRIPTION("QlogicISP SBUS driver"); | 1484 | MODULE_DESCRIPTION("QlogicISP SBUS driver"); |
diff --git a/drivers/scsi/sun_esp.c b/drivers/scsi/sun_esp.c index 193b37ba1834..676fe9ac7f61 100644 --- a/drivers/scsi/sun_esp.c +++ b/drivers/scsi/sun_esp.c | |||
| @@ -562,7 +562,7 @@ fail: | |||
| 562 | return err; | 562 | return err; |
| 563 | } | 563 | } |
| 564 | 564 | ||
| 565 | static int __devinit esp_sbus_probe(struct platform_device *op, const struct of_device_id *match) | 565 | static int __devinit esp_sbus_probe(struct platform_device *op) |
| 566 | { | 566 | { |
| 567 | struct device_node *dma_node = NULL; | 567 | struct device_node *dma_node = NULL; |
| 568 | struct device_node *dp = op->dev.of_node; | 568 | struct device_node *dp = op->dev.of_node; |
| @@ -632,7 +632,7 @@ static const struct of_device_id esp_match[] = { | |||
| 632 | }; | 632 | }; |
| 633 | MODULE_DEVICE_TABLE(of, esp_match); | 633 | MODULE_DEVICE_TABLE(of, esp_match); |
| 634 | 634 | ||
| 635 | static struct of_platform_driver esp_sbus_driver = { | 635 | static struct platform_driver esp_sbus_driver = { |
| 636 | .driver = { | 636 | .driver = { |
| 637 | .name = "esp", | 637 | .name = "esp", |
| 638 | .owner = THIS_MODULE, | 638 | .owner = THIS_MODULE, |
| @@ -644,12 +644,12 @@ static struct of_platform_driver esp_sbus_driver = { | |||
| 644 | 644 | ||
| 645 | static int __init sunesp_init(void) | 645 | static int __init sunesp_init(void) |
| 646 | { | 646 | { |
| 647 | return of_register_platform_driver(&esp_sbus_driver); | 647 | return platform_driver_register(&esp_sbus_driver); |
| 648 | } | 648 | } |
| 649 | 649 | ||
| 650 | static void __exit sunesp_exit(void) | 650 | static void __exit sunesp_exit(void) |
| 651 | { | 651 | { |
| 652 | of_unregister_platform_driver(&esp_sbus_driver); | 652 | platform_driver_unregister(&esp_sbus_driver); |
| 653 | } | 653 | } |
| 654 | 654 | ||
| 655 | MODULE_DESCRIPTION("Sun ESP SCSI driver"); | 655 | MODULE_DESCRIPTION("Sun ESP SCSI driver"); |
diff --git a/drivers/spi/mpc512x_psc_spi.c b/drivers/spi/mpc512x_psc_spi.c index 77d9e7ee8b27..6a5b4238fb6b 100644 --- a/drivers/spi/mpc512x_psc_spi.c +++ b/drivers/spi/mpc512x_psc_spi.c | |||
| @@ -507,8 +507,7 @@ static int __devexit mpc512x_psc_spi_do_remove(struct device *dev) | |||
| 507 | return 0; | 507 | return 0; |
| 508 | } | 508 | } |
| 509 | 509 | ||
| 510 | static int __devinit mpc512x_psc_spi_of_probe(struct platform_device *op, | 510 | static int __devinit mpc512x_psc_spi_of_probe(struct platform_device *op) |
| 511 | const struct of_device_id *match) | ||
| 512 | { | 511 | { |
| 513 | const u32 *regaddr_p; | 512 | const u32 *regaddr_p; |
| 514 | u64 regaddr64, size64; | 513 | u64 regaddr64, size64; |
| @@ -551,7 +550,7 @@ static struct of_device_id mpc512x_psc_spi_of_match[] = { | |||
| 551 | 550 | ||
| 552 | MODULE_DEVICE_TABLE(of, mpc512x_psc_spi_of_match); | 551 | MODULE_DEVICE_TABLE(of, mpc512x_psc_spi_of_match); |
| 553 | 552 | ||
| 554 | static struct of_platform_driver mpc512x_psc_spi_of_driver = { | 553 | static struct platform_driver mpc512x_psc_spi_of_driver = { |
| 555 | .probe = mpc512x_psc_spi_of_probe, | 554 | .probe = mpc512x_psc_spi_of_probe, |
| 556 | .remove = __devexit_p(mpc512x_psc_spi_of_remove), | 555 | .remove = __devexit_p(mpc512x_psc_spi_of_remove), |
| 557 | .driver = { | 556 | .driver = { |
| @@ -563,13 +562,13 @@ static struct of_platform_driver mpc512x_psc_spi_of_driver = { | |||
| 563 | 562 | ||
| 564 | static int __init mpc512x_psc_spi_init(void) | 563 | static int __init mpc512x_psc_spi_init(void) |
| 565 | { | 564 | { |
| 566 | return of_register_platform_driver(&mpc512x_psc_spi_of_driver); | 565 | return platform_driver_register(&mpc512x_psc_spi_of_driver); |
| 567 | } | 566 | } |
| 568 | module_init(mpc512x_psc_spi_init); | 567 | module_init(mpc512x_psc_spi_init); |
| 569 | 568 | ||
| 570 | static void __exit mpc512x_psc_spi_exit(void) | 569 | static void __exit mpc512x_psc_spi_exit(void) |
| 571 | { | 570 | { |
| 572 | of_unregister_platform_driver(&mpc512x_psc_spi_of_driver); | 571 | platform_driver_unregister(&mpc512x_psc_spi_of_driver); |
| 573 | } | 572 | } |
| 574 | module_exit(mpc512x_psc_spi_exit); | 573 | module_exit(mpc512x_psc_spi_exit); |
| 575 | 574 | ||
diff --git a/drivers/spi/mpc52xx_psc_spi.c b/drivers/spi/mpc52xx_psc_spi.c index 8a904c1c8485..e30baf0852ac 100644 --- a/drivers/spi/mpc52xx_psc_spi.c +++ b/drivers/spi/mpc52xx_psc_spi.c | |||
| @@ -450,8 +450,7 @@ free_master: | |||
| 450 | return ret; | 450 | return ret; |
| 451 | } | 451 | } |
| 452 | 452 | ||
| 453 | static int __devinit mpc52xx_psc_spi_of_probe(struct platform_device *op, | 453 | static int __devinit mpc52xx_psc_spi_of_probe(struct platform_device *op) |
| 454 | const struct of_device_id *match) | ||
| 455 | { | 454 | { |
| 456 | const u32 *regaddr_p; | 455 | const u32 *regaddr_p; |
| 457 | u64 regaddr64, size64; | 456 | u64 regaddr64, size64; |
| @@ -503,7 +502,7 @@ static const struct of_device_id mpc52xx_psc_spi_of_match[] = { | |||
| 503 | 502 | ||
| 504 | MODULE_DEVICE_TABLE(of, mpc52xx_psc_spi_of_match); | 503 | MODULE_DEVICE_TABLE(of, mpc52xx_psc_spi_of_match); |
| 505 | 504 | ||
| 506 | static struct of_platform_driver mpc52xx_psc_spi_of_driver = { | 505 | static struct platform_driver mpc52xx_psc_spi_of_driver = { |
| 507 | .probe = mpc52xx_psc_spi_of_probe, | 506 | .probe = mpc52xx_psc_spi_of_probe, |
| 508 | .remove = __devexit_p(mpc52xx_psc_spi_of_remove), | 507 | .remove = __devexit_p(mpc52xx_psc_spi_of_remove), |
| 509 | .driver = { | 508 | .driver = { |
| @@ -515,13 +514,13 @@ static struct of_platform_driver mpc52xx_psc_spi_of_driver = { | |||
| 515 | 514 | ||
| 516 | static int __init mpc52xx_psc_spi_init(void) | 515 | static int __init mpc52xx_psc_spi_init(void) |
| 517 | { | 516 | { |
| 518 | return of_register_platform_driver(&mpc52xx_psc_spi_of_driver); | 517 | return platform_driver_register(&mpc52xx_psc_spi_of_driver); |
| 519 | } | 518 | } |
| 520 | module_init(mpc52xx_psc_spi_init); | 519 | module_init(mpc52xx_psc_spi_init); |
| 521 | 520 | ||
| 522 | static void __exit mpc52xx_psc_spi_exit(void) | 521 | static void __exit mpc52xx_psc_spi_exit(void) |
| 523 | { | 522 | { |
| 524 | of_unregister_platform_driver(&mpc52xx_psc_spi_of_driver); | 523 | platform_driver_unregister(&mpc52xx_psc_spi_of_driver); |
| 525 | } | 524 | } |
| 526 | module_exit(mpc52xx_psc_spi_exit); | 525 | module_exit(mpc52xx_psc_spi_exit); |
| 527 | 526 | ||
diff --git a/drivers/spi/mpc52xx_spi.c b/drivers/spi/mpc52xx_spi.c index 84439f655601..015a974bed72 100644 --- a/drivers/spi/mpc52xx_spi.c +++ b/drivers/spi/mpc52xx_spi.c | |||
| @@ -390,8 +390,7 @@ static int mpc52xx_spi_transfer(struct spi_device *spi, struct spi_message *m) | |||
| 390 | /* | 390 | /* |
| 391 | * OF Platform Bus Binding | 391 | * OF Platform Bus Binding |
| 392 | */ | 392 | */ |
| 393 | static int __devinit mpc52xx_spi_probe(struct platform_device *op, | 393 | static int __devinit mpc52xx_spi_probe(struct platform_device *op) |
| 394 | const struct of_device_id *match) | ||
| 395 | { | 394 | { |
| 396 | struct spi_master *master; | 395 | struct spi_master *master; |
| 397 | struct mpc52xx_spi *ms; | 396 | struct mpc52xx_spi *ms; |
| @@ -556,7 +555,7 @@ static const struct of_device_id mpc52xx_spi_match[] __devinitconst = { | |||
| 556 | }; | 555 | }; |
| 557 | MODULE_DEVICE_TABLE(of, mpc52xx_spi_match); | 556 | MODULE_DEVICE_TABLE(of, mpc52xx_spi_match); |
| 558 | 557 | ||
| 559 | static struct of_platform_driver mpc52xx_spi_of_driver = { | 558 | static struct platform_driver mpc52xx_spi_of_driver = { |
| 560 | .driver = { | 559 | .driver = { |
| 561 | .name = "mpc52xx-spi", | 560 | .name = "mpc52xx-spi", |
| 562 | .owner = THIS_MODULE, | 561 | .owner = THIS_MODULE, |
| @@ -568,13 +567,13 @@ static struct of_platform_driver mpc52xx_spi_of_driver = { | |||
| 568 | 567 | ||
| 569 | static int __init mpc52xx_spi_init(void) | 568 | static int __init mpc52xx_spi_init(void) |
| 570 | { | 569 | { |
| 571 | return of_register_platform_driver(&mpc52xx_spi_of_driver); | 570 | return platform_driver_register(&mpc52xx_spi_of_driver); |
| 572 | } | 571 | } |
| 573 | module_init(mpc52xx_spi_init); | 572 | module_init(mpc52xx_spi_init); |
| 574 | 573 | ||
| 575 | static void __exit mpc52xx_spi_exit(void) | 574 | static void __exit mpc52xx_spi_exit(void) |
| 576 | { | 575 | { |
| 577 | of_unregister_platform_driver(&mpc52xx_spi_of_driver); | 576 | platform_driver_unregister(&mpc52xx_spi_of_driver); |
| 578 | } | 577 | } |
| 579 | module_exit(mpc52xx_spi_exit); | 578 | module_exit(mpc52xx_spi_exit); |
| 580 | 579 | ||
diff --git a/drivers/spi/spi_fsl_espi.c b/drivers/spi/spi_fsl_espi.c index a99e2333b949..900e921ab80e 100644 --- a/drivers/spi/spi_fsl_espi.c +++ b/drivers/spi/spi_fsl_espi.c | |||
| @@ -685,8 +685,7 @@ static int of_fsl_espi_get_chipselects(struct device *dev) | |||
| 685 | return 0; | 685 | return 0; |
| 686 | } | 686 | } |
| 687 | 687 | ||
| 688 | static int __devinit of_fsl_espi_probe(struct platform_device *ofdev, | 688 | static int __devinit of_fsl_espi_probe(struct platform_device *ofdev) |
| 689 | const struct of_device_id *ofid) | ||
| 690 | { | 689 | { |
| 691 | struct device *dev = &ofdev->dev; | 690 | struct device *dev = &ofdev->dev; |
| 692 | struct device_node *np = ofdev->dev.of_node; | 691 | struct device_node *np = ofdev->dev.of_node; |
| @@ -695,7 +694,7 @@ static int __devinit of_fsl_espi_probe(struct platform_device *ofdev, | |||
| 695 | struct resource irq; | 694 | struct resource irq; |
| 696 | int ret = -ENOMEM; | 695 | int ret = -ENOMEM; |
| 697 | 696 | ||
| 698 | ret = of_mpc8xxx_spi_probe(ofdev, ofid); | 697 | ret = of_mpc8xxx_spi_probe(ofdev); |
| 699 | if (ret) | 698 | if (ret) |
| 700 | return ret; | 699 | return ret; |
| 701 | 700 | ||
| @@ -736,7 +735,7 @@ static const struct of_device_id of_fsl_espi_match[] = { | |||
| 736 | }; | 735 | }; |
| 737 | MODULE_DEVICE_TABLE(of, of_fsl_espi_match); | 736 | MODULE_DEVICE_TABLE(of, of_fsl_espi_match); |
| 738 | 737 | ||
| 739 | static struct of_platform_driver fsl_espi_driver = { | 738 | static struct platform_driver fsl_espi_driver = { |
| 740 | .driver = { | 739 | .driver = { |
| 741 | .name = "fsl_espi", | 740 | .name = "fsl_espi", |
| 742 | .owner = THIS_MODULE, | 741 | .owner = THIS_MODULE, |
| @@ -748,13 +747,13 @@ static struct of_platform_driver fsl_espi_driver = { | |||
| 748 | 747 | ||
| 749 | static int __init fsl_espi_init(void) | 748 | static int __init fsl_espi_init(void) |
| 750 | { | 749 | { |
| 751 | return of_register_platform_driver(&fsl_espi_driver); | 750 | return platform_driver_register(&fsl_espi_driver); |
| 752 | } | 751 | } |
| 753 | module_init(fsl_espi_init); | 752 | module_init(fsl_espi_init); |
| 754 | 753 | ||
| 755 | static void __exit fsl_espi_exit(void) | 754 | static void __exit fsl_espi_exit(void) |
| 756 | { | 755 | { |
| 757 | of_unregister_platform_driver(&fsl_espi_driver); | 756 | platform_driver_unregister(&fsl_espi_driver); |
| 758 | } | 757 | } |
| 759 | module_exit(fsl_espi_exit); | 758 | module_exit(fsl_espi_exit); |
| 760 | 759 | ||
diff --git a/drivers/spi/spi_fsl_lib.c b/drivers/spi/spi_fsl_lib.c index 5cd741fdb5c3..ff59f42ae990 100644 --- a/drivers/spi/spi_fsl_lib.c +++ b/drivers/spi/spi_fsl_lib.c | |||
| @@ -189,8 +189,7 @@ int __devexit mpc8xxx_spi_remove(struct device *dev) | |||
| 189 | return 0; | 189 | return 0; |
| 190 | } | 190 | } |
| 191 | 191 | ||
| 192 | int __devinit of_mpc8xxx_spi_probe(struct platform_device *ofdev, | 192 | int __devinit of_mpc8xxx_spi_probe(struct platform_device *ofdev) |
| 193 | const struct of_device_id *ofid) | ||
| 194 | { | 193 | { |
| 195 | struct device *dev = &ofdev->dev; | 194 | struct device *dev = &ofdev->dev; |
| 196 | struct device_node *np = ofdev->dev.of_node; | 195 | struct device_node *np = ofdev->dev.of_node; |
diff --git a/drivers/spi/spi_fsl_lib.h b/drivers/spi/spi_fsl_lib.h index 281e060977cd..cbe881b9ea76 100644 --- a/drivers/spi/spi_fsl_lib.h +++ b/drivers/spi/spi_fsl_lib.h | |||
| @@ -118,7 +118,6 @@ extern const char *mpc8xxx_spi_strmode(unsigned int flags); | |||
| 118 | extern int mpc8xxx_spi_probe(struct device *dev, struct resource *mem, | 118 | extern int mpc8xxx_spi_probe(struct device *dev, struct resource *mem, |
| 119 | unsigned int irq); | 119 | unsigned int irq); |
| 120 | extern int mpc8xxx_spi_remove(struct device *dev); | 120 | extern int mpc8xxx_spi_remove(struct device *dev); |
| 121 | extern int of_mpc8xxx_spi_probe(struct platform_device *ofdev, | 121 | extern int of_mpc8xxx_spi_probe(struct platform_device *ofdev); |
| 122 | const struct of_device_id *ofid); | ||
| 123 | 122 | ||
| 124 | #endif /* __SPI_FSL_LIB_H__ */ | 123 | #endif /* __SPI_FSL_LIB_H__ */ |
diff --git a/drivers/spi/spi_fsl_spi.c b/drivers/spi/spi_fsl_spi.c index 7ca52d3ae8f8..7963c9b49566 100644 --- a/drivers/spi/spi_fsl_spi.c +++ b/drivers/spi/spi_fsl_spi.c | |||
| @@ -1042,8 +1042,7 @@ static int of_fsl_spi_free_chipselects(struct device *dev) | |||
| 1042 | return 0; | 1042 | return 0; |
| 1043 | } | 1043 | } |
| 1044 | 1044 | ||
| 1045 | static int __devinit of_fsl_spi_probe(struct platform_device *ofdev, | 1045 | static int __devinit of_fsl_spi_probe(struct platform_device *ofdev) |
| 1046 | const struct of_device_id *ofid) | ||
| 1047 | { | 1046 | { |
| 1048 | struct device *dev = &ofdev->dev; | 1047 | struct device *dev = &ofdev->dev; |
| 1049 | struct device_node *np = ofdev->dev.of_node; | 1048 | struct device_node *np = ofdev->dev.of_node; |
| @@ -1052,7 +1051,7 @@ static int __devinit of_fsl_spi_probe(struct platform_device *ofdev, | |||
| 1052 | struct resource irq; | 1051 | struct resource irq; |
| 1053 | int ret = -ENOMEM; | 1052 | int ret = -ENOMEM; |
| 1054 | 1053 | ||
| 1055 | ret = of_mpc8xxx_spi_probe(ofdev, ofid); | 1054 | ret = of_mpc8xxx_spi_probe(ofdev); |
| 1056 | if (ret) | 1055 | if (ret) |
| 1057 | return ret; | 1056 | return ret; |
| 1058 | 1057 | ||
| @@ -1100,7 +1099,7 @@ static const struct of_device_id of_fsl_spi_match[] = { | |||
| 1100 | }; | 1099 | }; |
| 1101 | MODULE_DEVICE_TABLE(of, of_fsl_spi_match); | 1100 | MODULE_DEVICE_TABLE(of, of_fsl_spi_match); |
| 1102 | 1101 | ||
| 1103 | static struct of_platform_driver of_fsl_spi_driver = { | 1102 | static struct platform_driver of_fsl_spi_driver = { |
| 1104 | .driver = { | 1103 | .driver = { |
| 1105 | .name = "fsl_spi", | 1104 | .name = "fsl_spi", |
| 1106 | .owner = THIS_MODULE, | 1105 | .owner = THIS_MODULE, |
| @@ -1177,13 +1176,13 @@ static void __exit legacy_driver_unregister(void) {} | |||
| 1177 | static int __init fsl_spi_init(void) | 1176 | static int __init fsl_spi_init(void) |
| 1178 | { | 1177 | { |
| 1179 | legacy_driver_register(); | 1178 | legacy_driver_register(); |
| 1180 | return of_register_platform_driver(&of_fsl_spi_driver); | 1179 | return platform_driver_register(&of_fsl_spi_driver); |
| 1181 | } | 1180 | } |
| 1182 | module_init(fsl_spi_init); | 1181 | module_init(fsl_spi_init); |
| 1183 | 1182 | ||
| 1184 | static void __exit fsl_spi_exit(void) | 1183 | static void __exit fsl_spi_exit(void) |
| 1185 | { | 1184 | { |
| 1186 | of_unregister_platform_driver(&of_fsl_spi_driver); | 1185 | platform_driver_unregister(&of_fsl_spi_driver); |
| 1187 | legacy_driver_unregister(); | 1186 | legacy_driver_unregister(); |
| 1188 | } | 1187 | } |
| 1189 | module_exit(fsl_spi_exit); | 1188 | module_exit(fsl_spi_exit); |
diff --git a/drivers/spi/spi_ppc4xx.c b/drivers/spi/spi_ppc4xx.c index 80e172d3e72a..2a298c029194 100644 --- a/drivers/spi/spi_ppc4xx.c +++ b/drivers/spi/spi_ppc4xx.c | |||
| @@ -390,8 +390,7 @@ static void free_gpios(struct ppc4xx_spi *hw) | |||
| 390 | /* | 390 | /* |
| 391 | * platform_device layer stuff... | 391 | * platform_device layer stuff... |
| 392 | */ | 392 | */ |
| 393 | static int __init spi_ppc4xx_of_probe(struct platform_device *op, | 393 | static int __init spi_ppc4xx_of_probe(struct platform_device *op) |
| 394 | const struct of_device_id *match) | ||
| 395 | { | 394 | { |
| 396 | struct ppc4xx_spi *hw; | 395 | struct ppc4xx_spi *hw; |
| 397 | struct spi_master *master; | 396 | struct spi_master *master; |
| @@ -586,7 +585,7 @@ static const struct of_device_id spi_ppc4xx_of_match[] = { | |||
| 586 | 585 | ||
| 587 | MODULE_DEVICE_TABLE(of, spi_ppc4xx_of_match); | 586 | MODULE_DEVICE_TABLE(of, spi_ppc4xx_of_match); |
| 588 | 587 | ||
| 589 | static struct of_platform_driver spi_ppc4xx_of_driver = { | 588 | static struct platform_driver spi_ppc4xx_of_driver = { |
| 590 | .probe = spi_ppc4xx_of_probe, | 589 | .probe = spi_ppc4xx_of_probe, |
| 591 | .remove = __exit_p(spi_ppc4xx_of_remove), | 590 | .remove = __exit_p(spi_ppc4xx_of_remove), |
| 592 | .driver = { | 591 | .driver = { |
| @@ -598,13 +597,13 @@ static struct of_platform_driver spi_ppc4xx_of_driver = { | |||
| 598 | 597 | ||
| 599 | static int __init spi_ppc4xx_init(void) | 598 | static int __init spi_ppc4xx_init(void) |
| 600 | { | 599 | { |
| 601 | return of_register_platform_driver(&spi_ppc4xx_of_driver); | 600 | return platform_driver_register(&spi_ppc4xx_of_driver); |
| 602 | } | 601 | } |
| 603 | module_init(spi_ppc4xx_init); | 602 | module_init(spi_ppc4xx_init); |
| 604 | 603 | ||
| 605 | static void __exit spi_ppc4xx_exit(void) | 604 | static void __exit spi_ppc4xx_exit(void) |
| 606 | { | 605 | { |
| 607 | of_unregister_platform_driver(&spi_ppc4xx_of_driver); | 606 | platform_driver_unregister(&spi_ppc4xx_of_driver); |
| 608 | } | 607 | } |
| 609 | module_exit(spi_ppc4xx_exit); | 608 | module_exit(spi_ppc4xx_exit); |
| 610 | 609 | ||
diff --git a/drivers/tty/serial/altera_jtaguart.c b/drivers/tty/serial/altera_jtaguart.c index 8f014bb916b7..60e049b041a7 100644 --- a/drivers/tty/serial/altera_jtaguart.c +++ b/drivers/tty/serial/altera_jtaguart.c | |||
| @@ -466,12 +466,23 @@ static int __devexit altera_jtaguart_remove(struct platform_device *pdev) | |||
| 466 | return 0; | 466 | return 0; |
| 467 | } | 467 | } |
| 468 | 468 | ||
| 469 | #ifdef CONFIG_OF | ||
| 470 | static struct of_device_id altera_jtaguart_match[] = { | ||
| 471 | { .compatible = "ALTR,juart-1.0", }, | ||
| 472 | {}, | ||
| 473 | }; | ||
| 474 | MODULE_DEVICE_TABLE(of, altera_jtaguart_match); | ||
| 475 | #else | ||
| 476 | #define altera_jtaguart_match NULL | ||
| 477 | #endif /* CONFIG_OF */ | ||
| 478 | |||
| 469 | static struct platform_driver altera_jtaguart_platform_driver = { | 479 | static struct platform_driver altera_jtaguart_platform_driver = { |
| 470 | .probe = altera_jtaguart_probe, | 480 | .probe = altera_jtaguart_probe, |
| 471 | .remove = __devexit_p(altera_jtaguart_remove), | 481 | .remove = __devexit_p(altera_jtaguart_remove), |
| 472 | .driver = { | 482 | .driver = { |
| 473 | .name = DRV_NAME, | 483 | .name = DRV_NAME, |
| 474 | .owner = THIS_MODULE, | 484 | .owner = THIS_MODULE, |
| 485 | .of_match_table = altera_jtaguart_match, | ||
| 475 | }, | 486 | }, |
| 476 | }; | 487 | }; |
| 477 | 488 | ||
diff --git a/drivers/tty/serial/altera_uart.c b/drivers/tty/serial/altera_uart.c index 3a573528555e..6d5b036ac783 100644 --- a/drivers/tty/serial/altera_uart.c +++ b/drivers/tty/serial/altera_uart.c | |||
| @@ -24,6 +24,7 @@ | |||
| 24 | #include <linux/serial.h> | 24 | #include <linux/serial.h> |
| 25 | #include <linux/serial_core.h> | 25 | #include <linux/serial_core.h> |
| 26 | #include <linux/platform_device.h> | 26 | #include <linux/platform_device.h> |
| 27 | #include <linux/of.h> | ||
| 27 | #include <linux/io.h> | 28 | #include <linux/io.h> |
| 28 | #include <linux/altera_uart.h> | 29 | #include <linux/altera_uart.h> |
| 29 | 30 | ||
| @@ -507,6 +508,29 @@ static struct uart_driver altera_uart_driver = { | |||
| 507 | .cons = ALTERA_UART_CONSOLE, | 508 | .cons = ALTERA_UART_CONSOLE, |
| 508 | }; | 509 | }; |
| 509 | 510 | ||
| 511 | #ifdef CONFIG_OF | ||
| 512 | static int altera_uart_get_of_uartclk(struct platform_device *pdev, | ||
| 513 | struct uart_port *port) | ||
| 514 | { | ||
| 515 | int len; | ||
| 516 | const __be32 *clk; | ||
| 517 | |||
| 518 | clk = of_get_property(pdev->dev.of_node, "clock-frequency", &len); | ||
| 519 | if (!clk || len < sizeof(__be32)) | ||
| 520 | return -ENODEV; | ||
| 521 | |||
| 522 | port->uartclk = be32_to_cpup(clk); | ||
| 523 | |||
| 524 | return 0; | ||
| 525 | } | ||
| 526 | #else | ||
| 527 | static int altera_uart_get_of_uartclk(struct platform_device *pdev, | ||
| 528 | struct uart_port *port) | ||
| 529 | { | ||
| 530 | return -ENODEV; | ||
| 531 | } | ||
| 532 | #endif /* CONFIG_OF */ | ||
| 533 | |||
| 510 | static int __devinit altera_uart_probe(struct platform_device *pdev) | 534 | static int __devinit altera_uart_probe(struct platform_device *pdev) |
| 511 | { | 535 | { |
| 512 | struct altera_uart_platform_uart *platp = pdev->dev.platform_data; | 536 | struct altera_uart_platform_uart *platp = pdev->dev.platform_data; |
| @@ -514,6 +538,7 @@ static int __devinit altera_uart_probe(struct platform_device *pdev) | |||
| 514 | struct resource *res_mem; | 538 | struct resource *res_mem; |
| 515 | struct resource *res_irq; | 539 | struct resource *res_irq; |
| 516 | int i = pdev->id; | 540 | int i = pdev->id; |
| 541 | int ret; | ||
| 517 | 542 | ||
| 518 | /* -1 emphasizes that the platform must have one port, no .N suffix */ | 543 | /* -1 emphasizes that the platform must have one port, no .N suffix */ |
| 519 | if (i == -1) | 544 | if (i == -1) |
| @@ -538,6 +563,15 @@ static int __devinit altera_uart_probe(struct platform_device *pdev) | |||
| 538 | else if (platp->irq) | 563 | else if (platp->irq) |
| 539 | port->irq = platp->irq; | 564 | port->irq = platp->irq; |
| 540 | 565 | ||
| 566 | /* Check platform data first so we can override device node data */ | ||
| 567 | if (platp) | ||
| 568 | port->uartclk = platp->uartclk; | ||
| 569 | else { | ||
| 570 | ret = altera_uart_get_of_uartclk(pdev, port); | ||
| 571 | if (ret) | ||
| 572 | return ret; | ||
| 573 | } | ||
| 574 | |||
| 541 | port->membase = ioremap(port->mapbase, ALTERA_UART_SIZE); | 575 | port->membase = ioremap(port->mapbase, ALTERA_UART_SIZE); |
| 542 | if (!port->membase) | 576 | if (!port->membase) |
| 543 | return -ENOMEM; | 577 | return -ENOMEM; |
| @@ -550,7 +584,6 @@ static int __devinit altera_uart_probe(struct platform_device *pdev) | |||
| 550 | port->line = i; | 584 | port->line = i; |
| 551 | port->type = PORT_ALTERA_UART; | 585 | port->type = PORT_ALTERA_UART; |
| 552 | port->iotype = SERIAL_IO_MEM; | 586 | port->iotype = SERIAL_IO_MEM; |
| 553 | port->uartclk = platp->uartclk; | ||
| 554 | port->ops = &altera_uart_ops; | 587 | port->ops = &altera_uart_ops; |
| 555 | port->flags = UPF_BOOT_AUTOCONF; | 588 | port->flags = UPF_BOOT_AUTOCONF; |
| 556 | 589 | ||
| @@ -573,13 +606,23 @@ static int __devexit altera_uart_remove(struct platform_device *pdev) | |||
| 573 | return 0; | 606 | return 0; |
| 574 | } | 607 | } |
| 575 | 608 | ||
| 609 | #ifdef CONFIG_OF | ||
| 610 | static struct of_device_id altera_uart_match[] = { | ||
| 611 | { .compatible = "ALTR,uart-1.0", }, | ||
| 612 | {}, | ||
| 613 | }; | ||
| 614 | MODULE_DEVICE_TABLE(of, altera_uart_match); | ||
| 615 | #else | ||
| 616 | #define altera_uart_match NULL | ||
| 617 | #endif /* CONFIG_OF */ | ||
| 618 | |||
| 576 | static struct platform_driver altera_uart_platform_driver = { | 619 | static struct platform_driver altera_uart_platform_driver = { |
| 577 | .probe = altera_uart_probe, | 620 | .probe = altera_uart_probe, |
| 578 | .remove = __devexit_p(altera_uart_remove), | 621 | .remove = __devexit_p(altera_uart_remove), |
| 579 | .driver = { | 622 | .driver = { |
| 580 | .name = DRV_NAME, | 623 | .name = DRV_NAME, |
| 581 | .owner = THIS_MODULE, | 624 | .owner = THIS_MODULE, |
| 582 | .pm = NULL, | 625 | .of_match_table = altera_uart_match, |
| 583 | }, | 626 | }, |
| 584 | }; | 627 | }; |
| 585 | 628 | ||
diff --git a/drivers/tty/serial/apbuart.c b/drivers/tty/serial/apbuart.c index 095a5d562618..1ab999b04ef3 100644 --- a/drivers/tty/serial/apbuart.c +++ b/drivers/tty/serial/apbuart.c | |||
| @@ -553,8 +553,7 @@ static struct uart_driver grlib_apbuart_driver = { | |||
| 553 | /* OF Platform Driver */ | 553 | /* OF Platform Driver */ |
| 554 | /* ======================================================================== */ | 554 | /* ======================================================================== */ |
| 555 | 555 | ||
| 556 | static int __devinit apbuart_probe(struct platform_device *op, | 556 | static int __devinit apbuart_probe(struct platform_device *op) |
| 557 | const struct of_device_id *match) | ||
| 558 | { | 557 | { |
| 559 | int i = -1; | 558 | int i = -1; |
| 560 | struct uart_port *port = NULL; | 559 | struct uart_port *port = NULL; |
| @@ -587,7 +586,7 @@ static struct of_device_id __initdata apbuart_match[] = { | |||
| 587 | {}, | 586 | {}, |
| 588 | }; | 587 | }; |
| 589 | 588 | ||
| 590 | static struct of_platform_driver grlib_apbuart_of_driver = { | 589 | static struct platform_driver grlib_apbuart_of_driver = { |
| 591 | .probe = apbuart_probe, | 590 | .probe = apbuart_probe, |
| 592 | .driver = { | 591 | .driver = { |
| 593 | .owner = THIS_MODULE, | 592 | .owner = THIS_MODULE, |
| @@ -676,10 +675,10 @@ static int __init grlib_apbuart_init(void) | |||
| 676 | return ret; | 675 | return ret; |
| 677 | } | 676 | } |
| 678 | 677 | ||
| 679 | ret = of_register_platform_driver(&grlib_apbuart_of_driver); | 678 | ret = platform_driver_register(&grlib_apbuart_of_driver); |
| 680 | if (ret) { | 679 | if (ret) { |
| 681 | printk(KERN_ERR | 680 | printk(KERN_ERR |
| 682 | "%s: of_register_platform_driver failed (%i)\n", | 681 | "%s: platform_driver_register failed (%i)\n", |
| 683 | __FILE__, ret); | 682 | __FILE__, ret); |
| 684 | uart_unregister_driver(&grlib_apbuart_driver); | 683 | uart_unregister_driver(&grlib_apbuart_driver); |
| 685 | return ret; | 684 | return ret; |
| @@ -697,7 +696,7 @@ static void __exit grlib_apbuart_exit(void) | |||
| 697 | &grlib_apbuart_ports[i]); | 696 | &grlib_apbuart_ports[i]); |
| 698 | 697 | ||
| 699 | uart_unregister_driver(&grlib_apbuart_driver); | 698 | uart_unregister_driver(&grlib_apbuart_driver); |
| 700 | of_unregister_platform_driver(&grlib_apbuart_of_driver); | 699 | platform_driver_unregister(&grlib_apbuart_of_driver); |
| 701 | } | 700 | } |
| 702 | 701 | ||
| 703 | module_init(grlib_apbuart_init); | 702 | module_init(grlib_apbuart_init); |
diff --git a/drivers/tty/serial/cpm_uart/cpm_uart_core.c b/drivers/tty/serial/cpm_uart/cpm_uart_core.c index 8692ff98fc07..a9a6a5fd169e 100644 --- a/drivers/tty/serial/cpm_uart/cpm_uart_core.c +++ b/drivers/tty/serial/cpm_uart/cpm_uart_core.c | |||
| @@ -1359,8 +1359,7 @@ static struct uart_driver cpm_reg = { | |||
| 1359 | 1359 | ||
| 1360 | static int probe_index; | 1360 | static int probe_index; |
| 1361 | 1361 | ||
| 1362 | static int __devinit cpm_uart_probe(struct platform_device *ofdev, | 1362 | static int __devinit cpm_uart_probe(struct platform_device *ofdev) |
| 1363 | const struct of_device_id *match) | ||
| 1364 | { | 1363 | { |
| 1365 | int index = probe_index++; | 1364 | int index = probe_index++; |
| 1366 | struct uart_cpm_port *pinfo = &cpm_uart_ports[index]; | 1365 | struct uart_cpm_port *pinfo = &cpm_uart_ports[index]; |
| @@ -1405,7 +1404,7 @@ static struct of_device_id cpm_uart_match[] = { | |||
| 1405 | {} | 1404 | {} |
| 1406 | }; | 1405 | }; |
| 1407 | 1406 | ||
| 1408 | static struct of_platform_driver cpm_uart_driver = { | 1407 | static struct platform_driver cpm_uart_driver = { |
| 1409 | .driver = { | 1408 | .driver = { |
| 1410 | .name = "cpm_uart", | 1409 | .name = "cpm_uart", |
| 1411 | .owner = THIS_MODULE, | 1410 | .owner = THIS_MODULE, |
| @@ -1421,7 +1420,7 @@ static int __init cpm_uart_init(void) | |||
| 1421 | if (ret) | 1420 | if (ret) |
| 1422 | return ret; | 1421 | return ret; |
| 1423 | 1422 | ||
| 1424 | ret = of_register_platform_driver(&cpm_uart_driver); | 1423 | ret = platform_driver_register(&cpm_uart_driver); |
| 1425 | if (ret) | 1424 | if (ret) |
| 1426 | uart_unregister_driver(&cpm_reg); | 1425 | uart_unregister_driver(&cpm_reg); |
| 1427 | 1426 | ||
| @@ -1430,7 +1429,7 @@ static int __init cpm_uart_init(void) | |||
| 1430 | 1429 | ||
| 1431 | static void __exit cpm_uart_exit(void) | 1430 | static void __exit cpm_uart_exit(void) |
| 1432 | { | 1431 | { |
| 1433 | of_unregister_platform_driver(&cpm_uart_driver); | 1432 | platform_driver_unregister(&cpm_uart_driver); |
| 1434 | uart_unregister_driver(&cpm_reg); | 1433 | uart_unregister_driver(&cpm_reg); |
| 1435 | } | 1434 | } |
| 1436 | 1435 | ||
diff --git a/drivers/tty/serial/mpc52xx_uart.c b/drivers/tty/serial/mpc52xx_uart.c index 126ec7f568ec..a0bcd8a3758d 100644 --- a/drivers/tty/serial/mpc52xx_uart.c +++ b/drivers/tty/serial/mpc52xx_uart.c | |||
| @@ -1302,8 +1302,7 @@ static struct of_device_id mpc52xx_uart_of_match[] = { | |||
| 1302 | {}, | 1302 | {}, |
| 1303 | }; | 1303 | }; |
| 1304 | 1304 | ||
| 1305 | static int __devinit | 1305 | static int __devinit mpc52xx_uart_of_probe(struct platform_device *op) |
| 1306 | mpc52xx_uart_of_probe(struct platform_device *op, const struct of_device_id *match) | ||
| 1307 | { | 1306 | { |
| 1308 | int idx = -1; | 1307 | int idx = -1; |
| 1309 | unsigned int uartclk; | 1308 | unsigned int uartclk; |
| @@ -1311,8 +1310,6 @@ mpc52xx_uart_of_probe(struct platform_device *op, const struct of_device_id *mat | |||
| 1311 | struct resource res; | 1310 | struct resource res; |
| 1312 | int ret; | 1311 | int ret; |
| 1313 | 1312 | ||
| 1314 | dev_dbg(&op->dev, "mpc52xx_uart_probe(op=%p, match=%p)\n", op, match); | ||
| 1315 | |||
| 1316 | /* Check validity & presence */ | 1313 | /* Check validity & presence */ |
| 1317 | for (idx = 0; idx < MPC52xx_PSC_MAXNUM; idx++) | 1314 | for (idx = 0; idx < MPC52xx_PSC_MAXNUM; idx++) |
| 1318 | if (mpc52xx_uart_nodes[idx] == op->dev.of_node) | 1315 | if (mpc52xx_uart_nodes[idx] == op->dev.of_node) |
| @@ -1453,7 +1450,7 @@ mpc52xx_uart_of_enumerate(void) | |||
| 1453 | 1450 | ||
| 1454 | MODULE_DEVICE_TABLE(of, mpc52xx_uart_of_match); | 1451 | MODULE_DEVICE_TABLE(of, mpc52xx_uart_of_match); |
| 1455 | 1452 | ||
| 1456 | static struct of_platform_driver mpc52xx_uart_of_driver = { | 1453 | static struct platform_driver mpc52xx_uart_of_driver = { |
| 1457 | .probe = mpc52xx_uart_of_probe, | 1454 | .probe = mpc52xx_uart_of_probe, |
| 1458 | .remove = mpc52xx_uart_of_remove, | 1455 | .remove = mpc52xx_uart_of_remove, |
| 1459 | #ifdef CONFIG_PM | 1456 | #ifdef CONFIG_PM |
| @@ -1497,9 +1494,9 @@ mpc52xx_uart_init(void) | |||
| 1497 | return ret; | 1494 | return ret; |
| 1498 | } | 1495 | } |
| 1499 | 1496 | ||
| 1500 | ret = of_register_platform_driver(&mpc52xx_uart_of_driver); | 1497 | ret = platform_driver_register(&mpc52xx_uart_of_driver); |
| 1501 | if (ret) { | 1498 | if (ret) { |
| 1502 | printk(KERN_ERR "%s: of_register_platform_driver failed (%i)\n", | 1499 | printk(KERN_ERR "%s: platform_driver_register failed (%i)\n", |
| 1503 | __FILE__, ret); | 1500 | __FILE__, ret); |
| 1504 | uart_unregister_driver(&mpc52xx_uart_driver); | 1501 | uart_unregister_driver(&mpc52xx_uart_driver); |
| 1505 | return ret; | 1502 | return ret; |
| @@ -1514,7 +1511,7 @@ mpc52xx_uart_exit(void) | |||
| 1514 | if (psc_ops->fifoc_uninit) | 1511 | if (psc_ops->fifoc_uninit) |
| 1515 | psc_ops->fifoc_uninit(); | 1512 | psc_ops->fifoc_uninit(); |
| 1516 | 1513 | ||
| 1517 | of_unregister_platform_driver(&mpc52xx_uart_of_driver); | 1514 | platform_driver_unregister(&mpc52xx_uart_of_driver); |
| 1518 | uart_unregister_driver(&mpc52xx_uart_driver); | 1515 | uart_unregister_driver(&mpc52xx_uart_driver); |
| 1519 | } | 1516 | } |
| 1520 | 1517 | ||
diff --git a/drivers/tty/serial/of_serial.c b/drivers/tty/serial/of_serial.c index 6a18ca6ddaa9..0e8eec516df4 100644 --- a/drivers/tty/serial/of_serial.c +++ b/drivers/tty/serial/of_serial.c | |||
| @@ -80,14 +80,16 @@ static int __devinit of_platform_serial_setup(struct platform_device *ofdev, | |||
| 80 | /* | 80 | /* |
| 81 | * Try to register a serial port | 81 | * Try to register a serial port |
| 82 | */ | 82 | */ |
| 83 | static int __devinit of_platform_serial_probe(struct platform_device *ofdev, | 83 | static int __devinit of_platform_serial_probe(struct platform_device *ofdev) |
| 84 | const struct of_device_id *id) | ||
| 85 | { | 84 | { |
| 86 | struct of_serial_info *info; | 85 | struct of_serial_info *info; |
| 87 | struct uart_port port; | 86 | struct uart_port port; |
| 88 | int port_type; | 87 | int port_type; |
| 89 | int ret; | 88 | int ret; |
| 90 | 89 | ||
| 90 | if (!ofdev->dev.of_match) | ||
| 91 | return -EINVAL; | ||
| 92 | |||
| 91 | if (of_find_property(ofdev->dev.of_node, "used-by-rtas", NULL)) | 93 | if (of_find_property(ofdev->dev.of_node, "used-by-rtas", NULL)) |
| 92 | return -EBUSY; | 94 | return -EBUSY; |
| 93 | 95 | ||
| @@ -95,7 +97,7 @@ static int __devinit of_platform_serial_probe(struct platform_device *ofdev, | |||
| 95 | if (info == NULL) | 97 | if (info == NULL) |
| 96 | return -ENOMEM; | 98 | return -ENOMEM; |
| 97 | 99 | ||
| 98 | port_type = (unsigned long)id->data; | 100 | port_type = (unsigned long)ofdev->dev.of_match->data; |
| 99 | ret = of_platform_serial_setup(ofdev, port_type, &port); | 101 | ret = of_platform_serial_setup(ofdev, port_type, &port); |
| 100 | if (ret) | 102 | if (ret) |
| 101 | goto out; | 103 | goto out; |
| @@ -174,7 +176,7 @@ static struct of_device_id __devinitdata of_platform_serial_table[] = { | |||
| 174 | { /* end of list */ }, | 176 | { /* end of list */ }, |
| 175 | }; | 177 | }; |
| 176 | 178 | ||
| 177 | static struct of_platform_driver of_platform_serial_driver = { | 179 | static struct platform_driver of_platform_serial_driver = { |
| 178 | .driver = { | 180 | .driver = { |
| 179 | .name = "of_serial", | 181 | .name = "of_serial", |
| 180 | .owner = THIS_MODULE, | 182 | .owner = THIS_MODULE, |
| @@ -186,13 +188,13 @@ static struct of_platform_driver of_platform_serial_driver = { | |||
| 186 | 188 | ||
| 187 | static int __init of_platform_serial_init(void) | 189 | static int __init of_platform_serial_init(void) |
| 188 | { | 190 | { |
| 189 | return of_register_platform_driver(&of_platform_serial_driver); | 191 | return platform_driver_register(&of_platform_serial_driver); |
| 190 | } | 192 | } |
| 191 | module_init(of_platform_serial_init); | 193 | module_init(of_platform_serial_init); |
| 192 | 194 | ||
| 193 | static void __exit of_platform_serial_exit(void) | 195 | static void __exit of_platform_serial_exit(void) |
| 194 | { | 196 | { |
| 195 | return of_unregister_platform_driver(&of_platform_serial_driver); | 197 | return platform_driver_unregister(&of_platform_serial_driver); |
| 196 | }; | 198 | }; |
| 197 | module_exit(of_platform_serial_exit); | 199 | module_exit(of_platform_serial_exit); |
| 198 | 200 | ||
diff --git a/drivers/tty/serial/sunhv.c b/drivers/tty/serial/sunhv.c index c9014868297d..c0b7246d7339 100644 --- a/drivers/tty/serial/sunhv.c +++ b/drivers/tty/serial/sunhv.c | |||
| @@ -519,7 +519,7 @@ static struct console sunhv_console = { | |||
| 519 | .data = &sunhv_reg, | 519 | .data = &sunhv_reg, |
| 520 | }; | 520 | }; |
| 521 | 521 | ||
| 522 | static int __devinit hv_probe(struct platform_device *op, const struct of_device_id *match) | 522 | static int __devinit hv_probe(struct platform_device *op) |
| 523 | { | 523 | { |
| 524 | struct uart_port *port; | 524 | struct uart_port *port; |
| 525 | unsigned long minor; | 525 | unsigned long minor; |
| @@ -629,7 +629,7 @@ static const struct of_device_id hv_match[] = { | |||
| 629 | }; | 629 | }; |
| 630 | MODULE_DEVICE_TABLE(of, hv_match); | 630 | MODULE_DEVICE_TABLE(of, hv_match); |
| 631 | 631 | ||
| 632 | static struct of_platform_driver hv_driver = { | 632 | static struct platform_driver hv_driver = { |
| 633 | .driver = { | 633 | .driver = { |
| 634 | .name = "hv", | 634 | .name = "hv", |
| 635 | .owner = THIS_MODULE, | 635 | .owner = THIS_MODULE, |
| @@ -644,12 +644,12 @@ static int __init sunhv_init(void) | |||
| 644 | if (tlb_type != hypervisor) | 644 | if (tlb_type != hypervisor) |
| 645 | return -ENODEV; | 645 | return -ENODEV; |
| 646 | 646 | ||
| 647 | return of_register_platform_driver(&hv_driver); | 647 | return platform_driver_register(&hv_driver); |
| 648 | } | 648 | } |
| 649 | 649 | ||
| 650 | static void __exit sunhv_exit(void) | 650 | static void __exit sunhv_exit(void) |
| 651 | { | 651 | { |
| 652 | of_unregister_platform_driver(&hv_driver); | 652 | platform_driver_unregister(&hv_driver); |
| 653 | } | 653 | } |
| 654 | 654 | ||
| 655 | module_init(sunhv_init); | 655 | module_init(sunhv_init); |
diff --git a/drivers/tty/serial/sunsab.c b/drivers/tty/serial/sunsab.c index 5b246b18f42f..b5fa2a57b9da 100644 --- a/drivers/tty/serial/sunsab.c +++ b/drivers/tty/serial/sunsab.c | |||
| @@ -1006,7 +1006,7 @@ static int __devinit sunsab_init_one(struct uart_sunsab_port *up, | |||
| 1006 | return 0; | 1006 | return 0; |
| 1007 | } | 1007 | } |
| 1008 | 1008 | ||
| 1009 | static int __devinit sab_probe(struct platform_device *op, const struct of_device_id *match) | 1009 | static int __devinit sab_probe(struct platform_device *op) |
| 1010 | { | 1010 | { |
| 1011 | static int inst; | 1011 | static int inst; |
| 1012 | struct uart_sunsab_port *up; | 1012 | struct uart_sunsab_port *up; |
| @@ -1092,7 +1092,7 @@ static const struct of_device_id sab_match[] = { | |||
| 1092 | }; | 1092 | }; |
| 1093 | MODULE_DEVICE_TABLE(of, sab_match); | 1093 | MODULE_DEVICE_TABLE(of, sab_match); |
| 1094 | 1094 | ||
| 1095 | static struct of_platform_driver sab_driver = { | 1095 | static struct platform_driver sab_driver = { |
| 1096 | .driver = { | 1096 | .driver = { |
| 1097 | .name = "sab", | 1097 | .name = "sab", |
| 1098 | .owner = THIS_MODULE, | 1098 | .owner = THIS_MODULE, |
| @@ -1130,12 +1130,12 @@ static int __init sunsab_init(void) | |||
| 1130 | } | 1130 | } |
| 1131 | } | 1131 | } |
| 1132 | 1132 | ||
| 1133 | return of_register_platform_driver(&sab_driver); | 1133 | return platform_driver_register(&sab_driver); |
| 1134 | } | 1134 | } |
| 1135 | 1135 | ||
| 1136 | static void __exit sunsab_exit(void) | 1136 | static void __exit sunsab_exit(void) |
| 1137 | { | 1137 | { |
| 1138 | of_unregister_platform_driver(&sab_driver); | 1138 | platform_driver_unregister(&sab_driver); |
| 1139 | if (sunsab_reg.nr) { | 1139 | if (sunsab_reg.nr) { |
| 1140 | sunserial_unregister_minors(&sunsab_reg, sunsab_reg.nr); | 1140 | sunserial_unregister_minors(&sunsab_reg, sunsab_reg.nr); |
| 1141 | } | 1141 | } |
diff --git a/drivers/tty/serial/sunsu.c b/drivers/tty/serial/sunsu.c index 551ebfe3ccbb..92aa54550e84 100644 --- a/drivers/tty/serial/sunsu.c +++ b/drivers/tty/serial/sunsu.c | |||
| @@ -1406,7 +1406,7 @@ static enum su_type __devinit su_get_type(struct device_node *dp) | |||
| 1406 | return SU_PORT_PORT; | 1406 | return SU_PORT_PORT; |
| 1407 | } | 1407 | } |
| 1408 | 1408 | ||
| 1409 | static int __devinit su_probe(struct platform_device *op, const struct of_device_id *match) | 1409 | static int __devinit su_probe(struct platform_device *op) |
| 1410 | { | 1410 | { |
| 1411 | static int inst; | 1411 | static int inst; |
| 1412 | struct device_node *dp = op->dev.of_node; | 1412 | struct device_node *dp = op->dev.of_node; |
| @@ -1543,7 +1543,7 @@ static const struct of_device_id su_match[] = { | |||
| 1543 | }; | 1543 | }; |
| 1544 | MODULE_DEVICE_TABLE(of, su_match); | 1544 | MODULE_DEVICE_TABLE(of, su_match); |
| 1545 | 1545 | ||
| 1546 | static struct of_platform_driver su_driver = { | 1546 | static struct platform_driver su_driver = { |
| 1547 | .driver = { | 1547 | .driver = { |
| 1548 | .name = "su", | 1548 | .name = "su", |
| 1549 | .owner = THIS_MODULE, | 1549 | .owner = THIS_MODULE, |
| @@ -1586,7 +1586,7 @@ static int __init sunsu_init(void) | |||
| 1586 | return err; | 1586 | return err; |
| 1587 | } | 1587 | } |
| 1588 | 1588 | ||
| 1589 | err = of_register_platform_driver(&su_driver); | 1589 | err = platform_driver_register(&su_driver); |
| 1590 | if (err && num_uart) | 1590 | if (err && num_uart) |
| 1591 | sunserial_unregister_minors(&sunsu_reg, num_uart); | 1591 | sunserial_unregister_minors(&sunsu_reg, num_uart); |
| 1592 | 1592 | ||
diff --git a/drivers/tty/serial/sunzilog.c b/drivers/tty/serial/sunzilog.c index c1967ac1c07f..99ff9abf57ce 100644 --- a/drivers/tty/serial/sunzilog.c +++ b/drivers/tty/serial/sunzilog.c | |||
| @@ -1399,7 +1399,7 @@ static void __devinit sunzilog_init_hw(struct uart_sunzilog_port *up) | |||
| 1399 | 1399 | ||
| 1400 | static int zilog_irq = -1; | 1400 | static int zilog_irq = -1; |
| 1401 | 1401 | ||
| 1402 | static int __devinit zs_probe(struct platform_device *op, const struct of_device_id *match) | 1402 | static int __devinit zs_probe(struct platform_device *op) |
| 1403 | { | 1403 | { |
| 1404 | static int kbm_inst, uart_inst; | 1404 | static int kbm_inst, uart_inst; |
| 1405 | int inst; | 1405 | int inst; |
| @@ -1540,7 +1540,7 @@ static const struct of_device_id zs_match[] = { | |||
| 1540 | }; | 1540 | }; |
| 1541 | MODULE_DEVICE_TABLE(of, zs_match); | 1541 | MODULE_DEVICE_TABLE(of, zs_match); |
| 1542 | 1542 | ||
| 1543 | static struct of_platform_driver zs_driver = { | 1543 | static struct platform_driver zs_driver = { |
| 1544 | .driver = { | 1544 | .driver = { |
| 1545 | .name = "zs", | 1545 | .name = "zs", |
| 1546 | .owner = THIS_MODULE, | 1546 | .owner = THIS_MODULE, |
| @@ -1576,7 +1576,7 @@ static int __init sunzilog_init(void) | |||
| 1576 | goto out_free_tables; | 1576 | goto out_free_tables; |
| 1577 | } | 1577 | } |
| 1578 | 1578 | ||
| 1579 | err = of_register_platform_driver(&zs_driver); | 1579 | err = platform_driver_register(&zs_driver); |
| 1580 | if (err) | 1580 | if (err) |
| 1581 | goto out_unregister_uart; | 1581 | goto out_unregister_uart; |
| 1582 | 1582 | ||
| @@ -1604,7 +1604,7 @@ out: | |||
| 1604 | return err; | 1604 | return err; |
| 1605 | 1605 | ||
| 1606 | out_unregister_driver: | 1606 | out_unregister_driver: |
| 1607 | of_unregister_platform_driver(&zs_driver); | 1607 | platform_driver_unregister(&zs_driver); |
| 1608 | 1608 | ||
| 1609 | out_unregister_uart: | 1609 | out_unregister_uart: |
| 1610 | if (num_sunzilog) { | 1610 | if (num_sunzilog) { |
| @@ -1619,7 +1619,7 @@ out_free_tables: | |||
| 1619 | 1619 | ||
| 1620 | static void __exit sunzilog_exit(void) | 1620 | static void __exit sunzilog_exit(void) |
| 1621 | { | 1621 | { |
| 1622 | of_unregister_platform_driver(&zs_driver); | 1622 | platform_driver_unregister(&zs_driver); |
| 1623 | 1623 | ||
| 1624 | if (zilog_irq != -1) { | 1624 | if (zilog_irq != -1) { |
| 1625 | struct uart_sunzilog_port *up = sunzilog_irq_chain; | 1625 | struct uart_sunzilog_port *up = sunzilog_irq_chain; |
diff --git a/drivers/tty/serial/uartlite.c b/drivers/tty/serial/uartlite.c index d2fce865b731..8af1ed83a4c0 100644 --- a/drivers/tty/serial/uartlite.c +++ b/drivers/tty/serial/uartlite.c | |||
| @@ -19,22 +19,11 @@ | |||
| 19 | #include <linux/interrupt.h> | 19 | #include <linux/interrupt.h> |
| 20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
| 21 | #include <asm/io.h> | 21 | #include <asm/io.h> |
| 22 | #if defined(CONFIG_OF) && (defined(CONFIG_PPC32) || defined(CONFIG_MICROBLAZE)) | ||
| 23 | #include <linux/of.h> | 22 | #include <linux/of.h> |
| 24 | #include <linux/of_address.h> | 23 | #include <linux/of_address.h> |
| 25 | #include <linux/of_device.h> | 24 | #include <linux/of_device.h> |
| 26 | #include <linux/of_platform.h> | 25 | #include <linux/of_platform.h> |
| 27 | 26 | ||
| 28 | /* Match table for of_platform binding */ | ||
| 29 | static struct of_device_id ulite_of_match[] __devinitdata = { | ||
| 30 | { .compatible = "xlnx,opb-uartlite-1.00.b", }, | ||
| 31 | { .compatible = "xlnx,xps-uartlite-1.00.a", }, | ||
| 32 | {} | ||
| 33 | }; | ||
| 34 | MODULE_DEVICE_TABLE(of, ulite_of_match); | ||
| 35 | |||
| 36 | #endif | ||
| 37 | |||
| 38 | #define ULITE_NAME "ttyUL" | 27 | #define ULITE_NAME "ttyUL" |
| 39 | #define ULITE_MAJOR 204 | 28 | #define ULITE_MAJOR 204 |
| 40 | #define ULITE_MINOR 187 | 29 | #define ULITE_MINOR 187 |
| @@ -571,9 +560,29 @@ static int __devexit ulite_release(struct device *dev) | |||
| 571 | * Platform bus binding | 560 | * Platform bus binding |
| 572 | */ | 561 | */ |
| 573 | 562 | ||
| 563 | #if defined(CONFIG_OF) | ||
| 564 | /* Match table for of_platform binding */ | ||
| 565 | static struct of_device_id ulite_of_match[] __devinitdata = { | ||
| 566 | { .compatible = "xlnx,opb-uartlite-1.00.b", }, | ||
| 567 | { .compatible = "xlnx,xps-uartlite-1.00.a", }, | ||
| 568 | {} | ||
| 569 | }; | ||
| 570 | MODULE_DEVICE_TABLE(of, ulite_of_match); | ||
| 571 | #else /* CONFIG_OF */ | ||
| 572 | #define ulite_of_match NULL | ||
| 573 | #endif /* CONFIG_OF */ | ||
| 574 | |||
| 574 | static int __devinit ulite_probe(struct platform_device *pdev) | 575 | static int __devinit ulite_probe(struct platform_device *pdev) |
| 575 | { | 576 | { |
| 576 | struct resource *res, *res2; | 577 | struct resource *res, *res2; |
| 578 | int id = pdev->id; | ||
| 579 | #ifdef CONFIG_OF | ||
| 580 | const __be32 *prop; | ||
| 581 | |||
| 582 | prop = of_get_property(pdev->dev.of_node, "port-number", NULL); | ||
| 583 | if (prop) | ||
| 584 | id = be32_to_cpup(prop); | ||
| 585 | #endif | ||
| 577 | 586 | ||
| 578 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 587 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| 579 | if (!res) | 588 | if (!res) |
| @@ -583,7 +592,7 @@ static int __devinit ulite_probe(struct platform_device *pdev) | |||
| 583 | if (!res2) | 592 | if (!res2) |
| 584 | return -ENODEV; | 593 | return -ENODEV; |
| 585 | 594 | ||
| 586 | return ulite_assign(&pdev->dev, pdev->id, res->start, res2->start); | 595 | return ulite_assign(&pdev->dev, id, res->start, res2->start); |
| 587 | } | 596 | } |
| 588 | 597 | ||
| 589 | static int __devexit ulite_remove(struct platform_device *pdev) | 598 | static int __devexit ulite_remove(struct platform_device *pdev) |
| @@ -595,72 +604,15 @@ static int __devexit ulite_remove(struct platform_device *pdev) | |||
| 595 | MODULE_ALIAS("platform:uartlite"); | 604 | MODULE_ALIAS("platform:uartlite"); |
| 596 | 605 | ||
| 597 | static struct platform_driver ulite_platform_driver = { | 606 | static struct platform_driver ulite_platform_driver = { |
| 598 | .probe = ulite_probe, | 607 | .probe = ulite_probe, |
| 599 | .remove = __devexit_p(ulite_remove), | 608 | .remove = __devexit_p(ulite_remove), |
| 600 | .driver = { | ||
| 601 | .owner = THIS_MODULE, | ||
| 602 | .name = "uartlite", | ||
| 603 | }, | ||
| 604 | }; | ||
| 605 | |||
| 606 | /* --------------------------------------------------------------------- | ||
| 607 | * OF bus bindings | ||
| 608 | */ | ||
| 609 | #if defined(CONFIG_OF) && (defined(CONFIG_PPC32) || defined(CONFIG_MICROBLAZE)) | ||
| 610 | static int __devinit | ||
| 611 | ulite_of_probe(struct platform_device *op, const struct of_device_id *match) | ||
| 612 | { | ||
| 613 | struct resource res; | ||
| 614 | const unsigned int *id; | ||
| 615 | int irq, rc; | ||
| 616 | |||
| 617 | dev_dbg(&op->dev, "%s(%p, %p)\n", __func__, op, match); | ||
| 618 | |||
| 619 | rc = of_address_to_resource(op->dev.of_node, 0, &res); | ||
| 620 | if (rc) { | ||
| 621 | dev_err(&op->dev, "invalid address\n"); | ||
| 622 | return rc; | ||
| 623 | } | ||
| 624 | |||
| 625 | irq = irq_of_parse_and_map(op->dev.of_node, 0); | ||
| 626 | |||
| 627 | id = of_get_property(op->dev.of_node, "port-number", NULL); | ||
| 628 | |||
| 629 | return ulite_assign(&op->dev, id ? *id : -1, res.start, irq); | ||
| 630 | } | ||
| 631 | |||
| 632 | static int __devexit ulite_of_remove(struct platform_device *op) | ||
| 633 | { | ||
| 634 | return ulite_release(&op->dev); | ||
| 635 | } | ||
| 636 | |||
| 637 | static struct of_platform_driver ulite_of_driver = { | ||
| 638 | .probe = ulite_of_probe, | ||
| 639 | .remove = __devexit_p(ulite_of_remove), | ||
| 640 | .driver = { | 609 | .driver = { |
| 641 | .name = "uartlite", | ||
| 642 | .owner = THIS_MODULE, | 610 | .owner = THIS_MODULE, |
| 611 | .name = "uartlite", | ||
| 643 | .of_match_table = ulite_of_match, | 612 | .of_match_table = ulite_of_match, |
| 644 | }, | 613 | }, |
| 645 | }; | 614 | }; |
| 646 | 615 | ||
| 647 | /* Registration helpers to keep the number of #ifdefs to a minimum */ | ||
| 648 | static inline int __init ulite_of_register(void) | ||
| 649 | { | ||
| 650 | pr_debug("uartlite: calling of_register_platform_driver()\n"); | ||
| 651 | return of_register_platform_driver(&ulite_of_driver); | ||
| 652 | } | ||
| 653 | |||
| 654 | static inline void __exit ulite_of_unregister(void) | ||
| 655 | { | ||
| 656 | of_unregister_platform_driver(&ulite_of_driver); | ||
| 657 | } | ||
| 658 | #else /* CONFIG_OF && (CONFIG_PPC32 || CONFIG_MICROBLAZE) */ | ||
| 659 | /* Appropriate config not enabled; do nothing helpers */ | ||
| 660 | static inline int __init ulite_of_register(void) { return 0; } | ||
| 661 | static inline void __exit ulite_of_unregister(void) { } | ||
| 662 | #endif /* CONFIG_OF && (CONFIG_PPC32 || CONFIG_MICROBLAZE) */ | ||
| 663 | |||
| 664 | /* --------------------------------------------------------------------- | 616 | /* --------------------------------------------------------------------- |
| 665 | * Module setup/teardown | 617 | * Module setup/teardown |
| 666 | */ | 618 | */ |
| @@ -674,10 +626,6 @@ int __init ulite_init(void) | |||
| 674 | if (ret) | 626 | if (ret) |
| 675 | goto err_uart; | 627 | goto err_uart; |
| 676 | 628 | ||
| 677 | ret = ulite_of_register(); | ||
| 678 | if (ret) | ||
| 679 | goto err_of; | ||
| 680 | |||
| 681 | pr_debug("uartlite: calling platform_driver_register()\n"); | 629 | pr_debug("uartlite: calling platform_driver_register()\n"); |
| 682 | ret = platform_driver_register(&ulite_platform_driver); | 630 | ret = platform_driver_register(&ulite_platform_driver); |
| 683 | if (ret) | 631 | if (ret) |
| @@ -686,8 +634,6 @@ int __init ulite_init(void) | |||
| 686 | return 0; | 634 | return 0; |
| 687 | 635 | ||
| 688 | err_plat: | 636 | err_plat: |
| 689 | ulite_of_unregister(); | ||
| 690 | err_of: | ||
| 691 | uart_unregister_driver(&ulite_uart_driver); | 637 | uart_unregister_driver(&ulite_uart_driver); |
| 692 | err_uart: | 638 | err_uart: |
| 693 | printk(KERN_ERR "registering uartlite driver failed: err=%i", ret); | 639 | printk(KERN_ERR "registering uartlite driver failed: err=%i", ret); |
| @@ -697,7 +643,6 @@ err_uart: | |||
| 697 | void __exit ulite_exit(void) | 643 | void __exit ulite_exit(void) |
| 698 | { | 644 | { |
| 699 | platform_driver_unregister(&ulite_platform_driver); | 645 | platform_driver_unregister(&ulite_platform_driver); |
| 700 | ulite_of_unregister(); | ||
| 701 | uart_unregister_driver(&ulite_uart_driver); | 646 | uart_unregister_driver(&ulite_uart_driver); |
| 702 | } | 647 | } |
| 703 | 648 | ||
diff --git a/drivers/tty/serial/ucc_uart.c b/drivers/tty/serial/ucc_uart.c index 3f4848e2174a..ff51dae1df0c 100644 --- a/drivers/tty/serial/ucc_uart.c +++ b/drivers/tty/serial/ucc_uart.c | |||
| @@ -1194,8 +1194,7 @@ static void uart_firmware_cont(const struct firmware *fw, void *context) | |||
| 1194 | release_firmware(fw); | 1194 | release_firmware(fw); |
| 1195 | } | 1195 | } |
| 1196 | 1196 | ||
| 1197 | static int ucc_uart_probe(struct platform_device *ofdev, | 1197 | static int ucc_uart_probe(struct platform_device *ofdev) |
| 1198 | const struct of_device_id *match) | ||
| 1199 | { | 1198 | { |
| 1200 | struct device_node *np = ofdev->dev.of_node; | 1199 | struct device_node *np = ofdev->dev.of_node; |
| 1201 | const unsigned int *iprop; /* Integer OF properties */ | 1200 | const unsigned int *iprop; /* Integer OF properties */ |
| @@ -1485,7 +1484,7 @@ static struct of_device_id ucc_uart_match[] = { | |||
| 1485 | }; | 1484 | }; |
| 1486 | MODULE_DEVICE_TABLE(of, ucc_uart_match); | 1485 | MODULE_DEVICE_TABLE(of, ucc_uart_match); |
| 1487 | 1486 | ||
| 1488 | static struct of_platform_driver ucc_uart_of_driver = { | 1487 | static struct platform_driver ucc_uart_of_driver = { |
| 1489 | .driver = { | 1488 | .driver = { |
| 1490 | .name = "ucc_uart", | 1489 | .name = "ucc_uart", |
| 1491 | .owner = THIS_MODULE, | 1490 | .owner = THIS_MODULE, |
| @@ -1510,7 +1509,7 @@ static int __init ucc_uart_init(void) | |||
| 1510 | return ret; | 1509 | return ret; |
| 1511 | } | 1510 | } |
| 1512 | 1511 | ||
| 1513 | ret = of_register_platform_driver(&ucc_uart_of_driver); | 1512 | ret = platform_driver_register(&ucc_uart_of_driver); |
| 1514 | if (ret) | 1513 | if (ret) |
| 1515 | printk(KERN_ERR | 1514 | printk(KERN_ERR |
| 1516 | "ucc-uart: could not register platform driver\n"); | 1515 | "ucc-uart: could not register platform driver\n"); |
| @@ -1523,7 +1522,7 @@ static void __exit ucc_uart_exit(void) | |||
| 1523 | printk(KERN_INFO | 1522 | printk(KERN_INFO |
| 1524 | "Freescale QUICC Engine UART device driver unloading\n"); | 1523 | "Freescale QUICC Engine UART device driver unloading\n"); |
| 1525 | 1524 | ||
| 1526 | of_unregister_platform_driver(&ucc_uart_of_driver); | 1525 | platform_driver_unregister(&ucc_uart_of_driver); |
| 1527 | uart_unregister_driver(&ucc_uart_driver); | 1526 | uart_unregister_driver(&ucc_uart_driver); |
| 1528 | } | 1527 | } |
| 1529 | 1528 | ||
diff --git a/drivers/usb/gadget/fsl_qe_udc.c b/drivers/usb/gadget/fsl_qe_udc.c index 792d5ef40137..aee7e3c53c38 100644 --- a/drivers/usb/gadget/fsl_qe_udc.c +++ b/drivers/usb/gadget/fsl_qe_udc.c | |||
| @@ -2523,8 +2523,7 @@ static void qe_udc_release(struct device *dev) | |||
| 2523 | } | 2523 | } |
| 2524 | 2524 | ||
| 2525 | /* Driver probe functions */ | 2525 | /* Driver probe functions */ |
| 2526 | static int __devinit qe_udc_probe(struct platform_device *ofdev, | 2526 | static int __devinit qe_udc_probe(struct platform_device *ofdev) |
| 2527 | const struct of_device_id *match) | ||
| 2528 | { | 2527 | { |
| 2529 | struct device_node *np = ofdev->dev.of_node; | 2528 | struct device_node *np = ofdev->dev.of_node; |
| 2530 | struct qe_ep *ep; | 2529 | struct qe_ep *ep; |
| @@ -2532,6 +2531,9 @@ static int __devinit qe_udc_probe(struct platform_device *ofdev, | |||
| 2532 | unsigned int i; | 2531 | unsigned int i; |
| 2533 | const void *prop; | 2532 | const void *prop; |
| 2534 | 2533 | ||
| 2534 | if (!ofdev->dev.of_match) | ||
| 2535 | return -EINVAL; | ||
| 2536 | |||
| 2535 | prop = of_get_property(np, "mode", NULL); | 2537 | prop = of_get_property(np, "mode", NULL); |
| 2536 | if (!prop || strcmp(prop, "peripheral")) | 2538 | if (!prop || strcmp(prop, "peripheral")) |
| 2537 | return -ENODEV; | 2539 | return -ENODEV; |
| @@ -2543,7 +2545,7 @@ static int __devinit qe_udc_probe(struct platform_device *ofdev, | |||
| 2543 | return -ENOMEM; | 2545 | return -ENOMEM; |
| 2544 | } | 2546 | } |
| 2545 | 2547 | ||
| 2546 | udc_controller->soc_type = (unsigned long)match->data; | 2548 | udc_controller->soc_type = (unsigned long)ofdev->dev.of_match->data; |
| 2547 | udc_controller->usb_regs = of_iomap(np, 0); | 2549 | udc_controller->usb_regs = of_iomap(np, 0); |
| 2548 | if (!udc_controller->usb_regs) { | 2550 | if (!udc_controller->usb_regs) { |
| 2549 | ret = -ENOMEM; | 2551 | ret = -ENOMEM; |
| @@ -2768,7 +2770,7 @@ static const struct of_device_id qe_udc_match[] __devinitconst = { | |||
| 2768 | 2770 | ||
| 2769 | MODULE_DEVICE_TABLE(of, qe_udc_match); | 2771 | MODULE_DEVICE_TABLE(of, qe_udc_match); |
| 2770 | 2772 | ||
| 2771 | static struct of_platform_driver udc_driver = { | 2773 | static struct platform_driver udc_driver = { |
| 2772 | .driver = { | 2774 | .driver = { |
| 2773 | .name = (char *)driver_name, | 2775 | .name = (char *)driver_name, |
| 2774 | .owner = THIS_MODULE, | 2776 | .owner = THIS_MODULE, |
| @@ -2786,12 +2788,12 @@ static int __init qe_udc_init(void) | |||
| 2786 | { | 2788 | { |
| 2787 | printk(KERN_INFO "%s: %s, %s\n", driver_name, driver_desc, | 2789 | printk(KERN_INFO "%s: %s, %s\n", driver_name, driver_desc, |
| 2788 | DRIVER_VERSION); | 2790 | DRIVER_VERSION); |
| 2789 | return of_register_platform_driver(&udc_driver); | 2791 | return platform_driver_register(&udc_driver); |
| 2790 | } | 2792 | } |
| 2791 | 2793 | ||
| 2792 | static void __exit qe_udc_exit(void) | 2794 | static void __exit qe_udc_exit(void) |
| 2793 | { | 2795 | { |
| 2794 | of_unregister_platform_driver(&udc_driver); | 2796 | platform_driver_unregister(&udc_driver); |
| 2795 | } | 2797 | } |
| 2796 | 2798 | ||
| 2797 | module_init(qe_udc_init); | 2799 | module_init(qe_udc_init); |
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index d30c4e08c137..78561d112c04 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c | |||
| @@ -1317,24 +1317,24 @@ static int __init ehci_hcd_init(void) | |||
| 1317 | #endif | 1317 | #endif |
| 1318 | 1318 | ||
| 1319 | #ifdef OF_PLATFORM_DRIVER | 1319 | #ifdef OF_PLATFORM_DRIVER |
| 1320 | retval = of_register_platform_driver(&OF_PLATFORM_DRIVER); | 1320 | retval = platform_driver_register(&OF_PLATFORM_DRIVER); |
| 1321 | if (retval < 0) | 1321 | if (retval < 0) |
| 1322 | goto clean3; | 1322 | goto clean3; |
| 1323 | #endif | 1323 | #endif |
| 1324 | 1324 | ||
| 1325 | #ifdef XILINX_OF_PLATFORM_DRIVER | 1325 | #ifdef XILINX_OF_PLATFORM_DRIVER |
| 1326 | retval = of_register_platform_driver(&XILINX_OF_PLATFORM_DRIVER); | 1326 | retval = platform_driver_register(&XILINX_OF_PLATFORM_DRIVER); |
| 1327 | if (retval < 0) | 1327 | if (retval < 0) |
| 1328 | goto clean4; | 1328 | goto clean4; |
| 1329 | #endif | 1329 | #endif |
| 1330 | return retval; | 1330 | return retval; |
| 1331 | 1331 | ||
| 1332 | #ifdef XILINX_OF_PLATFORM_DRIVER | 1332 | #ifdef XILINX_OF_PLATFORM_DRIVER |
| 1333 | /* of_unregister_platform_driver(&XILINX_OF_PLATFORM_DRIVER); */ | 1333 | /* platform_driver_unregister(&XILINX_OF_PLATFORM_DRIVER); */ |
| 1334 | clean4: | 1334 | clean4: |
| 1335 | #endif | 1335 | #endif |
| 1336 | #ifdef OF_PLATFORM_DRIVER | 1336 | #ifdef OF_PLATFORM_DRIVER |
| 1337 | of_unregister_platform_driver(&OF_PLATFORM_DRIVER); | 1337 | platform_driver_unregister(&OF_PLATFORM_DRIVER); |
| 1338 | clean3: | 1338 | clean3: |
| 1339 | #endif | 1339 | #endif |
| 1340 | #ifdef PS3_SYSTEM_BUS_DRIVER | 1340 | #ifdef PS3_SYSTEM_BUS_DRIVER |
| @@ -1362,10 +1362,10 @@ module_init(ehci_hcd_init); | |||
| 1362 | static void __exit ehci_hcd_cleanup(void) | 1362 | static void __exit ehci_hcd_cleanup(void) |
| 1363 | { | 1363 | { |
| 1364 | #ifdef XILINX_OF_PLATFORM_DRIVER | 1364 | #ifdef XILINX_OF_PLATFORM_DRIVER |
| 1365 | of_unregister_platform_driver(&XILINX_OF_PLATFORM_DRIVER); | 1365 | platform_driver_unregister(&XILINX_OF_PLATFORM_DRIVER); |
| 1366 | #endif | 1366 | #endif |
| 1367 | #ifdef OF_PLATFORM_DRIVER | 1367 | #ifdef OF_PLATFORM_DRIVER |
| 1368 | of_unregister_platform_driver(&OF_PLATFORM_DRIVER); | 1368 | platform_driver_unregister(&OF_PLATFORM_DRIVER); |
| 1369 | #endif | 1369 | #endif |
| 1370 | #ifdef PLATFORM_DRIVER | 1370 | #ifdef PLATFORM_DRIVER |
| 1371 | platform_driver_unregister(&PLATFORM_DRIVER); | 1371 | platform_driver_unregister(&PLATFORM_DRIVER); |
diff --git a/drivers/usb/host/ehci-ppc-of.c b/drivers/usb/host/ehci-ppc-of.c index ba52be473027..1f09f253697e 100644 --- a/drivers/usb/host/ehci-ppc-of.c +++ b/drivers/usb/host/ehci-ppc-of.c | |||
| @@ -105,8 +105,7 @@ ppc44x_enable_bmt(struct device_node *dn) | |||
| 105 | } | 105 | } |
| 106 | 106 | ||
| 107 | 107 | ||
| 108 | static int __devinit | 108 | static int __devinit ehci_hcd_ppc_of_probe(struct platform_device *op) |
| 109 | ehci_hcd_ppc_of_probe(struct platform_device *op, const struct of_device_id *match) | ||
| 110 | { | 109 | { |
| 111 | struct device_node *dn = op->dev.of_node; | 110 | struct device_node *dn = op->dev.of_node; |
| 112 | struct usb_hcd *hcd; | 111 | struct usb_hcd *hcd; |
| @@ -255,14 +254,12 @@ static int ehci_hcd_ppc_of_remove(struct platform_device *op) | |||
| 255 | } | 254 | } |
| 256 | 255 | ||
| 257 | 256 | ||
| 258 | static int ehci_hcd_ppc_of_shutdown(struct platform_device *op) | 257 | static void ehci_hcd_ppc_of_shutdown(struct platform_device *op) |
| 259 | { | 258 | { |
| 260 | struct usb_hcd *hcd = dev_get_drvdata(&op->dev); | 259 | struct usb_hcd *hcd = dev_get_drvdata(&op->dev); |
| 261 | 260 | ||
| 262 | if (hcd->driver->shutdown) | 261 | if (hcd->driver->shutdown) |
| 263 | hcd->driver->shutdown(hcd); | 262 | hcd->driver->shutdown(hcd); |
| 264 | |||
| 265 | return 0; | ||
| 266 | } | 263 | } |
| 267 | 264 | ||
| 268 | 265 | ||
| @@ -275,7 +272,7 @@ static const struct of_device_id ehci_hcd_ppc_of_match[] = { | |||
| 275 | MODULE_DEVICE_TABLE(of, ehci_hcd_ppc_of_match); | 272 | MODULE_DEVICE_TABLE(of, ehci_hcd_ppc_of_match); |
| 276 | 273 | ||
| 277 | 274 | ||
| 278 | static struct of_platform_driver ehci_hcd_ppc_of_driver = { | 275 | static struct platform_driver ehci_hcd_ppc_of_driver = { |
| 279 | .probe = ehci_hcd_ppc_of_probe, | 276 | .probe = ehci_hcd_ppc_of_probe, |
| 280 | .remove = ehci_hcd_ppc_of_remove, | 277 | .remove = ehci_hcd_ppc_of_remove, |
| 281 | .shutdown = ehci_hcd_ppc_of_shutdown, | 278 | .shutdown = ehci_hcd_ppc_of_shutdown, |
diff --git a/drivers/usb/host/ehci-xilinx-of.c b/drivers/usb/host/ehci-xilinx-of.c index a6f21b891f68..effc58d7af8b 100644 --- a/drivers/usb/host/ehci-xilinx-of.c +++ b/drivers/usb/host/ehci-xilinx-of.c | |||
| @@ -143,15 +143,13 @@ static const struct hc_driver ehci_xilinx_of_hc_driver = { | |||
| 143 | /** | 143 | /** |
| 144 | * ehci_hcd_xilinx_of_probe - Probe method for the USB host controller | 144 | * ehci_hcd_xilinx_of_probe - Probe method for the USB host controller |
| 145 | * @op: pointer to the platform_device bound to the host controller | 145 | * @op: pointer to the platform_device bound to the host controller |
| 146 | * @match: pointer to of_device_id structure, not used | ||
| 147 | * | 146 | * |
| 148 | * This function requests resources and sets up appropriate properties for the | 147 | * This function requests resources and sets up appropriate properties for the |
| 149 | * host controller. Because the Xilinx USB host controller can be configured | 148 | * host controller. Because the Xilinx USB host controller can be configured |
| 150 | * as HS only or HS/FS only, it checks the configuration in the device tree | 149 | * as HS only or HS/FS only, it checks the configuration in the device tree |
| 151 | * entry, and sets an appropriate value for hcd->has_tt. | 150 | * entry, and sets an appropriate value for hcd->has_tt. |
| 152 | */ | 151 | */ |
| 153 | static int __devinit | 152 | static int __devinit ehci_hcd_xilinx_of_probe(struct platform_device *op) |
| 154 | ehci_hcd_xilinx_of_probe(struct platform_device *op, const struct of_device_id *match) | ||
| 155 | { | 153 | { |
| 156 | struct device_node *dn = op->dev.of_node; | 154 | struct device_node *dn = op->dev.of_node; |
| 157 | struct usb_hcd *hcd; | 155 | struct usb_hcd *hcd; |
| @@ -289,7 +287,7 @@ static const struct of_device_id ehci_hcd_xilinx_of_match[] = { | |||
| 289 | }; | 287 | }; |
| 290 | MODULE_DEVICE_TABLE(of, ehci_hcd_xilinx_of_match); | 288 | MODULE_DEVICE_TABLE(of, ehci_hcd_xilinx_of_match); |
| 291 | 289 | ||
| 292 | static struct of_platform_driver ehci_hcd_xilinx_of_driver = { | 290 | static struct platform_driver ehci_hcd_xilinx_of_driver = { |
| 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, |
diff --git a/drivers/usb/host/fhci-hcd.c b/drivers/usb/host/fhci-hcd.c index 12fd184226f2..b84ff7e51896 100644 --- a/drivers/usb/host/fhci-hcd.c +++ b/drivers/usb/host/fhci-hcd.c | |||
| @@ -561,8 +561,7 @@ static const struct hc_driver fhci_driver = { | |||
| 561 | .hub_control = fhci_hub_control, | 561 | .hub_control = fhci_hub_control, |
| 562 | }; | 562 | }; |
| 563 | 563 | ||
| 564 | static int __devinit of_fhci_probe(struct platform_device *ofdev, | 564 | static int __devinit of_fhci_probe(struct platform_device *ofdev) |
| 565 | const struct of_device_id *ofid) | ||
| 566 | { | 565 | { |
| 567 | struct device *dev = &ofdev->dev; | 566 | struct device *dev = &ofdev->dev; |
| 568 | struct device_node *node = dev->of_node; | 567 | struct device_node *node = dev->of_node; |
| @@ -812,7 +811,7 @@ static const struct of_device_id of_fhci_match[] = { | |||
| 812 | }; | 811 | }; |
| 813 | MODULE_DEVICE_TABLE(of, of_fhci_match); | 812 | MODULE_DEVICE_TABLE(of, of_fhci_match); |
| 814 | 813 | ||
| 815 | static struct of_platform_driver of_fhci_driver = { | 814 | static struct platform_driver of_fhci_driver = { |
| 816 | .driver = { | 815 | .driver = { |
| 817 | .name = "fsl,usb-fhci", | 816 | .name = "fsl,usb-fhci", |
| 818 | .owner = THIS_MODULE, | 817 | .owner = THIS_MODULE, |
| @@ -824,13 +823,13 @@ static struct of_platform_driver of_fhci_driver = { | |||
| 824 | 823 | ||
| 825 | static int __init fhci_module_init(void) | 824 | static int __init fhci_module_init(void) |
| 826 | { | 825 | { |
| 827 | return of_register_platform_driver(&of_fhci_driver); | 826 | return platform_driver_register(&of_fhci_driver); |
| 828 | } | 827 | } |
| 829 | module_init(fhci_module_init); | 828 | module_init(fhci_module_init); |
| 830 | 829 | ||
| 831 | static void __exit fhci_module_exit(void) | 830 | static void __exit fhci_module_exit(void) |
| 832 | { | 831 | { |
| 833 | of_unregister_platform_driver(&of_fhci_driver); | 832 | platform_driver_unregister(&of_fhci_driver); |
| 834 | } | 833 | } |
| 835 | module_exit(fhci_module_exit); | 834 | module_exit(fhci_module_exit); |
| 836 | 835 | ||
diff --git a/drivers/usb/host/isp1760-if.c b/drivers/usb/host/isp1760-if.c index 3b28dbfca058..7ee30056f373 100644 --- a/drivers/usb/host/isp1760-if.c +++ b/drivers/usb/host/isp1760-if.c | |||
| @@ -27,8 +27,7 @@ | |||
| 27 | #endif | 27 | #endif |
| 28 | 28 | ||
| 29 | #ifdef CONFIG_PPC_OF | 29 | #ifdef CONFIG_PPC_OF |
| 30 | static int of_isp1760_probe(struct platform_device *dev, | 30 | static int of_isp1760_probe(struct platform_device *dev) |
| 31 | const struct of_device_id *match) | ||
| 32 | { | 31 | { |
| 33 | struct usb_hcd *hcd; | 32 | struct usb_hcd *hcd; |
| 34 | struct device_node *dp = dev->dev.of_node; | 33 | struct device_node *dp = dev->dev.of_node; |
| @@ -119,7 +118,7 @@ static const struct of_device_id of_isp1760_match[] = { | |||
| 119 | }; | 118 | }; |
| 120 | MODULE_DEVICE_TABLE(of, of_isp1760_match); | 119 | MODULE_DEVICE_TABLE(of, of_isp1760_match); |
| 121 | 120 | ||
| 122 | static struct of_platform_driver isp1760_of_driver = { | 121 | static struct platform_driver isp1760_of_driver = { |
| 123 | .driver = { | 122 | .driver = { |
| 124 | .name = "nxp-isp1760", | 123 | .name = "nxp-isp1760", |
| 125 | .owner = THIS_MODULE, | 124 | .owner = THIS_MODULE, |
| @@ -398,7 +397,7 @@ static int __init isp1760_init(void) | |||
| 398 | if (!ret) | 397 | if (!ret) |
| 399 | any_ret = 0; | 398 | any_ret = 0; |
| 400 | #ifdef CONFIG_PPC_OF | 399 | #ifdef CONFIG_PPC_OF |
| 401 | ret = of_register_platform_driver(&isp1760_of_driver); | 400 | ret = platform_driver_register(&isp1760_of_driver); |
| 402 | if (!ret) | 401 | if (!ret) |
| 403 | any_ret = 0; | 402 | any_ret = 0; |
| 404 | #endif | 403 | #endif |
| @@ -418,7 +417,7 @@ static void __exit isp1760_exit(void) | |||
| 418 | { | 417 | { |
| 419 | platform_driver_unregister(&isp1760_plat_driver); | 418 | platform_driver_unregister(&isp1760_plat_driver); |
| 420 | #ifdef CONFIG_PPC_OF | 419 | #ifdef CONFIG_PPC_OF |
| 421 | of_unregister_platform_driver(&isp1760_of_driver); | 420 | platform_driver_unregister(&isp1760_of_driver); |
| 422 | #endif | 421 | #endif |
| 423 | #ifdef CONFIG_PCI | 422 | #ifdef CONFIG_PCI |
| 424 | pci_unregister_driver(&isp1761_pci_driver); | 423 | pci_unregister_driver(&isp1761_pci_driver); |
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c index fb035751e4b2..f4062bba9d04 100644 --- a/drivers/usb/host/ohci-hcd.c +++ b/drivers/usb/host/ohci-hcd.c | |||
| @@ -1168,7 +1168,7 @@ static int __init ohci_hcd_mod_init(void) | |||
| 1168 | #endif | 1168 | #endif |
| 1169 | 1169 | ||
| 1170 | #ifdef OF_PLATFORM_DRIVER | 1170 | #ifdef OF_PLATFORM_DRIVER |
| 1171 | retval = of_register_platform_driver(&OF_PLATFORM_DRIVER); | 1171 | retval = platform_driver_register(&OF_PLATFORM_DRIVER); |
| 1172 | if (retval < 0) | 1172 | if (retval < 0) |
| 1173 | goto error_of_platform; | 1173 | goto error_of_platform; |
| 1174 | #endif | 1174 | #endif |
| @@ -1227,7 +1227,7 @@ static int __init ohci_hcd_mod_init(void) | |||
| 1227 | error_sa1111: | 1227 | error_sa1111: |
| 1228 | #endif | 1228 | #endif |
| 1229 | #ifdef OF_PLATFORM_DRIVER | 1229 | #ifdef OF_PLATFORM_DRIVER |
| 1230 | of_unregister_platform_driver(&OF_PLATFORM_DRIVER); | 1230 | platform_driver_unregister(&OF_PLATFORM_DRIVER); |
| 1231 | error_of_platform: | 1231 | error_of_platform: |
| 1232 | #endif | 1232 | #endif |
| 1233 | #ifdef PLATFORM_DRIVER | 1233 | #ifdef PLATFORM_DRIVER |
| @@ -1275,7 +1275,7 @@ static void __exit ohci_hcd_mod_exit(void) | |||
| 1275 | sa1111_driver_unregister(&SA1111_DRIVER); | 1275 | sa1111_driver_unregister(&SA1111_DRIVER); |
| 1276 | #endif | 1276 | #endif |
| 1277 | #ifdef OF_PLATFORM_DRIVER | 1277 | #ifdef OF_PLATFORM_DRIVER |
| 1278 | of_unregister_platform_driver(&OF_PLATFORM_DRIVER); | 1278 | platform_driver_unregister(&OF_PLATFORM_DRIVER); |
| 1279 | #endif | 1279 | #endif |
| 1280 | #ifdef PLATFORM_DRIVER | 1280 | #ifdef PLATFORM_DRIVER |
| 1281 | platform_driver_unregister(&PLATFORM_DRIVER); | 1281 | platform_driver_unregister(&PLATFORM_DRIVER); |
diff --git a/drivers/usb/host/ohci-ppc-of.c b/drivers/usb/host/ohci-ppc-of.c index b2c2dbf08766..1ca1821320f4 100644 --- a/drivers/usb/host/ohci-ppc-of.c +++ b/drivers/usb/host/ohci-ppc-of.c | |||
| @@ -80,8 +80,7 @@ static const struct hc_driver ohci_ppc_of_hc_driver = { | |||
| 80 | }; | 80 | }; |
| 81 | 81 | ||
| 82 | 82 | ||
| 83 | static int __devinit | 83 | static int __devinit ohci_hcd_ppc_of_probe(struct platform_device *op) |
| 84 | ohci_hcd_ppc_of_probe(struct platform_device *op, const struct of_device_id *match) | ||
| 85 | { | 84 | { |
| 86 | struct device_node *dn = op->dev.of_node; | 85 | struct device_node *dn = op->dev.of_node; |
| 87 | struct usb_hcd *hcd; | 86 | struct usb_hcd *hcd; |
| @@ -201,14 +200,12 @@ static int ohci_hcd_ppc_of_remove(struct platform_device *op) | |||
| 201 | return 0; | 200 | return 0; |
| 202 | } | 201 | } |
| 203 | 202 | ||
| 204 | static int ohci_hcd_ppc_of_shutdown(struct platform_device *op) | 203 | static void ohci_hcd_ppc_of_shutdown(struct platform_device *op) |
| 205 | { | 204 | { |
| 206 | struct usb_hcd *hcd = dev_get_drvdata(&op->dev); | 205 | struct usb_hcd *hcd = dev_get_drvdata(&op->dev); |
| 207 | 206 | ||
| 208 | if (hcd->driver->shutdown) | 207 | if (hcd->driver->shutdown) |
| 209 | hcd->driver->shutdown(hcd); | 208 | hcd->driver->shutdown(hcd); |
| 210 | |||
| 211 | return 0; | ||
| 212 | } | 209 | } |
| 213 | 210 | ||
| 214 | 211 | ||
| @@ -243,7 +240,7 @@ MODULE_DEVICE_TABLE(of, ohci_hcd_ppc_of_match); | |||
| 243 | #endif | 240 | #endif |
| 244 | 241 | ||
| 245 | 242 | ||
| 246 | static struct of_platform_driver ohci_hcd_ppc_of_driver = { | 243 | static struct platform_driver ohci_hcd_ppc_of_driver = { |
| 247 | .probe = ohci_hcd_ppc_of_probe, | 244 | .probe = ohci_hcd_ppc_of_probe, |
| 248 | .remove = ohci_hcd_ppc_of_remove, | 245 | .remove = ohci_hcd_ppc_of_remove, |
| 249 | .shutdown = ohci_hcd_ppc_of_shutdown, | 246 | .shutdown = ohci_hcd_ppc_of_shutdown, |
diff --git a/drivers/video/bw2.c b/drivers/video/bw2.c index 4dc13467281d..7ba74cd4be61 100644 --- a/drivers/video/bw2.c +++ b/drivers/video/bw2.c | |||
| @@ -273,7 +273,7 @@ static int __devinit bw2_do_default_mode(struct bw2_par *par, | |||
| 273 | return 0; | 273 | return 0; |
| 274 | } | 274 | } |
| 275 | 275 | ||
| 276 | static int __devinit bw2_probe(struct platform_device *op, const struct of_device_id *match) | 276 | static int __devinit bw2_probe(struct platform_device *op) |
| 277 | { | 277 | { |
| 278 | struct device_node *dp = op->dev.of_node; | 278 | struct device_node *dp = op->dev.of_node; |
| 279 | struct fb_info *info; | 279 | struct fb_info *info; |
| @@ -375,7 +375,7 @@ static const struct of_device_id bw2_match[] = { | |||
| 375 | }; | 375 | }; |
| 376 | MODULE_DEVICE_TABLE(of, bw2_match); | 376 | MODULE_DEVICE_TABLE(of, bw2_match); |
| 377 | 377 | ||
| 378 | static struct of_platform_driver bw2_driver = { | 378 | static struct platform_driver bw2_driver = { |
| 379 | .driver = { | 379 | .driver = { |
| 380 | .name = "bw2", | 380 | .name = "bw2", |
| 381 | .owner = THIS_MODULE, | 381 | .owner = THIS_MODULE, |
| @@ -390,12 +390,12 @@ static int __init bw2_init(void) | |||
| 390 | if (fb_get_options("bw2fb", NULL)) | 390 | if (fb_get_options("bw2fb", NULL)) |
| 391 | return -ENODEV; | 391 | return -ENODEV; |
| 392 | 392 | ||
| 393 | return of_register_platform_driver(&bw2_driver); | 393 | return platform_driver_register(&bw2_driver); |
| 394 | } | 394 | } |
| 395 | 395 | ||
| 396 | static void __exit bw2_exit(void) | 396 | static void __exit bw2_exit(void) |
| 397 | { | 397 | { |
| 398 | of_unregister_platform_driver(&bw2_driver); | 398 | platform_driver_unregister(&bw2_driver); |
| 399 | } | 399 | } |
| 400 | 400 | ||
| 401 | module_init(bw2_init); | 401 | module_init(bw2_init); |
diff --git a/drivers/video/cg14.c b/drivers/video/cg14.c index 24249535ac86..e2c85b0db632 100644 --- a/drivers/video/cg14.c +++ b/drivers/video/cg14.c | |||
| @@ -463,7 +463,7 @@ static void cg14_unmap_regs(struct platform_device *op, struct fb_info *info, | |||
| 463 | info->screen_base, info->fix.smem_len); | 463 | info->screen_base, info->fix.smem_len); |
| 464 | } | 464 | } |
| 465 | 465 | ||
| 466 | static int __devinit cg14_probe(struct platform_device *op, const struct of_device_id *match) | 466 | static int __devinit cg14_probe(struct platform_device *op) |
| 467 | { | 467 | { |
| 468 | struct device_node *dp = op->dev.of_node; | 468 | struct device_node *dp = op->dev.of_node; |
| 469 | struct fb_info *info; | 469 | struct fb_info *info; |
| @@ -595,7 +595,7 @@ static const struct of_device_id cg14_match[] = { | |||
| 595 | }; | 595 | }; |
| 596 | MODULE_DEVICE_TABLE(of, cg14_match); | 596 | MODULE_DEVICE_TABLE(of, cg14_match); |
| 597 | 597 | ||
| 598 | static struct of_platform_driver cg14_driver = { | 598 | static struct platform_driver cg14_driver = { |
| 599 | .driver = { | 599 | .driver = { |
| 600 | .name = "cg14", | 600 | .name = "cg14", |
| 601 | .owner = THIS_MODULE, | 601 | .owner = THIS_MODULE, |
| @@ -610,12 +610,12 @@ static int __init cg14_init(void) | |||
| 610 | if (fb_get_options("cg14fb", NULL)) | 610 | if (fb_get_options("cg14fb", NULL)) |
| 611 | return -ENODEV; | 611 | return -ENODEV; |
| 612 | 612 | ||
| 613 | return of_register_platform_driver(&cg14_driver); | 613 | return platform_driver_register(&cg14_driver); |
| 614 | } | 614 | } |
| 615 | 615 | ||
| 616 | static void __exit cg14_exit(void) | 616 | static void __exit cg14_exit(void) |
| 617 | { | 617 | { |
| 618 | of_unregister_platform_driver(&cg14_driver); | 618 | platform_driver_unregister(&cg14_driver); |
| 619 | } | 619 | } |
| 620 | 620 | ||
| 621 | module_init(cg14_init); | 621 | module_init(cg14_init); |
diff --git a/drivers/video/cg3.c b/drivers/video/cg3.c index 09c0c3c42482..f927a7b1a8d4 100644 --- a/drivers/video/cg3.c +++ b/drivers/video/cg3.c | |||
| @@ -346,8 +346,7 @@ static int __devinit cg3_do_default_mode(struct cg3_par *par) | |||
| 346 | return 0; | 346 | return 0; |
| 347 | } | 347 | } |
| 348 | 348 | ||
| 349 | static int __devinit cg3_probe(struct platform_device *op, | 349 | static int __devinit cg3_probe(struct platform_device *op) |
| 350 | const struct of_device_id *match) | ||
| 351 | { | 350 | { |
| 352 | struct device_node *dp = op->dev.of_node; | 351 | struct device_node *dp = op->dev.of_node; |
| 353 | struct fb_info *info; | 352 | struct fb_info *info; |
| @@ -462,7 +461,7 @@ static const struct of_device_id cg3_match[] = { | |||
| 462 | }; | 461 | }; |
| 463 | MODULE_DEVICE_TABLE(of, cg3_match); | 462 | MODULE_DEVICE_TABLE(of, cg3_match); |
| 464 | 463 | ||
| 465 | static struct of_platform_driver cg3_driver = { | 464 | static struct platform_driver cg3_driver = { |
| 466 | .driver = { | 465 | .driver = { |
| 467 | .name = "cg3", | 466 | .name = "cg3", |
| 468 | .owner = THIS_MODULE, | 467 | .owner = THIS_MODULE, |
| @@ -477,12 +476,12 @@ static int __init cg3_init(void) | |||
| 477 | if (fb_get_options("cg3fb", NULL)) | 476 | if (fb_get_options("cg3fb", NULL)) |
| 478 | return -ENODEV; | 477 | return -ENODEV; |
| 479 | 478 | ||
| 480 | return of_register_platform_driver(&cg3_driver); | 479 | return platform_driver_register(&cg3_driver); |
| 481 | } | 480 | } |
| 482 | 481 | ||
| 483 | static void __exit cg3_exit(void) | 482 | static void __exit cg3_exit(void) |
| 484 | { | 483 | { |
| 485 | of_unregister_platform_driver(&cg3_driver); | 484 | platform_driver_unregister(&cg3_driver); |
| 486 | } | 485 | } |
| 487 | 486 | ||
| 488 | module_init(cg3_init); | 487 | module_init(cg3_init); |
diff --git a/drivers/video/cg6.c b/drivers/video/cg6.c index 2b5a97058b08..4ffad90bde42 100644 --- a/drivers/video/cg6.c +++ b/drivers/video/cg6.c | |||
| @@ -737,8 +737,7 @@ static void cg6_unmap_regs(struct platform_device *op, struct fb_info *info, | |||
| 737 | info->fix.smem_len); | 737 | info->fix.smem_len); |
| 738 | } | 738 | } |
| 739 | 739 | ||
| 740 | static int __devinit cg6_probe(struct platform_device *op, | 740 | static int __devinit cg6_probe(struct platform_device *op) |
| 741 | const struct of_device_id *match) | ||
| 742 | { | 741 | { |
| 743 | struct device_node *dp = op->dev.of_node; | 742 | struct device_node *dp = op->dev.of_node; |
| 744 | struct fb_info *info; | 743 | struct fb_info *info; |
| @@ -855,7 +854,7 @@ static const struct of_device_id cg6_match[] = { | |||
| 855 | }; | 854 | }; |
| 856 | MODULE_DEVICE_TABLE(of, cg6_match); | 855 | MODULE_DEVICE_TABLE(of, cg6_match); |
| 857 | 856 | ||
| 858 | static struct of_platform_driver cg6_driver = { | 857 | static struct platform_driver cg6_driver = { |
| 859 | .driver = { | 858 | .driver = { |
| 860 | .name = "cg6", | 859 | .name = "cg6", |
| 861 | .owner = THIS_MODULE, | 860 | .owner = THIS_MODULE, |
| @@ -870,12 +869,12 @@ static int __init cg6_init(void) | |||
| 870 | if (fb_get_options("cg6fb", NULL)) | 869 | if (fb_get_options("cg6fb", NULL)) |
| 871 | return -ENODEV; | 870 | return -ENODEV; |
| 872 | 871 | ||
| 873 | return of_register_platform_driver(&cg6_driver); | 872 | return platform_driver_register(&cg6_driver); |
| 874 | } | 873 | } |
| 875 | 874 | ||
| 876 | static void __exit cg6_exit(void) | 875 | static void __exit cg6_exit(void) |
| 877 | { | 876 | { |
| 878 | of_unregister_platform_driver(&cg6_driver); | 877 | platform_driver_unregister(&cg6_driver); |
| 879 | } | 878 | } |
| 880 | 879 | ||
| 881 | module_init(cg6_init); | 880 | module_init(cg6_init); |
diff --git a/drivers/video/ffb.c b/drivers/video/ffb.c index 6739b2af3bc0..910c5e6f6702 100644 --- a/drivers/video/ffb.c +++ b/drivers/video/ffb.c | |||
| @@ -893,8 +893,7 @@ static void ffb_init_fix(struct fb_info *info) | |||
| 893 | info->fix.accel = FB_ACCEL_SUN_CREATOR; | 893 | info->fix.accel = FB_ACCEL_SUN_CREATOR; |
| 894 | } | 894 | } |
| 895 | 895 | ||
| 896 | static int __devinit ffb_probe(struct platform_device *op, | 896 | static int __devinit ffb_probe(struct platform_device *op) |
| 897 | const struct of_device_id *match) | ||
| 898 | { | 897 | { |
| 899 | struct device_node *dp = op->dev.of_node; | 898 | struct device_node *dp = op->dev.of_node; |
| 900 | struct ffb_fbc __iomem *fbc; | 899 | struct ffb_fbc __iomem *fbc; |
| @@ -1052,7 +1051,7 @@ static const struct of_device_id ffb_match[] = { | |||
| 1052 | }; | 1051 | }; |
| 1053 | MODULE_DEVICE_TABLE(of, ffb_match); | 1052 | MODULE_DEVICE_TABLE(of, ffb_match); |
| 1054 | 1053 | ||
| 1055 | static struct of_platform_driver ffb_driver = { | 1054 | static struct platform_driver ffb_driver = { |
| 1056 | .driver = { | 1055 | .driver = { |
| 1057 | .name = "ffb", | 1056 | .name = "ffb", |
| 1058 | .owner = THIS_MODULE, | 1057 | .owner = THIS_MODULE, |
| @@ -1067,12 +1066,12 @@ static int __init ffb_init(void) | |||
| 1067 | if (fb_get_options("ffb", NULL)) | 1066 | if (fb_get_options("ffb", NULL)) |
| 1068 | return -ENODEV; | 1067 | return -ENODEV; |
| 1069 | 1068 | ||
| 1070 | return of_register_platform_driver(&ffb_driver); | 1069 | return platform_driver_register(&ffb_driver); |
| 1071 | } | 1070 | } |
| 1072 | 1071 | ||
| 1073 | static void __exit ffb_exit(void) | 1072 | static void __exit ffb_exit(void) |
| 1074 | { | 1073 | { |
| 1075 | of_unregister_platform_driver(&ffb_driver); | 1074 | platform_driver_unregister(&ffb_driver); |
| 1076 | } | 1075 | } |
| 1077 | 1076 | ||
| 1078 | module_init(ffb_init); | 1077 | module_init(ffb_init); |
diff --git a/drivers/video/fsl-diu-fb.c b/drivers/video/fsl-diu-fb.c index 8bbbf08fa3ce..9048f87fa8c1 100644 --- a/drivers/video/fsl-diu-fb.c +++ b/drivers/video/fsl-diu-fb.c | |||
| @@ -1487,8 +1487,7 @@ static ssize_t show_monitor(struct device *device, | |||
| 1487 | return diu_ops.show_monitor_port(machine_data->monitor_port, buf); | 1487 | return diu_ops.show_monitor_port(machine_data->monitor_port, buf); |
| 1488 | } | 1488 | } |
| 1489 | 1489 | ||
| 1490 | static int __devinit fsl_diu_probe(struct platform_device *ofdev, | 1490 | static int __devinit fsl_diu_probe(struct platform_device *ofdev) |
| 1491 | const struct of_device_id *match) | ||
| 1492 | { | 1491 | { |
| 1493 | struct device_node *np = ofdev->dev.of_node; | 1492 | struct device_node *np = ofdev->dev.of_node; |
| 1494 | struct mfb_info *mfbi; | 1493 | struct mfb_info *mfbi; |
| @@ -1735,7 +1734,7 @@ static struct of_device_id fsl_diu_match[] = { | |||
| 1735 | }; | 1734 | }; |
| 1736 | MODULE_DEVICE_TABLE(of, fsl_diu_match); | 1735 | MODULE_DEVICE_TABLE(of, fsl_diu_match); |
| 1737 | 1736 | ||
| 1738 | static struct of_platform_driver fsl_diu_driver = { | 1737 | static struct platform_driver fsl_diu_driver = { |
| 1739 | .driver = { | 1738 | .driver = { |
| 1740 | .name = "fsl_diu", | 1739 | .name = "fsl_diu", |
| 1741 | .owner = THIS_MODULE, | 1740 | .owner = THIS_MODULE, |
| @@ -1797,7 +1796,7 @@ static int __init fsl_diu_init(void) | |||
| 1797 | if (!coherence_data) | 1796 | if (!coherence_data) |
| 1798 | return -ENOMEM; | 1797 | return -ENOMEM; |
| 1799 | #endif | 1798 | #endif |
| 1800 | ret = of_register_platform_driver(&fsl_diu_driver); | 1799 | ret = platform_driver_register(&fsl_diu_driver); |
| 1801 | if (ret) { | 1800 | if (ret) { |
| 1802 | printk(KERN_ERR | 1801 | printk(KERN_ERR |
| 1803 | "fsl-diu: failed to register platform driver\n"); | 1802 | "fsl-diu: failed to register platform driver\n"); |
| @@ -1811,7 +1810,7 @@ static int __init fsl_diu_init(void) | |||
| 1811 | 1810 | ||
| 1812 | static void __exit fsl_diu_exit(void) | 1811 | static void __exit fsl_diu_exit(void) |
| 1813 | { | 1812 | { |
| 1814 | of_unregister_platform_driver(&fsl_diu_driver); | 1813 | platform_driver_unregister(&fsl_diu_driver); |
| 1815 | #if defined(CONFIG_NOT_COHERENT_CACHE) | 1814 | #if defined(CONFIG_NOT_COHERENT_CACHE) |
| 1816 | vfree(coherence_data); | 1815 | vfree(coherence_data); |
| 1817 | #endif | 1816 | #endif |
diff --git a/drivers/video/leo.c b/drivers/video/leo.c index b599e5e36ced..9e946e2c1da9 100644 --- a/drivers/video/leo.c +++ b/drivers/video/leo.c | |||
| @@ -547,8 +547,7 @@ static void leo_unmap_regs(struct platform_device *op, struct fb_info *info, | |||
| 547 | of_iounmap(&op->resource[0], info->screen_base, 0x800000); | 547 | of_iounmap(&op->resource[0], info->screen_base, 0x800000); |
| 548 | } | 548 | } |
| 549 | 549 | ||
| 550 | static int __devinit leo_probe(struct platform_device *op, | 550 | static int __devinit leo_probe(struct platform_device *op) |
| 551 | const struct of_device_id *match) | ||
| 552 | { | 551 | { |
| 553 | struct device_node *dp = op->dev.of_node; | 552 | struct device_node *dp = op->dev.of_node; |
| 554 | struct fb_info *info; | 553 | struct fb_info *info; |
| @@ -662,7 +661,7 @@ static const struct of_device_id leo_match[] = { | |||
| 662 | }; | 661 | }; |
| 663 | MODULE_DEVICE_TABLE(of, leo_match); | 662 | MODULE_DEVICE_TABLE(of, leo_match); |
| 664 | 663 | ||
| 665 | static struct of_platform_driver leo_driver = { | 664 | static struct platform_driver leo_driver = { |
| 666 | .driver = { | 665 | .driver = { |
| 667 | .name = "leo", | 666 | .name = "leo", |
| 668 | .owner = THIS_MODULE, | 667 | .owner = THIS_MODULE, |
| @@ -677,12 +676,12 @@ static int __init leo_init(void) | |||
| 677 | if (fb_get_options("leofb", NULL)) | 676 | if (fb_get_options("leofb", NULL)) |
| 678 | return -ENODEV; | 677 | return -ENODEV; |
| 679 | 678 | ||
| 680 | return of_register_platform_driver(&leo_driver); | 679 | return platform_driver_register(&leo_driver); |
| 681 | } | 680 | } |
| 682 | 681 | ||
| 683 | static void __exit leo_exit(void) | 682 | static void __exit leo_exit(void) |
| 684 | { | 683 | { |
| 685 | of_unregister_platform_driver(&leo_driver); | 684 | platform_driver_unregister(&leo_driver); |
| 686 | } | 685 | } |
| 687 | 686 | ||
| 688 | module_init(leo_init); | 687 | module_init(leo_init); |
diff --git a/drivers/video/mb862xx/mb862xxfb.c b/drivers/video/mb862xx/mb862xxfb.c index b1c4374cf940..c76e663a6cd4 100644 --- a/drivers/video/mb862xx/mb862xxfb.c +++ b/drivers/video/mb862xx/mb862xxfb.c | |||
| @@ -550,8 +550,7 @@ static int mb862xx_gdc_init(struct mb862xxfb_par *par) | |||
| 550 | return 0; | 550 | return 0; |
| 551 | } | 551 | } |
| 552 | 552 | ||
| 553 | static int __devinit of_platform_mb862xx_probe(struct platform_device *ofdev, | 553 | static int __devinit of_platform_mb862xx_probe(struct platform_device *ofdev) |
| 554 | const struct of_device_id *id) | ||
| 555 | { | 554 | { |
| 556 | struct device_node *np = ofdev->dev.of_node; | 555 | struct device_node *np = ofdev->dev.of_node; |
| 557 | struct device *dev = &ofdev->dev; | 556 | struct device *dev = &ofdev->dev; |
| @@ -717,7 +716,7 @@ static struct of_device_id __devinitdata of_platform_mb862xx_tbl[] = { | |||
| 717 | { /* end */ } | 716 | { /* end */ } |
| 718 | }; | 717 | }; |
| 719 | 718 | ||
| 720 | static struct of_platform_driver of_platform_mb862xxfb_driver = { | 719 | static struct platform_driver of_platform_mb862xxfb_driver = { |
| 721 | .driver = { | 720 | .driver = { |
| 722 | .name = DRV_NAME, | 721 | .name = DRV_NAME, |
| 723 | .owner = THIS_MODULE, | 722 | .owner = THIS_MODULE, |
| @@ -1038,7 +1037,7 @@ static int __devinit mb862xxfb_init(void) | |||
| 1038 | int ret = -ENODEV; | 1037 | int ret = -ENODEV; |
| 1039 | 1038 | ||
| 1040 | #if defined(CONFIG_FB_MB862XX_LIME) | 1039 | #if defined(CONFIG_FB_MB862XX_LIME) |
| 1041 | ret = of_register_platform_driver(&of_platform_mb862xxfb_driver); | 1040 | ret = platform_driver_register(&of_platform_mb862xxfb_driver); |
| 1042 | #endif | 1041 | #endif |
| 1043 | #if defined(CONFIG_FB_MB862XX_PCI_GDC) | 1042 | #if defined(CONFIG_FB_MB862XX_PCI_GDC) |
| 1044 | ret = pci_register_driver(&mb862xxfb_pci_driver); | 1043 | ret = pci_register_driver(&mb862xxfb_pci_driver); |
| @@ -1049,7 +1048,7 @@ static int __devinit mb862xxfb_init(void) | |||
| 1049 | static void __exit mb862xxfb_exit(void) | 1048 | static void __exit mb862xxfb_exit(void) |
| 1050 | { | 1049 | { |
| 1051 | #if defined(CONFIG_FB_MB862XX_LIME) | 1050 | #if defined(CONFIG_FB_MB862XX_LIME) |
| 1052 | of_unregister_platform_driver(&of_platform_mb862xxfb_driver); | 1051 | platform_driver_unregister(&of_platform_mb862xxfb_driver); |
| 1053 | #endif | 1052 | #endif |
| 1054 | #if defined(CONFIG_FB_MB862XX_PCI_GDC) | 1053 | #if defined(CONFIG_FB_MB862XX_PCI_GDC) |
| 1055 | pci_unregister_driver(&mb862xxfb_pci_driver); | 1054 | pci_unregister_driver(&mb862xxfb_pci_driver); |
diff --git a/drivers/video/p9100.c b/drivers/video/p9100.c index b6c3fc2db632..d57cc58c5168 100644 --- a/drivers/video/p9100.c +++ b/drivers/video/p9100.c | |||
| @@ -249,7 +249,7 @@ static void p9100_init_fix(struct fb_info *info, int linebytes, struct device_no | |||
| 249 | info->fix.accel = FB_ACCEL_SUN_CGTHREE; | 249 | info->fix.accel = FB_ACCEL_SUN_CGTHREE; |
| 250 | } | 250 | } |
| 251 | 251 | ||
| 252 | static int __devinit p9100_probe(struct platform_device *op, const struct of_device_id *match) | 252 | static int __devinit p9100_probe(struct platform_device *op) |
| 253 | { | 253 | { |
| 254 | struct device_node *dp = op->dev.of_node; | 254 | struct device_node *dp = op->dev.of_node; |
| 255 | struct fb_info *info; | 255 | struct fb_info *info; |
| @@ -352,7 +352,7 @@ static const struct of_device_id p9100_match[] = { | |||
| 352 | }; | 352 | }; |
| 353 | MODULE_DEVICE_TABLE(of, p9100_match); | 353 | MODULE_DEVICE_TABLE(of, p9100_match); |
| 354 | 354 | ||
| 355 | static struct of_platform_driver p9100_driver = { | 355 | static struct platform_driver p9100_driver = { |
| 356 | .driver = { | 356 | .driver = { |
| 357 | .name = "p9100", | 357 | .name = "p9100", |
| 358 | .owner = THIS_MODULE, | 358 | .owner = THIS_MODULE, |
| @@ -367,12 +367,12 @@ static int __init p9100_init(void) | |||
| 367 | if (fb_get_options("p9100fb", NULL)) | 367 | if (fb_get_options("p9100fb", NULL)) |
| 368 | return -ENODEV; | 368 | return -ENODEV; |
| 369 | 369 | ||
| 370 | return of_register_platform_driver(&p9100_driver); | 370 | return platform_driver_register(&p9100_driver); |
| 371 | } | 371 | } |
| 372 | 372 | ||
| 373 | static void __exit p9100_exit(void) | 373 | static void __exit p9100_exit(void) |
| 374 | { | 374 | { |
| 375 | of_unregister_platform_driver(&p9100_driver); | 375 | platform_driver_unregister(&p9100_driver); |
| 376 | } | 376 | } |
| 377 | 377 | ||
| 378 | module_init(p9100_init); | 378 | module_init(p9100_init); |
diff --git a/drivers/video/platinumfb.c b/drivers/video/platinumfb.c index a50e1977b316..ef532d9d3c99 100644 --- a/drivers/video/platinumfb.c +++ b/drivers/video/platinumfb.c | |||
| @@ -533,8 +533,7 @@ static int __init platinumfb_setup(char *options) | |||
| 533 | #define invalidate_cache(addr) | 533 | #define invalidate_cache(addr) |
| 534 | #endif | 534 | #endif |
| 535 | 535 | ||
| 536 | static int __devinit platinumfb_probe(struct platform_device* odev, | 536 | static int __devinit platinumfb_probe(struct platform_device* odev) |
| 537 | const struct of_device_id *match) | ||
| 538 | { | 537 | { |
| 539 | struct device_node *dp = odev->dev.of_node; | 538 | struct device_node *dp = odev->dev.of_node; |
| 540 | struct fb_info *info; | 539 | struct fb_info *info; |
| @@ -677,7 +676,7 @@ static struct of_device_id platinumfb_match[] = | |||
| 677 | {}, | 676 | {}, |
| 678 | }; | 677 | }; |
| 679 | 678 | ||
| 680 | static struct of_platform_driver platinum_driver = | 679 | static struct platform_driver platinum_driver = |
| 681 | { | 680 | { |
| 682 | .driver = { | 681 | .driver = { |
| 683 | .name = "platinumfb", | 682 | .name = "platinumfb", |
| @@ -697,14 +696,14 @@ static int __init platinumfb_init(void) | |||
| 697 | return -ENODEV; | 696 | return -ENODEV; |
| 698 | platinumfb_setup(option); | 697 | platinumfb_setup(option); |
| 699 | #endif | 698 | #endif |
| 700 | of_register_platform_driver(&platinum_driver); | 699 | platform_driver_register(&platinum_driver); |
| 701 | 700 | ||
| 702 | return 0; | 701 | return 0; |
| 703 | } | 702 | } |
| 704 | 703 | ||
| 705 | static void __exit platinumfb_exit(void) | 704 | static void __exit platinumfb_exit(void) |
| 706 | { | 705 | { |
| 707 | of_unregister_platform_driver(&platinum_driver); | 706 | platform_driver_unregister(&platinum_driver); |
| 708 | } | 707 | } |
| 709 | 708 | ||
| 710 | MODULE_LICENSE("GPL"); | 709 | MODULE_LICENSE("GPL"); |
diff --git a/drivers/video/sunxvr1000.c b/drivers/video/sunxvr1000.c index 5dbe06af2226..b7f27acaf817 100644 --- a/drivers/video/sunxvr1000.c +++ b/drivers/video/sunxvr1000.c | |||
| @@ -111,8 +111,7 @@ static int __devinit gfb_set_fbinfo(struct gfb_info *gp) | |||
| 111 | return 0; | 111 | return 0; |
| 112 | } | 112 | } |
| 113 | 113 | ||
| 114 | static int __devinit gfb_probe(struct platform_device *op, | 114 | static int __devinit gfb_probe(struct platform_device *op) |
| 115 | const struct of_device_id *match) | ||
| 116 | { | 115 | { |
| 117 | struct device_node *dp = op->dev.of_node; | 116 | struct device_node *dp = op->dev.of_node; |
| 118 | struct fb_info *info; | 117 | struct fb_info *info; |
| @@ -198,7 +197,7 @@ static const struct of_device_id gfb_match[] = { | |||
| 198 | }; | 197 | }; |
| 199 | MODULE_DEVICE_TABLE(of, ffb_match); | 198 | MODULE_DEVICE_TABLE(of, ffb_match); |
| 200 | 199 | ||
| 201 | static struct of_platform_driver gfb_driver = { | 200 | static struct platform_driver gfb_driver = { |
| 202 | .probe = gfb_probe, | 201 | .probe = gfb_probe, |
| 203 | .remove = __devexit_p(gfb_remove), | 202 | .remove = __devexit_p(gfb_remove), |
| 204 | .driver = { | 203 | .driver = { |
| @@ -213,12 +212,12 @@ static int __init gfb_init(void) | |||
| 213 | if (fb_get_options("gfb", NULL)) | 212 | if (fb_get_options("gfb", NULL)) |
| 214 | return -ENODEV; | 213 | return -ENODEV; |
| 215 | 214 | ||
| 216 | return of_register_platform_driver(&gfb_driver); | 215 | return platform_driver_register(&gfb_driver); |
| 217 | } | 216 | } |
| 218 | 217 | ||
| 219 | static void __exit gfb_exit(void) | 218 | static void __exit gfb_exit(void) |
| 220 | { | 219 | { |
| 221 | of_unregister_platform_driver(&gfb_driver); | 220 | platform_driver_unregister(&gfb_driver); |
| 222 | } | 221 | } |
| 223 | 222 | ||
| 224 | module_init(gfb_init); | 223 | module_init(gfb_init); |
diff --git a/drivers/video/tcx.c b/drivers/video/tcx.c index 77ad27955cf0..855b71993f61 100644 --- a/drivers/video/tcx.c +++ b/drivers/video/tcx.c | |||
| @@ -362,8 +362,7 @@ static void tcx_unmap_regs(struct platform_device *op, struct fb_info *info, | |||
| 362 | info->screen_base, info->fix.smem_len); | 362 | info->screen_base, info->fix.smem_len); |
| 363 | } | 363 | } |
| 364 | 364 | ||
| 365 | static int __devinit tcx_probe(struct platform_device *op, | 365 | static int __devinit tcx_probe(struct platform_device *op) |
| 366 | const struct of_device_id *match) | ||
| 367 | { | 366 | { |
| 368 | struct device_node *dp = op->dev.of_node; | 367 | struct device_node *dp = op->dev.of_node; |
| 369 | struct fb_info *info; | 368 | struct fb_info *info; |
| @@ -511,7 +510,7 @@ static const struct of_device_id tcx_match[] = { | |||
| 511 | }; | 510 | }; |
| 512 | MODULE_DEVICE_TABLE(of, tcx_match); | 511 | MODULE_DEVICE_TABLE(of, tcx_match); |
| 513 | 512 | ||
| 514 | static struct of_platform_driver tcx_driver = { | 513 | static struct platform_driver tcx_driver = { |
| 515 | .driver = { | 514 | .driver = { |
| 516 | .name = "tcx", | 515 | .name = "tcx", |
| 517 | .owner = THIS_MODULE, | 516 | .owner = THIS_MODULE, |
| @@ -526,12 +525,12 @@ static int __init tcx_init(void) | |||
| 526 | if (fb_get_options("tcxfb", NULL)) | 525 | if (fb_get_options("tcxfb", NULL)) |
| 527 | return -ENODEV; | 526 | return -ENODEV; |
| 528 | 527 | ||
| 529 | return of_register_platform_driver(&tcx_driver); | 528 | return platform_driver_register(&tcx_driver); |
| 530 | } | 529 | } |
| 531 | 530 | ||
| 532 | static void __exit tcx_exit(void) | 531 | static void __exit tcx_exit(void) |
| 533 | { | 532 | { |
| 534 | of_unregister_platform_driver(&tcx_driver); | 533 | platform_driver_unregister(&tcx_driver); |
| 535 | } | 534 | } |
| 536 | 535 | ||
| 537 | module_init(tcx_init); | 536 | module_init(tcx_init); |
diff --git a/drivers/video/xilinxfb.c b/drivers/video/xilinxfb.c index 68bd23476c64..77dea015ff69 100644 --- a/drivers/video/xilinxfb.c +++ b/drivers/video/xilinxfb.c | |||
| @@ -404,8 +404,7 @@ static int xilinxfb_release(struct device *dev) | |||
| 404 | * OF bus binding | 404 | * OF bus binding |
| 405 | */ | 405 | */ |
| 406 | 406 | ||
| 407 | static int __devinit | 407 | static int __devinit xilinxfb_of_probe(struct platform_device *op) |
| 408 | xilinxfb_of_probe(struct platform_device *op, const struct of_device_id *match) | ||
| 409 | { | 408 | { |
| 410 | const u32 *prop; | 409 | const u32 *prop; |
| 411 | u32 *p; | 410 | u32 *p; |
| @@ -418,8 +417,6 @@ xilinxfb_of_probe(struct platform_device *op, const struct of_device_id *match) | |||
| 418 | /* Copy with the default pdata (not a ptr reference!) */ | 417 | /* Copy with the default pdata (not a ptr reference!) */ |
| 419 | pdata = xilinx_fb_default_pdata; | 418 | pdata = xilinx_fb_default_pdata; |
| 420 | 419 | ||
| 421 | dev_dbg(&op->dev, "xilinxfb_of_probe(%p, %p)\n", op, match); | ||
| 422 | |||
| 423 | /* Allocate the driver data region */ | 420 | /* Allocate the driver data region */ |
| 424 | drvdata = kzalloc(sizeof(*drvdata), GFP_KERNEL); | 421 | drvdata = kzalloc(sizeof(*drvdata), GFP_KERNEL); |
| 425 | if (!drvdata) { | 422 | if (!drvdata) { |
| @@ -505,7 +502,7 @@ static struct of_device_id xilinxfb_of_match[] __devinitdata = { | |||
| 505 | }; | 502 | }; |
| 506 | MODULE_DEVICE_TABLE(of, xilinxfb_of_match); | 503 | MODULE_DEVICE_TABLE(of, xilinxfb_of_match); |
| 507 | 504 | ||
| 508 | static struct of_platform_driver xilinxfb_of_driver = { | 505 | static struct platform_driver xilinxfb_of_driver = { |
| 509 | .probe = xilinxfb_of_probe, | 506 | .probe = xilinxfb_of_probe, |
| 510 | .remove = __devexit_p(xilinxfb_of_remove), | 507 | .remove = __devexit_p(xilinxfb_of_remove), |
| 511 | .driver = { | 508 | .driver = { |
| @@ -523,13 +520,13 @@ static struct of_platform_driver xilinxfb_of_driver = { | |||
| 523 | static int __init | 520 | static int __init |
| 524 | xilinxfb_init(void) | 521 | xilinxfb_init(void) |
| 525 | { | 522 | { |
| 526 | return of_register_platform_driver(&xilinxfb_of_driver); | 523 | return platform_driver_register(&xilinxfb_of_driver); |
| 527 | } | 524 | } |
| 528 | 525 | ||
| 529 | static void __exit | 526 | static void __exit |
| 530 | xilinxfb_cleanup(void) | 527 | xilinxfb_cleanup(void) |
| 531 | { | 528 | { |
| 532 | of_unregister_platform_driver(&xilinxfb_of_driver); | 529 | platform_driver_unregister(&xilinxfb_of_driver); |
| 533 | } | 530 | } |
| 534 | 531 | ||
| 535 | module_init(xilinxfb_init); | 532 | module_init(xilinxfb_init); |
diff --git a/drivers/watchdog/cpwd.c b/drivers/watchdog/cpwd.c index 3de4ba0260a5..65911678453d 100644 --- a/drivers/watchdog/cpwd.c +++ b/drivers/watchdog/cpwd.c | |||
| @@ -528,8 +528,7 @@ static const struct file_operations cpwd_fops = { | |||
| 528 | .llseek = no_llseek, | 528 | .llseek = no_llseek, |
| 529 | }; | 529 | }; |
| 530 | 530 | ||
| 531 | static int __devinit cpwd_probe(struct platform_device *op, | 531 | static int __devinit cpwd_probe(struct platform_device *op) |
| 532 | const struct of_device_id *match) | ||
| 533 | { | 532 | { |
| 534 | struct device_node *options; | 533 | struct device_node *options; |
| 535 | const char *str_prop; | 534 | const char *str_prop; |
| @@ -678,7 +677,7 @@ static const struct of_device_id cpwd_match[] = { | |||
| 678 | }; | 677 | }; |
| 679 | MODULE_DEVICE_TABLE(of, cpwd_match); | 678 | MODULE_DEVICE_TABLE(of, cpwd_match); |
| 680 | 679 | ||
| 681 | static struct of_platform_driver cpwd_driver = { | 680 | static struct platform_driver cpwd_driver = { |
| 682 | .driver = { | 681 | .driver = { |
| 683 | .name = DRIVER_NAME, | 682 | .name = DRIVER_NAME, |
| 684 | .owner = THIS_MODULE, | 683 | .owner = THIS_MODULE, |
| @@ -690,12 +689,12 @@ static struct of_platform_driver cpwd_driver = { | |||
| 690 | 689 | ||
| 691 | static int __init cpwd_init(void) | 690 | static int __init cpwd_init(void) |
| 692 | { | 691 | { |
| 693 | return of_register_platform_driver(&cpwd_driver); | 692 | return platform_driver_register(&cpwd_driver); |
| 694 | } | 693 | } |
| 695 | 694 | ||
| 696 | static void __exit cpwd_exit(void) | 695 | static void __exit cpwd_exit(void) |
| 697 | { | 696 | { |
| 698 | of_unregister_platform_driver(&cpwd_driver); | 697 | platform_driver_unregister(&cpwd_driver); |
| 699 | } | 698 | } |
| 700 | 699 | ||
| 701 | module_init(cpwd_init); | 700 | module_init(cpwd_init); |
diff --git a/drivers/watchdog/gef_wdt.c b/drivers/watchdog/gef_wdt.c index f6bd6f10fcec..29a7cd4b90c8 100644 --- a/drivers/watchdog/gef_wdt.c +++ b/drivers/watchdog/gef_wdt.c | |||
| @@ -261,8 +261,7 @@ static struct miscdevice gef_wdt_miscdev = { | |||
| 261 | }; | 261 | }; |
| 262 | 262 | ||
| 263 | 263 | ||
| 264 | static int __devinit gef_wdt_probe(struct platform_device *dev, | 264 | static int __devinit gef_wdt_probe(struct platform_device *dev) |
| 265 | const struct of_device_id *match) | ||
| 266 | { | 265 | { |
| 267 | int timeout = 10; | 266 | int timeout = 10; |
| 268 | u32 freq; | 267 | u32 freq; |
| @@ -303,7 +302,7 @@ static const struct of_device_id gef_wdt_ids[] = { | |||
| 303 | {}, | 302 | {}, |
| 304 | }; | 303 | }; |
| 305 | 304 | ||
| 306 | static struct of_platform_driver gef_wdt_driver = { | 305 | static struct platform_driver gef_wdt_driver = { |
| 307 | .driver = { | 306 | .driver = { |
| 308 | .name = "gef_wdt", | 307 | .name = "gef_wdt", |
| 309 | .owner = THIS_MODULE, | 308 | .owner = THIS_MODULE, |
| @@ -315,12 +314,12 @@ static struct of_platform_driver gef_wdt_driver = { | |||
| 315 | static int __init gef_wdt_init(void) | 314 | static int __init gef_wdt_init(void) |
| 316 | { | 315 | { |
| 317 | printk(KERN_INFO "GE watchdog driver\n"); | 316 | printk(KERN_INFO "GE watchdog driver\n"); |
| 318 | return of_register_platform_driver(&gef_wdt_driver); | 317 | return platform_driver_register(&gef_wdt_driver); |
| 319 | } | 318 | } |
| 320 | 319 | ||
| 321 | static void __exit gef_wdt_exit(void) | 320 | static void __exit gef_wdt_exit(void) |
| 322 | { | 321 | { |
| 323 | of_unregister_platform_driver(&gef_wdt_driver); | 322 | platform_driver_unregister(&gef_wdt_driver); |
| 324 | } | 323 | } |
| 325 | 324 | ||
| 326 | module_init(gef_wdt_init); | 325 | module_init(gef_wdt_init); |
diff --git a/drivers/watchdog/mpc8xxx_wdt.c b/drivers/watchdog/mpc8xxx_wdt.c index 8fa213cdb499..ea438ad53055 100644 --- a/drivers/watchdog/mpc8xxx_wdt.c +++ b/drivers/watchdog/mpc8xxx_wdt.c | |||
| @@ -185,15 +185,18 @@ static struct miscdevice mpc8xxx_wdt_miscdev = { | |||
| 185 | .fops = &mpc8xxx_wdt_fops, | 185 | .fops = &mpc8xxx_wdt_fops, |
| 186 | }; | 186 | }; |
| 187 | 187 | ||
| 188 | static int __devinit mpc8xxx_wdt_probe(struct platform_device *ofdev, | 188 | static int __devinit mpc8xxx_wdt_probe(struct platform_device *ofdev) |
| 189 | const struct of_device_id *match) | ||
| 190 | { | 189 | { |
| 191 | int ret; | 190 | int ret; |
| 192 | struct device_node *np = ofdev->dev.of_node; | 191 | struct device_node *np = ofdev->dev.of_node; |
| 193 | struct mpc8xxx_wdt_type *wdt_type = match->data; | 192 | struct mpc8xxx_wdt_type *wdt_type; |
| 194 | u32 freq = fsl_get_sys_freq(); | 193 | u32 freq = fsl_get_sys_freq(); |
| 195 | bool enabled; | 194 | bool enabled; |
| 196 | 195 | ||
| 196 | if (!ofdev->dev.of_match) | ||
| 197 | return -EINVAL; | ||
| 198 | wdt_type = match->data; | ||
| 199 | |||
| 197 | if (!freq || freq == -1) | 200 | if (!freq || freq == -1) |
| 198 | return -EINVAL; | 201 | return -EINVAL; |
| 199 | 202 | ||
| @@ -272,7 +275,7 @@ static const struct of_device_id mpc8xxx_wdt_match[] = { | |||
| 272 | }; | 275 | }; |
| 273 | MODULE_DEVICE_TABLE(of, mpc8xxx_wdt_match); | 276 | MODULE_DEVICE_TABLE(of, mpc8xxx_wdt_match); |
| 274 | 277 | ||
| 275 | static struct of_platform_driver mpc8xxx_wdt_driver = { | 278 | static struct platform_driver mpc8xxx_wdt_driver = { |
| 276 | .probe = mpc8xxx_wdt_probe, | 279 | .probe = mpc8xxx_wdt_probe, |
| 277 | .remove = __devexit_p(mpc8xxx_wdt_remove), | 280 | .remove = __devexit_p(mpc8xxx_wdt_remove), |
| 278 | .driver = { | 281 | .driver = { |
| @@ -308,13 +311,13 @@ module_init(mpc8xxx_wdt_init_late); | |||
| 308 | 311 | ||
| 309 | static int __init mpc8xxx_wdt_init(void) | 312 | static int __init mpc8xxx_wdt_init(void) |
| 310 | { | 313 | { |
| 311 | return of_register_platform_driver(&mpc8xxx_wdt_driver); | 314 | return platform_driver_register(&mpc8xxx_wdt_driver); |
| 312 | } | 315 | } |
| 313 | arch_initcall(mpc8xxx_wdt_init); | 316 | arch_initcall(mpc8xxx_wdt_init); |
| 314 | 317 | ||
| 315 | static void __exit mpc8xxx_wdt_exit(void) | 318 | static void __exit mpc8xxx_wdt_exit(void) |
| 316 | { | 319 | { |
| 317 | of_unregister_platform_driver(&mpc8xxx_wdt_driver); | 320 | platform_driver_unregister(&mpc8xxx_wdt_driver); |
| 318 | } | 321 | } |
| 319 | module_exit(mpc8xxx_wdt_exit); | 322 | module_exit(mpc8xxx_wdt_exit); |
| 320 | 323 | ||
diff --git a/drivers/watchdog/riowd.c b/drivers/watchdog/riowd.c index 3faee1ae64bd..109b533896b7 100644 --- a/drivers/watchdog/riowd.c +++ b/drivers/watchdog/riowd.c | |||
| @@ -172,8 +172,7 @@ static struct miscdevice riowd_miscdev = { | |||
| 172 | .fops = &riowd_fops | 172 | .fops = &riowd_fops |
| 173 | }; | 173 | }; |
| 174 | 174 | ||
| 175 | static int __devinit riowd_probe(struct platform_device *op, | 175 | static int __devinit riowd_probe(struct platform_device *op) |
| 176 | const struct of_device_id *match) | ||
| 177 | { | 176 | { |
| 178 | struct riowd *p; | 177 | struct riowd *p; |
| 179 | int err = -EINVAL; | 178 | int err = -EINVAL; |
| @@ -238,7 +237,7 @@ static const struct of_device_id riowd_match[] = { | |||
| 238 | }; | 237 | }; |
| 239 | MODULE_DEVICE_TABLE(of, riowd_match); | 238 | MODULE_DEVICE_TABLE(of, riowd_match); |
| 240 | 239 | ||
| 241 | static struct of_platform_driver riowd_driver = { | 240 | static struct platform_driver riowd_driver = { |
| 242 | .driver = { | 241 | .driver = { |
| 243 | .name = DRIVER_NAME, | 242 | .name = DRIVER_NAME, |
| 244 | .owner = THIS_MODULE, | 243 | .owner = THIS_MODULE, |
| @@ -250,12 +249,12 @@ static struct of_platform_driver riowd_driver = { | |||
| 250 | 249 | ||
| 251 | static int __init riowd_init(void) | 250 | static int __init riowd_init(void) |
| 252 | { | 251 | { |
| 253 | return of_register_platform_driver(&riowd_driver); | 252 | return platform_driver_register(&riowd_driver); |
| 254 | } | 253 | } |
| 255 | 254 | ||
| 256 | static void __exit riowd_exit(void) | 255 | static void __exit riowd_exit(void) |
| 257 | { | 256 | { |
| 258 | of_unregister_platform_driver(&riowd_driver); | 257 | platform_driver_unregister(&riowd_driver); |
| 259 | } | 258 | } |
| 260 | 259 | ||
| 261 | module_init(riowd_init); | 260 | module_init(riowd_init); |
diff --git a/include/linux/device.h b/include/linux/device.h index dba775a68752..144ec135875f 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
| @@ -442,6 +442,7 @@ struct device { | |||
| 442 | struct dev_archdata archdata; | 442 | struct dev_archdata archdata; |
| 443 | 443 | ||
| 444 | struct device_node *of_node; /* associated device tree node */ | 444 | struct device_node *of_node; /* associated device tree node */ |
| 445 | const struct of_device_id *of_match; /* matching of_device_id from driver */ | ||
| 445 | 446 | ||
| 446 | dev_t devt; /* dev_t, creates the sysfs "dev" */ | 447 | dev_t devt; /* dev_t, creates the sysfs "dev" */ |
| 447 | 448 | ||
diff --git a/include/linux/of.h b/include/linux/of.h index 266db1d0baa9..bfc0ed1b0ced 100644 --- a/include/linux/of.h +++ b/include/linux/of.h | |||
| @@ -108,7 +108,7 @@ extern void of_node_put(struct device_node *node); | |||
| 108 | #endif | 108 | #endif |
| 109 | 109 | ||
| 110 | /* | 110 | /* |
| 111 | * OF address retreival & translation | 111 | * OF address retrieval & translation |
| 112 | */ | 112 | */ |
| 113 | 113 | ||
| 114 | /* Helper to read a big number; size is in cells (not bytes) */ | 114 | /* Helper to read a big number; size is in cells (not bytes) */ |
diff --git a/include/linux/of_device.h b/include/linux/of_device.h index 975d347079d9..8bfe6c1d4365 100644 --- a/include/linux/of_device.h +++ b/include/linux/of_device.h | |||
| @@ -18,10 +18,11 @@ extern void of_device_make_bus_id(struct device *dev); | |||
| 18 | * @drv: the device_driver structure to test | 18 | * @drv: the device_driver structure to test |
| 19 | * @dev: the device structure to match against | 19 | * @dev: the device structure to match against |
| 20 | */ | 20 | */ |
| 21 | static inline int of_driver_match_device(const struct device *dev, | 21 | static inline int of_driver_match_device(struct device *dev, |
| 22 | const struct device_driver *drv) | 22 | const struct device_driver *drv) |
| 23 | { | 23 | { |
| 24 | return of_match_device(drv->of_match_table, dev) != NULL; | 24 | dev->of_match = of_match_device(drv->of_match_table, dev); |
| 25 | return dev->of_match != NULL; | ||
| 25 | } | 26 | } |
| 26 | 27 | ||
| 27 | extern struct platform_device *of_dev_get(struct platform_device *dev); | 28 | extern struct platform_device *of_dev_get(struct platform_device *dev); |
diff --git a/include/linux/of_platform.h b/include/linux/of_platform.h index a68716ad38ce..17c7e21c0bd7 100644 --- a/include/linux/of_platform.h +++ b/include/linux/of_platform.h | |||
| @@ -23,13 +23,7 @@ | |||
| 23 | * of_platform_driver - Legacy of-aware driver for platform devices. | 23 | * of_platform_driver - Legacy of-aware driver for platform devices. |
| 24 | * | 24 | * |
| 25 | * An of_platform_driver driver is attached to a basic platform_device on | 25 | * An of_platform_driver driver is attached to a basic platform_device on |
| 26 | * ether the "platform bus" (platform_bus_type), or the ibm ebus | 26 | * the ibm ebus (ibmebus_bus_type). |
| 27 | * (ibmebus_bus_type). | ||
| 28 | * | ||
| 29 | * of_platform_driver is being phased out when used with the platform_bus_type, | ||
| 30 | * and regular platform_drivers should be used instead. When the transition | ||
| 31 | * is complete, only ibmebus will be using this structure, and the | ||
| 32 | * platform_driver member of this structure will be removed. | ||
| 33 | */ | 27 | */ |
| 34 | struct of_platform_driver | 28 | struct of_platform_driver |
| 35 | { | 29 | { |
| @@ -42,26 +36,16 @@ struct of_platform_driver | |||
| 42 | int (*shutdown)(struct platform_device* dev); | 36 | int (*shutdown)(struct platform_device* dev); |
| 43 | 37 | ||
| 44 | struct device_driver driver; | 38 | struct device_driver driver; |
| 45 | struct platform_driver platform_driver; | ||
| 46 | }; | 39 | }; |
| 47 | #define to_of_platform_driver(drv) \ | 40 | #define to_of_platform_driver(drv) \ |
| 48 | container_of(drv,struct of_platform_driver, driver) | 41 | container_of(drv,struct of_platform_driver, driver) |
| 49 | 42 | ||
| 50 | extern int of_register_driver(struct of_platform_driver *drv, | ||
| 51 | struct bus_type *bus); | ||
| 52 | extern void of_unregister_driver(struct of_platform_driver *drv); | ||
| 53 | |||
| 54 | /* Platform drivers register/unregister */ | 43 | /* Platform drivers register/unregister */ |
| 55 | extern int of_register_platform_driver(struct of_platform_driver *drv); | ||
| 56 | extern void of_unregister_platform_driver(struct of_platform_driver *drv); | ||
| 57 | |||
| 58 | extern struct platform_device *of_device_alloc(struct device_node *np, | 44 | extern struct platform_device *of_device_alloc(struct device_node *np, |
| 59 | const char *bus_id, | 45 | const char *bus_id, |
| 60 | struct device *parent); | 46 | struct device *parent); |
| 61 | extern struct platform_device *of_find_device_by_node(struct device_node *np); | 47 | extern struct platform_device *of_find_device_by_node(struct device_node *np); |
| 62 | 48 | ||
| 63 | extern int of_bus_type_init(struct bus_type *bus, const char *name); | ||
| 64 | |||
| 65 | #if !defined(CONFIG_SPARC) /* SPARC has its own device registration method */ | 49 | #if !defined(CONFIG_SPARC) /* SPARC has its own device registration method */ |
| 66 | /* Platform devices and busses creation */ | 50 | /* Platform devices and busses creation */ |
| 67 | extern struct platform_device *of_platform_device_create(struct device_node *np, | 51 | extern struct platform_device *of_platform_device_create(struct device_node *np, |
diff --git a/sound/soc/fsl/fsl_dma.c b/sound/soc/fsl/fsl_dma.c index 4cf98c03af22..15dac0f20cd8 100644 --- a/sound/soc/fsl/fsl_dma.c +++ b/sound/soc/fsl/fsl_dma.c | |||
| @@ -896,8 +896,7 @@ static struct snd_pcm_ops fsl_dma_ops = { | |||
| 896 | .pointer = fsl_dma_pointer, | 896 | .pointer = fsl_dma_pointer, |
| 897 | }; | 897 | }; |
| 898 | 898 | ||
| 899 | static int __devinit fsl_soc_dma_probe(struct platform_device *pdev, | 899 | static int __devinit fsl_soc_dma_probe(struct platform_device *pdev) |
| 900 | const struct of_device_id *match) | ||
| 901 | { | 900 | { |
| 902 | struct dma_object *dma; | 901 | struct dma_object *dma; |
| 903 | struct device_node *np = pdev->dev.of_node; | 902 | struct device_node *np = pdev->dev.of_node; |
| @@ -979,7 +978,7 @@ static const struct of_device_id fsl_soc_dma_ids[] = { | |||
| 979 | }; | 978 | }; |
| 980 | MODULE_DEVICE_TABLE(of, fsl_soc_dma_ids); | 979 | MODULE_DEVICE_TABLE(of, fsl_soc_dma_ids); |
| 981 | 980 | ||
| 982 | static struct of_platform_driver fsl_soc_dma_driver = { | 981 | static struct platform_driver fsl_soc_dma_driver = { |
| 983 | .driver = { | 982 | .driver = { |
| 984 | .name = "fsl-pcm-audio", | 983 | .name = "fsl-pcm-audio", |
| 985 | .owner = THIS_MODULE, | 984 | .owner = THIS_MODULE, |
| @@ -993,12 +992,12 @@ static int __init fsl_soc_dma_init(void) | |||
| 993 | { | 992 | { |
| 994 | pr_info("Freescale Elo DMA ASoC PCM Driver\n"); | 993 | pr_info("Freescale Elo DMA ASoC PCM Driver\n"); |
| 995 | 994 | ||
| 996 | return of_register_platform_driver(&fsl_soc_dma_driver); | 995 | return platform_driver_register(&fsl_soc_dma_driver); |
| 997 | } | 996 | } |
| 998 | 997 | ||
| 999 | static void __exit fsl_soc_dma_exit(void) | 998 | static void __exit fsl_soc_dma_exit(void) |
| 1000 | { | 999 | { |
| 1001 | of_unregister_platform_driver(&fsl_soc_dma_driver); | 1000 | platform_driver_unregister(&fsl_soc_dma_driver); |
| 1002 | } | 1001 | } |
| 1003 | 1002 | ||
| 1004 | module_init(fsl_soc_dma_init); | 1003 | module_init(fsl_soc_dma_init); |
diff --git a/sound/soc/fsl/fsl_ssi.c b/sound/soc/fsl/fsl_ssi.c index 4cc167a7aeb8..313e0ccedd5b 100644 --- a/sound/soc/fsl/fsl_ssi.c +++ b/sound/soc/fsl/fsl_ssi.c | |||
| @@ -624,8 +624,7 @@ static void make_lowercase(char *s) | |||
| 624 | } | 624 | } |
| 625 | } | 625 | } |
| 626 | 626 | ||
| 627 | static int __devinit fsl_ssi_probe(struct platform_device *pdev, | 627 | static int __devinit fsl_ssi_probe(struct platform_device *pdev) |
| 628 | const struct of_device_id *match) | ||
| 629 | { | 628 | { |
| 630 | struct fsl_ssi_private *ssi_private; | 629 | struct fsl_ssi_private *ssi_private; |
| 631 | int ret = 0; | 630 | int ret = 0; |
| @@ -774,7 +773,7 @@ static const struct of_device_id fsl_ssi_ids[] = { | |||
| 774 | }; | 773 | }; |
| 775 | MODULE_DEVICE_TABLE(of, fsl_ssi_ids); | 774 | MODULE_DEVICE_TABLE(of, fsl_ssi_ids); |
| 776 | 775 | ||
| 777 | static struct of_platform_driver fsl_ssi_driver = { | 776 | static struct platform_driver fsl_ssi_driver = { |
| 778 | .driver = { | 777 | .driver = { |
| 779 | .name = "fsl-ssi-dai", | 778 | .name = "fsl-ssi-dai", |
| 780 | .owner = THIS_MODULE, | 779 | .owner = THIS_MODULE, |
| @@ -788,12 +787,12 @@ static int __init fsl_ssi_init(void) | |||
| 788 | { | 787 | { |
| 789 | printk(KERN_INFO "Freescale Synchronous Serial Interface (SSI) ASoC Driver\n"); | 788 | printk(KERN_INFO "Freescale Synchronous Serial Interface (SSI) ASoC Driver\n"); |
| 790 | 789 | ||
| 791 | return of_register_platform_driver(&fsl_ssi_driver); | 790 | return platform_driver_register(&fsl_ssi_driver); |
| 792 | } | 791 | } |
| 793 | 792 | ||
| 794 | static void __exit fsl_ssi_exit(void) | 793 | static void __exit fsl_ssi_exit(void) |
| 795 | { | 794 | { |
| 796 | of_unregister_platform_driver(&fsl_ssi_driver); | 795 | platform_driver_unregister(&fsl_ssi_driver); |
| 797 | } | 796 | } |
| 798 | 797 | ||
| 799 | module_init(fsl_ssi_init); | 798 | module_init(fsl_ssi_init); |
diff --git a/sound/soc/fsl/mpc5200_dma.c b/sound/soc/fsl/mpc5200_dma.c index f92dca07cd35..fff695ccdd3e 100644 --- a/sound/soc/fsl/mpc5200_dma.c +++ b/sound/soc/fsl/mpc5200_dma.c | |||
| @@ -368,8 +368,7 @@ static struct snd_soc_platform_driver mpc5200_audio_dma_platform = { | |||
| 368 | .pcm_free = &psc_dma_free, | 368 | .pcm_free = &psc_dma_free, |
| 369 | }; | 369 | }; |
| 370 | 370 | ||
| 371 | static int mpc5200_hpcd_probe(struct of_device *op, | 371 | static int mpc5200_hpcd_probe(struct of_device *op) |
| 372 | const struct of_device_id *match) | ||
| 373 | { | 372 | { |
| 374 | phys_addr_t fifo; | 373 | phys_addr_t fifo; |
| 375 | struct psc_dma *psc_dma; | 374 | struct psc_dma *psc_dma; |
| @@ -511,32 +510,31 @@ static int mpc5200_hpcd_remove(struct of_device *op) | |||
| 511 | } | 510 | } |
| 512 | 511 | ||
| 513 | static struct of_device_id mpc5200_hpcd_match[] = { | 512 | static struct of_device_id mpc5200_hpcd_match[] = { |
| 514 | { | 513 | { .compatible = "fsl,mpc5200-pcm", }, |
| 515 | .compatible = "fsl,mpc5200-pcm", | ||
| 516 | }, | ||
| 517 | {} | 514 | {} |
| 518 | }; | 515 | }; |
| 519 | MODULE_DEVICE_TABLE(of, mpc5200_hpcd_match); | 516 | MODULE_DEVICE_TABLE(of, mpc5200_hpcd_match); |
| 520 | 517 | ||
| 521 | static struct of_platform_driver mpc5200_hpcd_of_driver = { | 518 | static struct platform_driver mpc5200_hpcd_of_driver = { |
| 522 | .owner = THIS_MODULE, | ||
| 523 | .name = "mpc5200-pcm-audio", | ||
| 524 | .match_table = mpc5200_hpcd_match, | ||
| 525 | .probe = mpc5200_hpcd_probe, | 519 | .probe = mpc5200_hpcd_probe, |
| 526 | .remove = mpc5200_hpcd_remove, | 520 | .remove = mpc5200_hpcd_remove, |
| 521 | .dev = { | ||
| 522 | .owner = THIS_MODULE, | ||
| 523 | .name = "mpc5200-pcm-audio", | ||
| 524 | .of_match_table = mpc5200_hpcd_match, | ||
| 525 | } | ||
| 527 | }; | 526 | }; |
| 528 | 527 | ||
| 529 | static int __init mpc5200_hpcd_init(void) | 528 | static int __init mpc5200_hpcd_init(void) |
| 530 | { | 529 | { |
| 531 | return of_register_platform_driver(&mpc5200_hpcd_of_driver); | 530 | return platform_driver_register(&mpc5200_hpcd_of_driver); |
| 532 | } | 531 | } |
| 532 | module_init(mpc5200_hpcd_init); | ||
| 533 | 533 | ||
| 534 | static void __exit mpc5200_hpcd_exit(void) | 534 | static void __exit mpc5200_hpcd_exit(void) |
| 535 | { | 535 | { |
| 536 | of_unregister_platform_driver(&mpc5200_hpcd_of_driver); | 536 | platform_driver_unregister(&mpc5200_hpcd_of_driver); |
| 537 | } | 537 | } |
| 538 | |||
| 539 | module_init(mpc5200_hpcd_init); | ||
| 540 | module_exit(mpc5200_hpcd_exit); | 538 | module_exit(mpc5200_hpcd_exit); |
| 541 | 539 | ||
| 542 | MODULE_AUTHOR("Grant Likely <grant.likely@secretlab.ca>"); | 540 | MODULE_AUTHOR("Grant Likely <grant.likely@secretlab.ca>"); |
diff --git a/sound/soc/fsl/mpc5200_psc_ac97.c b/sound/soc/fsl/mpc5200_psc_ac97.c index 40acc8e2b1ca..ad36b095bb79 100644 --- a/sound/soc/fsl/mpc5200_psc_ac97.c +++ b/sound/soc/fsl/mpc5200_psc_ac97.c | |||
| @@ -272,8 +272,7 @@ static struct snd_soc_dai_driver psc_ac97_dai[] = { | |||
| 272 | * - Probe/remove operations | 272 | * - Probe/remove operations |
| 273 | * - OF device match table | 273 | * - OF device match table |
| 274 | */ | 274 | */ |
| 275 | static int __devinit psc_ac97_of_probe(struct platform_device *op, | 275 | static int __devinit psc_ac97_of_probe(struct platform_device *op) |
| 276 | const struct of_device_id *match) | ||
| 277 | { | 276 | { |
| 278 | int rc; | 277 | int rc; |
| 279 | struct snd_ac97 ac97; | 278 | struct snd_ac97 ac97; |
| @@ -316,7 +315,7 @@ static struct of_device_id psc_ac97_match[] __devinitdata = { | |||
| 316 | }; | 315 | }; |
| 317 | MODULE_DEVICE_TABLE(of, psc_ac97_match); | 316 | MODULE_DEVICE_TABLE(of, psc_ac97_match); |
| 318 | 317 | ||
| 319 | static struct of_platform_driver psc_ac97_driver = { | 318 | static struct platform_driver psc_ac97_driver = { |
| 320 | .probe = psc_ac97_of_probe, | 319 | .probe = psc_ac97_of_probe, |
| 321 | .remove = __devexit_p(psc_ac97_of_remove), | 320 | .remove = __devexit_p(psc_ac97_of_remove), |
| 322 | .driver = { | 321 | .driver = { |
| @@ -332,13 +331,13 @@ static struct of_platform_driver psc_ac97_driver = { | |||
| 332 | */ | 331 | */ |
| 333 | static int __init psc_ac97_init(void) | 332 | static int __init psc_ac97_init(void) |
| 334 | { | 333 | { |
| 335 | return of_register_platform_driver(&psc_ac97_driver); | 334 | return platform_driver_register(&psc_ac97_driver); |
| 336 | } | 335 | } |
| 337 | module_init(psc_ac97_init); | 336 | module_init(psc_ac97_init); |
| 338 | 337 | ||
| 339 | static void __exit psc_ac97_exit(void) | 338 | static void __exit psc_ac97_exit(void) |
| 340 | { | 339 | { |
| 341 | of_unregister_platform_driver(&psc_ac97_driver); | 340 | platform_driver_unregister(&psc_ac97_driver); |
| 342 | } | 341 | } |
| 343 | module_exit(psc_ac97_exit); | 342 | module_exit(psc_ac97_exit); |
| 344 | 343 | ||
diff --git a/sound/soc/fsl/mpc5200_psc_i2s.c b/sound/soc/fsl/mpc5200_psc_i2s.c index 9018fa5bf0db..87cf2a5c2b2c 100644 --- a/sound/soc/fsl/mpc5200_psc_i2s.c +++ b/sound/soc/fsl/mpc5200_psc_i2s.c | |||
| @@ -150,8 +150,7 @@ static struct snd_soc_dai_driver psc_i2s_dai[] = {{ | |||
| 150 | * - Probe/remove operations | 150 | * - Probe/remove operations |
| 151 | * - OF device match table | 151 | * - OF device match table |
| 152 | */ | 152 | */ |
| 153 | static int __devinit psc_i2s_of_probe(struct platform_device *op, | 153 | static int __devinit psc_i2s_of_probe(struct platform_device *op) |
| 154 | const struct of_device_id *match) | ||
| 155 | { | 154 | { |
| 156 | int rc; | 155 | int rc; |
| 157 | struct psc_dma *psc_dma; | 156 | struct psc_dma *psc_dma; |
| @@ -213,7 +212,7 @@ static struct of_device_id psc_i2s_match[] __devinitdata = { | |||
| 213 | }; | 212 | }; |
| 214 | MODULE_DEVICE_TABLE(of, psc_i2s_match); | 213 | MODULE_DEVICE_TABLE(of, psc_i2s_match); |
| 215 | 214 | ||
| 216 | static struct of_platform_driver psc_i2s_driver = { | 215 | static struct platform_driver psc_i2s_driver = { |
| 217 | .probe = psc_i2s_of_probe, | 216 | .probe = psc_i2s_of_probe, |
| 218 | .remove = __devexit_p(psc_i2s_of_remove), | 217 | .remove = __devexit_p(psc_i2s_of_remove), |
| 219 | .driver = { | 218 | .driver = { |
| @@ -229,13 +228,13 @@ static struct of_platform_driver psc_i2s_driver = { | |||
| 229 | */ | 228 | */ |
| 230 | static int __init psc_i2s_init(void) | 229 | static int __init psc_i2s_init(void) |
| 231 | { | 230 | { |
| 232 | return of_register_platform_driver(&psc_i2s_driver); | 231 | return platform_driver_register(&psc_i2s_driver); |
| 233 | } | 232 | } |
| 234 | module_init(psc_i2s_init); | 233 | module_init(psc_i2s_init); |
| 235 | 234 | ||
| 236 | static void __exit psc_i2s_exit(void) | 235 | static void __exit psc_i2s_exit(void) |
| 237 | { | 236 | { |
| 238 | of_unregister_platform_driver(&psc_i2s_driver); | 237 | platform_driver_unregister(&psc_i2s_driver); |
| 239 | } | 238 | } |
| 240 | module_exit(psc_i2s_exit); | 239 | module_exit(psc_i2s_exit); |
| 241 | 240 | ||
diff --git a/sound/sparc/amd7930.c b/sound/sparc/amd7930.c index f8bcfc30f800..ad7d4d7d9237 100644 --- a/sound/sparc/amd7930.c +++ b/sound/sparc/amd7930.c | |||
| @@ -1002,7 +1002,7 @@ static int __devinit snd_amd7930_create(struct snd_card *card, | |||
| 1002 | return 0; | 1002 | return 0; |
| 1003 | } | 1003 | } |
| 1004 | 1004 | ||
| 1005 | static int __devinit amd7930_sbus_probe(struct platform_device *op, const struct of_device_id *match) | 1005 | static int __devinit amd7930_sbus_probe(struct platform_device *op) |
| 1006 | { | 1006 | { |
| 1007 | struct resource *rp = &op->resource[0]; | 1007 | struct resource *rp = &op->resource[0]; |
| 1008 | static int dev_num; | 1008 | static int dev_num; |
| @@ -1064,7 +1064,7 @@ static const struct of_device_id amd7930_match[] = { | |||
| 1064 | {}, | 1064 | {}, |
| 1065 | }; | 1065 | }; |
| 1066 | 1066 | ||
| 1067 | static struct of_platform_driver amd7930_sbus_driver = { | 1067 | static struct platform_driver amd7930_sbus_driver = { |
| 1068 | .driver = { | 1068 | .driver = { |
| 1069 | .name = "audio", | 1069 | .name = "audio", |
| 1070 | .owner = THIS_MODULE, | 1070 | .owner = THIS_MODULE, |
| @@ -1075,7 +1075,7 @@ static struct of_platform_driver amd7930_sbus_driver = { | |||
| 1075 | 1075 | ||
| 1076 | static int __init amd7930_init(void) | 1076 | static int __init amd7930_init(void) |
| 1077 | { | 1077 | { |
| 1078 | return of_register_platform_driver(&amd7930_sbus_driver); | 1078 | return platform_driver_register(&amd7930_sbus_driver); |
| 1079 | } | 1079 | } |
| 1080 | 1080 | ||
| 1081 | static void __exit amd7930_exit(void) | 1081 | static void __exit amd7930_exit(void) |
| @@ -1092,7 +1092,7 @@ static void __exit amd7930_exit(void) | |||
| 1092 | 1092 | ||
| 1093 | amd7930_list = NULL; | 1093 | amd7930_list = NULL; |
| 1094 | 1094 | ||
| 1095 | of_unregister_platform_driver(&amd7930_sbus_driver); | 1095 | platform_driver_unregister(&amd7930_sbus_driver); |
| 1096 | } | 1096 | } |
| 1097 | 1097 | ||
| 1098 | module_init(amd7930_init); | 1098 | module_init(amd7930_init); |
diff --git a/sound/sparc/cs4231.c b/sound/sparc/cs4231.c index c276086c3b57..0e618f82808c 100644 --- a/sound/sparc/cs4231.c +++ b/sound/sparc/cs4231.c | |||
| @@ -1856,7 +1856,7 @@ static int __devinit snd_cs4231_sbus_create(struct snd_card *card, | |||
| 1856 | return 0; | 1856 | return 0; |
| 1857 | } | 1857 | } |
| 1858 | 1858 | ||
| 1859 | static int __devinit cs4231_sbus_probe(struct platform_device *op, const struct of_device_id *match) | 1859 | static int __devinit cs4231_sbus_probe(struct platform_device *op) |
| 1860 | { | 1860 | { |
| 1861 | struct resource *rp = &op->resource[0]; | 1861 | struct resource *rp = &op->resource[0]; |
| 1862 | struct snd_card *card; | 1862 | struct snd_card *card; |
| @@ -2048,7 +2048,7 @@ static int __devinit snd_cs4231_ebus_create(struct snd_card *card, | |||
| 2048 | return 0; | 2048 | return 0; |
| 2049 | } | 2049 | } |
| 2050 | 2050 | ||
| 2051 | static int __devinit cs4231_ebus_probe(struct platform_device *op, const struct of_device_id *match) | 2051 | static int __devinit cs4231_ebus_probe(struct platform_device *op) |
| 2052 | { | 2052 | { |
| 2053 | struct snd_card *card; | 2053 | struct snd_card *card; |
| 2054 | int err; | 2054 | int err; |
| @@ -2072,16 +2072,16 @@ static int __devinit cs4231_ebus_probe(struct platform_device *op, const struct | |||
| 2072 | } | 2072 | } |
| 2073 | #endif | 2073 | #endif |
| 2074 | 2074 | ||
| 2075 | static int __devinit cs4231_probe(struct platform_device *op, const struct of_device_id *match) | 2075 | static int __devinit cs4231_probe(struct platform_device *op) |
| 2076 | { | 2076 | { |
| 2077 | #ifdef EBUS_SUPPORT | 2077 | #ifdef EBUS_SUPPORT |
| 2078 | if (!strcmp(op->dev.of_node->parent->name, "ebus")) | 2078 | if (!strcmp(op->dev.of_node->parent->name, "ebus")) |
| 2079 | return cs4231_ebus_probe(op, match); | 2079 | return cs4231_ebus_probe(op); |
| 2080 | #endif | 2080 | #endif |
| 2081 | #ifdef SBUS_SUPPORT | 2081 | #ifdef SBUS_SUPPORT |
| 2082 | if (!strcmp(op->dev.of_node->parent->name, "sbus") || | 2082 | if (!strcmp(op->dev.of_node->parent->name, "sbus") || |
| 2083 | !strcmp(op->dev.of_node->parent->name, "sbi")) | 2083 | !strcmp(op->dev.of_node->parent->name, "sbi")) |
| 2084 | return cs4231_sbus_probe(op, match); | 2084 | return cs4231_sbus_probe(op); |
| 2085 | #endif | 2085 | #endif |
| 2086 | return -ENODEV; | 2086 | return -ENODEV; |
| 2087 | } | 2087 | } |
| @@ -2108,7 +2108,7 @@ static const struct of_device_id cs4231_match[] = { | |||
| 2108 | 2108 | ||
| 2109 | MODULE_DEVICE_TABLE(of, cs4231_match); | 2109 | MODULE_DEVICE_TABLE(of, cs4231_match); |
| 2110 | 2110 | ||
| 2111 | static struct of_platform_driver cs4231_driver = { | 2111 | static struct platform_driver cs4231_driver = { |
| 2112 | .driver = { | 2112 | .driver = { |
| 2113 | .name = "audio", | 2113 | .name = "audio", |
| 2114 | .owner = THIS_MODULE, | 2114 | .owner = THIS_MODULE, |
| @@ -2120,12 +2120,12 @@ static struct of_platform_driver cs4231_driver = { | |||
| 2120 | 2120 | ||
| 2121 | static int __init cs4231_init(void) | 2121 | static int __init cs4231_init(void) |
| 2122 | { | 2122 | { |
| 2123 | return of_register_platform_driver(&cs4231_driver); | 2123 | return platform_driver_register(&cs4231_driver); |
| 2124 | } | 2124 | } |
| 2125 | 2125 | ||
| 2126 | static void __exit cs4231_exit(void) | 2126 | static void __exit cs4231_exit(void) |
| 2127 | { | 2127 | { |
| 2128 | of_unregister_platform_driver(&cs4231_driver); | 2128 | platform_driver_unregister(&cs4231_driver); |
| 2129 | } | 2129 | } |
| 2130 | 2130 | ||
| 2131 | module_init(cs4231_init); | 2131 | module_init(cs4231_init); |
diff --git a/sound/sparc/dbri.c b/sound/sparc/dbri.c index 39cd5d69d051..73f9cbacc077 100644 --- a/sound/sparc/dbri.c +++ b/sound/sparc/dbri.c | |||
| @@ -2592,7 +2592,7 @@ static void snd_dbri_free(struct snd_dbri *dbri) | |||
| 2592 | (void *)dbri->dma, dbri->dma_dvma); | 2592 | (void *)dbri->dma, dbri->dma_dvma); |
| 2593 | } | 2593 | } |
| 2594 | 2594 | ||
| 2595 | static int __devinit dbri_probe(struct platform_device *op, const struct of_device_id *match) | 2595 | static int __devinit dbri_probe(struct platform_device *op) |
| 2596 | { | 2596 | { |
| 2597 | struct snd_dbri *dbri; | 2597 | struct snd_dbri *dbri; |
| 2598 | struct resource *rp; | 2598 | struct resource *rp; |
| @@ -2686,7 +2686,7 @@ static const struct of_device_id dbri_match[] = { | |||
| 2686 | 2686 | ||
| 2687 | MODULE_DEVICE_TABLE(of, dbri_match); | 2687 | MODULE_DEVICE_TABLE(of, dbri_match); |
| 2688 | 2688 | ||
| 2689 | static struct of_platform_driver dbri_sbus_driver = { | 2689 | static struct platform_driver dbri_sbus_driver = { |
| 2690 | .driver = { | 2690 | .driver = { |
| 2691 | .name = "dbri", | 2691 | .name = "dbri", |
| 2692 | .owner = THIS_MODULE, | 2692 | .owner = THIS_MODULE, |
| @@ -2699,12 +2699,12 @@ static struct of_platform_driver dbri_sbus_driver = { | |||
| 2699 | /* Probe for the dbri chip and then attach the driver. */ | 2699 | /* Probe for the dbri chip and then attach the driver. */ |
| 2700 | static int __init dbri_init(void) | 2700 | static int __init dbri_init(void) |
| 2701 | { | 2701 | { |
| 2702 | return of_register_platform_driver(&dbri_sbus_driver); | 2702 | return platform_driver_register(&dbri_sbus_driver); |
| 2703 | } | 2703 | } |
| 2704 | 2704 | ||
| 2705 | static void __exit dbri_exit(void) | 2705 | static void __exit dbri_exit(void) |
| 2706 | { | 2706 | { |
| 2707 | of_unregister_platform_driver(&dbri_sbus_driver); | 2707 | platform_driver_unregister(&dbri_sbus_driver); |
| 2708 | } | 2708 | } |
| 2709 | 2709 | ||
| 2710 | module_init(dbri_init); | 2710 | module_init(dbri_init); |
