Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp1924988ybg; Fri, 5 Jun 2020 00:48:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy/cPCyfHAu5WilQ6FqT7+rrBnw8x8C36FhjLPWT/N32wy57Yfy6/ukvaeKdFV7aFCN0G7e X-Received: by 2002:a05:6402:1c87:: with SMTP id cy7mr8260413edb.354.1591343321808; Fri, 05 Jun 2020 00:48:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591343321; cv=none; d=google.com; s=arc-20160816; b=HBL93dZdU7KZsJzbnb0kVSCYligUb7sw+6tGZo49NmhXMW6n9GAQLr3irBKAL6Jyny 5+SJcf4ZUvLyICkzLbElGtzB0RKwVit+dEfIspzYIBknB94/Y+FmaA8uD7fzDZDXAmVv c2+RJClzc0MYXWmwUVQbWfkQA+Ns+ahfO+YAZE51EGSfBoXqL0y7Qdd8VaY4BdhW5A1I NJc6AT1gYYVQTEfPG7MVKBO8glT442RttfotvtZvrxYizuHkVg9eVlZSYpf+9rNGTK35 t0K/wfT2p6oyaowJ0Jfpaqun9+t/EsQLYdvCO2KQFN707tOdVas/T2qVY1rGDj+Vqzcz 1Y2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from:authenticated-by; bh=peirnjWuBCrWpXa0M9FBWh0YbTj0NXoLdBDPXXrhcwI=; b=P65ZsPlhOBrMCFoPLpVivTXJgZXmptC8c794K9eyYTOmTpOl4bAQF3A5QBN+BwXP7w yK0ijPLXjhpwBAVahVQ4klEsrYz6xFxYSDOdSxdQjdA7SJT15CWN/G5xd3MG0bdBCAFv xPOwn0aqtSPKndJJyUbej60R9yt/gs/vJ/NM7aWylJnIyx6u5o42va6bvgbAjKhX+xwQ qNXpKwe7nsp5zuPViaOOHzy1izzueP2VfGsXuuY8GOraezJDPvwQw+Wm9hBadOXO6HQH HfhPMaEhEuEXLEKveoTV45fnF0roGeVYkXlHDnc8qi+0oOibUBGoElqzs7mMYVtFJO2B VZjg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o25si3246268eja.361.2020.06.05.00.48.01; Fri, 05 Jun 2020 00:48:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-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-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726183AbgFEHrZ (ORCPT + 99 others); Fri, 5 Jun 2020 03:47:25 -0400 Received: from rtits2.realtek.com ([211.75.126.72]:56931 "EHLO rtits2.realtek.com.tw" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726024AbgFEHrY (ORCPT ); Fri, 5 Jun 2020 03:47:24 -0400 Authenticated-By: X-SpamFilter-By: ArmorX SpamTrap 5.69 with qID 0557l5MR1005822, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtexmb06.realtek.com.tw[172.21.6.99]) by rtits2.realtek.com.tw (8.15.2/2.66/5.86) with ESMTPS id 0557l5MR1005822 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Fri, 5 Jun 2020 15:47:05 +0800 Received: from RTEXMB04.realtek.com.tw (172.21.6.97) by RTEXMB06.realtek.com.tw (172.21.6.99) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1779.2; Fri, 5 Jun 2020 15:47:05 +0800 Received: from localhost.localdomain (172.21.68.128) by RTEXMB04.realtek.com.tw (172.21.6.97) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1779.2; Fri, 5 Jun 2020 15:47:04 +0800 From: To: CC: , , , Subject: [PATCH v1] rtw88: pci: disable aspm for platform inter-op with module parameter Date: Fri, 5 Jun 2020 15:47:03 +0800 Message-ID: <20200605074703.32726-1-yhchuang@realtek.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [172.21.68.128] X-ClientProxiedBy: RTEXMB03.realtek.com.tw (172.21.6.96) To RTEXMB04.realtek.com.tw (172.21.6.97) Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Yan-Hsuan Chuang Some platforms cannot read the DBI register successfully for the ASPM settings. After the read failed, the bus could be unstable, and the device just became unavailable [1]. For those platforms, the ASPM should be disabled. But as the ASPM can help the driver to save the power consumption in power save mode, the ASPM is still needed. So, add a module parameter for them to disable it, then the device can still work, while others can benefit from the less power consumption that brings by ASPM enabled. [1] https://bugzilla.kernel.org/show_bug.cgi?id=206411 [2] Note that my lenovo T430 is the same. Fixes: 3dff7c6e3749 ("rtw88: allows to enable/disable HCI link PS mechanism") Signed-off-by: Yan-Hsuan Chuang --- drivers/net/wireless/realtek/rtw88/pci.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c index 8228db9a5fc8..3413973bc475 100644 --- a/drivers/net/wireless/realtek/rtw88/pci.c +++ b/drivers/net/wireless/realtek/rtw88/pci.c @@ -14,8 +14,11 @@ #include "debug.h" static bool rtw_disable_msi; +static bool rtw_pci_disable_aspm; module_param_named(disable_msi, rtw_disable_msi, bool, 0644); +module_param_named(disable_aspm, rtw_pci_disable_aspm, bool, 0644); MODULE_PARM_DESC(disable_msi, "Set Y to disable MSI interrupt support"); +MODULE_PARM_DESC(disable_aspm, "Set Y to disable PCI ASPM support"); static u32 rtw_pci_tx_queue_idx_addr[] = { [RTW_TX_QUEUE_BK] = RTK_PCI_TXBD_IDX_BKQ, @@ -1200,6 +1203,9 @@ static void rtw_pci_clkreq_set(struct rtw_dev *rtwdev, bool enable) u8 value; int ret; + if (rtw_pci_disable_aspm) + return; + ret = rtw_dbi_read8(rtwdev, RTK_PCIE_LINK_CFG, &value); if (ret) { rtw_err(rtwdev, "failed to read CLKREQ_L1, ret=%d", ret); @@ -1219,6 +1225,9 @@ static void rtw_pci_aspm_set(struct rtw_dev *rtwdev, bool enable) u8 value; int ret; + if (rtw_pci_disable_aspm) + return; + ret = rtw_dbi_read8(rtwdev, RTK_PCIE_LINK_CFG, &value); if (ret) { rtw_err(rtwdev, "failed to read ASPM, ret=%d", ret); -- 2.17.1