Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp5744891ybp; Tue, 15 Oct 2019 04:31:03 -0700 (PDT) X-Google-Smtp-Source: APXvYqxkCAvB9SY1vmN35shI1LhJnPYwZ05mt54z74n9TOkpdnMxYcNct1APsFN5leIlc5uAl388 X-Received: by 2002:aa7:d341:: with SMTP id m1mr33256117edr.57.1571139063273; Tue, 15 Oct 2019 04:31:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571139063; cv=none; d=google.com; s=arc-20160816; b=DR0oUoNZ7rwzny9xr3u9Cwk+tisEXSU3+QGA7psZzO4f+RYwXhjiLz7nPGXJp1nYop ecuUP2vfSvYNy1MMRs3vAWdZrqyhP73j0W8k9d3b0YQhlHu9XsKJ87Xxd/r4DGUj470h bclBTCiPw50xeq6g+J9rR/7UraYxCLi4+mW1o7o1w/M0/Ujr4kQ/HLE9GS7m+2C015Hs AoyoyFGFO8tF7Qo5IsoB7mpxnBOOa96jotZXUvSHcUibPRpyAV/7eZWpG5/E5jkcALIW 5ky3G4pZuOfJiyUXqqSwd+c2bzwUpJ3wVQbLH5VL8yv6bODPkq8IGDKI6qn7IoIvsykz Dsrw== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=v2+MfU8BA9N+kYG+UhxO+xB6ESKW69SU23RYupl8tn0=; b=c8q6LJdJrwfAdxPVXrhbilCs7l/94XJKuCFwGzSgVDuT3QGj5yAuyHPVn8Bu3nmts/ 4j4WofYW67TN3LpGyzrDosyO6Qk620GduHproyhDlsQrxR9QuCtBnyF77lK6aSpZ1v46 o3uwuTUAgo2zWCAXLZhwoHEdD6q+Aie/NGPCkKq6Ol646dcj2cuv7RB5nEGkFVSqIJB0 8ji3sPXLtxSK2h3oL5VdCeR/exYh1471/WGLuy43sGbMkvG8ypjZgzqg5+q8BvRGsaVR Ow/QVMcIyERIYaJsmpQ9YLbAt62XkCAOYkZl7nx1g6UfLUnkf54itO7P1vlN9Zb5cPQ8 z1EA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@endlessm-com.20150623.gappssmtp.com header.s=20150623 header.b=v1Keii2A; 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 qn24si12803519ejb.200.2019.10.15.04.30.39; Tue, 15 Oct 2019 04:31:03 -0700 (PDT) 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=@endlessm-com.20150623.gappssmtp.com header.s=20150623 header.b=v1Keii2A; 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 S1730297AbfJOKTQ (ORCPT + 99 others); Tue, 15 Oct 2019 06:19:16 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:41271 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729923AbfJOKTQ (ORCPT ); Tue, 15 Oct 2019 06:19:16 -0400 Received: by mail-pg1-f195.google.com with SMTP id t3so11847188pga.8 for ; Tue, 15 Oct 2019 03:19:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=endlessm-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=v2+MfU8BA9N+kYG+UhxO+xB6ESKW69SU23RYupl8tn0=; b=v1Keii2AMIQ2PHav5u2wn8zsXXt1VCZh/YSN1DMY3rm6moRf3QVRm+H+AX7PLRFTeM 1FT3BygBzYcOrA39ion6q6EDYe6KjvTB6MCpNjmwgB9Gflsx2RgIyBLnFRCkeq6sRKL3 K7E5E2ALpkA+HZDRThYKCu8g2pGIhbxoHOojMukX5lbwq8c427ZI/8QQx65NevMICvvK GIQQB/pD2xCuFLvV8bBPBh+/ufN5x7zHsjNkIJ3Sm+gBG19oshTgqIy5PNC3UPvBAk1Y WLLOEjtzxJ41LeZTXvsKkoO/CzkRhFwjuVgjczTG7bFCXng1UtFsXIpDxE7UyT7PTG2C Y/Lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=v2+MfU8BA9N+kYG+UhxO+xB6ESKW69SU23RYupl8tn0=; b=VLCmfY0rXXaw2bRcpEOKoMQsS2v+rzCmKV3/7xJInjHM3F2koDaAqrGN0M6tDqYq3k qFM2u3mxj4BdwoA0CbP4GpotfnT15P+ctQxcLEMWc//OP6X7i8zwgCpKiUgv5oJP0Int K3fBxLwR8BgPyo6wTLGcHDtboNMYXQ7yZkIsofLI1KdrG1GEaGgwrr1ImugmWiUtYudX ko2KZRwS4tvIvQ1UUSW/SGm5Wd+Yr67ExbyXZrkLlUf5NszQadZyPn7BzQk8t/kqKGXv HX5hndzUunmp532uaC6YvsxcalB2iZU0lyuA+eP9UZlp/QUkkb/CIR08A1IchUg0hlZD CJvQ== X-Gm-Message-State: APjAAAV9bdtsLjCWY92FNlntxLnsQCC0d/n9w2dYzT6qum5IEspMxCBP 1OkFObcGK50pF0x2efpG9ALEDA== X-Received: by 2002:aa7:86d6:: with SMTP id h22mr38105646pfo.72.1571134754357; Tue, 15 Oct 2019 03:19:14 -0700 (PDT) Received: from localhost.localdomain (59-127-47-130.HINET-IP.hinet.net. [59.127.47.130]) by smtp.gmail.com with ESMTPSA id m12sm24635560pff.66.2019.10.15.03.19.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 15 Oct 2019 03:19:13 -0700 (PDT) From: Chris Chiu To: Jes.Sorensen@gmail.com, kvalo@codeaurora.org, davem@davemloft.net Cc: linux-wireless@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux@endlessm.com Subject: [PATCH] rtl8xxxu: fix RTL8723BU connection failure issue after warm reboot Date: Tue, 15 Oct 2019 18:19:09 +0800 Message-Id: <20191015101909.4640-1-chiu@endlessm.com> X-Mailer: git-send-email 2.20.1 (Apple Git-117) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 initilization without checking MAC status. Signed-off-by: Chris Chiu --- 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 22e95b11bfbb..6598c8d786ea 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h @@ -1425,6 +1425,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 9ba661b3d767..a1c3787abe2e 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c @@ -1668,6 +1668,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 e4c1b08c8070..8420cb269b8d 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c @@ -3900,6 +3900,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.23.0