diff mbox

ath10k: update antenna configuration after setting in fw

Message ID 1445851330-18736-1-git-send-email-manikanta.pubbisetty@gmail.com (mailing list archive)
State Rejected
Headers show

Commit Message

manikanta.pubbisetty@gmail.com Oct. 26, 2015, 9:22 a.m. UTC
From: Manikanta Pubbisetty <manikanta.pubbisetty@gmail.com>

Updating tx/rx antenna configuration in ath10k is done even before
it is set in target. If setting of the tx/rx antenna config fails then
we will maintain incorrect configuration in ath10k and APIs like
get_antenna will provide incorrect information.

This patch updates the antenna configuration in ath10k after it is set
successfully in target.

Signed-off-by: Manikanta Pubbisetty <manikanta.pubbisetty@gmail.com>
---
 drivers/net/wireless/ath/ath10k/mac.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Albino B Neto Oct. 26, 2015, 10:05 a.m. UTC | #1
2015-10-26 7:22 GMT-02:00  <manikanta.pubbisetty@gmail.com>:
> Signed-off-by: Manikanta Pubbisetty <manikanta.pubbisetty@gmail.com>
> ---
>  drivers/net/wireless/ath/ath10k/mac.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
> index 484c1a1..8d0ce37 100644
> --- a/drivers/net/wireless/ath/ath10k/mac.c
> +++ b/drivers/net/wireless/ath/ath10k/mac.c
> @@ -3771,9 +3771,6 @@ static int __ath10k_set_antenna(struct ath10k *ar, u32 tx_ant, u32 rx_ant)
>         ath10k_check_chain_mask(ar, tx_ant, "tx");
>         ath10k_check_chain_mask(ar, rx_ant, "rx");
>
> -       ar->cfg_tx_chainmask = tx_ant;
> -       ar->cfg_rx_chainmask = rx_ant;
> -
>         if ((ar->state != ATH10K_STATE_ON) &&
>             (ar->state != ATH10K_STATE_RESTARTED))
>                 return 0;
> @@ -3794,6 +3791,9 @@ static int __ath10k_set_antenna(struct ath10k *ar, u32 tx_ant, u32 rx_ant)
>                 return ret;
>         }
>
> +       ar->cfg_tx_chainmask = tx_ant;
> +       ar->cfg_rx_chainmask = rx_ant;
> +
>         return 0;
>  }

Sorry, I see no change in the code. script checkpatch.pl ?

    Albino
manikanta.pubbisetty@gmail.com Oct. 26, 2015, 10:11 a.m. UTC | #2
On Monday 26 October 2015 03:35 PM, Albino B Neto wrote:
> 2015-10-26 7:22 GMT-02:00  <manikanta.pubbisetty@gmail.com>:
>> Signed-off-by: Manikanta Pubbisetty <manikanta.pubbisetty@gmail.com>
>> ---
>>   drivers/net/wireless/ath/ath10k/mac.c | 6 +++---
>>   1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
>> index 484c1a1..8d0ce37 100644
>> --- a/drivers/net/wireless/ath/ath10k/mac.c
>> +++ b/drivers/net/wireless/ath/ath10k/mac.c
>> @@ -3771,9 +3771,6 @@ static int __ath10k_set_antenna(struct ath10k *ar, u32 tx_ant, u32 rx_ant)
>>          ath10k_check_chain_mask(ar, tx_ant, "tx");
>>          ath10k_check_chain_mask(ar, rx_ant, "rx");
>>
>> -       ar->cfg_tx_chainmask = tx_ant;
>> -       ar->cfg_rx_chainmask = rx_ant;
>> -
>>          if ((ar->state != ATH10K_STATE_ON) &&
>>              (ar->state != ATH10K_STATE_RESTARTED))
>>                  return 0;
>> @@ -3794,6 +3791,9 @@ static int __ath10k_set_antenna(struct ath10k *ar, u32 tx_ant, u32 rx_ant)
>>                  return ret;
>>          }
>>
>> +       ar->cfg_tx_chainmask = tx_ant;
>> +       ar->cfg_rx_chainmask = rx_ant;
>> +
>>          return 0;
>>   }
> Sorry, I see no change in the code. script checkpatch.pl ?
I have moved these two lines of code from the start of the function to 
the end, in between there is code for setting the antenna config in 
firmware. You can find in commit log why I have moved the code down in 
the function.

-Manikanta
Ben Greear Oct. 26, 2015, 3:14 p.m. UTC | #3
On 10/26/2015 03:11 AM, Manikanta wrote:
>
> On Monday 26 October 2015 03:35 PM, Albino B Neto wrote:
>> 2015-10-26 7:22 GMT-02:00  <manikanta.pubbisetty@gmail.com>:
>>> Signed-off-by: Manikanta Pubbisetty <manikanta.pubbisetty@gmail.com>
>>> ---
>>>   drivers/net/wireless/ath/ath10k/mac.c | 6 +++---
>>>   1 file changed, 3 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
>>> index 484c1a1..8d0ce37 100644
>>> --- a/drivers/net/wireless/ath/ath10k/mac.c
>>> +++ b/drivers/net/wireless/ath/ath10k/mac.c
>>> @@ -3771,9 +3771,6 @@ static int __ath10k_set_antenna(struct ath10k *ar, u32 tx_ant, u32 rx_ant)
>>>          ath10k_check_chain_mask(ar, tx_ant, "tx");
>>>          ath10k_check_chain_mask(ar, rx_ant, "rx");
>>>
>>> -       ar->cfg_tx_chainmask = tx_ant;
>>> -       ar->cfg_rx_chainmask = rx_ant;
>>> -
>>>          if ((ar->state != ATH10K_STATE_ON) &&
>>>              (ar->state != ATH10K_STATE_RESTARTED))
>>>                  return 0;
>>> @@ -3794,6 +3791,9 @@ static int __ath10k_set_antenna(struct ath10k *ar, u32 tx_ant, u32 rx_ant)
>>>                  return ret;
>>>          }
>>>
>>> +       ar->cfg_tx_chainmask = tx_ant;
>>> +       ar->cfg_rx_chainmask = rx_ant;
>>> +
>>>          return 0;
>>>   }
>> Sorry, I see no change in the code. script checkpatch.pl ?
> I have moved these two lines of code from the start of the function to the end, in between there is code for setting the antenna config in firmware. You can find in commit log why I have moved the code down in the function.

I think you should leave it as it was.  That way, you can reliably set the mask
before the hardware is started, and as soon as it _is_ started, then the value is
flushed to the hardware as expected.

Thanks,
Ben


>
> -Manikanta
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
diff mbox

Patch

diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 484c1a1..8d0ce37 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -3771,9 +3771,6 @@  static int __ath10k_set_antenna(struct ath10k *ar, u32 tx_ant, u32 rx_ant)
 	ath10k_check_chain_mask(ar, tx_ant, "tx");
 	ath10k_check_chain_mask(ar, rx_ant, "rx");
 
-	ar->cfg_tx_chainmask = tx_ant;
-	ar->cfg_rx_chainmask = rx_ant;
-
 	if ((ar->state != ATH10K_STATE_ON) &&
 	    (ar->state != ATH10K_STATE_RESTARTED))
 		return 0;
@@ -3794,6 +3791,9 @@  static int __ath10k_set_antenna(struct ath10k *ar, u32 tx_ant, u32 rx_ant)
 		return ret;
 	}
 
+	ar->cfg_tx_chainmask = tx_ant;
+	ar->cfg_rx_chainmask = rx_ant;
+
 	return 0;
 }