|
@@ -2602,6 +2602,7 @@ static int iwl4965_mac_start(struct ieee80211_hw *hw)
|
|
|
{
|
|
|
struct iwl_priv *priv = hw->priv;
|
|
|
int ret;
|
|
|
+ u16 pci_cmd;
|
|
|
|
|
|
IWL_DEBUG_MAC80211("enter\n");
|
|
|
|
|
@@ -2612,6 +2613,13 @@ static int iwl4965_mac_start(struct ieee80211_hw *hw)
|
|
|
pci_restore_state(priv->pci_dev);
|
|
|
pci_enable_msi(priv->pci_dev);
|
|
|
|
|
|
+ /* enable interrupts if needed: hw bug w/a */
|
|
|
+ pci_read_config_word(priv->pci_dev, PCI_COMMAND, &pci_cmd);
|
|
|
+ if (pci_cmd & PCI_COMMAND_INTX_DISABLE) {
|
|
|
+ pci_cmd &= ~PCI_COMMAND_INTX_DISABLE;
|
|
|
+ pci_write_config_word(priv->pci_dev, PCI_COMMAND, pci_cmd);
|
|
|
+ }
|
|
|
+
|
|
|
ret = request_irq(priv->pci_dev->irq, iwl4965_isr, IRQF_SHARED,
|
|
|
DRV_NAME, priv);
|
|
|
if (ret) {
|