Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp3646371ybl; Tue, 21 Jan 2020 04:44:00 -0800 (PST) X-Google-Smtp-Source: APXvYqwf3TB2CyZrTUtKYTCjZhhhH5J9RvbmXNj5gs2BU0F4I5WWfALeC/4cWCSinEJag4xXIAa1 X-Received: by 2002:a9d:7c8f:: with SMTP id q15mr3447800otn.140.1579610640189; Tue, 21 Jan 2020 04:44:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579610640; cv=none; d=google.com; s=arc-20160816; b=AC5wLngTw1CXpjeukVvTMmKKioA0caPXTMZs3i5t5A3FUO49B9xsEdAmKG9/mkWLxQ Ax/H9H7Q8GCTwtWtsV6FlVaa9bYN4m4k78orP19dwiRnyePaAoTxIPPyfw69M4SBHq+M Qz4dZfNkvex2YPtrGGZADkDBQDaOr+A/KAiZmvOUKrcLMFzGa1+kB+9m+lFprVImmVG7 TbYMA/BUUYGBsSgS36arzlpDhDZWjVQgeP4aVq+kWQYbPPOOmcNDHk8Mj4QATIoFKMPH iFZxyot5cHF+mBzSOeUfUNBAuxtGZGle2Mg4vw9bUkXPHVhGwlM7GR0PHOw6B37qaFcD Rq3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :authenticated-by; bh=/N0tuyVWE6nSHX0HwZ/lvlV90sT5LS70YSyLtbO4mq8=; b=aaXDHKd8FQwhmzQCYOFRFx32gqs4jE/2G4zvgDRMh1/IKa+iZIKUPEuHzsPKsJfjeB 8lJZMon0NJ0FNk72N1HHeZCmAVNDJK9AeLoL3bgRQdH0uXPzGvtZHgUvTusCfCaTOKxz oCVAjRDtjHam5WsQvfgn1xxO70COwB/G4HEdWIM+n1TfNPbejzqxBT2AKbC3TZhVH/lu 7Tsw9eGzmdHq+0meMeitSP6t3CZ3zhcVg3dZOfWAlnwsSS7HdNCyxR+tzxN3sKo35Kh5 qo2/kNTihkqwMvUKxPfoxzPRO3mcD2Xwva0lrjqsOk/d2Rpa7xxXhVNE+jBeXheYPqbJ JyQw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r12si21195520otq.156.2020.01.21.04.43.47; Tue, 21 Jan 2020 04:44:00 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729693AbgAUMmv (ORCPT + 99 others); Tue, 21 Jan 2020 07:42:51 -0500 Received: from rtits2.realtek.com ([211.75.126.72]:54691 "EHLO rtits2.realtek.com.tw" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729274AbgAUMmv (ORCPT ); Tue, 21 Jan 2020 07:42:51 -0500 Authenticated-By: X-SpamFilter-By: BOX Solutions SpamTrap 5.62 with qID 00LCglR3010994, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (smtpsrv.realtek.com[172.21.6.18]) by rtits2.realtek.com.tw (8.15.2/2.57/5.78) with ESMTPS id 00LCglR3010994 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Tue, 21 Jan 2020 20:42:47 +0800 Received: from fc30.localdomain (172.21.177.138) by RTITCASV01.realtek.com.tw (172.21.6.18) with Microsoft SMTP Server id 14.3.468.0; Tue, 21 Jan 2020 20:42:45 +0800 From: Hayes Wang To: CC: , , , , , Hayes Wang Subject: [PATCH net 1/9] r8152: fix runtime resume for linking change Date: Tue, 21 Jan 2020 20:40:27 +0800 Message-ID: <1394712342-15778-339-Taiwan-albertk@realtek.com> X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <1394712342-15778-338-Taiwan-albertk@realtek.com> References: <1394712342-15778-338-Taiwan-albertk@realtek.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [172.21.177.138] Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Fix the runtime resume doesn't work normally for linking change. 1. Reset the settings and status of runtime suspend. 2. Sync the linking status. 3. Poll the linking change. Signed-off-by: Hayes Wang --- drivers/net/usb/r8152.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index 031cb8fff909..115559707683 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -365,8 +365,10 @@ #define DEBUG_LTSSM 0x0082 /* PLA_EXTRA_STATUS */ +#define CUR_LINK_OK BIT(15) #define U3P3_CHECK_EN BIT(7) /* RTL_VER_05 only */ #define LINK_CHANGE_FLAG BIT(8) +#define POLL_LINK_CHG BIT(0) /* USB_USB2PHY */ #define USB2PHY_SUSPEND 0x0001 @@ -5387,6 +5389,16 @@ static void r8153_init(struct r8152 *tp) else ocp_data |= DYNAMIC_BURST; ocp_write_byte(tp, MCU_TYPE_USB, USB_CSR_DUMMY1, ocp_data); + + r8153_queue_wake(tp, false); + + ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_EXTRA_STATUS); + if (rtl8152_get_speed(tp) & LINK_STATUS) + ocp_data |= CUR_LINK_OK; + else + ocp_data &= ~CUR_LINK_OK; + ocp_data |= POLL_LINK_CHG; + ocp_write_word(tp, MCU_TYPE_PLA, PLA_EXTRA_STATUS, ocp_data); } ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, USB_CSR_DUMMY2); @@ -5416,6 +5428,7 @@ static void r8153_init(struct r8152 *tp) ocp_write_word(tp, MCU_TYPE_USB, USB_CONNECT_TIMER, 0x0001); r8153_power_cut_en(tp, false); + rtl_runtime_suspend_enable(tp, false); r8153_u1u2en(tp, true); r8153_mac_clk_spd(tp, false); usb_enable_lpm(tp->udev); @@ -5484,6 +5497,14 @@ static void r8153b_init(struct r8152 *tp) r8153b_ups_en(tp, false); r8153_queue_wake(tp, false); rtl_runtime_suspend_enable(tp, false); + + ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_EXTRA_STATUS); + if (rtl8152_get_speed(tp) & LINK_STATUS) + ocp_data |= CUR_LINK_OK; + else + ocp_data &= ~CUR_LINK_OK; + ocp_data |= POLL_LINK_CHG; + ocp_write_word(tp, MCU_TYPE_PLA, PLA_EXTRA_STATUS, ocp_data); r8153b_u1u2en(tp, true); usb_enable_lpm(tp->udev); -- 2.21.0