Loading drivers/soc/qcom/icnss.c +20 −8 Original line number Original line Diff line number Diff line Loading @@ -61,6 +61,7 @@ #define ICNSS_DEFAULT_FEATURE_MASK 0x01 #define ICNSS_DEFAULT_FEATURE_MASK 0x01 #define ICNSS_QUIRKS_DEFAULT BIT(FW_REJUVENATE_ENABLE) #define ICNSS_QUIRKS_DEFAULT BIT(FW_REJUVENATE_ENABLE) #define ICNSS_MAX_PROBE_CNT 2 static struct icnss_priv *penv; static struct icnss_priv *penv; Loading Loading @@ -720,7 +721,8 @@ static int icnss_driver_event_server_exit(void *data) static int icnss_call_driver_probe(struct icnss_priv *priv) static int icnss_call_driver_probe(struct icnss_priv *priv) { { int ret; int ret = 0; int probe_cnt = 0; if (!priv->ops || !priv->ops->probe) if (!priv->ops || !priv->ops->probe) return 0; return 0; Loading @@ -732,10 +734,15 @@ static int icnss_call_driver_probe(struct icnss_priv *priv) icnss_hw_power_on(priv); icnss_hw_power_on(priv); while (probe_cnt < ICNSS_MAX_PROBE_CNT) { ret = priv->ops->probe(&priv->pdev->dev); ret = priv->ops->probe(&priv->pdev->dev); probe_cnt++; if (ret != -EPROBE_DEFER) break; } if (ret < 0) { if (ret < 0) { icnss_pr_err("Driver probe failed: %d, state: 0x%lx\n", icnss_pr_err("Driver probe failed: %d, state: 0x%lx, probe_cnt: %d\n", ret, priv->state); ret, priv->state, probe_cnt); goto out; goto out; } } Loading Loading @@ -843,6 +850,7 @@ static int icnss_driver_event_fw_ready_ind(void *data) static int icnss_driver_event_register_driver(void *data) static int icnss_driver_event_register_driver(void *data) { { int ret = 0; int ret = 0; int probe_cnt = 0; if (penv->ops) if (penv->ops) return -EEXIST; return -EEXIST; Loading @@ -862,11 +870,15 @@ static int icnss_driver_event_register_driver(void *data) if (ret) if (ret) goto out; goto out; while (probe_cnt < ICNSS_MAX_PROBE_CNT) { ret = penv->ops->probe(&penv->pdev->dev); ret = penv->ops->probe(&penv->pdev->dev); probe_cnt++; if (ret != -EPROBE_DEFER) break; } if (ret) { if (ret) { icnss_pr_err("Driver probe failed: %d, state: 0x%lx\n", icnss_pr_err("Driver probe failed: %d, state: 0x%lx, probe_cnt: %d\n", ret, penv->state); ret, penv->state, probe_cnt); goto power_off; goto power_off; } } Loading Loading
drivers/soc/qcom/icnss.c +20 −8 Original line number Original line Diff line number Diff line Loading @@ -61,6 +61,7 @@ #define ICNSS_DEFAULT_FEATURE_MASK 0x01 #define ICNSS_DEFAULT_FEATURE_MASK 0x01 #define ICNSS_QUIRKS_DEFAULT BIT(FW_REJUVENATE_ENABLE) #define ICNSS_QUIRKS_DEFAULT BIT(FW_REJUVENATE_ENABLE) #define ICNSS_MAX_PROBE_CNT 2 static struct icnss_priv *penv; static struct icnss_priv *penv; Loading Loading @@ -720,7 +721,8 @@ static int icnss_driver_event_server_exit(void *data) static int icnss_call_driver_probe(struct icnss_priv *priv) static int icnss_call_driver_probe(struct icnss_priv *priv) { { int ret; int ret = 0; int probe_cnt = 0; if (!priv->ops || !priv->ops->probe) if (!priv->ops || !priv->ops->probe) return 0; return 0; Loading @@ -732,10 +734,15 @@ static int icnss_call_driver_probe(struct icnss_priv *priv) icnss_hw_power_on(priv); icnss_hw_power_on(priv); while (probe_cnt < ICNSS_MAX_PROBE_CNT) { ret = priv->ops->probe(&priv->pdev->dev); ret = priv->ops->probe(&priv->pdev->dev); probe_cnt++; if (ret != -EPROBE_DEFER) break; } if (ret < 0) { if (ret < 0) { icnss_pr_err("Driver probe failed: %d, state: 0x%lx\n", icnss_pr_err("Driver probe failed: %d, state: 0x%lx, probe_cnt: %d\n", ret, priv->state); ret, priv->state, probe_cnt); goto out; goto out; } } Loading Loading @@ -843,6 +850,7 @@ static int icnss_driver_event_fw_ready_ind(void *data) static int icnss_driver_event_register_driver(void *data) static int icnss_driver_event_register_driver(void *data) { { int ret = 0; int ret = 0; int probe_cnt = 0; if (penv->ops) if (penv->ops) return -EEXIST; return -EEXIST; Loading @@ -862,11 +870,15 @@ static int icnss_driver_event_register_driver(void *data) if (ret) if (ret) goto out; goto out; while (probe_cnt < ICNSS_MAX_PROBE_CNT) { ret = penv->ops->probe(&penv->pdev->dev); ret = penv->ops->probe(&penv->pdev->dev); probe_cnt++; if (ret != -EPROBE_DEFER) break; } if (ret) { if (ret) { icnss_pr_err("Driver probe failed: %d, state: 0x%lx\n", icnss_pr_err("Driver probe failed: %d, state: 0x%lx, probe_cnt: %d\n", ret, penv->state); ret, penv->state, probe_cnt); goto power_off; goto power_off; } } Loading