146 ohci_err(ohci, "Restarting NEC controller failed in %s, %d\n",
147 "ohci_init", status);
148 return;
149 }
150
151 status = ohci_restart(ohci);
152 if (status != 0)
153 ohci_err(ohci, "Restarting NEC controller failed in %s, %d\n",
154 "ohci_restart", status);
155}
156
157static int ohci_quirk_nec(struct usb_hcd *hcd)
158{
159 struct ohci_hcd *ohci = hcd_to_ohci (hcd);
160
161 ohci->flags |= OHCI_QUIRK_NEC;
162 INIT_WORK(&ohci->nec_work, ohci_quirk_nec_worker);
163 ohci_dbg (ohci, "enabled NEC chipset lost interrupt quirk\n");
164
165 return 0;
166}
167
168static int ohci_quirk_amd700(struct usb_hcd *hcd)
169{
170 struct ohci_hcd *ohci = hcd_to_ohci(hcd);
171 u8 rev = 0;
172
173 if (!amd_smbus_dev)
174 amd_smbus_dev = pci_get_device(PCI_VENDOR_ID_ATI,
175 PCI_DEVICE_ID_ATI_SBX00_SMBUS, NULL);
176 if (!amd_smbus_dev)
177 return 0;
178
179 pci_read_config_byte(amd_smbus_dev, PCI_REVISION_ID, &rev);
180 if ((rev > 0x3b) || (rev < 0x30)) {
181 pci_dev_put(amd_smbus_dev);
182 amd_smbus_dev = NULL;
183 return 0;
184 }
185
186 amd_ohci_iso_count++;