|
|
@@ -7239,13 +7239,18 @@ static int rtl_alloc_irq(struct rtl8169_private *tp)
|
|
|
{
|
|
|
unsigned int flags;
|
|
|
|
|
|
- if (tp->mac_version <= RTL_GIGA_MAC_VER_06) {
|
|
|
+ switch (tp->mac_version) {
|
|
|
+ case RTL_GIGA_MAC_VER_02 ... RTL_GIGA_MAC_VER_06:
|
|
|
RTL_W8(tp, Cfg9346, Cfg9346_Unlock);
|
|
|
RTL_W8(tp, Config2, RTL_R8(tp, Config2) & ~MSIEnable);
|
|
|
RTL_W8(tp, Cfg9346, Cfg9346_Lock);
|
|
|
+ /* fall through */
|
|
|
+ case RTL_GIGA_MAC_VER_07 ... RTL_GIGA_MAC_VER_24:
|
|
|
flags = PCI_IRQ_LEGACY;
|
|
|
- } else {
|
|
|
+ break;
|
|
|
+ default:
|
|
|
flags = PCI_IRQ_ALL_TYPES;
|
|
|
+ break;
|
|
|
}
|
|
|
|
|
|
return pci_alloc_irq_vectors(tp->pci_dev, 1, 1, flags);
|