#include "common.h"
#include "debug.h"
-@@ -960,6 +961,14 @@ struct ath_led {
+@@ -1001,6 +1002,14 @@ struct ath_led {
struct led_classdev cdev;
};
struct ath_softc {
struct ieee80211_hw *hw;
struct device *dev;
-@@ -1014,6 +1023,9 @@ struct ath_softc {
+@@ -1058,6 +1067,9 @@ struct ath_softc {
#ifdef CPTCFG_MAC80211_LEDS
const char *led_default_trigger;
struct list_head leds;
+ if (!gc)
+ return;
+
++ gc->sc = sc;
+ snprintf(gc->label, sizeof(gc->label), "ath9k-%s",
+ wiphy_name(sc->hw->wiphy));
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,5,0)
+ gc->gchip.get_direction = ath9k_gpio_pin_get_dir;
+ gc->gchip.get = ath9k_gpio_pin_get;
+ gc->gchip.set = ath9k_gpio_pin_set;
-+ gc->gchip.owner = THIS_MODULE;
+
+ if (gpiochip_add(&gc->gchip)) {
+ kfree(gc);
+ return;
+ }
+
++ gc->gchip.owner = NULL;
+ sc->gpiochip = gc;
-+ gc->sc = sc;
+}
+
+/* remove GPIO chip */