Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1178383pxf; Fri, 9 Apr 2021 01:53:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzOuVZ0Wyf1HvhqkcneOtipwmqd9KCDc9v6hxiTCG6FpVGVVi+QmtZp5peqVoZ08cDf4AJW X-Received: by 2002:a17:902:b602:b029:e6:cabb:10b9 with SMTP id b2-20020a170902b602b02900e6cabb10b9mr11705000pls.47.1617958403746; Fri, 09 Apr 2021 01:53:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617958403; cv=none; d=google.com; s=arc-20160816; b=iJCx6Y4hFKAR5jR4zBHA2xci/3wOi42LzfDXZMilVR9PVk9zeQk1EbVIf7gxwanKd9 t4IozYNJxZ7dtcHiW/YjI5MPsHPnaRQKIBmXNYnI7ceg6fjMkZuWrhJzmlUdAXHaAJfq /79GqTuc+9L24MkoX7CtwwXeHjv7kYMi7WHRR8Mffsj5zeWGv7n434VTEmSmcqvQLSHh sUvjQ+HkERL4EWdR+ws97K78M/ktr0mQkyy4Cvntw5EPgMNgKFp67N1CEE9E7/5lsicx ex/oeibT73rNn16MSzOLfmJ31p5dWxiUJNJZYex4mLJc1hmNYueUYauy/G5rNWridCtt 8s6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:cc:to:from; bh=pjfKfasE23P+rFtHfN459goM7iMojog9DN9Y0YjowOI=; b=r4WU03Zfg3/2cxLvUBvRsJws2WezONkcxDtkV3u+grsIyPedECgcLg6+C96IC09gat 5nZbUQKAXmlxTSkYoVWeu7bCO7H/boSgKoBgy7fO+WP+bE5OO6YSAEaFD0LZlGVvBeHp jLDBoZGnoFH0xr9nmxy+0PQuYwIFi3LjiCZv2AiaMgobzJF7TGw3rRrDP7IMZwT4kOvn xmuA/okmzadisyvFfEiFYMD6niSNuCoMa/iwz5aWOGKA8WTpIFdKQeib3682Y6BhlrY5 gNUapQHm+l+ZR1Wmi+r0Zv7yntUF70ymnZP7ZI1eApM6dKT0Ozyz6gk2bnH9/uJ6ylUQ CkrQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m16si3003516pfk.193.2021.04.09.01.53.12; Fri, 09 Apr 2021 01:53:23 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232395AbhDIIu7 (ORCPT + 99 others); Fri, 9 Apr 2021 04:50:59 -0400 Received: from szxga04-in.huawei.com ([45.249.212.190]:16114 "EHLO szxga04-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229846AbhDIIu6 (ORCPT ); Fri, 9 Apr 2021 04:50:58 -0400 Received: from DGGEMS401-HUB.china.huawei.com (unknown [172.30.72.58]) by szxga04-in.huawei.com (SkyGuard) with ESMTP id 4FGsH35f7qz19Kl9; Fri, 9 Apr 2021 16:48:31 +0800 (CST) Received: from huawei.com (10.67.165.24) by DGGEMS401-HUB.china.huawei.com (10.3.19.201) with Microsoft SMTP Server id 14.3.498.0; Fri, 9 Apr 2021 16:50:35 +0800 From: Longfang Liu To: , , , CC: , , , , Subject: [PATCH v4] USB:ehci:fix Kunpeng920 ehci hardware problem Date: Fri, 9 Apr 2021 16:48:01 +0800 Message-ID: <1617958081-17999-1-git-send-email-liulongfang@huawei.com> X-Mailer: git-send-email 2.8.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.67.165.24] X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. Signed-off-by: Longfang Liu --- Changes in v4: - Modify the code implementation. Changes in v3: - Fix some code style issues. - Update struct name. Changes in v2: - Fix some code style issues. - Update function name. drivers/usb/host/ehci-pci.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c index 3c3820a..237a346 100644 --- a/drivers/usb/host/ehci-pci.c +++ b/drivers/usb/host/ehci-pci.c @@ -291,6 +291,9 @@ static int ehci_pci_setup(struct usb_hcd *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); -- 2.8.1