ath9k-devel.lists.ath9k.org archive mirror
 help / color / mirror / Atom feed
* [ath9k-devel] [PATCH] ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success
@ 2016-11-15 17:47 Matthias Schiffer
  2016-11-16 14:08 ` Kalle Valo
  2016-11-23 13:58 ` [ath9k-devel] " Kalle Valo
  0 siblings, 2 replies; 5+ messages in thread
From: Matthias Schiffer @ 2016-11-15 17:47 UTC (permalink / raw)
  To: ath9k-devel

Commit b2d70d4944c1 ("ath9k: make GPIO API to support both of WMAC and
SOC") refactored ath9k_hw_gpio_get() to support both WMAC and SOC GPIOs,
changing the return on success from 1 to BIT(gpio). This broke some callers
like ath_is_rfkill_set().

Instead of fixing all callers, change ath9k_hw_gpio_get() back to only
return 0 or 1.

Fixes: b2d70d4944c1 ("ath9k: make GPIO API to support both of WMAC and SOC")
Cc: <stable@vger.kernel.org> # v4.7+
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
---
 drivers/net/wireless/ath/ath9k/hw.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index 14b13f0..a35f78b 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -2792,7 +2792,7 @@ u32 ath9k_hw_gpio_get(struct ath_hw *ah, u32 gpio)
 		WARN_ON(1);
 	}
 
-	return val;
+	return !!val;
 }
 EXPORT_SYMBOL(ath9k_hw_gpio_get);
 
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [ath9k-devel] [PATCH] ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success
  2016-11-15 17:47 [ath9k-devel] [PATCH] ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success Matthias Schiffer
@ 2016-11-16 14:08 ` Kalle Valo
  2016-11-16 14:40   ` Matthias Schiffer
  2016-11-23 13:58 ` [ath9k-devel] " Kalle Valo
  1 sibling, 1 reply; 5+ messages in thread
From: Kalle Valo @ 2016-11-16 14:08 UTC (permalink / raw)
  To: ath9k-devel

Matthias Schiffer <mschiffer@universe-factory.net> writes:

> Commit b2d70d4944c1 ("ath9k: make GPIO API to support both of WMAC and
> SOC") refactored ath9k_hw_gpio_get() to support both WMAC and SOC GPIOs,
> changing the return on success from 1 to BIT(gpio). This broke some callers
> like ath_is_rfkill_set().
>
> Instead of fixing all callers, change ath9k_hw_gpio_get() back to only
> return 0 or 1.
>
> Fixes: b2d70d4944c1 ("ath9k: make GPIO API to support both of WMAC and SOC")
> Cc: <stable@vger.kernel.org> # v4.7+
> Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>

Can you describe more about the symptoms, how did this break from user's
point of view? I can add that to the commit log.

-- 
Kalle Valo

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ath9k-devel] [PATCH] ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success
  2016-11-16 14:08 ` Kalle Valo
@ 2016-11-16 14:40   ` Matthias Schiffer
  2016-11-16 15:59     ` Kalle Valo
  0 siblings, 1 reply; 5+ messages in thread
From: Matthias Schiffer @ 2016-11-16 14:40 UTC (permalink / raw)
  To: ath9k-devel

On 11/16/2016 03:08 PM, Kalle Valo wrote:
> Matthias Schiffer <mschiffer@universe-factory.net> writes:
> 
>> Commit b2d70d4944c1 ("ath9k: make GPIO API to support both of WMAC and
>> SOC") refactored ath9k_hw_gpio_get() to support both WMAC and SOC GPIOs,
>> changing the return on success from 1 to BIT(gpio). This broke some callers
>> like ath_is_rfkill_set().
>>
>> Instead of fixing all callers, change ath9k_hw_gpio_get() back to only
>> return 0 or 1.
>>
>> Fixes: b2d70d4944c1 ("ath9k: make GPIO API to support both of WMAC and SOC")
>> Cc: <stable@vger.kernel.org> # v4.7+
>> Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
> 
> Can you describe more about the symptoms, how did this break from user's
> point of view? I can add that to the commit log.
> 

I did actually not experience an issue myself with a mainline kernel.

Looking at the functions ath_is_rfkill_set() and ath9k_rfkill_poll_state()
in gpio.c, this issue causes wiphy_rfkill_set_hw_state() always to be
passed false when ah->rfkill_polarity==1, breaking rfkill. I don't know how
common devices with ah->rfkill_polarity==1 are.

I became aware of this issue when rebasing an out-of-tree patch in LEDE
which uses the WMAC GPIOs to configure some kind of bandpass filter found
in Ubiquiti hardware. (I hope to find time to get this patch upsteam at
some point...)

Matthias

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: OpenPGP digital signature
Url : http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20161116/627a14d6/attachment.pgp 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ath9k-devel] [PATCH] ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success
  2016-11-16 14:40   ` Matthias Schiffer
@ 2016-11-16 15:59     ` Kalle Valo
  0 siblings, 0 replies; 5+ messages in thread
