Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6

* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:
firewire: ohci: fix regression with Agere FW643 rev 06, disable MSI
firewire: ohci: fix regression with VIA VT6315, disable MSI

+33 -14
+33 -14
drivers/firewire/ohci.c
··· 242 242 243 243 static char ohci_driver_name[] = KBUILD_MODNAME; 244 244 245 + #define PCI_DEVICE_ID_AGERE_FW643 0x5901 245 246 #define PCI_DEVICE_ID_JMICRON_JMB38X_FW 0x2380 246 247 #define PCI_DEVICE_ID_TI_TSB12LV22 0x8009 247 248 ··· 254 253 255 254 /* In case of multiple matches in ohci_quirks[], only the first one is used. */ 256 255 static const struct { 257 - unsigned short vendor, device, flags; 256 + unsigned short vendor, device, revision, flags; 258 257 } ohci_quirks[] = { 259 - {PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_TSB12LV22, QUIRK_CYCLE_TIMER | 260 - QUIRK_RESET_PACKET | 261 - QUIRK_NO_1394A}, 262 - {PCI_VENDOR_ID_TI, PCI_ANY_ID, QUIRK_RESET_PACKET}, 263 - {PCI_VENDOR_ID_AL, PCI_ANY_ID, QUIRK_CYCLE_TIMER}, 264 - {PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB38X_FW, QUIRK_NO_MSI}, 265 - {PCI_VENDOR_ID_NEC, PCI_ANY_ID, QUIRK_CYCLE_TIMER}, 266 - {PCI_VENDOR_ID_VIA, PCI_ANY_ID, QUIRK_CYCLE_TIMER}, 267 - {PCI_VENDOR_ID_RICOH, PCI_ANY_ID, QUIRK_CYCLE_TIMER}, 268 - {PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_UNI_N_FW, QUIRK_BE_HEADERS}, 258 + {PCI_VENDOR_ID_AL, PCI_ANY_ID, PCI_ANY_ID, 259 + QUIRK_CYCLE_TIMER}, 260 + 261 + {PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_UNI_N_FW, PCI_ANY_ID, 262 + QUIRK_BE_HEADERS}, 263 + 264 + {PCI_VENDOR_ID_ATT, PCI_DEVICE_ID_AGERE_FW643, 6, 265 + QUIRK_NO_MSI}, 266 + 267 + {PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB38X_FW, PCI_ANY_ID, 268 + QUIRK_NO_MSI}, 269 + 270 + {PCI_VENDOR_ID_NEC, PCI_ANY_ID, PCI_ANY_ID, 271 + QUIRK_CYCLE_TIMER}, 272 + 273 + {PCI_VENDOR_ID_RICOH, PCI_ANY_ID, PCI_ANY_ID, 274 + QUIRK_CYCLE_TIMER}, 275 + 276 + {PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_TSB12LV22, PCI_ANY_ID, 277 + QUIRK_CYCLE_TIMER | QUIRK_RESET_PACKET | QUIRK_NO_1394A}, 278 + 279 + {PCI_VENDOR_ID_TI, PCI_ANY_ID, PCI_ANY_ID, 280 + QUIRK_RESET_PACKET}, 281 + 282 + {PCI_VENDOR_ID_VIA, PCI_ANY_ID, PCI_ANY_ID, 283 + QUIRK_CYCLE_TIMER | QUIRK_NO_MSI}, 269 284 }; 270 285 271 286 /* This overrides anything that was found in ohci_quirks[]. */ ··· 2944 2927 } 2945 2928 2946 2929 for (i = 0; i < ARRAY_SIZE(ohci_quirks); i++) 2947 - if (ohci_quirks[i].vendor == dev->vendor && 2948 - (ohci_quirks[i].device == dev->device || 2949 - ohci_quirks[i].device == (unsigned short)PCI_ANY_ID)) { 2930 + if ((ohci_quirks[i].vendor == dev->vendor) && 2931 + (ohci_quirks[i].device == (unsigned short)PCI_ANY_ID || 2932 + ohci_quirks[i].device == dev->device) && 2933 + (ohci_quirks[i].revision == (unsigned short)PCI_ANY_ID || 2934 + ohci_quirks[i].revision >= dev->revision)) { 2950 2935 ohci->quirks = ohci_quirks[i].flags; 2951 2936 break; 2952 2937 }