Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp1252005pxa; Thu, 20 Aug 2020 06:49:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJygz1MNHyks0rX5cxmvrm52FSPOE5/SP8xSBd9z/5g+eZ1y3Mq6tXTBpQjEth0oOI8/IJrC X-Received: by 2002:a05:6402:33a:: with SMTP id q26mr3177092edw.8.1597931352584; Thu, 20 Aug 2020 06:49:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597931352; cv=none; d=google.com; s=arc-20160816; b=CZUcg6FCH6zDIXTScKnGSZkX3PutkmBdUebeuia5Ni3v5CddgsBDKXLNjGVS7QGlR1 GJn0UfS1mirKFoOlhHivudalaIquS1318GvcLKdANSUbH0SQFbE0FXigaln7bg8875xs lcc68fEkNdm+2QFBg8H6xsKJjHrmjE16ljurq3cXbCG5VPMGdy8j0BpaaCHfOOsAyD+J U1ONVFKrgVJUXxowjsq33vU+N/svho/cw2DrDz5mI1aYmAHUUWOjY9ggh6OHuvKmWh2s CWv2OQaOKZOy6C7bMfzodgAaWi8PSJEaX+dNgG7oFu0/QXQonYkSxQvAseq8VDsaUkR/ aBwQ== 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=VUeb0bzl9YAcsXg1xBdOr5iVSdOaP9XWX4SZMAihAXk=; b=0E64O/S9jm7KDFRhWyeIj6ifgJNOgWWsyWmSO1ssyl50mjAYBsHDpC0NF/IpgeQEUP 3Z/degtmPXrkC7/lw3JkMbx8YrtTMLZZz8FAbMTn9iG8EHORe5HvgR4WXM1X9EeL8tYr IZ6yOLa/B42blpHeLifx9rlSaOgGPd6d3HyqCcsXdm/SefBSKphKlyTYVc8s+2nzrMpf d4trwqCKuSupwYwQ58K9FaTidLs7owlHr1Lk0sJdhRm2j7UFL8gqNT06GghF9QI53xOz hAu6DrWKi2F83aS6Uf/Fcy+FDUfXHOG6AWcoCadL7W7LbBVMggXefHWwrSfRXaSo/Arg kiUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=mt+Vir9E; 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=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a26si1419761eds.337.2020.08.20.06.48.48; Thu, 20 Aug 2020 06:49:12 -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; dkim=pass header.i=@kernel.org header.s=default header.b=mt+Vir9E; 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=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730540AbgHTNpz (ORCPT + 99 others); Thu, 20 Aug 2020 09:45:55 -0400 Received: from mail.kernel.org ([198.145.29.99]:41158 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728138AbgHTJaQ (ORCPT ); Thu, 20 Aug 2020 05:30:16 -0400 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 8B48822B4B; Thu, 20 Aug 2020 09:30:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1597915816; bh=B6T1WnONVu3nGNV9d/4qR06ceS4AT9zZ5Pds7b1uD8g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mt+Vir9EdBrqL8pBYFcKS7QouVak/cZgQQuuvZBdTVxy0JEjIiF9H9GjpG1FWmIYU xVEKP7AqDeLjhYT9m7mgA2ZbsyXzoZCd6yST7w9To0uYrJ4CZs274TRJux2ff+ERdj C3FzjtTIuODXk7zYi+O6SvzGbnFKwBE3BIq56LOs= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yan-Hsuan Chuang , Kalle Valo , Sasha Levin Subject: [PATCH 5.8 143/232] rtw88: pci: disable aspm for platform inter-op with module parameter Date: Thu, 20 Aug 2020 11:19:54 +0200 Message-Id: <20200820091619.749346624@linuxfoundation.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200820091612.692383444@linuxfoundation.org> References: <20200820091612.692383444@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: Yan-Hsuan Chuang [ Upstream commit 68aa716b7dd36f55e080da9e27bc594346334c41 ] 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 Signed-off-by: Kalle Valo Link: https://lore.kernel.org/r/20200605074703.32726-1-yhchuang@realtek.com Signed-off-by: Sasha Levin --- 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 8228db9a5fc86..3413973bc4750 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.25.1