From: Kalle Valo @ 2016-11-16 15:59 UTC (permalink / raw)
  To: ath9k-devel

Matthias Schiffer <mschiffer@universe-factory.net> writes:

> On 11/16/2016 03:08 PM, Kalle Valo wrote:
>> Matthias Schiffer <mschiffer@universe-factory.net> writes:
>> 
>>> Commit b2d70d4944c1 ("ath9k: make GPIO API to support both of WMAC and
>>> SOC") refactored ath9k_hw_gpio_get() to support both WMAC and SOC GPIOs,
>>> changing the return on success from 1 to BIT(gpio). This broke some callers
>>> like ath_is_rfkill_set().
>>>
>>> Instead of fixing all callers, change ath9k_hw_gpio_get() back to only
>>> return 0 or 1.
>>>
>>> Fixes: b2d70d4944c1 ("ath9k: make GPIO API to support both of WMAC and SOC")
>>> Cc: <stable@vger.kernel.org> # v4.7+
>>> Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
>> 
>> Can you describe more about the symptoms, how did this break from user's
>> point of view? I can add that to the commit log.
>> 
>
> I did actually not experience an issue myself with a mainline kernel.
>
> Looking at the functions ath_is_rfkill_set() and ath9k_rfkill_poll_state()
> in gpio.c, this issue causes wiphy_rfkill_set_hw_state() always to be
> passed false when ah->rfkill_polarity==1, breaking rfkill. I don't know how
> common devices with ah->rfkill_polarity==1 are.
>
> I became aware of this issue when rebasing an out-of-tree patch in LEDE
> which uses the WMAC GPIOs to configure some kind of bandpass filter found
> in Ubiquiti hardware. (I hope to find time to get this patch upsteam at
> some point...)

Thanks, this kind of information is good to have in the commit log. That
way maintainers, like me or stable tree folks, can prioritise the fix to
various releases. And I guess Linux distros also like to know this as
well as some of the normal users when trying to solve problems.

I'll mention in the commit log that this doesn't fix any known bug. And
I'll push this to 4.10, I don't think this is important enough for 4.9.

-- 
Kalle Valo

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ath9k-devel] ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success
  2016-11-15 17:47 [ath9k-devel] [PATCH] ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success Matthias Schiffer
  2016-11-16 14:08 ` Kalle Valo
@ 2016-11-23 13:58 ` Kalle Valo
  1 sibling, 0 replies; 5+ messages in thread
From: Kalle Valo @ 2016-11-23 13:58 UTC (permalink / raw)
  To: ath9k-devel

Matthias Schiffer <mschiffer@universe-factory.net> wrote:
> Commit b2d70d4944c1 ("ath9k: make GPIO API to support both of WMAC and
> SOC") refactored ath9k_hw_gpio_get() to support both WMAC and SOC GPIOs,
> changing the return on success from 1 to BIT(gpio). This broke some callers
> like ath_is_rfkill_set().
> 
> Instead of fixing all callers, change ath9k_hw_gpio_get() back to only
> return 0 or 1.
> 
> Fixes: b2d70d4944c1 ("ath9k: make GPIO API to support both of WMAC and SOC")
> Cc: <stable@vger.kernel.org> # v4.7+
> Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>

Patch applied to ath-next branch of ath.git, thanks.

91851cc7a939 ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success

-- 
https://patchwork.kernel.org/patch/9430247/

Documentation about submitting wireless patches and checking status
from patchwork:

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-11-23 13:58 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-15 17:47 [ath9k-devel] [PATCH] ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success Matthias Schiffer
2016-11-16 14:08 ` Kalle Valo
2016-11-16 14:40   ` Matthias Schiffer
2016-11-16 15:59     ` Kalle Valo
2016-11-23 13:58 ` [ath9k-devel] " Kalle Valo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).