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

Commit fc3fc52e authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "cnss_sdio: fix wlan card sdio rate can't reach 200M after warm start"

parents 0e827fea 72fdce42
Loading
Loading
Loading
Loading
+14 −14
Original line number Diff line number Diff line
@@ -278,11 +278,6 @@ static int cnss_put_hw_resources(struct device *dev)
		return ret;
	}

	if (!cnss_pdata->regulator.wlan_vreg) {
		pr_debug("wlan_vreg regulator is invalid\n");
		return 0;
	}

	ret = mmc_power_save_host(host);
	if (ret) {
		pr_err("Failed to Power Save Host err:%d\n",
@@ -290,7 +285,11 @@ static int cnss_put_hw_resources(struct device *dev)
		return ret;
	}

	if (cnss_pdata->regulator.wlan_vreg)
		regulator_disable(cnss_pdata->regulator.wlan_vreg);
	else
		pr_debug("wlan_vreg regulator is invalid\n");

	info->cnss_hw_state = CNSS_HW_SLEEP;

	return ret;
@@ -324,21 +323,22 @@ static int cnss_get_hw_resources(struct device *dev)
		return ret;
	}

	if (!cnss_pdata->regulator.wlan_vreg) {
		pr_debug("wlan_vreg regulator is invalid\n");
		return 0;
	}

	if (cnss_pdata->regulator.wlan_vreg) {
		ret = regulator_enable(cnss_pdata->regulator.wlan_vreg);
		if (ret) {
			pr_err("Failed to enable wlan vreg\n");
			return ret;
		}
	} else {
		pr_debug("wlan_vreg regulator is invalid\n");
	}


	ret = mmc_power_restore_host(host);
	if (ret) {
		pr_err("Failed to restore host power ret:%d\n",
		       ret);
		if (cnss_pdata->regulator.wlan_vreg)
			regulator_disable(cnss_pdata->regulator.wlan_vreg);
		return ret;
	}