* [PATCH v6 0/3] ath11k: Add IPQ6018 support @ 2020-08-24 16:44 ` Anilkumar Kolli 0 siblings, 0 replies; 24+ messages in thread From: Anilkumar Kolli @ 2020-08-24 16:44 UTC (permalink / raw) To: ath11k; +Cc: linux-wireless, devicetree, Anilkumar Kolli IPQ6018 has a 5G radio and 2G radio with 2x2 and shares IPQ8074 configuration. Tested on: IPQ6018 WLAN.HK.2.2-02134-QCAHKSWPL_SILICONZ-1 Tested on: IPQ8074 WLAN.HK.2.4.0.1-00009-QCAHKSWPL_SILICONZ-1 Anilkumar Kolli (3): dt: bindings: net: update compatible for ath11k ath11k: copy ce service configs to hw_params ath11k: add IPQ6018 support V2: - Added devicetree reviewers V3: - addressed dt bindinds comments - Reworked on Kalles patches - copied ce svc configs to hw_params V4: - updated dt patch (Rob) V5: - Fixes errors in 'make dt_binding_check' (Rob) V6: - Rebased on latest ath.git top of tree .../bindings/net/wireless/qcom,ath11k.yaml | 4 +- drivers/net/wireless/ath/ath11k/ahb.c | 125 ++++++++++++++++++++- drivers/net/wireless/ath/ath11k/core.c | 18 ++- drivers/net/wireless/ath/ath11k/core.h | 1 + drivers/net/wireless/ath/ath11k/hw.h | 2 + 5 files changed, 138 insertions(+), 12 deletions(-) -- 2.7.4 ^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v6 0/3] ath11k: Add IPQ6018 support @ 2020-08-24 16:44 ` Anilkumar Kolli 0 siblings, 0 replies; 24+ messages in thread From: Anilkumar Kolli @ 2020-08-24 16:44 UTC (permalink / raw) To: ath11k; +Cc: devicetree, Anilkumar Kolli, linux-wireless IPQ6018 has a 5G radio and 2G radio with 2x2 and shares IPQ8074 configuration. Tested on: IPQ6018 WLAN.HK.2.2-02134-QCAHKSWPL_SILICONZ-1 Tested on: IPQ8074 WLAN.HK.2.4.0.1-00009-QCAHKSWPL_SILICONZ-1 Anilkumar Kolli (3): dt: bindings: net: update compatible for ath11k ath11k: copy ce service configs to hw_params ath11k: add IPQ6018 support V2: - Added devicetree reviewers V3: - addressed dt bindinds comments - Reworked on Kalles patches - copied ce svc configs to hw_params V4: - updated dt patch (Rob) V5: - Fixes errors in 'make dt_binding_check' (Rob) V6: - Rebased on latest ath.git top of tree .../bindings/net/wireless/qcom,ath11k.yaml | 4 +- drivers/net/wireless/ath/ath11k/ahb.c | 125 ++++++++++++++++++++- drivers/net/wireless/ath/ath11k/core.c | 18 ++- drivers/net/wireless/ath/ath11k/core.h | 1 + drivers/net/wireless/ath/ath11k/hw.h | 2 + 5 files changed, 138 insertions(+), 12 deletions(-) -- 2.7.4 -- ath11k mailing list ath11k@lists.infradead.org http://lists.infradead.org/mailman/listinfo/ath11k ^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v6 1/3] dt: bindings: net: update compatible for ath11k 2020-08-24 16:44 ` Anilkumar Kolli @ 2020-08-24 16:44 ` Anilkumar Kolli -1 siblings, 0 replies; 24+ messages in thread From: Anilkumar Kolli @ 2020-08-24 16:44 UTC (permalink / raw) To: ath11k; +Cc: linux-wireless, devicetree, Anilkumar Kolli Add IPQ6018 wireless driver support, its based on ath11k driver. Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> --- V3: - Use 'enum' rather than oneOf+const. V4: - removed oneOf, use just enum (Rob) V5: - Fixes errors in 'make dt_binding_check' (Rob) Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml index a1717db36dba..4b365c9d9378 100644 --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml @@ -17,7 +17,9 @@ description: | properties: compatible: - const: qcom,ipq8074-wifi + enum: + - qcom,ipq8074-wifi + - qcom,ipq6018-wifi reg: maxItems: 1 -- 2.7.4 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v6 1/3] dt: bindings: net: update compatible for ath11k @ 2020-08-24 16:44 ` Anilkumar Kolli 0 siblings, 0 replies; 24+ messages in thread From: Anilkumar Kolli @ 2020-08-24 16:44 UTC (permalink / raw) To: ath11k; +Cc: devicetree, Anilkumar Kolli, linux-wireless Add IPQ6018 wireless driver support, its based on ath11k driver. Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> --- V3: - Use 'enum' rather than oneOf+const. V4: - removed oneOf, use just enum (Rob) V5: - Fixes errors in 'make dt_binding_check' (Rob) Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml index a1717db36dba..4b365c9d9378 100644 --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml @@ -17,7 +17,9 @@ description: | properties: compatible: - const: qcom,ipq8074-wifi + enum: + - qcom,ipq8074-wifi + - qcom,ipq6018-wifi reg: maxItems: 1 -- 2.7.4 -- ath11k mailing list ath11k@lists.infradead.org http://lists.infradead.org/mailman/listinfo/ath11k ^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v6 1/3] dt: bindings: net: update compatible for ath11k 2020-08-24 16:44 ` Anilkumar Kolli @ 2020-08-24 21:27 ` Rob Herring -1 siblings, 0 replies; 24+ messages in thread From: Rob Herring @ 2020-08-24 21:27 UTC (permalink / raw) To: Anilkumar Kolli; +Cc: devicetree, linux-wireless, ath11k On Mon, 24 Aug 2020 22:14:28 +0530, Anilkumar Kolli wrote: > Add IPQ6018 wireless driver support, > its based on ath11k driver. > > Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> > --- > V3: > - Use 'enum' rather than oneOf+const. > V4: > - removed oneOf, use just enum (Rob) > V5: > - Fixes errors in 'make dt_binding_check' (Rob) > > Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > Reviewed-by: Rob Herring <robh@kernel.org> ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v6 1/3] dt: bindings: net: update compatible for ath11k @ 2020-08-24 21:27 ` Rob Herring 0 siblings, 0 replies; 24+ messages in thread From: Rob Herring @ 2020-08-24 21:27 UTC (permalink / raw) To: Anilkumar Kolli; +Cc: devicetree, linux-wireless, ath11k On Mon, 24 Aug 2020 22:14:28 +0530, Anilkumar Kolli wrote: > Add IPQ6018 wireless driver support, > its based on ath11k driver. > > Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> > --- > V3: > - Use 'enum' rather than oneOf+const. > V4: > - removed oneOf, use just enum (Rob) > V5: > - Fixes errors in 'make dt_binding_check' (Rob) > > Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > Reviewed-by: Rob Herring <robh@kernel.org> -- ath11k mailing list ath11k@lists.infradead.org http://lists.infradead.org/mailman/listinfo/ath11k ^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v6 2/3] ath11k: copy ce service configs to hw_params 2020-08-24 16:44 ` Anilkumar Kolli @ 2020-08-24 16:44 ` Anilkumar Kolli -1 siblings, 0 replies; 24+ messages in thread From: Anilkumar Kolli @ 2020-08-24 16:44 UTC (permalink / raw) To: ath11k; +Cc: linux-wireless, devicetree, Anilkumar Kolli No functional changes, added target ce service configurations to hw_params. Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> --- V3: - added ce svc configs in hw_params drivers/net/wireless/ath/ath11k/ahb.c | 14 +++++++++----- drivers/net/wireless/ath/ath11k/core.c | 6 ------ drivers/net/wireless/ath/ath11k/hw.h | 2 ++ 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/net/wireless/ath/ath11k/ahb.c b/drivers/net/wireless/ath/ath11k/ahb.c index 8466c62a83d6..a45a7d62f283 100644 --- a/drivers/net/wireless/ath/ath11k/ahb.c +++ b/drivers/net/wireless/ath/ath11k/ahb.c @@ -159,7 +159,7 @@ static const struct ce_pipe_config target_ce_config_wlan[] = { * This table is derived from the CE_PCI TABLE, above. * It is passed to the Target at startup for use by firmware. */ -static const struct service_to_pipe target_service_to_ce_map_wlan[] = { +static const struct service_to_pipe target_service_to_ce_map_wlan_ipq8074[] = { { .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VO), .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ @@ -579,8 +579,8 @@ static void ath11k_ahb_init_qmi_ce_config(struct ath11k_base *ab) cfg->tgt_ce_len = ARRAY_SIZE(target_ce_config_wlan) - 1; cfg->tgt_ce = target_ce_config_wlan; - cfg->svc_to_ce_map_len = ARRAY_SIZE(target_service_to_ce_map_wlan); - cfg->svc_to_ce_map = target_service_to_ce_map_wlan; + cfg->svc_to_ce_map_len = ab->hw_params.svc_to_ce_map_len; + cfg->svc_to_ce_map = ab->hw_params.svc_to_ce_map; ab->qmi.service_ins_id = ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_IPQ8074; } @@ -789,8 +789,8 @@ static int ath11k_ahb_map_service_to_pipe(struct ath11k_base *ab, u16 service_id bool ul_set = false, dl_set = false; int i; - for (i = 0; i < ARRAY_SIZE(target_service_to_ce_map_wlan); i++) { - entry = &target_service_to_ce_map_wlan[i]; + for (i = 0; i < ab->hw_params.svc_to_ce_map_len; i++) { + entry = &ab->hw_params.svc_to_ce_map[i]; if (__le32_to_cpu(entry->service_id) != service_id) continue; @@ -890,6 +890,10 @@ static int ath11k_ahb_probe(struct platform_device *pdev) goto err_hal_srng_deinit; } + ab->hw_params.svc_to_ce_map_len = + ARRAY_SIZE(target_service_to_ce_map_wlan_ipq8074); + ab->hw_params.svc_to_ce_map = target_service_to_ce_map_wlan_ipq8074; + ath11k_ahb_init_qmi_ce_config(ab); ret = ath11k_core_init(ab); diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c index 437b1123a34f..61a6f395c436 100644 --- a/drivers/net/wireless/ath/ath11k/core.c +++ b/drivers/net/wireless/ath/ath11k/core.c @@ -812,12 +812,6 @@ int ath11k_core_init(struct ath11k_base *ab) return ret; } - ret = ath11k_init_hw_params(ab); - if (ret) { - ath11k_err(ab, "failed to get hw params %d\n", ret); - return ret; - } - ret = ath11k_core_soc_create(ab); if (ret) { ath11k_err(ab, "failed to create soc core: %d\n", ret); diff --git a/drivers/net/wireless/ath/ath11k/hw.h b/drivers/net/wireless/ath/ath11k/hw.h index d15fa7fd6d5d..ebe691cb4a13 100644 --- a/drivers/net/wireless/ath/ath11k/hw.h +++ b/drivers/net/wireless/ath/ath11k/hw.h @@ -129,6 +129,8 @@ struct ath11k_hw_params { } fw; const struct ath11k_hw_ops *hw_ops; + const struct service_to_pipe *svc_to_ce_map; + int svc_to_ce_map_len; const struct ath11k_hw_ring_mask *ring_mask; -- 2.7.4 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v6 2/3] ath11k: copy ce service configs to hw_params @ 2020-08-24 16:44 ` Anilkumar Kolli 0 siblings, 0 replies; 24+ messages in thread From: Anilkumar Kolli @ 2020-08-24 16:44 UTC (permalink / raw) To: ath11k; +Cc: devicetree, Anilkumar Kolli, linux-wireless No functional changes, added target ce service configurations to hw_params. Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> --- V3: - added ce svc configs in hw_params drivers/net/wireless/ath/ath11k/ahb.c | 14 +++++++++----- drivers/net/wireless/ath/ath11k/core.c | 6 ------ drivers/net/wireless/ath/ath11k/hw.h | 2 ++ 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/net/wireless/ath/ath11k/ahb.c b/drivers/net/wireless/ath/ath11k/ahb.c index 8466c62a83d6..a45a7d62f283 100644 --- a/drivers/net/wireless/ath/ath11k/ahb.c +++ b/drivers/net/wireless/ath/ath11k/ahb.c @@ -159,7 +159,7 @@ static const struct ce_pipe_config target_ce_config_wlan[] = { * This table is derived from the CE_PCI TABLE, above. * It is passed to the Target at startup for use by firmware. */ -static const struct service_to_pipe target_service_to_ce_map_wlan[] = { +static const struct service_to_pipe target_service_to_ce_map_wlan_ipq8074[] = { { .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VO), .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ @@ -579,8 +579,8 @@ static void ath11k_ahb_init_qmi_ce_config(struct ath11k_base *ab) cfg->tgt_ce_len = ARRAY_SIZE(target_ce_config_wlan) - 1; cfg->tgt_ce = target_ce_config_wlan; - cfg->svc_to_ce_map_len = ARRAY_SIZE(target_service_to_ce_map_wlan); - cfg->svc_to_ce_map = target_service_to_ce_map_wlan; + cfg->svc_to_ce_map_len = ab->hw_params.svc_to_ce_map_len; + cfg->svc_to_ce_map = ab->hw_params.svc_to_ce_map; ab->qmi.service_ins_id = ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_IPQ8074; } @@ -789,8 +789,8 @@ static int ath11k_ahb_map_service_to_pipe(struct ath11k_base *ab, u16 service_id bool ul_set = false, dl_set = false; int i; - for (i = 0; i < ARRAY_SIZE(target_service_to_ce_map_wlan); i++) { - entry = &target_service_to_ce_map_wlan[i]; + for (i = 0; i < ab->hw_params.svc_to_ce_map_len; i++) { + entry = &ab->hw_params.svc_to_ce_map[i]; if (__le32_to_cpu(entry->service_id) != service_id) continue; @@ -890,6 +890,10 @@ static int ath11k_ahb_probe(struct platform_device *pdev) goto err_hal_srng_deinit; } + ab->hw_params.svc_to_ce_map_len = + ARRAY_SIZE(target_service_to_ce_map_wlan_ipq8074); + ab->hw_params.svc_to_ce_map = target_service_to_ce_map_wlan_ipq8074; + ath11k_ahb_init_qmi_ce_config(ab); ret = ath11k_core_init(ab); diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c index 437b1123a34f..61a6f395c436 100644 --- a/drivers/net/wireless/ath/ath11k/core.c +++ b/drivers/net/wireless/ath/ath11k/core.c @@ -812,12 +812,6 @@ int ath11k_core_init(struct ath11k_base *ab) return ret; } - ret = ath11k_init_hw_params(ab); - if (ret) { - ath11k_err(ab, "failed to get hw params %d\n", ret); - return ret; - } - ret = ath11k_core_soc_create(ab); if (ret) { ath11k_err(ab, "failed to create soc core: %d\n", ret); diff --git a/drivers/net/wireless/ath/ath11k/hw.h b/drivers/net/wireless/ath/ath11k/hw.h index d15fa7fd6d5d..ebe691cb4a13 100644 --- a/drivers/net/wireless/ath/ath11k/hw.h +++ b/drivers/net/wireless/ath/ath11k/hw.h @@ -129,6 +129,8 @@ struct ath11k_hw_params { } fw; const struct ath11k_hw_ops *hw_ops; + const struct service_to_pipe *svc_to_ce_map; + int svc_to_ce_map_len; const struct ath11k_hw_ring_mask *ring_mask; -- 2.7.4 -- ath11k mailing list ath11k@lists.infradead.org http://lists.infradead.org/mailman/listinfo/ath11k ^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v6 2/3] ath11k: copy ce service configs to hw_params 2020-08-24 16:44 ` Anilkumar Kolli (?) @ 2020-09-07 9:59 ` Kalle Valo -1 siblings, 0 replies; 24+ messages in thread From: Kalle Valo @ 2020-09-07 9:59 UTC (permalink / raw) To: Anilkumar Kolli; +Cc: ath11k, devicetree, linux-wireless Anilkumar Kolli <akolli@codeaurora.org> writes: > No functional changes, added target ce service configurations to hw_params. > > Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> [...] > --- a/drivers/net/wireless/ath/ath11k/core.c > +++ b/drivers/net/wireless/ath/ath11k/core.c > @@ -812,12 +812,6 @@ int ath11k_core_init(struct ath11k_base *ab) > return ret; > } > > - ret = ath11k_init_hw_params(ab); > - if (ret) { > - ath11k_err(ab, "failed to get hw params %d\n", ret); > - return ret; > - } This is very suspicious. -- https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v6 2/3] ath11k: copy ce service configs to hw_params 2020-08-24 16:44 ` Anilkumar Kolli (?) (?) @ 2020-09-07 9:59 ` Kalle Valo -1 siblings, 0 replies; 24+ messages in thread From: Kalle Valo @ 2020-09-07 9:59 UTC (permalink / raw) To: Anilkumar Kolli; +Cc: devicetree, linux-wireless, ath11k Anilkumar Kolli <akolli@codeaurora.org> writes: > No functional changes, added target ce service configurations to hw_params. > > Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> [...] > --- a/drivers/net/wireless/ath/ath11k/core.c > +++ b/drivers/net/wireless/ath/ath11k/core.c > @@ -812,12 +812,6 @@ int ath11k_core_init(struct ath11k_base *ab) > return ret; > } > > - ret = ath11k_init_hw_params(ab); > - if (ret) { > - ath11k_err(ab, "failed to get hw params %d\n", ret); > - return ret; > - } This is very suspicious. -- https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches -- ath11k mailing list ath11k@lists.infradead.org http://lists.infradead.org/mailman/listinfo/ath11k ^ permalink raw reply [flat|nested] 24+ messages in thread
[parent not found: <87363t52nj.fsf@codeaurora.org>]
* Re: [PATCH v6 2/3] ath11k: copy ce service configs to hw_params [not found] ` <87363t52nj.fsf@codeaurora.org> @ 2020-09-07 10:59 ` akolli 2020-09-07 16:25 ` Kalle Valo 2020-09-07 16:25 ` Kalle Valo 2020-09-07 10:59 ` akolli 1 sibling, 2 replies; 24+ messages in thread From: akolli @ 2020-09-07 10:59 UTC (permalink / raw) To: Kalle Valo; +Cc: devicetree, linux-wireless, ath11k On 2020-09-07 15:28, Kalle Valo wrote: > Anilkumar Kolli <akolli@codeaurora.org> writes: > >> No functional changes, added target ce service configurations to >> hw_params. >> >> Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> > > [...] > >> --- a/drivers/net/wireless/ath/ath11k/core.c >> +++ b/drivers/net/wireless/ath/ath11k/core.c >> @@ -812,12 +812,6 @@ int ath11k_core_init(struct ath11k_base *ab) >> return ret; >> } >> >> - ret = ath11k_init_hw_params(ab); >> - if (ret) { >> - ath11k_err(ab, "failed to get hw params %d\n", ret); >> - return ret; >> - } > > This is very suspicious. ath11k_core_pre_init() is calling ath11k_init_hw_params(), again calling same function in ath11k_core_init() is not needed. Will send this as a new patch ? Thanks Anil -- ath11k mailing list ath11k@lists.infradead.org http://lists.infradead.org/mailman/listinfo/ath11k ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v6 2/3] ath11k: copy ce service configs to hw_params 2020-09-07 10:59 ` akolli @ 2020-09-07 16:25 ` Kalle Valo 2020-09-07 16:25 ` Kalle Valo 1 sibling, 0 replies; 24+ messages in thread From: Kalle Valo @ 2020-09-07 16:25 UTC (permalink / raw) To: akolli; +Cc: devicetree, linux-wireless, ath11k akolli@codeaurora.org writes: > On 2020-09-07 15:28, Kalle Valo wrote: >> Anilkumar Kolli <akolli@codeaurora.org> writes: >> >>> No functional changes, added target ce service configurations to >>> hw_params. >>> >>> Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> >> >> [...] >> >>> --- a/drivers/net/wireless/ath/ath11k/core.c >>> +++ b/drivers/net/wireless/ath/ath11k/core.c >>> @@ -812,12 +812,6 @@ int ath11k_core_init(struct ath11k_base *ab) >>> return ret; >>> } >>> >>> - ret = ath11k_init_hw_params(ab); >>> - if (ret) { >>> - ath11k_err(ab, "failed to get hw params %d\n", ret); >>> - return ret; >>> - } >> >> This is very suspicious. > > ath11k_core_pre_init() is calling ath11k_init_hw_params(), again > calling same function in ath11k_core_init() is not needed. > > Will send this as a new patch ? Yes, please send this in a new patch with a proper commit log explaining the situation. -- https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches -- ath11k mailing list ath11k@lists.infradead.org http://lists.infradead.org/mailman/listinfo/ath11k ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v6 2/3] ath11k: copy ce service configs to hw_params 2020-09-07 10:59 ` akolli 2020-09-07 16:25 ` Kalle Valo @ 2020-09-07 16:25 ` Kalle Valo 1 sibling, 0 replies; 24+ messages in thread From: Kalle Valo @ 2020-09-07 16:25 UTC (permalink / raw) To: akolli; +Cc: devicetree, linux-wireless, ath11k akolli@codeaurora.org writes: > On 2020-09-07 15:28, Kalle Valo wrote: >> Anilkumar Kolli <akolli@codeaurora.org> writes: >> >>> No functional changes, added target ce service configurations to >>> hw_params. >>> >>> Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> >> >> [...] >> >>> --- a/drivers/net/wireless/ath/ath11k/core.c >>> +++ b/drivers/net/wireless/ath/ath11k/core.c >>> @@ -812,12 +812,6 @@ int ath11k_core_init(struct ath11k_base *ab) >>> return ret; >>> } >>> >>> - ret = ath11k_init_hw_params(ab); >>> - if (ret) { >>> - ath11k_err(ab, "failed to get hw params %d\n", ret); >>> - return ret; >>> - } >> >> This is very suspicious. > > ath11k_core_pre_init() is calling ath11k_init_hw_params(), again > calling same function in ath11k_core_init() is not needed. > > Will send this as a new patch ? Yes, please send this in a new patch with a proper commit log explaining the situation. -- https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v6 2/3] ath11k: copy ce service configs to hw_params [not found] ` <87363t52nj.fsf@codeaurora.org> 2020-09-07 10:59 ` akolli @ 2020-09-07 10:59 ` akolli 1 sibling, 0 replies; 24+ messages in thread From: akolli @ 2020-09-07 10:59 UTC (permalink / raw) To: Kalle Valo; +Cc: ath11k, devicetree, linux-wireless On 2020-09-07 15:28, Kalle Valo wrote: > Anilkumar Kolli <akolli@codeaurora.org> writes: > >> No functional changes, added target ce service configurations to >> hw_params. >> >> Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> > > [...] > >> --- a/drivers/net/wireless/ath/ath11k/core.c >> +++ b/drivers/net/wireless/ath/ath11k/core.c >> @@ -812,12 +812,6 @@ int ath11k_core_init(struct ath11k_base *ab) >> return ret; >> } >> >> - ret = ath11k_init_hw_params(ab); >> - if (ret) { >> - ath11k_err(ab, "failed to get hw params %d\n", ret); >> - return ret; >> - } > > This is very suspicious. ath11k_core_pre_init() is calling ath11k_init_hw_params(), again calling same function in ath11k_core_init() is not needed. Will send this as a new patch ? Thanks Anil ^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v6 3/3] ath11k: add IPQ6018 support 2020-08-24 16:44 ` Anilkumar Kolli @ 2020-08-24 16:44 ` Anilkumar Kolli -1 siblings, 0 replies; 24+ messages in thread From: Anilkumar Kolli @ 2020-08-24 16:44 UTC (permalink / raw) To: ath11k; +Cc: linux-wireless, devicetree, Anilkumar Kolli IPQ6018 has one 5G and one 2G radio with 2x2, shares ipq8074 configurations. Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> --- drivers/net/wireless/ath/ath11k/ahb.c | 115 ++++++++++++++++++++++++++++++++- drivers/net/wireless/ath/ath11k/core.c | 12 ++++ drivers/net/wireless/ath/ath11k/core.h | 1 + 3 files changed, 126 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/ath/ath11k/ahb.c b/drivers/net/wireless/ath/ath11k/ahb.c index a45a7d62f283..f9e1c4001015 100644 --- a/drivers/net/wireless/ath/ath11k/ahb.c +++ b/drivers/net/wireless/ath/ath11k/ahb.c @@ -20,6 +20,9 @@ static const struct of_device_id ath11k_ahb_of_match[] = { { .compatible = "qcom,ipq8074-wifi", .data = (void *)ATH11K_HW_IPQ8074, }, + { .compatible = "qcom,ipq6018-wifi", + .data = (void *)ATH11K_HW_IPQ6018, + }, { } }; @@ -271,6 +274,108 @@ static const struct service_to_pipe target_service_to_ce_map_wlan_ipq8074[] = { { /* terminator entry */ } }; +static const struct service_to_pipe target_service_to_ce_map_wlan_ipq6018[] = { + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VO), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VO), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BK), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BK), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BE), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BE), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VI), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VI), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL_MAC1), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(7), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL_MAC1), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_RSVD_CTRL), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(0), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_RSVD_CTRL), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(1), + }, + { /* not used */ + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_TEST_RAW_STREAMS), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(0), + }, + { /* not used */ + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_TEST_RAW_STREAMS), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(1), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_HTT_DATA_MSG), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(4), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_HTT_DATA_MSG), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(1), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_PKT_LOG), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(5), + }, + + /* (Additions here) */ + + { /* terminator entry */ } +}; + #define ATH11K_IRQ_CE0_OFFSET 4 static const char *irq_name[ATH11K_IRQ_NUM_MAX] = { @@ -890,9 +995,15 @@ static int ath11k_ahb_probe(struct platform_device *pdev) goto err_hal_srng_deinit; } - ab->hw_params.svc_to_ce_map_len = + if (ab->hw_rev == ATH11K_HW_IPQ8074) { + ab->hw_params.svc_to_ce_map_len = ARRAY_SIZE(target_service_to_ce_map_wlan_ipq8074); - ab->hw_params.svc_to_ce_map = target_service_to_ce_map_wlan_ipq8074; + ab->hw_params.svc_to_ce_map = target_service_to_ce_map_wlan_ipq8074; + } else if (ab->hw_rev == ATH11K_HW_IPQ6018) { + ab->hw_params.svc_to_ce_map_len = + ARRAY_SIZE(target_service_to_ce_map_wlan_ipq6018); + ab->hw_params.svc_to_ce_map = target_service_to_ce_map_wlan_ipq6018; + } ath11k_ahb_init_qmi_ce_config(ab); diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c index 61a6f395c436..d7b015ea40c2 100644 --- a/drivers/net/wireless/ath/ath11k/core.c +++ b/drivers/net/wireless/ath/ath11k/core.c @@ -69,6 +69,18 @@ static const struct ath11k_hw_params ath11k_hw_params[] = { .htt_peer_map_v2 = false, .tcl_0_only = true, }, + { + .hw_rev = ATH11K_HW_IPQ6018, + .name = "ipq6018 hw1.0", + .fw = { + .dir = "IPQ6018/hw1.0", + .board_size = 256 * 1024, + .cal_size = 256 * 1024, + }, + .max_radios = 2, + .bdf_addr = 0x4ABC0000, + .hw_ops = &ipq6018_ops, + }, }; static int ath11k_core_create_board_name(struct ath11k_base *ab, char *name, diff --git a/drivers/net/wireless/ath/ath11k/core.h b/drivers/net/wireless/ath/ath11k/core.h index d21191c51e10..b9b6dc6f179f 100644 --- a/drivers/net/wireless/ath/ath11k/core.h +++ b/drivers/net/wireless/ath/ath11k/core.h @@ -90,6 +90,7 @@ struct ath11k_skb_rxcb { enum ath11k_hw_rev { ATH11K_HW_IPQ8074, + ATH11K_HW_IPQ6018, ATH11K_HW_QCA6390_HW20, }; -- 2.7.4 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v6 3/3] ath11k: add IPQ6018 support @ 2020-08-24 16:44 ` Anilkumar Kolli 0 siblings, 0 replies; 24+ messages in thread From: Anilkumar Kolli @ 2020-08-24 16:44 UTC (permalink / raw) To: ath11k; +Cc: devicetree, Anilkumar Kolli, linux-wireless IPQ6018 has one 5G and one 2G radio with 2x2, shares ipq8074 configurations. Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> --- drivers/net/wireless/ath/ath11k/ahb.c | 115 ++++++++++++++++++++++++++++++++- drivers/net/wireless/ath/ath11k/core.c | 12 ++++ drivers/net/wireless/ath/ath11k/core.h | 1 + 3 files changed, 126 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/ath/ath11k/ahb.c b/drivers/net/wireless/ath/ath11k/ahb.c index a45a7d62f283..f9e1c4001015 100644 --- a/drivers/net/wireless/ath/ath11k/ahb.c +++ b/drivers/net/wireless/ath/ath11k/ahb.c @@ -20,6 +20,9 @@ static const struct of_device_id ath11k_ahb_of_match[] = { { .compatible = "qcom,ipq8074-wifi", .data = (void *)ATH11K_HW_IPQ8074, }, + { .compatible = "qcom,ipq6018-wifi", + .data = (void *)ATH11K_HW_IPQ6018, + }, { } }; @@ -271,6 +274,108 @@ static const struct service_to_pipe target_service_to_ce_map_wlan_ipq8074[] = { { /* terminator entry */ } }; +static const struct service_to_pipe target_service_to_ce_map_wlan_ipq6018[] = { + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VO), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VO), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BK), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BK), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BE), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BE), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VI), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VI), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL_MAC1), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(7), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL_MAC1), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_RSVD_CTRL), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(0), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_RSVD_CTRL), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(1), + }, + { /* not used */ + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_TEST_RAW_STREAMS), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(0), + }, + { /* not used */ + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_TEST_RAW_STREAMS), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(1), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_HTT_DATA_MSG), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(4), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_HTT_DATA_MSG), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(1), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_PKT_LOG), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(5), + }, + + /* (Additions here) */ + + { /* terminator entry */ } +}; + #define ATH11K_IRQ_CE0_OFFSET 4 static const char *irq_name[ATH11K_IRQ_NUM_MAX] = { @@ -890,9 +995,15 @@ static int ath11k_ahb_probe(struct platform_device *pdev) goto err_hal_srng_deinit; } - ab->hw_params.svc_to_ce_map_len = + if (ab->hw_rev == ATH11K_HW_IPQ8074) { + ab->hw_params.svc_to_ce_map_len = ARRAY_SIZE(target_service_to_ce_map_wlan_ipq8074); - ab->hw_params.svc_to_ce_map = target_service_to_ce_map_wlan_ipq8074; + ab->hw_params.svc_to_ce_map = target_service_to_ce_map_wlan_ipq8074; + } else if (ab->hw_rev == ATH11K_HW_IPQ6018) { + ab->hw_params.svc_to_ce_map_len = + ARRAY_SIZE(target_service_to_ce_map_wlan_ipq6018); + ab->hw_params.svc_to_ce_map = target_service_to_ce_map_wlan_ipq6018; + } ath11k_ahb_init_qmi_ce_config(ab); diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c index 61a6f395c436..d7b015ea40c2 100644 --- a/drivers/net/wireless/ath/ath11k/core.c +++ b/drivers/net/wireless/ath/ath11k/core.c @@ -69,6 +69,18 @@ static const struct ath11k_hw_params ath11k_hw_params[] = { .htt_peer_map_v2 = false, .tcl_0_only = true, }, + { + .hw_rev = ATH11K_HW_IPQ6018, + .name = "ipq6018 hw1.0", + .fw = { + .dir = "IPQ6018/hw1.0", + .board_size = 256 * 1024, + .cal_size = 256 * 1024, + }, + .max_radios = 2, + .bdf_addr = 0x4ABC0000, + .hw_ops = &ipq6018_ops, + }, }; static int ath11k_core_create_board_name(struct ath11k_base *ab, char *name, diff --git a/drivers/net/wireless/ath/ath11k/core.h b/drivers/net/wireless/ath/ath11k/core.h index d21191c51e10..b9b6dc6f179f 100644 --- a/drivers/net/wireless/ath/ath11k/core.h +++ b/drivers/net/wireless/ath/ath11k/core.h @@ -90,6 +90,7 @@ struct ath11k_skb_rxcb { enum ath11k_hw_rev { ATH11K_HW_IPQ8074, + ATH11K_HW_IPQ6018, ATH11K_HW_QCA6390_HW20, }; -- 2.7.4 -- ath11k mailing list ath11k@lists.infradead.org http://lists.infradead.org/mailman/listinfo/ath11k ^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v6 3/3] ath11k: add IPQ6018 support 2020-08-24 16:44 ` Anilkumar Kolli (?) @ 2020-09-07 10:01 ` Kalle Valo -1 siblings, 0 replies; 24+ messages in thread From: Kalle Valo @ 2020-09-07 10:01 UTC (permalink / raw) To: Anilkumar Kolli; +Cc: ath11k, devicetree, linux-wireless Anilkumar Kolli <akolli@codeaurora.org> writes: > IPQ6018 has one 5G and one 2G radio with 2x2, > shares ipq8074 configurations. > > Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> [...] > @@ -890,9 +995,15 @@ static int ath11k_ahb_probe(struct platform_device *pdev) > goto err_hal_srng_deinit; > } > > - ab->hw_params.svc_to_ce_map_len = > + if (ab->hw_rev == ATH11K_HW_IPQ8074) { > + ab->hw_params.svc_to_ce_map_len = > ARRAY_SIZE(target_service_to_ce_map_wlan_ipq8074); > - ab->hw_params.svc_to_ce_map = target_service_to_ce_map_wlan_ipq8074; > + ab->hw_params.svc_to_ce_map = target_service_to_ce_map_wlan_ipq8074; > + } else if (ab->hw_rev == ATH11K_HW_IPQ6018) { > + ab->hw_params.svc_to_ce_map_len = > + ARRAY_SIZE(target_service_to_ce_map_wlan_ipq6018); > + ab->hw_params.svc_to_ce_map = target_service_to_ce_map_wlan_ipq6018; > + } The idea of having ab->hw_params is to avoid the need for hw_rev sprinkled all over the code, this here defeats the purpose. I recommend checking if my proposal from an earlier version is implementable: "You could copy the map arrays to hw.c, as an example see how ath11k_hw_ring_mask_ipq8074 is implemented. That way we don't need any new hw_rev checks." -- https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v6 3/3] ath11k: add IPQ6018 support 2020-08-24 16:44 ` Anilkumar Kolli (?) (?) @ 2020-09-07 10:01 ` Kalle Valo -1 siblings, 0 replies; 24+ messages in thread From: Kalle Valo @ 2020-09-07 10:01 UTC (permalink / raw) To: Anilkumar Kolli; +Cc: devicetree, linux-wireless, ath11k Anilkumar Kolli <akolli@codeaurora.org> writes: > IPQ6018 has one 5G and one 2G radio with 2x2, > shares ipq8074 configurations. > > Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> [...] > @@ -890,9 +995,15 @@ static int ath11k_ahb_probe(struct platform_device *pdev) > goto err_hal_srng_deinit; > } > > - ab->hw_params.svc_to_ce_map_len = > + if (ab->hw_rev == ATH11K_HW_IPQ8074) { > + ab->hw_params.svc_to_ce_map_len = > ARRAY_SIZE(target_service_to_ce_map_wlan_ipq8074); > - ab->hw_params.svc_to_ce_map = target_service_to_ce_map_wlan_ipq8074; > + ab->hw_params.svc_to_ce_map = target_service_to_ce_map_wlan_ipq8074; > + } else if (ab->hw_rev == ATH11K_HW_IPQ6018) { > + ab->hw_params.svc_to_ce_map_len = > + ARRAY_SIZE(target_service_to_ce_map_wlan_ipq6018); > + ab->hw_params.svc_to_ce_map = target_service_to_ce_map_wlan_ipq6018; > + } The idea of having ab->hw_params is to avoid the need for hw_rev sprinkled all over the code, this here defeats the purpose. I recommend checking if my proposal from an earlier version is implementable: "You could copy the map arrays to hw.c, as an example see how ath11k_hw_ring_mask_ipq8074 is implemented. That way we don't need any new hw_rev checks." -- https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches -- ath11k mailing list ath11k@lists.infradead.org http://lists.infradead.org/mailman/listinfo/ath11k ^ permalink raw reply [flat|nested] 24+ messages in thread
[parent not found: <87y2ll3nzh.fsf@codeaurora.org>]
* Re: [PATCH v6 3/3] ath11k: add IPQ6018 support [not found] ` <87y2ll3nzh.fsf@codeaurora.org> @ 2020-09-07 11:01 ` akolli 2020-09-07 11:01 ` akolli 1 sibling, 0 replies; 24+ messages in thread From: akolli @ 2020-09-07 11:01 UTC (permalink / raw) To: Kalle Valo; +Cc: devicetree, linux-wireless, ath11k On 2020-09-07 15:30, Kalle Valo wrote: > Anilkumar Kolli <akolli@codeaurora.org> writes: > >> IPQ6018 has one 5G and one 2G radio with 2x2, >> shares ipq8074 configurations. >> >> Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> > > [...] > >> @@ -890,9 +995,15 @@ static int ath11k_ahb_probe(struct >> platform_device *pdev) >> goto err_hal_srng_deinit; >> } >> >> - ab->hw_params.svc_to_ce_map_len = >> + if (ab->hw_rev == ATH11K_HW_IPQ8074) { >> + ab->hw_params.svc_to_ce_map_len = >> ARRAY_SIZE(target_service_to_ce_map_wlan_ipq8074); >> - ab->hw_params.svc_to_ce_map = target_service_to_ce_map_wlan_ipq8074; >> + ab->hw_params.svc_to_ce_map = >> target_service_to_ce_map_wlan_ipq8074; >> + } else if (ab->hw_rev == ATH11K_HW_IPQ6018) { >> + ab->hw_params.svc_to_ce_map_len = >> + ARRAY_SIZE(target_service_to_ce_map_wlan_ipq6018); >> + ab->hw_params.svc_to_ce_map = >> target_service_to_ce_map_wlan_ipq6018; >> + } > > The idea of having ab->hw_params is to avoid the need for hw_rev > sprinkled all over the code, this here defeats the purpose. I recommend > checking if my proposal from an earlier version is implementable: > > "You could copy the map arrays to hw.c, as an example see how > ath11k_hw_ring_mask_ipq8074 is implemented. That way we don't need any > new hw_rev checks." Thanks for the details, will address and send in next patch set. Thanks Anil -- ath11k mailing list ath11k@lists.infradead.org http://lists.infradead.org/mailman/listinfo/ath11k ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v6 3/3] ath11k: add IPQ6018 support [not found] ` <87y2ll3nzh.fsf@codeaurora.org> 2020-09-07 11:01 ` akolli @ 2020-09-07 11:01 ` akolli 1 sibling, 0 replies; 24+ messages in thread From: akolli @ 2020-09-07 11:01 UTC (permalink / raw) To: Kalle Valo; +Cc: ath11k, devicetree, linux-wireless On 2020-09-07 15:30, Kalle Valo wrote: > Anilkumar Kolli <akolli@codeaurora.org> writes: > >> IPQ6018 has one 5G and one 2G radio with 2x2, >> shares ipq8074 configurations. >> >> Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org> > > [...] > >> @@ -890,9 +995,15 @@ static int ath11k_ahb_probe(struct >> platform_device *pdev) >> goto err_hal_srng_deinit; >> } >> >> - ab->hw_params.svc_to_ce_map_len = >> + if (ab->hw_rev == ATH11K_HW_IPQ8074) { >> + ab->hw_params.svc_to_ce_map_len = >> ARRAY_SIZE(target_service_to_ce_map_wlan_ipq8074); >> - ab->hw_params.svc_to_ce_map = target_service_to_ce_map_wlan_ipq8074; >> + ab->hw_params.svc_to_ce_map = >> target_service_to_ce_map_wlan_ipq8074; >> + } else if (ab->hw_rev == ATH11K_HW_IPQ6018) { >> + ab->hw_params.svc_to_ce_map_len = >> + ARRAY_SIZE(target_service_to_ce_map_wlan_ipq6018); >> + ab->hw_params.svc_to_ce_map = >> target_service_to_ce_map_wlan_ipq6018; >> + } > > The idea of having ab->hw_params is to avoid the need for hw_rev > sprinkled all over the code, this here defeats the purpose. I recommend > checking if my proposal from an earlier version is implementable: > > "You could copy the map arrays to hw.c, as an example see how > ath11k_hw_ring_mask_ipq8074 is implemented. That way we don't need any > new hw_rev checks." Thanks for the details, will address and send in next patch set. Thanks Anil ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v6 0/3] ath11k: Add IPQ6018 support 2020-08-24 16:44 ` Anilkumar Kolli ` (3 preceding siblings ...) (?) @ 2020-09-07 9:57 ` Kalle Valo -1 siblings, 0 replies; 24+ messages in thread From: Kalle Valo @ 2020-09-07 9:57 UTC (permalink / raw) To: Anilkumar Kolli; +Cc: devicetree, linux-wireless, ath11k Anilkumar Kolli <akolli@codeaurora.org> writes: > IPQ6018 has a 5G radio and 2G radio with 2x2 > and shares IPQ8074 configuration. > > Tested on: IPQ6018 WLAN.HK.2.2-02134-QCAHKSWPL_SILICONZ-1 > Tested on: IPQ8074 WLAN.HK.2.4.0.1-00009-QCAHKSWPL_SILICONZ-1 I don't store the cover letters to git, so please move the Tested-on tags to actual patches so that they are properly archived. -- https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches -- ath11k mailing list ath11k@lists.infradead.org http://lists.infradead.org/mailman/listinfo/ath11k ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v6 0/3] ath11k: Add IPQ6018 support 2020-08-24 16:44 ` Anilkumar Kolli ` (4 preceding siblings ...) (?) @ 2020-09-07 9:57 ` Kalle Valo -1 siblings, 0 replies; 24+ messages in thread From: Kalle Valo @ 2020-09-07 9:57 UTC (permalink / raw) To: Anilkumar Kolli; +Cc: ath11k, devicetree, linux-wireless Anilkumar Kolli <akolli@codeaurora.org> writes: > IPQ6018 has a 5G radio and 2G radio with 2x2 > and shares IPQ8074 configuration. > > Tested on: IPQ6018 WLAN.HK.2.2-02134-QCAHKSWPL_SILICONZ-1 > Tested on: IPQ8074 WLAN.HK.2.4.0.1-00009-QCAHKSWPL_SILICONZ-1 I don't store the cover letters to git, so please move the Tested-on tags to actual patches so that they are properly archived. -- https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches ^ permalink raw reply [flat|nested] 24+ messages in thread
[parent not found: <877dt552q1.fsf@codeaurora.org>]
* Re: [PATCH v6 0/3] ath11k: Add IPQ6018 support [not found] ` <877dt552q1.fsf@codeaurora.org> @ 2020-09-07 11:03 ` akolli 2020-09-07 11:03 ` akolli 1 sibling, 0 replies; 24+ messages in thread From: akolli @ 2020-09-07 11:03 UTC (permalink / raw) To: Kalle Valo; +Cc: devicetree, linux-wireless, ath11k On 2020-09-07 15:27, Kalle Valo wrote: > Anilkumar Kolli <akolli@codeaurora.org> writes: > >> IPQ6018 has a 5G radio and 2G radio with 2x2 >> and shares IPQ8074 configuration. >> >> Tested on: IPQ6018 WLAN.HK.2.2-02134-QCAHKSWPL_SILICONZ-1 >> Tested on: IPQ8074 WLAN.HK.2.4.0.1-00009-QCAHKSWPL_SILICONZ-1 > > I don't store the cover letters to git, so please move the Tested-on > tags to actual patches so that they are properly archived. Sure. Thanks Anil -- ath11k mailing list ath11k@lists.infradead.org http://lists.infradead.org/mailman/listinfo/ath11k ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v6 0/3] ath11k: Add IPQ6018 support [not found] ` <877dt552q1.fsf@codeaurora.org> 2020-09-07 11:03 ` akolli @ 2020-09-07 11:03 ` akolli 1 sibling, 0 replies; 24+ messages in thread From: akolli @ 2020-09-07 11:03 UTC (permalink / raw) To: Kalle Valo; +Cc: ath11k, devicetree, linux-wireless On 2020-09-07 15:27, Kalle Valo wrote: > Anilkumar Kolli <akolli@codeaurora.org> writes: > >> IPQ6018 has a 5G radio and 2G radio with 2x2 >> and shares IPQ8074 configuration. >> >> Tested on: IPQ6018 WLAN.HK.2.2-02134-QCAHKSWPL_SILICONZ-1 >> Tested on: IPQ8074 WLAN.HK.2.4.0.1-00009-QCAHKSWPL_SILICONZ-1 > > I don't store the cover letters to git, so please move the Tested-on > tags to actual patches so that they are properly archived. Sure. Thanks Anil ^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2020-09-07 17:56 UTC | newest] Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-08-24 16:44 [PATCH v6 0/3] ath11k: Add IPQ6018 support Anilkumar Kolli 2020-08-24 16:44 ` Anilkumar Kolli 2020-08-24 16:44 ` [PATCH v6 1/3] dt: bindings: net: update compatible for ath11k Anilkumar Kolli 2020-08-24 16:44 ` Anilkumar Kolli 2020-08-24 21:27 ` Rob Herring 2020-08-24 21:27 ` Rob Herring 2020-08-24 16:44 ` [PATCH v6 2/3] ath11k: copy ce service configs to hw_params Anilkumar Kolli 2020-08-24 16:44 ` Anilkumar Kolli 2020-09-07 9:59 ` Kalle Valo 2020-09-07 9:59 ` Kalle Valo [not found] ` <87363t52nj.fsf@codeaurora.org> 2020-09-07 10:59 ` akolli 2020-09-07 16:25 ` Kalle Valo 2020-09-07 16:25 ` Kalle Valo 2020-09-07 10:59 ` akolli 2020-08-24 16:44 ` [PATCH v6 3/3] ath11k: add IPQ6018 support Anilkumar Kolli 2020-08-24 16:44 ` Anilkumar Kolli 2020-09-07 10:01 ` Kalle Valo 2020-09-07 10:01 ` Kalle Valo [not found] ` <87y2ll3nzh.fsf@codeaurora.org> 2020-09-07 11:01 ` akolli 2020-09-07 11:01 ` akolli 2020-09-07 9:57 ` [PATCH v6 0/3] ath11k: Add " Kalle Valo 2020-09-07 9:57 ` Kalle Valo [not found] ` <877dt552q1.fsf@codeaurora.org> 2020-09-07 11:03 ` akolli 2020-09-07 11:03 ` akolli
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.