Loading drivers/net/wireless/cnss2/debug.c +1 −1 Original line number Diff line number Diff line Loading @@ -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")) { Loading drivers/net/wireless/cnss2/main.c +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading drivers/net/wireless/cnss2/main.h +1 −1 Original line number Diff line number Diff line Loading @@ -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); Loading drivers/net/wireless/cnss2/pci.c +2 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading drivers/net/wireless/cnss2/power.c +19 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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) { Loading Loading @@ -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); } Loading
drivers/net/wireless/cnss2/debug.c +1 −1 Original line number Diff line number Diff line Loading @@ -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")) { Loading
drivers/net/wireless/cnss2/main.c +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading
drivers/net/wireless/cnss2/main.h +1 −1 Original line number Diff line number Diff line Loading @@ -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); Loading
drivers/net/wireless/cnss2/pci.c +2 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading
drivers/net/wireless/cnss2/power.c +19 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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) { Loading Loading @@ -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); }