Re: [PATCH v9 4/5] usb: ehci: Add new EHCI driver for Broadcom STB SoC's
From: Alan Cooper <alcooperx@gmail.com>
Date: 2020-05-12 14:24:23
Also in:
linux-usb, lkml
On Mon, May 11, 2020 at 3:51 PM Alan Stern [off-list ref] wrote:
On Mon, 11 May 2020, Al Cooper wrote:quoted
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@gmail.com> Reviewed-by: Andy Shevchenko <redacted> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> ---I hate to point this out...quoted
+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.
Darn, I've been looking at this code for too long :( Since Greg originally requested <=, I'll fix this and send v10. Thanks Al
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@rowland.harvard.edu> Alan Stern