[v4,2/3] dt-bindings: net: ath10k: add new dt entry to identify external FEM
diff mbox series

Message ID 1544544804-4039-3-git-send-email-bperumal@codeaurora.org
State New
Headers show
Series
  • ath10k: Add support to configure BB timing for external FEM
Related show

Commit Message

Bhagavathi Perumal S Dec. 11, 2018, 4:13 p.m. UTC
This adds new dt entry ext-fem-name, it is used by ath10k driver
to select correct timing parameters and configure it in target wifi hardware.
The Front End Module(FEM) normally includes tx power amplifier(PA) and
rx low noise amplifier(LNA). The default timing parameters like tx end to
PA off timing values were fine tuned for internal FEM used in reference
design. And these timing values can not be same if ODM modifies hardware
design with different external FEM. This DT entry helps to choose correct
timing values in driver if different external FEM hardware used.

Signed-off-by: Bhagavathi Perumal S <bperumal@codeaurora.org>
---
 Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

Comments

Sebastian Gottschall Dec. 11, 2018, 8:07 p.m. UTC | #1
documentation still wrong. only  microsemi-lx5586 is valid .all other 
values are invalid
see patch 4

+	if (!strcmp("microsemi-lx5586", fem_name)) {
+		bb_timing->bb_tx_timing = 0x00;
+		bb_timing->bb_xpa_timing = 0x0101;
+	} else {
+		return -ENOENT;
+	}

Am 11.12.2018 um 17:13 schrieb Bhagavathi Perumal S:
> This adds new dt entry ext-fem-name, it is used by ath10k driver
> to select correct timing parameters and configure it in target wifi hardware.
> The Front End Module(FEM) normally includes tx power amplifier(PA) and
> rx low noise amplifier(LNA). The default timing parameters like tx end to
> PA off timing values were fine tuned for internal FEM used in reference
> design. And these timing values can not be same if ODM modifies hardware
> design with different external FEM. This DT entry helps to choose correct
> timing values in driver if different external FEM hardware used.
>
> Signed-off-by: Bhagavathi Perumal S <bperumal@codeaurora.org>
> ---
>   Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt | 9 ++++++++-
>   1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
> index ef60f25..71530fd 100644
> --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
> +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
> @@ -61,8 +61,14 @@ Optional properties:
>   	Value type: <phandle>
>   	Definition: reference to the reserved-memory for the msa region
>   		    used by the wifi firmware running in Q6.
> +- ext-fem-name:
> +	Usage: Optional
> +	Value type: string
> +	Definition: Name of external front end module used. Some valid FEM names
> +		    for example: "microsemi-lx5586", "sky85703-11"
> +		    and "sky85803" etc.
>   
> -Example (to supply the calibration data alone):
> +Example (to supply PCI based wifi block details):
>   
>   In this example, the node is defined as child node of the PCI controller.
>   
> @@ -77,6 +83,7 @@ pci {
>   		wifi@0,0 {
>   			reg = <0 0 0 0 0>;
>   			qcom,ath10k-calibration-data = [ 01 02 03 ... ];
> +			ext-fem-name = "microsemi-lx5586";
>   		};
>   	};
>   };
Bhagavathi Perumal S Dec. 12, 2018, 4:40 a.m. UTC | #2
On 2018-12-12 10:00, Bhagavathi Perumal S wrote:
> -----Original Message-----
> From: ath10k <ath10k-bounces@lists.infradead.org> On Behalf Of
> Sebastian Gottschall
> Sent: Wednesday, December 12, 2018 1:38 AM
> To: ath10k@lists.infradead.org
> Subject: [EXTERNAL] Re: [PATCH v4 2/3] dt-bindings: net: ath10k: add
> new dt entry to identify external FEM
> 
> documentation still wrong. only  microsemi-lx5586 is valid .all other
> values are invalid see patch 4
> 
> +	if (!strcmp("microsemi-lx5586", fem_name)) {
> +		bb_timing->bb_tx_timing = 0x00;
> +		bb_timing->bb_xpa_timing = 0x0101;
> +	} else {
> +		return -ENOENT;
> +	}
> 

Thanks, Missed it. Need to allow other FEM devices to use default values 
with warning message. Will change it.

