Received: by 2002:a05:6a10:17d3:0:0:0:0 with SMTP id hz19csp3555134pxb; Tue, 20 Apr 2021 10:49:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwFzpCX1UNZVRaWuS1XVXJn3XZxfznauYvaFRLOISndFEhzAaAO/iZCMPM5/KZx1hZqwaia X-Received: by 2002:a50:9faf:: with SMTP id c44mr33815717edf.196.1618940989153; Tue, 20 Apr 2021 10:49:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618940989; cv=none; d=google.com; s=arc-20160816; b=HnZxxXh+0dD109pIR7XTXEy2+6C0ToaOf2GxHwVd0+h/7iy/NOJ1dLLVY2Gky0fl4E cench3IYkvS9Ix8P9l7I5xujvVSJ4lcs2tDgzr1x+nULW1p3rGTmETQOnvBNAFTPTSuu 6o6D+FexpCu7lCGt7/bdLMP5qRYviar4Hsn/C9CYnbh/0Vmfu2PUsU5ZlYLGCGQG0bZ/ iyNuJpGjwqoxcJQQ6CSkXPEq4odNR/qmwdJca8eVfUG8gLBlGoB8HgSTGKzIdjMF9IMl ROJavsQm+v53X9SEKZ/aED0Q3EU5CmqblOzcXGpyRFe/I+PUk584ocJXg/3h2fqHNYKP 38mw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=luV9ScopT24sxXKJl4CCQZ1SYAP630sGPHg6Ez8zA2c=; b=SgjpMEvesYkLrxBtBxuP6DIsa4mdRZ/IkPuyQVz3v7mg6AJjHctYa4kmd2zRwfq21r FPzrq0tR9PfelSHpQirqy+slfgfPWCqWTN1L41nLgrSmesPsGaCUeGffqOvuSfQnq/iP YOYHIGiz/6hTWI7qT34MVBl7/p66MVMgfyF+/yRx+XsX2HNb8SYQ1rJQgh2zOmbWySO8 GUstHUS61MYzRaeKcZD7ByaSEHMevHxVLInm6iLRgEL7vORG2vppUgOCpX8Pp3YQqX6U DxeFloCiX+HWoD4D0Z4fJa60mRSC1BHaeW7PedM1saN1LzK3udT0h0gRaHoJmXRSUnAL ZI0g== 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 f7si17763611edd.474.2021.04.20.10.49.25; Tue, 20 Apr 2021 10:49:49 -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 S233470AbhDTRrk (ORCPT + 99 others); Tue, 20 Apr 2021 13:47:40 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:51754 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231549AbhDTRrk (ORCPT ); Tue, 20 Apr 2021 13:47:40 -0400 Received: from 111-240-142-99.dynamic-ip.hinet.net ([111.240.142.99] helo=localhost.localdomain) by youngberry.canonical.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1lYuSo-00083M-3k; Tue, 20 Apr 2021 17:47:06 +0000 From: chris.chiu@canonical.com To: stern@rowland.harvard.edu, gregkh@linuxfoundation.org, m.v.b@runbox.com, hadess@hadess.net Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Chris Chiu Subject: [PATCH] USB: Add reset-resume quirk for WD19's Realtek Hub Date: Wed, 21 Apr 2021 01:46:51 +0800 Message-Id: <20210420174651.6202-1-chris.chiu@canonical.com> X-Mailer: git-send-email 2.21.1 (Apple Git-122.3) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Chris Chiu Realtek Hub (0bda:5487) in Dell Dock WD19 sometimes fails to work after the system resumes from suspend with remote wakeup enabled device connected: [ 1947.640907] hub 5-2.3:1.0: hub_ext_port_status failed (err = -71) [ 1947.641208] usb 5-2.3-port5: cannot disable (err = -71) [ 1947.641401] hub 5-2.3:1.0: hub_ext_port_status failed (err = -71) [ 1947.641450] usb 5-2.3-port4: cannot reset (err = -71) Information of this hub: T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 10 Spd=480 MxCh= 5 D: Ver= 2.10 Cls=09(hub ) Sub=00 Prot=02 MxPS=64 #Cfgs= 1 P: Vendor=0bda ProdID=5487 Rev= 1.47 S: Manufacturer=Dell Inc. S: Product=Dell dock C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=01 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=256ms I:* If#= 0 Alt= 1 #EPs= 1 Cls=09(hub ) Sub=00 Prot=02 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=256ms The failure results from the ETIMEDOUT by chance when turning on the suspend feature for the specified port of the hub. The port seems to be in an unknown state so the hub_activate during resume fails the hub_port_status, then the hub will fail to work. The quirky hub needs the reset-resume quirk to function correctly. Signed-off-by: Chris Chiu --- drivers/usb/core/quirks.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c index 76ac5d6555ae..4e2483e34250 100644 --- a/drivers/usb/core/quirks.c +++ b/drivers/usb/core/quirks.c @@ -406,6 +406,7 @@ static const struct usb_device_id usb_quirk_list[] = { /* Realtek hub in Dell WD19 (Type-C) */ { USB_DEVICE(0x0bda, 0x0487), .driver_info = USB_QUIRK_NO_LPM }, + { USB_DEVICE(0x0bda, 0x5487), .driver_info = USB_QUIRK_RESET_RESUME }, /* Generic RTL8153 based ethernet adapters */ { USB_DEVICE(0x0bda, 0x8153), .driver_info = USB_QUIRK_NO_LPM }, -- 2.20.1