Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp13328804ybl; Sun, 29 Dec 2019 09:25:10 -0800 (PST) X-Google-Smtp-Source: APXvYqzdCi2jEEbB6a6GqBMky6d9tR4ogoY0UQvuLoXh8PHjMxT5ORWvSumCpPIviDkYG7CQuRBt X-Received: by 2002:a9d:c42:: with SMTP id 60mr32221083otr.182.1577640309969; Sun, 29 Dec 2019 09:25:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1577640309; cv=none; d=google.com; s=arc-20160816; b=f+2utrRoEWPGizYynbNQN7IL72rHgX10tjHNDa7K+Esmy5FEtKWDuivsFH9yfHieT0 FnOJVQerQl7XdLlpMLvHlt/Y2HCvO4CSqCr+iBDoKAlHw0Bc1wPu6KwN7+KNUOLSd0RP BR6o+gKnvdHgiGd2BFnwLo2wH/1q/VYSQIh9sgHOvMhvu1JQwBzgumeApHaYESsd47Vp GOns+O3QS/KQF/EyEth2CBjTVWcLZf7U2RfQ864IT/ftmZpb/xn08MkSMIuGM22dUPu7 qVCJPs+Vtz9lD2t+1GK1w/7N7SFm4midKxJjpHL2sgFm3mhoivfx5nBcbaKlLP+y9LP+ 1Q6w== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=xfIlZAEzTLRbclzRzroWTaODi5Yh6xHh96QctJtfMl0=; b=i17twaOj/AlSzMMwYQoaRTYe84OtZJiyqQFQ/HG1i1yggFfjUuhhTgFj9zUMEfYUov KAeFEcTnR0PvDRiyjQZTuMakoioWT7JLBWdTkawukd5SUeyKE56FNzGBLgjkFFe8OKwI RuGhSwf4IZokc//U/x4iYz2LIbL1qp14WEXvFcO15xmhPiSBLSPOkqtgVvZntHK0TOEd KIn+IDLHeS2eCgF3k/5n/UFDlk1NHfRkPD74QRJ2zs4CQnio32XisI3gX7Q0iOShMzRJ TwaZOOSuQv1zqSwueeQDQMhp5RzMtRBAkBnpP06q6dTLlSog/FmIH7Z6C2EShKvjsf46 9cVw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=FiiYbcMp; 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 c7si20919342oto.305.2019.12.29.09.24.58; Sun, 29 Dec 2019 09:25:09 -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; dkim=pass header.i=@kernel.org header.s=default header.b=FiiYbcMp; 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 S1727599AbfL2RXs (ORCPT + 99 others); Sun, 29 Dec 2019 12:23:48 -0500 Received: from mail.kernel.org ([198.145.29.99]:41686 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727264AbfL2RXo (ORCPT ); Sun, 29 Dec 2019 12:23:44 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 79593208E4; Sun, 29 Dec 2019 17:23:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1577640223; bh=Mq9VskrSu3psdoanu/znBpGa5FKozlRw0yU7aJzuzVM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FiiYbcMpnS092qLTGpL5uhrWpFJv729XVWwKwJ66ohKDhwh8EEfpz59uxTlanQ/f1 f6RAeRrVuqDnOmJqI3xnLmsQ745g+SXBywhACZuHhoqfQ6VtRGB3zB0Zy0aNKwcKB6 7ptKu5xoCeSFsiFwK/xTUr9Ulr+AvJKaS8RvRiEY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Chris Chiu , Jes Sorensen , Kalle Valo , Sasha Levin Subject: [PATCH 4.14 068/161] rtl8xxxu: fix RTL8723BU connection failure issue after warm reboot Date: Sun, 29 Dec 2019 18:18:36 +0100 Message-Id: <20191229162420.614179235@linuxfoundation.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20191229162355.500086350@linuxfoundation.org> References: <20191229162355.500086350@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Chris Chiu [ Upstream commit 0eeb91ade90ce06d2fa1e2fcb55e3316b64c203c ] The RTL8723BU has problems connecting to AP after each warm reboot. Sometimes it returns no scan result, and in most cases, it fails the authentication for unknown reason. However, it works totally fine after cold reboot. Compare the value of register SYS_CR and SYS_CLK_MAC_CLK_ENABLE for cold reboot and warm reboot, the registers imply that the MAC is already powered and thus some procedures are skipped during driver initialization. Double checked the vendor driver, it reads the SYS_CR and SYS_CLK_MAC_CLK_ENABLE also but doesn't skip any during initialization based on them. This commit only tells the RTL8723BU to do full initialization without checking MAC status. Signed-off-by: Chris Chiu Signed-off-by: Jes Sorensen Signed-off-by: Kalle Valo Signed-off-by: Sasha Levin --- drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 1 + drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c | 1 + drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 3 +++ 3 files changed, 5 insertions(+) diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h index 95e3993d8a33..a895b6fd6f85 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h @@ -1349,6 +1349,7 @@ struct rtl8xxxu_fileops { u8 has_s0s1:1; u8 has_tx_report:1; u8 gen2_thermal_meter:1; + u8 needs_full_init:1; u32 adda_1t_init; u32 adda_1t_path_on; u32 adda_2t_path_on_a; diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c index c4b86a84a721..27e97df996c7 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c @@ -1673,6 +1673,7 @@ struct rtl8xxxu_fileops rtl8723bu_fops = { .has_s0s1 = 1, .has_tx_report = 1, .gen2_thermal_meter = 1, + .needs_full_init = 1, .adda_1t_init = 0x01c00014, .adda_1t_path_on = 0x01c00014, .adda_2t_path_on_a = 0x01c00014, diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c index 91b01ca32e75..b58bf8e2cad2 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c @@ -3905,6 +3905,9 @@ static int rtl8xxxu_init_device(struct ieee80211_hw *hw) else macpower = true; + if (fops->needs_full_init) + macpower = false; + ret = fops->power_on(priv); if (ret < 0) { dev_warn(dev, "%s: Failed power on\n", __func__); -- 2.20.1