2019-11-11 04:26:05

by Govind Singh

[permalink] [raw]
Subject: [PATCH v2 0/2] Don't call SCM interface for statically mapped msa region

For some targets ex: SC7180/QCS404, SCM permissions for MSA region is
statically configured in TrustZone fw. Add SCM call disable option
for such targets to avoid duplicate permissions.

Change since v1:
Added devicetree list for review.

Govind Singh (2):
dt: bindings: add dt entry flag to skip SCM call for msa region
ath10k: Don't call SCM interface for statically mapped msa region

.../devicetree/bindings/net/wireless/qcom,ath10k.txt | 4 ++++
drivers/net/wireless/ath/ath10k/qmi.c | 9 +++++++++
drivers/net/wireless/ath/ath10k/qmi.h | 1 +
3 files changed, 14 insertions(+)

--
2.22.0


2019-11-11 04:28:43

by Govind Singh

[permalink] [raw]
Subject: [PATCH v2 2/2] ath10k: Don't call SCM interface for statically mapped msa region

For some targets ex: QCS404, SCM permissions for MSA region is
statically configured in TrustZone fw. Add SCM call disable option
for such targets to avoid duplicate permissions.

Testing: Tested on WCN3990 HW
Tested FW: WLAN.HL.3.1-01040-QCAHLSWMTPLZ-1

Signed-off-by: Govind Singh <[email protected]>
---
drivers/net/wireless/ath/ath10k/qmi.c | 9 +++++++++
drivers/net/wireless/ath/ath10k/qmi.h | 1 +
2 files changed, 10 insertions(+)

diff --git a/drivers/net/wireless/ath/ath10k/qmi.c b/drivers/net/wireless/ath/ath10k/qmi.c
index 637f83ef65f8..40ffc444ab7b 100644
--- a/drivers/net/wireless/ath/ath10k/qmi.c
+++ b/drivers/net/wireless/ath/ath10k/qmi.c
@@ -84,6 +84,9 @@ static int ath10k_qmi_setup_msa_permissions(struct ath10k_qmi *qmi)
int ret;
int i;

+ if (qmi->msa_fixed_perm)
+ return 0;
+
for (i = 0; i < qmi->nr_mem_region; i++) {
ret = ath10k_qmi_map_msa_permission(qmi, &qmi->mem_region[i]);
if (ret)
@@ -102,6 +105,9 @@ static void ath10k_qmi_remove_msa_permission(struct ath10k_qmi *qmi)
{
int i;

+ if (qmi->msa_fixed_perm)
+ return;
+
for (i = 0; i < qmi->nr_mem_region; i++)
ath10k_qmi_unmap_msa_permission(qmi, &qmi->mem_region[i]);
}
@@ -1018,6 +1024,9 @@ static int ath10k_qmi_setup_msa_resources(struct ath10k_qmi *qmi, u32 msa_size)
qmi->msa_mem_size = msa_size;
}

+ if (of_property_read_bool(dev->of_node, "qcom,msa_fixed_perm"))
+ qmi->msa_fixed_perm = true;
+
ath10k_dbg(ar, ATH10K_DBG_QMI, "msa pa: %pad , msa va: 0x%p\n",
&qmi->msa_pa,
qmi->msa_va);
diff --git a/drivers/net/wireless/ath/ath10k/qmi.h b/drivers/net/wireless/ath/ath10k/qmi.h
index 40aafb875ed0..dc257375f161 100644
--- a/drivers/net/wireless/ath/ath10k/qmi.h
+++ b/drivers/net/wireless/ath/ath10k/qmi.h
@@ -104,6 +104,7 @@ struct ath10k_qmi {
bool fw_ready;
char fw_build_timestamp[MAX_TIMESTAMP_LEN + 1];
struct ath10k_qmi_cal_data cal_data[MAX_NUM_CAL_V01];
+ bool msa_fixed_perm;
};

