Skip to contentSkip to conversation

ath9k: Add a module parameter to invert LED polarity.

PATCH New Vittorio Gambaletta (VittGam) 2 participants 3 messages Apr 11, 2016 – Apr 25, 2016

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/2 ath9k: Add a module parameter to invert LED polarity.

The LED can be active high instead of active low on some hardware.

Add the led_active_high module parameter. It defaults to -1 to obey platform data as before.

Setting the parameter to 1 or 0 will force the LED respectively active high or active low.

---

drivers/net/wireless/ath/ath9k/init.c +7 -0
@@ -49,6 +49,10 @@ int ath9k_led_blink;
 module_param_named(blink, ath9k_led_blink, int, 0444);
 MODULE_PARM_DESC(blink, "Enable LED blink on activity");
 
+static int ath9k_led_active_high = -1;
+module_param_named(led_active_high, ath9k_led_active_high, int, 0444);
+MODULE_PARM_DESC(led_active_high, "Invert LED polarity");
+
 static int ath9k_btcoex_enable;
 module_param_named(btcoex_enable, ath9k_btcoex_enable, int, 0444);
 MODULE_PARM_DESC(btcoex_enable, "Enable wifi-BT coexistence");
@@ -600,6 +604,9 @@ static int ath9k_init_softc(u16 devid, struct ath_softc *sc,
 	if (ret)
 		return ret;
 
+	if (ath9k_led_active_high != -1)
+		ah->config.led_active_high = ath9k_led_active_high == 1;
+
 	/*
 	 * Enable WLAN/BT RX Antenna diversity only when:
 	 *
#1 lore raw

PATCH 2/2 ath9k: Fix LED polarity for some Mini PCI AR9220 MB92 cards.

The Wistron DNMA-92 and Compex WLM200NX have inverted LED polarity (active high instead of active low).

The same PCI Subsystem ID is used by both cards, which are based on the same Atheros MB92 design.

---

drivers/net/wireless/ath/ath9k/pci.c +10 -0
@@ -28,6 +28,16 @@ static const struct pci_device_id ath_pci_id_table[] = {
 	{ PCI_VDEVICE(ATHEROS, 0x0024) }, /* PCI-E */
 	{ PCI_VDEVICE(ATHEROS, 0x0027) }, /* PCI   */
 	{ PCI_VDEVICE(ATHEROS, 0x0029) }, /* PCI   */
+
+#ifdef CONFIG_ATH9K_PCOEM
+	/* Mini PCI AR9220 MB92 cards: Compex WLM200NX, Wistron DNMA-92 */
+	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS,
+			 0x0029,
+			 PCI_VENDOR_ID_ATHEROS,
+			 0x2096),
+	  .driver_data = ATH9K_PCI_LED_ACT_HI },
+#endif
+
 	{ PCI_VDEVICE(ATHEROS, 0x002A) }, /* PCI-E */
 
 #ifdef CONFIG_ATH9K_PCOEM
#2 lore raw

PATCH 1/2 ath9k: Add a module parameter to invert LED polarity.

In reply to Vittorio Gambaletta (VittGam)
Quoted 5 lines · Vittorio Gambaletta (VittGam)

The LED can be active high instead of active low on some hardware.

Add the led_active_high module parameter. It defaults to -1 to obey platform data as before.

Quoted 8 lines

Setting the parameter to 1 or 0 will force the LED respectively active high or active low.

Both patches applied, thanks.

Signature · 1 line
Kalle Valo