mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
igb: fix legacy mode irq issue
I booted an igb kernel with the option pci=nomsi and instantly noticed that interrupts no longer worked on my igb device. I took a look at the interrupt initialization and quickly discovered a comment stating: "DO NOT USE EIAME or IAME in legacy mode" It seemed a bit odd that bits to enable IAM were being set in legacy interrupt mode, so I dropped out the following parts and interrupts began working fine again. [Updated code flow and a nitpick spelling error --Auke] Signed-off-by: Andy Gospodarek <andy@greyhouse.net> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
5bd3670f31
commit
6cb5e57701
@ -439,7 +439,7 @@ static int igb_request_irq(struct igb_adapter *adapter)
|
|||||||
err = igb_request_msix(adapter);
|
err = igb_request_msix(adapter);
|
||||||
if (!err) {
|
if (!err) {
|
||||||
/* enable IAM, auto-mask,
|
/* enable IAM, auto-mask,
|
||||||
* DO NOT USE EIAME or IAME in legacy mode */
|
* DO NOT USE EIAM or IAM in legacy mode */
|
||||||
wr32(E1000_IAM, IMS_ENABLE_MASK);
|
wr32(E1000_IAM, IMS_ENABLE_MASK);
|
||||||
goto request_done;
|
goto request_done;
|
||||||
}
|
}
|
||||||
@ -465,14 +465,9 @@ static int igb_request_irq(struct igb_adapter *adapter)
|
|||||||
err = request_irq(adapter->pdev->irq, &igb_intr, IRQF_SHARED,
|
err = request_irq(adapter->pdev->irq, &igb_intr, IRQF_SHARED,
|
||||||
netdev->name, netdev);
|
netdev->name, netdev);
|
||||||
|
|
||||||
if (err) {
|
if (err)
|
||||||
dev_err(&adapter->pdev->dev, "Error %d getting interrupt\n",
|
dev_err(&adapter->pdev->dev, "Error %d getting interrupt\n",
|
||||||
err);
|
err);
|
||||||
goto request_done;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* enable IAM, auto-mask */
|
|
||||||
wr32(E1000_IAM, IMS_ENABLE_MASK);
|
|
||||||
|
|
||||||
request_done:
|
request_done:
|
||||||
return err;
|
return err;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user