> Am 11.12.2018 um 17:13 schrieb Bhagavathi Perumal S:
>> This adds new dt entry ext-fem-name, it is used by ath10k driver to
>> select correct timing parameters and configure it in target wifi 
>> hardware.
>> The Front End Module(FEM) normally includes tx power amplifier(PA) and
>> rx low noise amplifier(LNA). The default timing parameters like tx end
>> to PA off timing values were fine tuned for internal FEM used in
>> reference design. And these timing values can not be same if ODM
>> modifies hardware design with different external FEM. This DT entry
>> helps to choose correct timing values in driver if different external 
>> FEM hardware used.
>> 
>> Signed-off-by: Bhagavathi Perumal S <bperumal@codeaurora.org>
>> ---
>>   Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt | 9 
>> ++++++++-
>>   1 file changed, 8 insertions(+), 1 deletion(-)
>> 
>> diff --git
>> a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
>> b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
>> index ef60f25..71530fd 100644
>> --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
>> +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
>> @@ -61,8 +61,14 @@ Optional properties:
>>   	Value type: <phandle>
>>   	Definition: reference to the reserved-memory for the msa region
>>   		    used by the wifi firmware running in Q6.
>> +- ext-fem-name:
>> +	Usage: Optional
>> +	Value type: string
>> +	Definition: Name of external front end module used. Some valid FEM 
>> names
>> +		    for example: "microsemi-lx5586", "sky85703-11"
>> +		    and "sky85803" etc.
>> 
>> -Example (to supply the calibration data alone):
>> +Example (to supply PCI based wifi block details):
>> 
>>   In this example, the node is defined as child node of the PCI 
>> controller.
>> 
>> @@ -77,6 +83,7 @@ pci {
>>   		wifi@0,0 {
>>   			reg = <0 0 0 0 0>;
>>   			qcom,ath10k-calibration-data = [ 01 02 03 ... ];
>> +			ext-fem-name = "microsemi-lx5586";
>>   		};
>>   	};
>>   };
> 
> _______________________________________________
> ath10k mailing list
> ath10k@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/ath10k
Bhagavathi Perumal S Dec. 12, 2018, 5:52 a.m. UTC | #3
On 2018-12-12 10:10, Bhagavathi Perumal S wrote:
> On 2018-12-12 10:00, Bhagavathi Perumal S wrote:
>> -----Original Message-----
>> From: ath10k <ath10k-bounces@lists.infradead.org> On Behalf Of
>> Sebastian Gottschall
>> Sent: Wednesday, December 12, 2018 1:38 AM
>> To: ath10k@lists.infradead.org
>> Subject: [EXTERNAL] Re: [PATCH v4 2/3] dt-bindings: net: ath10k: add
>> new dt entry to identify external FEM
>> 
>> documentation still wrong. only  microsemi-lx5586 is valid .all other
>> values are invalid see patch 4
>> 
>> +	if (!strcmp("microsemi-lx5586", fem_name)) {
>> +		bb_timing->bb_tx_timing = 0x00;
>> +		bb_timing->bb_xpa_timing = 0x0101;
>> +	} else {
>> +		return -ENOENT;
>> +	}
>> 
> 
> Thanks, Missed it. Need to allow other FEM devices to use default
> values with warning message. Will change it.
Please ignore my previous email statement above.

The return failure is ignored and it allows other fems to use default 
timing settings.

Quote the PATCH 3/3:
+		ret = __ath10k_fetch_bb_timing_dt(ar, &bb_timing);
+		if (!ret) {
+			ret = ath10k_wmi_pdev_bb_timing(ar, &bb_timing);
+			if (ret) {
+				ath10k_warn(ar,
+					    "failed to set bb timings: %d\n",
+					    ret);
+				goto err_core_stop;
+			}
+		}

> 
>> Am 11.12.2018 um 17:13 schrieb Bhagavathi Perumal S:
>>> This adds new dt entry ext-fem-name, it is used by ath10k driver to
>>> select correct timing parameters and configure it in target wifi 
>>> hardware.
>>> The Front End Module(FEM) normally includes tx power amplifier(PA) 
>>> and
>>> rx low noise amplifier(LNA). The default timing parameters like tx 
>>> end
>>> to PA off timing values were fine tuned for internal FEM used in
>>> reference design. And these timing values can not be same if ODM
>>> modifies hardware design with different external FEM. This DT entry
>>> helps to choose correct timing values in driver if different external 
>>> FEM hardware used.
>>> 
>>> Signed-off-by: Bhagavathi Perumal S <bperumal@codeaurora.org>
>>> ---
>>>   Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt | 9 
>>> ++++++++-
>>>   1 file changed, 8 insertions(+), 1 deletion(-)
>>> 
>>> diff --git
>>> a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
>>> b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
>>> index ef60f25..71530fd 100644
>>> --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
>>> +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
>>> @@ -61,8 +61,14 @@ Optional properties:
>>>   	Value type: <phandle>
>>>   	Definition: reference to the reserved-memory for the msa region
>>>   		    used by the wifi firmware running in Q6.
>>> +- ext-fem-name:
>>> +	Usage: Optional
>>> +	Value type: string
>>> +	Definition: Name of external front end module used. Some valid FEM 
>>> names
>>> +		    for example: "microsemi-lx5586", "sky85703-11"
>>> +		    and "sky85803" etc.
>>> 
>>> -Example (to supply the calibration data alone):
>>> +Example (to supply PCI based wifi block details):
>>> 
>>>   In this example, the node is defined as child node of the PCI 
>>> controller.
>>> 
>>> @@ -77,6 +83,7 @@ pci {
>>>   		wifi@0,0 {
>>>   			reg = <0 0 0 0 0>;
>>>   			qcom,ath10k-calibration-data = [ 01 02 03 ... ];
>>> +			ext-fem-name = "microsemi-lx5586";
>>>   		};
>>>   	};
>>>   };
>> 
>> _______________________________________________
>> ath10k mailing list
>> ath10k@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/ath10k
Kalle Valo Dec. 13, 2018, 9:08 a.m. UTC | #4
Sebastian Gottschall <s.gottschall@newmedia-net.de> writes:

