From 0e85726a0a9bf4fd2b7faa08f5d86eac03283071 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Tue, 15 Nov 2016 19:28:55 +0100 Subject: [PATCH] ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success Fixes the Ubiquiti UAP Outdoor+ HSR. --- ...gpio_get-to-return-0-or-1-on-success.patch | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 patches/openwrt/0079-ath9k-fix-ath9k_hw_gpio_get-to-return-0-or-1-on-success.patch diff --git a/patches/openwrt/0079-ath9k-fix-ath9k_hw_gpio_get-to-return-0-or-1-on-success.patch b/patches/openwrt/0079-ath9k-fix-ath9k_hw_gpio_get-to-return-0-or-1-on-success.patch new file mode 100644 index 00000000..a3fa2b6d --- /dev/null +++ b/patches/openwrt/0079-ath9k-fix-ath9k_hw_gpio_get-to-return-0-or-1-on-success.patch @@ -0,0 +1,43 @@ +From: Matthias Schiffer +Date: Tue, 15 Nov 2016 19:26:52 +0100 +Subject: ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success + +Signed-off-by: Matthias Schiffer + +Backport of LEDE a250556d27556ec94a8d800fd27be40c2de8139c + +diff --git a/package/kernel/mac80211/patches/331-ath9k-fix-ath9k_hw_gpio_get-to-return-0-or-1-on-succ.patch b/package/kernel/mac80211/patches/331-ath9k-fix-ath9k_hw_gpio_get-to-return-0-or-1-on-succ.patch +new file mode 100644 +index 0000000..627b401 +--- /dev/null ++++ b/package/kernel/mac80211/patches/331-ath9k-fix-ath9k_hw_gpio_get-to-return-0-or-1-on-succ.patch +@@ -0,0 +1,29 @@ ++From: Matthias Schiffer ++Date: Tue, 15 Nov 2016 16:08:29 +0100 ++Subject: [PATCH] ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success ++ ++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") ++Signed-off-by: Matthias Schiffer ++--- ++ drivers/net/wireless/ath/ath9k/hw.c | 2 +- ++ 1 file changed, 1 insertion(+), 1 deletion(-) ++ ++--- a/drivers/net/wireless/ath/ath9k/hw.c +++++ b/drivers/net/wireless/ath/ath9k/hw.c ++@@ -2816,7 +2816,7 @@ u32 ath9k_hw_gpio_get(struct ath_hw *ah, ++ WARN_ON(1); ++ } ++ ++- return val; +++ return !!val; ++ } ++ EXPORT_SYMBOL(ath9k_hw_gpio_get); ++