From 87b88079665e1d5b4fd1a0674a3ca7a541a60685 Mon Sep 17 00:00:00 2001 From: Wu Gao Date: Tue, 5 Jan 2021 02:32:59 -0800 Subject: [PATCH] cnss2: Avoid to reject suspend pci for non DRV connected platform For no DRV connected platform, it will reject to suspend pci since DISABLE_DRV bit isn't set. So check both flags firstly before suspend pci. Change-Id: Ifc3de23def6537165f69dd6ca07da9f57f136607 Signed-off-by: Wu Gao --- drivers/net/wireless/cnss2/pci.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/cnss2/pci.c b/drivers/net/wireless/cnss2/pci.c index f6ac9e27c36f..9355bd86076a 100644 --- a/drivers/net/wireless/cnss2/pci.c +++ b/drivers/net/wireless/cnss2/pci.c @@ -1,5 +1,5 @@ // SPDX-License-Identifier: GPL-2.0-only -/* Copyright (c) 2016-2020, The Linux Foundation. All rights reserved. */ +/* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved. */ #include #include @@ -2837,7 +2837,8 @@ static int cnss_pci_suspend(struct device *dev) if (!cnss_is_device_powered_on(plat_priv)) goto out; - if (!test_bit(DISABLE_DRV, &plat_priv->ctrl_params.quirks)) { + if (!test_bit(DISABLE_DRV, &plat_priv->ctrl_params.quirks) && + cnss_pci_get_drv_connected(pci_priv)) { pci_priv->drv_connected_last = cnss_pci_get_drv_connected(pci_priv); if (!pci_priv->drv_connected_last) { @@ -2979,7 +2980,8 @@ static int cnss_pci_runtime_suspend(struct device *dev) return -EAGAIN; } - if (!test_bit(DISABLE_DRV, &plat_priv->ctrl_params.quirks)) { + if (!test_bit(DISABLE_DRV, &plat_priv->ctrl_params.quirks) && + cnss_pci_get_drv_connected(pci_priv)) { pci_priv->drv_connected_last = cnss_pci_get_drv_connected(pci_priv); if (!pci_priv->drv_connected_last) {