On Tue, Feb 03, 2015 at 06:08:39PM +0200, Andy Shevchenko wrote: > This is a follow up to the previously submitted commit cefa9a31a5f0 (ehci-pci: > disable for Intel MID platforms). > > It includes the following changes: > - table and function are renamed to reflect this is not only about ChipIdea > - ChipIdea PCI driver (ci_hdrc_pci.c) gets the comment about the table in > ehci-pci.c > - MIPS IDs removed from the list since it was discovered and tested on Intel > MID platforms > > Reviewed-by: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > --- > drivers/usb/chipidea/ci_hdrc_pci.c | 3 +++ > drivers/usb/host/ehci-pci.c | 16 ++++++++++------ > 2 files changed, 13 insertions(+), 6 deletions(-) > > diff --git a/drivers/usb/chipidea/ci_hdrc_pci.c b/drivers/usb/chipidea/ci_hdrc_pci.c > index 241ae34..4df6694 100644 > --- a/drivers/usb/chipidea/ci_hdrc_pci.c > +++ b/drivers/usb/chipidea/ci_hdrc_pci.c > @@ -111,6 +111,9 @@ static void ci_hdrc_pci_remove(struct pci_dev *pdev) > * PCI device structure > * > * Check "pci.h" for details > + * > + * Note: ehci-pci driver may try to probe the device first. You have to add an > + * ID to the bypass_pci_id_table in ehci-pci driver to prevent this. > */ This one is the same with your v3. > static const struct pci_device_id ci_hdrc_pci_id_table[] = { > { > diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c > index 9652021..2a5d2fd 100644 > --- a/drivers/usb/host/ehci-pci.c > +++ b/drivers/usb/host/ehci-pci.c > @@ -42,18 +42,22 @@ static inline bool is_intel_quark_x1000(struct pci_dev *pdev) > pdev->device == PCI_DEVICE_ID_INTEL_QUARK_X1000_SOC; > } > > -static const struct pci_device_id ci_hdrc_pci_id_table[] = { > - { PCI_DEVICE(0x153F, 0x1004), }, > - { PCI_DEVICE(0x153F, 0x1006), }, > +/* > + * This is the list of PCI IDs for the devices that have EHCI USB class and > + * specific drivers for that. One of the example is a ChipIdea device installed > + * on some Intel MID platforms. > + */ > +static const struct pci_device_id bypass_pci_id_table[] = { > + /* ChipIdea on Intel MID platform */ > { PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x0811), }, > { PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x0829), }, > { PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xe006), }, > {} > }; > > -static inline bool is_ci_hdrc_pci(struct pci_dev *pdev) > +static inline bool is_bypassed_id(struct pci_dev *pdev) > { > - return !!pci_match_id(ci_hdrc_pci_id_table, pdev); > + return !!pci_match_id(bypass_pci_id_table, pdev); > } > > /* > @@ -368,7 +372,7 @@ static const struct ehci_driver_overrides pci_overrides __initconst = { > > static int ehci_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) > { > - if (is_ci_hdrc_pci(pdev)) > + if (is_bypassed_id(pdev)) > return -ENODEV; > return usb_hcd_pci_probe(pdev, id); > } > -- I have no idea for this change. If Greg has still not queued your pci patch, you can squash all your versions for pci and chipidea to one patch set, in this set, one patch for pci, and another for chipidea. -- Best Regards, Peter Chen -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html