Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 21c1e830 authored by Yue Ma's avatar Yue Ma
Browse files

cnss2: Reject suspend if DRV subsystem is not connected



Currently WLAN firmware does not support non-DRV suspend so reject
suspend if DRV subsystem is not connected.

Change-Id: Ia2ab84dce058fd2523e6b6ca1f0ade307533996f
Signed-off-by: default avatarYue Ma <yuem@codeaurora.org>
parent 5dc7d771
Loading
Loading
Loading
Loading
+17 −6
Original line number Diff line number Diff line
@@ -1864,11 +1864,17 @@ static int cnss_pci_suspend(struct device *dev)
	if (!cnss_is_device_powered_on(plat_priv))
		goto out;

	set_bit(CNSS_IN_SUSPEND_RESUME, &plat_priv->driver_state);

	if (!test_bit(DISABLE_DRV, &plat_priv->ctrl_params.quirks))
	if (!test_bit(DISABLE_DRV, &plat_priv->ctrl_params.quirks)) {
		pci_priv->drv_connected_last =
			cnss_pci_get_drv_connected(pci_priv);
		if (!pci_priv->drv_connected_last) {
			cnss_pr_dbg("Firmware does not support non-DRV suspend, reject\n");
			ret = -EAGAIN;
			goto out;
		}
	}

	set_bit(CNSS_IN_SUSPEND_RESUME, &plat_priv->driver_state);

	ret = cnss_pci_suspend_driver(pci_priv);
	if (ret)
@@ -1988,11 +1994,16 @@ static int cnss_pci_runtime_suspend(struct device *dev)
		return -EAGAIN;
	}

	cnss_pr_vdbg("Runtime suspend start\n");

	if (!test_bit(DISABLE_DRV, &plat_priv->ctrl_params.quirks))
	if (!test_bit(DISABLE_DRV, &plat_priv->ctrl_params.quirks)) {
		pci_priv->drv_connected_last =
			cnss_pci_get_drv_connected(pci_priv);
		if (!pci_priv->drv_connected_last) {
			cnss_pr_dbg("Firmware does not support non-DRV suspend, reject\n");
			return -EAGAIN;
		}
	}

	cnss_pr_vdbg("Runtime suspend start\n");

	driver_ops = pci_priv->driver_ops;
	if (driver_ops && driver_ops->runtime_ops &&