4a0a1fc91c
This patch adds 'qca,gpio-mask=<u32>' device tree property to ath9k node. This optional setting is a hack and should only be used in very special (and rare) cases when a button or LED is wired to a GPIO pin normally masked out (due to being one-way etc). Netgear WNDR4300 v2 is one such example - it uses GPI9 for RFKILL. See ath9k/reg.h *_GPIO_MASK constants. Use with caution and expect to see stream of kernel warnings if wrong mask value is provided. Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
26 lines
637 B
Diff
26 lines
637 B
Diff
--- a/drivers/net/wireless/ath/ath9k/init.c
|
|
+++ b/drivers/net/wireless/ath/ath9k/init.c
|
|
@@ -654,6 +654,12 @@ static int ath9k_of_init(struct ath_soft
|
|
return 0;
|
|
}
|
|
|
|
+static void ath9k_of_gpio_mask(struct ath_softc *sc)
|
|
+{
|
|
+ of_property_read_u32(sc->dev->of_node, "qca,gpio-mask",
|
|
+ &sc->sc_ah->caps.gpio_mask);
|
|
+}
|
|
+
|
|
static int ath9k_init_softc(u16 devid, struct ath_softc *sc,
|
|
const struct ath_bus_ops *bus_ops)
|
|
{
|
|
@@ -758,6 +764,9 @@ static int ath9k_init_softc(u16 devid, s
|
|
if (ret)
|
|
goto err_hw;
|
|
|
|
+ /* GPIO mask quirk */
|
|
+ ath9k_of_gpio_mask(sc);
|
|
+
|
|
ret = ath9k_init_queues(sc);
|
|
if (ret)
|
|
goto err_queues;
|