mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05:00 
			
		
		
		
	mac80211: ath9k: add GPIO mask dts property
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>
This commit is contained in:
		
							parent
							
								
									5f07b6f367
								
							
						
					
					
						commit
						4a0a1fc91c
					
				@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					--- 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;
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user