lkml.org 
[lkml]   [2021]   [Aug]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 27/30] USB:ehci:fix Kunpeng920 ehci hardware problem
    Date
    From: Longfang Liu <liulongfang@huawei.com>

    commit 26b75952ca0b8b4b3050adb9582c8e2f44d49687 upstream.

    Kunpeng920's EHCI controller does not have SBRN register.
    Reading the SBRN register when the controller driver is
    initialized will get 0.

    When rebooting the EHCI driver, ehci_shutdown() will be called.
    if the sbrn flag is 0, ehci_shutdown() will return directly.
    The sbrn flag being 0 will cause the EHCI interrupt signal to
    not be turned off after reboot. this interrupt that is not closed
    will cause an exception to the device sharing the interrupt.

    Therefore, the EHCI controller of Kunpeng920 needs to skip
    the read operation of the SBRN register.

    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Longfang Liu <liulongfang@huawei.com>
    Link: https://lore.kernel.org/r/1617958081-17999-1-git-send-email-liulongfang@huawei.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/usb/host/ehci-pci.c | 3 +++
    1 file changed, 3 insertions(+)

    --- a/drivers/usb/host/ehci-pci.c
    +++ b/drivers/usb/host/ehci-pci.c
    @@ -312,6 +312,9 @@ static int ehci_pci_setup(struct usb_hcd
    if (pdev->vendor == PCI_VENDOR_ID_STMICRO
    && pdev->device == PCI_DEVICE_ID_STMICRO_USB_HOST)
    ; /* ConneXT has no sbrn register */
    + else if (pdev->vendor == PCI_VENDOR_ID_HUAWEI
    + && pdev->device == 0xa239)
    + ; /* HUAWEI Kunpeng920 USB EHCI has no sbrn register */
    else
    pci_read_config_byte(pdev, 0x60, &ehci->sbrn);


    \
     
     \ /
      Last update: 2021-08-13 17:11    [W:2.699 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site