> documentation still wrong. only  microsemi-lx5586 is valid .all other
> values are invalid
> see patch 4
>
> +	if (!strcmp("microsemi-lx5586", fem_name)) {
> +		bb_timing->bb_tx_timing = 0x00;
> +		bb_timing->bb_xpa_timing = 0x0101;
> +	} else {
> +		return -ENOENT;
> +	}

Please don't top post, makes the discussion difficult.

But anyway, to my knowledge the device tree is supposed to describe
hardware and not software implementation. So I don't see a problem that
device tree documents FEMs for which ath10k does not do anything right
now.
Rob Herring Dec. 17, 2018, 8:37 p.m. UTC | #5
On Tue, Dec 11, 2018 at 09:43:23PM +0530, Bhagavathi Perumal S wrote:
> This adds new dt entry ext-fem-name, it is used by ath10k driver
> to select correct timing parameters and configure it in target wifi hardware.
> The Front End Module(FEM) normally includes tx power amplifier(PA) and
> rx low noise amplifier(LNA). The default timing parameters like tx end to
> PA off timing values were fine tuned for internal FEM used in reference
> design. And these timing values can not be same if ODM modifies hardware
> design with different external FEM. This DT entry helps to choose correct
> timing values in driver if different external FEM hardware used.
> 
> Signed-off-by: Bhagavathi Perumal S <bperumal@codeaurora.org>
> ---
>  Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)

Please add acks/reviewed-bys when posting new versions.
Kalle Valo Dec. 20, 2018, 1:23 p.m. UTC | #6
Rob Herring <robh@kernel.org> writes:

> On Tue, Dec 11, 2018 at 09:43:23PM +0530, Bhagavathi Perumal S wrote:
>> This adds new dt entry ext-fem-name, it is used by ath10k driver
>> to select correct timing parameters and configure it in target wifi hardware.
>> The Front End Module(FEM) normally includes tx power amplifier(PA) and
>> rx low noise amplifier(LNA). The default timing parameters like tx end to
>> PA off timing values were fine tuned for internal FEM used in reference
>> design. And these timing values can not be same if ODM modifies hardware
>> design with different external FEM. This DT entry helps to choose correct
>> timing values in driver if different external FEM hardware used.
>> 
>> Signed-off-by: Bhagavathi Perumal S <bperumal@codeaurora.org>
>> ---
>>  Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt | 9 ++++++++-
>>  1 file changed, 8 insertions(+), 1 deletion(-)
>
> Please add acks/reviewed-bys when posting new versions.

I added your reviewed-by from v3 in the pending branch:

https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=pending&id=2f4f5a81c87b9be68aa087c238e2f2b9debbfa1b

Patch
diff mbox series

diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
index ef60f25..71530fd 100644
--- a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
+++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
@@ -61,8 +61,14 @@  Optional properties:
 	Value type: <phandle>
 	Definition: reference to the reserved-memory for the msa region
 		    used by the wifi firmware running in Q6.
+- ext-fem-name:
+	Usage: Optional
+	Value type: string
+	Definition: Name of external front end module used. Some valid FEM names
+		    for example: "microsemi-lx5586", "sky85703-11"
+		    and "sky85803" etc.
 
-Example (to supply the calibration data alone):
+Example (to supply PCI based wifi block details):
 
 In this example, the node is defined as child node of the PCI controller.
 
@@ -77,6 +83,7 @@  pci {
 		wifi@0,0 {
 			reg = <0 0 0 0 0>;
 			qcom,ath10k-calibration-data = [ 01 02 03 ... ];
+			ext-fem-name = "microsemi-lx5586";
 		};
 	};
 };