发信人: ILBSD (XMaster), 信区: Linux
标 题: 原来linux里的xhci-hcd搞不定fl1000是这原因
发信站: 北大未名站 (2011年05月09日14:10:52 星期一), 转信
linux-2.6.32.36/drivers/usb/host/xhci-pci.c里有这么几句话:
if (pdev->vendor == PCI_VENDOR_ID_FRESCO_LOGIC &&
pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK &&
pdev->revision == 0x0) {
xhci->quirks |= XHCI_RESET_EP_QUIRK;
xhci_dbg(xhci, "QUIRK: Fresco Logic xHC needs
configure"
" endpoint cmd after reset
endpoint\n");
}
其中PCI_VENDOR_ID_FRESCO_LOGIC=0x1b73,PCI_DEVICE_ID_FRESCO_LOGIC_PDK=0x1000
但lspci发现:
03:00.0 USB Controller: Device 1b73:1000 (rev 01)
也就是说原码里pdev->revision == 0x0不是1,然后就没有那个xhci-quirks了
改成pdev->revision == 0x1然后重新编译modules,再make modules_install,
modprobe -r xhci_hcd
modprobe xhci_hcd
fl1000主控USB3.0在2.6.32.36的内核上就一切正常了
# dd if=FreeBSD-8.2-RELEASE-amd64-disc1.iso of=/dev/null
1414308+0 records in
1414308+0 records out
724125696 bytes (724 MB) copied, 9.05481 s, 80.0 MB/s
其它版本应该也可以依此来改
--
悄悄地进村,打枪的不要
※ 来源:·北大未名站 bdwm.net