On Mon, 11 May 2020, Al Cooper wrote: > Add a new EHCI driver for Broadcom STB SoC's. A new EHCI driver > was created instead of adding support to the existing ehci platform > driver because of the code required to work around bugs in the EHCI > controller. The primary workaround is for a bug where the Core > violates the SOF interval between the first two SOFs transmitted after > resume. This only happens if the resume occurs near the end of a > microframe. The fix is to intercept the ehci-hcd request to complete > RESUME and align it to the start of the next microframe. > > Signed-off-by: Al Cooper <alcooperx@xxxxxxxxx> > Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> > Reviewed-by: Florian Fainelli <f.fainelli@xxxxxxxxx> > --- I hate to point this out... > +static int ehci_brcm_probe(struct platform_device *pdev) > +{ > + struct device *dev = &pdev->dev; > + struct resource *res_mem; > + struct brcm_priv *priv; > + struct usb_hcd *hcd; > + int irq; > + int err; > + > + err = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32)); > + if (err) > + return err; > + > + irq = platform_get_irq(pdev, 0); > + if (irq <= 0) > + return irq ? irq : EINVAL; That should be -EINVAL. To tell the truth, I'm not sure it's worthwhile checking for irq == 0. That's up to Greg to decide. Anyway, as far as I'm concerned you can either change EINVAL to -EINVAL or change the whole thing back to "if (irq < 0) return irq;". Either way, you may add: Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> Alan Stern