int ath10k_qmi_wlan_enable(struct ath10k *ar,
--
2.22.0

2019-11-11 04:28:43

by Govind Singh

[permalink] [raw]
Subject: [PATCH v2 1/2] dt: bindings: add dt entry flag to skip SCM call for msa region

Add boolean context flag to disable SCM call for statically
mapped msa region.

Signed-off-by: Govind Singh <[email protected]>
---
.../devicetree/bindings/net/wireless/qcom,ath10k.txt | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
index 017128394a3e..7ba22918bab7 100644
--- a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
+++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
@@ -88,6 +88,9 @@ Optional properties:
of the host capability QMI request
- qcom,xo-cal-data: xo cal offset to be configured in xo trim register.

+- qcom,msa_fixed_perm: Boolean context flag to disable SCM call for statically
+ mapped msa region.
+
Example (to supply PCI based wifi block details):

In this example, the node is defined as child node of the PCI controller.
@@ -185,4 +188,5 @@ wifi@18000000 {
vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
memory-region = <&wifi_msa_mem>;
iommus = <&apps_smmu 0x0040 0x1>;
+ qcom,msa_fixed_perm;
};
--
2.22.0

2019-11-14 19:20:22

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] dt: bindings: add dt entry flag to skip SCM call for msa region

On Mon, Nov 11, 2019 at 09:55:07AM +0530, Govind Singh wrote:
> Add boolean context flag to disable SCM call for statically
> mapped msa region.

Can't this be implied by the compatible string?

>
> Signed-off-by: Govind Singh <[email protected]>
> ---
> .../devicetree/bindings/net/wireless/qcom,ath10k.txt | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
> index 017128394a3e..7ba22918bab7 100644
> --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
> +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
> @@ -88,6 +88,9 @@ Optional properties:
> of the host capability QMI request
> - qcom,xo-cal-data: xo cal offset to be configured in xo trim register.
>
> +- qcom,msa_fixed_perm: Boolean context flag to disable SCM call for statically
> + mapped msa region.
> +

s/_/-/

> Example (to supply PCI based wifi block details):
>
> In this example, the node is defined as child node of the PCI controller.
> @@ -185,4 +188,5 @@ wifi@18000000 {
> vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
> memory-region = <&wifi_msa_mem>;
> iommus = <&apps_smmu 0x0040 0x1>;
> + qcom,msa_fixed_perm;
> };
> --
> 2.22.0
>

2019-11-21 08:49:06

by Govind Singh

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] dt: bindings: add dt entry flag to skip SCM call for msa region

Hi Rob,

On 2019-11-15 00:46, Rob Herring wrote:
> On Mon, Nov 11, 2019 at 09:55:07AM +0530, Govind Singh wrote:
>> Add boolean context flag to disable SCM call for statically
>> mapped msa region.
>
> Can't this be implied by the compatible string?
>

same soc compatible will be used in older TZ vs new TZ.
Due to this reason I added this.

>>
>> Signed-off-by: Govind Singh <[email protected]>
>> ---
>> .../devicetree/bindings/net/wireless/qcom,ath10k.txt | 4
>> ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git
>> a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
>> b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
>> index 017128394a3e..7ba22918bab7 100644
>> --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
>> +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
>> @@ -88,6 +88,9 @@ Optional properties:
>> of the host capability QMI request
>> - qcom,xo-cal-data: xo cal offset to be configured in xo trim
>> register.
>>
>> +- qcom,msa_fixed_perm: Boolean context flag to disable SCM call for
>> statically
>> + mapped msa region.
>> +
>
> s/_/-/
>
>> Example (to supply PCI based wifi block details):
>>
>> In this example, the node is defined as child node of the PCI
>> controller.
>> @@ -185,4 +188,5 @@ wifi@18000000 {
>> vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
>> memory-region = <&wifi_msa_mem>;
>> iommus = <&apps_smmu 0x0040 0x1>;
>> + qcom,msa_fixed_perm;
>> };
>> --
>> 2.22.0
>>

BR,
Govind