Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp698202ybz; Wed, 22 Apr 2020 06:25:46 -0700 (PDT) X-Google-Smtp-Source: APiQypKPoyfyQsTSj3uaFj+NeSBceK6rjh6F6lzkf3+vaIpNXXNoyhvZRLRlU02RzgR6u1VAWbjQ X-Received: by 2002:aa7:cfc3:: with SMTP id r3mr15672361edy.342.1587561946399; Wed, 22 Apr 2020 06:25:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587561946; cv=none; d=google.com; s=arc-20160816; b=l33gvBw/vJN1Z1xc5ZJkqORcC7a2ydkCFhp39UABZn77rFvEyoTGvcZOWsPLDXVohp qL8boaYj36AMCo+YWs8GsFCv+/gEEWhGbDfMqM5OENNBcuF6g6vnVRSNqbhS32TkII7m oI9vYQZYgivWHP8v8tQQHCr5REDJYb9AOZWQ6/2t0tBoqF7SN7GafcxoWsc3tEeJXuAa mtLkf5x6AiF957mcouKbEyiWdkUsROY42qWDAR1iXXQYMqUwbLfRFvLNM2io/oLVOsGU MqPvLJnzHQ8Tc+frmfcjgcE0aA44AsddAbUoasRfFaBjjWIXK4OKau6aWKNZnxKkfItX FgGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:references:message-id :content-transfer-encoding:cc:date:in-reply-to:from:subject :mime-version; bh=GZP0djFVyxGI0dg3w9Hwhbg/T2eT7ifA+fF1C+ntP1M=; b=LQSpLkbBcl9nyqmeZHZr+OkSmjcV3+bYeydjotsihVlwC3YOyC37Qk2aV0/pUbc2XE 5EiItkAxon9rBb41fhrXto01HdOJjU+0GmxpRPJXSXrEYtuPqM6i+Qa2H3wOMVIExTnp 0eg2zq3OglgAxPt6lQXhovaZMeFutGCpvnRYo8vwIKG53EbDJFPU6cVAldEd+olZSsrG Ydp8ZlthBz0k8zQ9CUi78vkGxMkEN5wzPRtUPNXbgGZzJ9OVVUP1SrhqtW+wiJNaBn/d QADu4qq55RT1b9oxEIcZsTo+wp3Sg+qba6KlqDfgCex25TWrmIlPbe+2qHh7u9AN0u74 pg8g== 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=canonical.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c17si3394338edt.167.2020.04.22.06.25.11; Wed, 22 Apr 2020 06:25:46 -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=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726377AbgDVNXp convert rfc822-to-8bit (ORCPT + 99 others); Wed, 22 Apr 2020 09:23:45 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:45986 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726328AbgDVNXp (ORCPT ); Wed, 22 Apr 2020 09:23:45 -0400 Received: from mail-pl1-f197.google.com ([209.85.214.197]) by youngberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1jRFJK-0003jN-LO for linux-kernel@vger.kernel.org; Wed, 22 Apr 2020 13:21:06 +0000 Received: by mail-pl1-f197.google.com with SMTP id 7so1824654ple.19 for ; Wed, 22 Apr 2020 06:21:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=T0LMZyTXWoFEf1aVh2cXDeose+ywIML9Nz9WjlzDhZo=; b=aansu3808Zqci7a1w4yJZIy3Z+T4ymA2YkFSom+D4Le91YJUgeBLoodAZRA6ii3vek PE0Ibwk7kYsSYfY83A96I6PuZmk2vgepiMJ4cKESmGNpfbTZgYvgcHe3ipBIRQNZrj1N 7Ave67b6pnm7L3VNmFG1R/vna4n64CFSSmSujJZp1yiUnGRd+vAMBYv4dxQESWS7wuZN w1HiE8IrhtL3fiYKOZRU+IMs119OfRiDYRazslHF//TcXz9UJrDe7oQNFrwEdXtP7mZ1 0XlXMUZbXJfrp5+EXj17WILNT7fcSF3z+8ay00aQBD955L6kCAlm7Ffrj3G7rqLakc1z APNw== X-Gm-Message-State: AGi0PuaWsFFp0qTrutOsXBFpe1TEo0LA8rFRoL7IU6+bbUJYyEWlHdZw wQh6ONcRIkNvbIJh2IxAAWV7zEd/vJWGoBAWGaumVk+Lezpsf952sOJJcUYOhxjWeOs93sbx7HH vjOsM3hLu+CqcaQzYy1+AcXiSNCJn+H2NKxlykMk2/g== X-Received: by 2002:a17:902:8a89:: with SMTP id p9mr26137225plo.286.1587561665310; Wed, 22 Apr 2020 06:21:05 -0700 (PDT) X-Received: by 2002:a17:902:8a89:: with SMTP id p9mr26137195plo.286.1587561664959; Wed, 22 Apr 2020 06:21:04 -0700 (PDT) Received: from [192.168.1.208] (220-133-187-190.HINET-IP.hinet.net. [220.133.187.190]) by smtp.gmail.com with ESMTPSA id w66sm5456578pfw.50.2020.04.22.06.21.03 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 22 Apr 2020 06:21:04 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\)) Subject: Re: [PATCH v2] xhci: Set port link to RxDetect if port is not enabled after resume From: Kai-Heng Feng In-Reply-To: Date: Wed, 22 Apr 2020 21:21:01 +0800 Cc: Greg Kroah-Hartman , Alan Stern , "open list:USB NETWORKING DRIVERS" , linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8BIT Message-Id: <635B3350-F064-4B45-B194-40F793423049@canonical.com> References: <20200311040456.25851-1-kai.heng.feng@canonical.com> To: Mathias Nyman X-Mailer: Apple Mail (2.3608.80.23.2.2) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > On Mar 26, 2020, at 19:33, Kai-Heng Feng wrote: > > Hi Mathias, > >> On Mar 11, 2020, at 12:04, Kai-Heng Feng wrote: >> >> On Dell TB16, Realtek USB ethernet (r8152) connects to an SMSC hub which >> then connects to ASMedia xHCI's root hub: >> >> /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M >> |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/7p, 5000M >> |__ Port 2: Dev 3, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M >> >> Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub >> Bus 004 Device 002: ID 0424:5537 Standard Microsystems Corp. USB5537B >> Bus 004 Device 003: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter >> >> The port is disabled after resume: >> xhci_hcd 0000:3f:00.0: Get port status 4-1 read: 0x280, return 0x280 >> >> According to xHCI 4.19.1.2.1, we should set link to RxDetect to transit >> it from disabled state to disconnected state, which allows the port to >> be set to U0 and completes the resume process. >> >> My own test shows port can still resume when it's not enabled, as long >> as its link is in U states. So constrain the new logic only when link is >> not in any U state. >> >> Signed-off-by: Kai-Heng Feng > > Do you think this is a proper fix? Another gentle ping... > > Kai-Heng > >> --- >> drivers/usb/host/xhci-hub.c | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c >> index a9c87eb8951e..263f9a9237a1 100644 >> --- a/drivers/usb/host/xhci-hub.c >> +++ b/drivers/usb/host/xhci-hub.c >> @@ -1776,6 +1776,14 @@ int xhci_bus_resume(struct usb_hcd *hcd) >> clear_bit(port_index, &bus_state->bus_suspended); >> continue; >> } >> + >> + /* 4.19.1.2.1 */ >> + if (!(portsc & PORT_PE) && (portsc & PORT_PLS_MASK) > XDEV_U3) { >> + portsc = xhci_port_state_to_neutral(portsc); >> + portsc &= ~PORT_PLS_MASK; >> + portsc |= PORT_LINK_STROBE | XDEV_RXDETECT; >> + } >> + >> /* resume if we suspended the link, and it is still suspended */ >> if (test_bit(port_index, &bus_state->bus_suspended)) >> switch (portsc & PORT_PLS_MASK) { >> -- >> 2.17.1 >> >