diff options
author | Hauke Mehrtens <hauke@hauke-m.de> | 2012-12-05 12:46:08 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-12-06 14:58:58 -0500 |
commit | bde327eff8a722df1198df9b14464f84f1adfb65 (patch) | |
tree | dde6282acfa1957a4fa310540a9206aeba277d57 /drivers/ssb/main.c | |
parent | 9f640a6376e54fa9ae834c32cbe92cefeec970dc (diff) |
ssb: register watchdog driver
Register the watchdog driver to the system if it is a SoC. Using the
watchdog on a non SoC device, like a PCI card, will make the PCI
card die when the timeout expired, but starting it again is not
supported by ssb.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/ssb/main.c')
-rw-r--r-- | drivers/ssb/main.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/ssb/main.c b/drivers/ssb/main.c index df0f145c22fc..58c7da29a37c 100644 --- a/drivers/ssb/main.c +++ b/drivers/ssb/main.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <linux/delay.h> | 13 | #include <linux/delay.h> |
14 | #include <linux/io.h> | 14 | #include <linux/io.h> |
15 | #include <linux/module.h> | 15 | #include <linux/module.h> |
16 | #include <linux/platform_device.h> | ||
16 | #include <linux/ssb/ssb.h> | 17 | #include <linux/ssb/ssb.h> |
17 | #include <linux/ssb/ssb_regs.h> | 18 | #include <linux/ssb/ssb_regs.h> |
18 | #include <linux/ssb/ssb_driver_gige.h> | 19 | #include <linux/ssb/ssb_driver_gige.h> |
@@ -433,6 +434,11 @@ static void ssb_devices_unregister(struct ssb_bus *bus) | |||
433 | if (sdev->dev) | 434 | if (sdev->dev) |
434 | device_unregister(sdev->dev); | 435 | device_unregister(sdev->dev); |
435 | } | 436 | } |
437 | |||
438 | #ifdef CONFIG_SSB_EMBEDDED | ||
439 | if (bus->bustype == SSB_BUSTYPE_SSB) | ||
440 | platform_device_unregister(bus->watchdog); | ||
441 | #endif | ||
436 | } | 442 | } |
437 | 443 | ||
438 | void ssb_bus_unregister(struct ssb_bus *bus) | 444 | void ssb_bus_unregister(struct ssb_bus *bus) |
@@ -561,6 +567,8 @@ static int __devinit ssb_attach_queued_buses(void) | |||
561 | if (err) | 567 | if (err) |
562 | goto error; | 568 | goto error; |
563 | ssb_pcicore_init(&bus->pcicore); | 569 | ssb_pcicore_init(&bus->pcicore); |
570 | if (bus->bustype == SSB_BUSTYPE_SSB) | ||
571 | ssb_watchdog_register(bus); | ||
564 | ssb_bus_may_powerdown(bus); | 572 | ssb_bus_may_powerdown(bus); |
565 | 573 | ||
566 | err = ssb_devices_register(bus); | 574 | err = ssb_devices_register(bus); |