diff options
Diffstat (limited to 'drivers/dahdi/wctdm24xxp/base.c')
-rw-r--r-- | drivers/dahdi/wctdm24xxp/base.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/dahdi/wctdm24xxp/base.c b/drivers/dahdi/wctdm24xxp/base.c index d324a2a..f7169d2 100644 --- a/drivers/dahdi/wctdm24xxp/base.c +++ b/drivers/dahdi/wctdm24xxp/base.c @@ -191,6 +191,11 @@ static const struct wctdm_desc wcaex410 = { "Wildcard AEX410", FLAG_EXPRESS, 4 } static const struct wctdm_desc wcha80000 = { "HA8-0000", 0, 8 }; static const struct wctdm_desc wchb80000 = { "HB8-0000", FLAG_EXPRESS, 8 }; +static inline bool is_pcie(const struct wctdm *wc) +{ + return (wc->desc->flags & FLAG_EXPRESS) > 0; +} + /** * Returns true if the card is one of the Hybrid Digital Analog Cards. */ @@ -5679,6 +5684,13 @@ __wctdm_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) wc->vb.pdev = pdev; wc->vb.debug = &debug; +#ifdef CONFIG_VOICEBUS_DISABLE_ASPM + if (is_pcie(wc)) { + pci_disable_link_state(pdev->bus->self, PCIE_LINK_STATE_L0S | + PCIE_LINK_STATE_L1 | PCIE_LINK_STATE_CLKPM); + }; +#endif + if (is_hx8(wc)) { wc->vb.ops = &hx8_voicebus_operations; ret = voicebus_boot_init(&wc->vb, wc->board_name); |