Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp2369148pxb; Tue, 12 Oct 2021 05:17:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyPyFq5551X3bXA7dZ/1yecq3E7y1tc7x00dRI00vgNJHtQAVsbHwrrMmeGFZHFWvo1VJQF X-Received: by 2002:a17:906:5282:: with SMTP id c2mr33029584ejm.162.1634041072852; Tue, 12 Oct 2021 05:17:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1634041072; cv=none; d=google.com; s=arc-20160816; b=Ptf3PEeJPidWJn3TuBri7xJU+V2mrVeWTpYWdIq+2eeaWm2jYkboITcsJlun+ArX7d xUfa1WbT37bQ62lRdAxZQyXiwlxmuYsVY8Pq2FBQ1YbcQU3y2/JQkGUxriuZ7kL/kaye 5N3f80kIJgAdDEIL3Ut0JFLzmhawzDB0K6Qj9stuwLLFR7DWUaVoC4BvSXlHyf2sR/op 4jUgJNKcWy/ZUGVdRpTNm35qw2f+ritnTRl+FzCbjuQZM7FYc7HCqxb/CnlExIcYIaGl nVmyMsvJcJjSbptocf8sj1PiDbf+q2jNRm19RMfeZM3dar0Oin3dBgE+RWKcRNpjDuWF 5Omw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-language:content-transfer-encoding :in-reply-to:mime-version:user-agent:date:message-id:from:references :to:subject; bh=vRdqjurw/KKuLam5nhxKkktKymDpS3OMGwcIhVAHNFI=; b=SISUS6AlppHi0TalRV6XS0vdQfpvTb8eu9sg9DL8FKOL5tS4e9ZUihtfGRbbtALr6I RkCkJ1sevkTmlPmftV2ZD9X0KbJ9t0q2imrTrntDX4TAj4UwzYmaSVgHElBlabxlPKcs +9L6gCd6So5joTdXMAWSrA1J3UoOgdr2fWMFnw0flSf3+Ov+b7KZvAlNXna1MOG1PWP+ 510Dk9qZCZJgGM/ACGkLLEi6WDCXYkzeD0coOz24g2vfViqDzXXO/caaG3d1bQg7dthC zipotFtlnCaa84ykJZpVuEsOr4XoI3zdM/O3Dm6vIp03jpPdHoc3qrcpckR1/zNtW6Th 9aWQ== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w18si15134249edu.157.2021.10.12.05.17.18; Tue, 12 Oct 2021 05:17:52 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236341AbhJLMOD (ORCPT + 99 others); Tue, 12 Oct 2021 08:14:03 -0400 Received: from mail.loongson.cn ([114.242.206.163]:57752 "EHLO loongson.cn" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S236196AbhJLMOB (ORCPT ); Tue, 12 Oct 2021 08:14:01 -0400 Received: from [10.180.13.145] (unknown [10.180.13.145]) by mail.loongson.cn (Coremail) with SMTP id AQAAf9Dxn2qCe2VhVrQYAA--.23052S2; Tue, 12 Oct 2021 20:11:53 +0800 (CST) Subject: Re: [PATCH v5] usb: ohci: disable start-of-frame interrupt in ohci_rh_suspend To: Alan Stern , Greg Kroah-Hartman , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Patchwork Bot References: <1634027450-3358-1-git-send-email-zhuyinbo@loongson.cn> From: zhuyinbo Message-ID: Date: Tue, 12 Oct 2021 20:11:45 +0800 User-Agent: Mozilla/5.0 (X11; Linux mips64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <1634027450-3358-1-git-send-email-zhuyinbo@loongson.cn> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-CM-TRANSID: AQAAf9Dxn2qCe2VhVrQYAA--.23052S2 X-Coremail-Antispam: 1UD129KBjvJXoWxJrW7uFyDtFWrtFy7urWktFb_yoW8Kr1DpF 4fCr15try5Jw409F1UCF17GrWrKw15J3y7GasrCa4UAwsxtr10gFy2gFWYgF1vqrWxJw1U ZF48X34Uua1UuaUanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUv0b7Iv0xC_tr1lb4IE77IF4wAFF20E14v26r1j6r4UM7CY07I2 0VC2zVCF04k26cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rw A2F7IY1VAKz4vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Gr0_Xr1l84ACjcxK6xII jxv20xvEc7CjxVAFwI0_Gr0_Cr1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4 A2jsIEc7CjxVAFwI0_GcCE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IE w4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v26r1j6r4UMc vjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvEwIxGrwCYjI0SjxkI62AI1cAE67vIY487MxkI ecxEwVCm-wCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F4 0E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_JF0_Jw1l IxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxV AFwI0_Jr0_Gr1lIxAIcVCF04k26cxKx2IYs7xG6rW3Jr0E3s1lIxAIcVC2z280aVAFwI0_ Jr0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7IU8 v_M3UUUUU== X-CM-SenderInfo: 52kx5xhqerqz5rrqw2lrqou0/ Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 在 2021/10/12 下午4:30, Yinbo Zhu 写道: > The usb states of ohci controller include UsbOperational, UsbReset, > UsbSuspend and UsbResume. Among them, only the UsbOperational state > supports launching the start-of-frame for host controller according > the ohci protocol spec, but in S3 and S4 (suspend to memory/suspend > to disk) press test procedure, it may happen that the start-of- > frame was launched in UsbSuspend status and cause ohci works failed > that the phenomenon was hc will allways reproduce the SoF interrupt > and consider that hc doesn't deal with the ed/td/done list in non- > UsbOperational, and this patch was to disable SoF interrupt in ohci > _rh_suspend so that it can fix ohci SoF abnormally interrupt issue. > > Signed-off-by: Yinbo Zhu > --- > Change in v5: > Move the key code change into ohci_rh_suspend. > Rework the commit log information. > > > drivers/usb/host/ohci-hub.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/usb/host/ohci-hub.c b/drivers/usb/host/ohci-hub.c > index f474f2f..80a0094 100644 > --- a/drivers/usb/host/ohci-hub.c > +++ b/drivers/usb/host/ohci-hub.c > @@ -88,6 +88,8 @@ static int ohci_rh_suspend (struct ohci_hcd *ohci, int autostop) > msleep (8); > spin_lock_irq (&ohci->lock); > } > + /* All ED unlinks should be finished, no need for SOF interrupts */ > + ohci_writel(ohci, OHCI_INTR_SF, &ohci->regs->intrdisable); > update_done_list(ohci); > ohci_work(ohci); Hi Alan Stern,     I consider that autostop sometimes was '1' then and HC doesn't  stop deal with the ed/td/done list , then ohci_wok will called start_ed_unlink and     start_ed_unlink will enable INTR_SF as follows, so I think add above two line code after ohci_work it is more appropriate, Do you think so?       static void start_ed_unlink (struct ohci_hcd *ohci, struct ed *ed)        {              ...              494         /* enable SOF interrupt */              495         ohci_writel (ohci, OHCI_INTR_SF, &ohci->regs->intrstatus);              496         ohci_writel (ohci, OHCI_INTR_SF, &ohci->regs->intrenable);               ...         } BRs, Yinbo Zhu. >