diff options
author | Shaun Ruffell <sruffell@digium.com> | 2010-07-26 00:30:36 +0000 |
---|---|---|
committer | Shaun Ruffell <sruffell@digium.com> | 2010-07-26 00:30:36 +0000 |
commit | 7f51846ded65617ea0c5742c9f93999b8b0e0478 (patch) | |
tree | d10e3ec6eab53134c929f147f4f522ea1a024ef9 | |
parent | 03f1ddae88215a865094ab4eb85a4078a4398902 (diff) |
wcte12xp, wctdm24xxp: Add shutdown handlers.
Make the drivers a little more kexec friendly.
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8979 a0bf4364-ded3-4de4-8d8a-66a801d63aff
-rw-r--r-- | drivers/dahdi/voicebus/voicebus.c | 1 | ||||
-rw-r--r-- | drivers/dahdi/wctdm24xxp/base.c | 11 | ||||
-rw-r--r-- | drivers/dahdi/wcte12xp/base.c | 11 |
3 files changed, 23 insertions, 0 deletions
diff --git a/drivers/dahdi/voicebus/voicebus.c b/drivers/dahdi/voicebus/voicebus.c index eeceddc..6f38e1d 100644 --- a/drivers/dahdi/voicebus/voicebus.c +++ b/drivers/dahdi/voicebus/voicebus.c @@ -996,6 +996,7 @@ void voicebus_stop(struct voicebus *vb) #if defined(CONFIG_VOICEBUS_TIMER) del_timer_sync(&vb->timer); #endif + vb_disable_interrupts(vb); up(&stop); } EXPORT_SYMBOL(voicebus_stop); diff --git a/drivers/dahdi/wctdm24xxp/base.c b/drivers/dahdi/wctdm24xxp/base.c index 6cd24bd..3973640 100644 --- a/drivers/dahdi/wctdm24xxp/base.c +++ b/drivers/dahdi/wctdm24xxp/base.c @@ -4983,12 +4983,23 @@ static struct pci_device_id wctdm_pci_tbl[] = { { 0 } }; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 12) +static void wctdm_shutdown(struct pci_dev *pdev) +{ + struct wctdm *wc = pci_get_drvdata(pdev); + voicebus_stop(&wc->vb); +} +#endif + MODULE_DEVICE_TABLE(pci, wctdm_pci_tbl); static struct pci_driver wctdm_driver = { .name = "wctdm24xxp", .probe = wctdm_init_one, .remove = __devexit_p(wctdm_remove_one), +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 12) + .shutdown = wctdm_shutdown, +#endif .id_table = wctdm_pci_tbl, }; diff --git a/drivers/dahdi/wcte12xp/base.c b/drivers/dahdi/wcte12xp/base.c index ea39884..a09f6d8 100644 --- a/drivers/dahdi/wcte12xp/base.c +++ b/drivers/dahdi/wcte12xp/base.c @@ -2314,12 +2314,23 @@ static struct pci_device_id te12xp_pci_tbl[] = { { 0 } }; +#if LINUX_KERNEL_VERSION >= KERNEL_VERSION(2, 6, 12) +static void te12xp_shutdown(struct pci_dev *pdev) +{ + struct t1 *wc = pci_get_drvdata(pdev); + voicebus_stop(&wc->vb); +} +#endif + MODULE_DEVICE_TABLE(pci, te12xp_pci_tbl); static struct pci_driver te12xp_driver = { .name = "wcte12xp", .probe = te12xp_init_one, .remove = __devexit_p(te12xp_remove_one), +#if LINUX_KERNEL_VERSION >= KERNEL_VERSION(2, 6, 12) + .shutdown = te12xp_shutdown, +#endif .id_table = te12xp_pci_tbl, }; |