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

Commit 291abc66 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "cnss2: Support rising edge trigger for WLAN_EN"

parents f38f2ccb 1b326837
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -182,7 +182,7 @@ static ssize_t cnss_dev_boot_debug_write(struct file *fp,
	cnss_pr_dbg("Received dev_boot debug command: %s\n", cmd);

	if (sysfs_streq(cmd, "on")) {
		ret = cnss_power_on_device(plat_priv);
		ret = cnss_power_on_device(plat_priv, false);
	} else if (sysfs_streq(cmd, "off")) {
		cnss_power_off_device(plat_priv);
	} else if (sysfs_streq(cmd, "enumerate")) {
+1 −1
Original line number Diff line number Diff line
@@ -3220,7 +3220,7 @@ static int cnss_probe(struct platform_device *plat_dev)
	 */
	if (!test_bit(SKIP_DEVICE_BOOT, &plat_priv->ctrl_params.quirks)) {
retry:
		ret = cnss_power_on_device(plat_priv);
		ret = cnss_power_on_device(plat_priv, true);
		if (ret)
			goto deinit_misc;

+1 −1
Original line number Diff line number Diff line
@@ -546,7 +546,7 @@ void cnss_put_clk(struct cnss_plat_data *plat_priv);
int cnss_vreg_unvote_type(struct cnss_plat_data *plat_priv,
			  enum cnss_vreg_type type);
int cnss_get_pinctrl(struct cnss_plat_data *plat_priv);
int cnss_power_on_device(struct cnss_plat_data *plat_priv);
int cnss_power_on_device(struct cnss_plat_data *plat_priv, bool reset);
void cnss_power_off_device(struct cnss_plat_data *plat_priv);
bool cnss_is_device_powered_on(struct cnss_plat_data *plat_priv);
int cnss_register_subsys(struct cnss_plat_data *plat_priv);
+2 −2
Original line number Diff line number Diff line
@@ -2420,7 +2420,7 @@ static int cnss_qca6174_powerup(struct cnss_pci_data *pci_priv)
	int ret = 0;
	struct cnss_plat_data *plat_priv = pci_priv->plat_priv;

	ret = cnss_power_on_device(plat_priv);
	ret = cnss_power_on_device(plat_priv, false);
	if (ret) {
		cnss_pr_err("Failed to power on device, err = %d\n", ret);
		goto out;
@@ -2509,7 +2509,7 @@ static int cnss_qca6290_powerup(struct cnss_pci_data *pci_priv)

	plat_priv->power_up_error = 0;
retry:
	ret = cnss_power_on_device(plat_priv);
	ret = cnss_power_on_device(plat_priv, false);
	if (ret) {
		cnss_pr_err("Failed to power on device, err = %d\n", ret);
		goto out;
+19 −2
Original line number Diff line number Diff line
@@ -966,7 +966,7 @@ int cnss_gpio_get_value(struct cnss_plat_data *plat_priv, int gpio_num)
	return gpio_get_value(gpio_num);
}

int cnss_power_on_device(struct cnss_plat_data *plat_priv)
int cnss_power_on_device(struct cnss_plat_data *plat_priv, bool reset)
{
	int ret = 0;

@@ -986,6 +986,23 @@ int cnss_power_on_device(struct cnss_plat_data *plat_priv)
		cnss_pr_err("Failed to turn on clocks, err = %d\n", ret);
		goto vreg_off;
	}
	if (reset) {
		/* The default state of wlan_en maybe not low,
		 * according to datasheet, we should put wlan_en
		 * to low first, and trigger high.
		 * And the default delay for qca6390 is at least 4ms,
		 * for qcn7605/qca6174, it is 10us. For safe, set 5ms delay
		 * here.
		 */
		ret = cnss_select_pinctrl_state(plat_priv, false);
		if (ret) {
			cnss_pr_err("Failed to select pinctrl state, err = %d\n",
				    ret);
			goto clk_off;
		}

		usleep_range(4000, 5000);
	}

	ret = cnss_select_pinctrl_enable(plat_priv);
	if (ret) {
@@ -1244,5 +1261,5 @@ int cnss_dev_specific_power_on(struct cnss_plat_data *plat_priv)
		return ret;

	plat_priv->powered_on = false;
	return cnss_power_on_device(plat_priv);
	return cnss_power_on_device(plat_priv, false);
}