Hello,

this patch aims at making the mmv-over-gpio driver and the b43
wireless driver compatible. They both use gpgio lines, however,
the mmc driver does this for the real work whereas the b43 driver
uses the connected LEDs only as blinkenlights eye-candy.

This patch disabled the LED subsystem on the brcm47xx platform if
the gpio mmc driver is selected. This way the mmc gpgio driver
has exclusive access to the lines.

This required passing some defines on to the mac80211 package
which contains the b43 driver. These have no effect on other
platforms. If somebody knows a way to patch the config.mk only
for the brcm47xx case, I'd be glad to know.

Bye,

Joerg

Signed-Off-by: Joerg Dorchain <jo...@dorchain.net>

Index: target/linux/brcm47xx/patches-2.6.32/215-b43-mmc-gpio-conflict.patch
===================================================================
--- target/linux/brcm47xx/patches-2.6.32/215-b43-mmc-gpio-conflict.patch        
(revision 0)
+++ target/linux/brcm47xx/patches-2.6.32/215-b43-mmc-gpio-conflict.patch        
(revision 0)
@@ -0,0 +1,15 @@
+--- a/drivers/led/Kconfig      2010-04-01 10:03:32.349152840 +0200
++++ b/drivers/led/Kconfig      2010-04-01 10:10:48.449153105 +0200
+@@ -1,3 +1,4 @@
++if (GPIOMMC = n)
+ menuconfig NEW_LEDS
+       bool "LED Support"
+       help
+@@ -6,6 +7,7 @@
+ 
+         This is not related to standard keyboard LEDs which are controlled
+         via the input system.
++endif # GPIOMMC
+ 
+ if NEW_LEDS
+ 
Index: package/mac80211/patches/016-no_led.patch
===================================================================
--- package/mac80211/patches/016-no_led.patch   (revision 0)
+++ package/mac80211/patches/016-no_led.patch   (revision 0)
@@ -0,0 +1,108 @@
+--- a/config.mk        2010-03-13 13:03:49.071860543 +0100
++++ b/config.mk        2010-03-13 13:05:01.271918224 +0100
+@@ -116,7 +116,7 @@
+ CONFIG_COMPAT_MAC80211_RC_DEFAULT=minstrel
+ CONFIG_MAC80211_RC_PID=y
+ CONFIG_MAC80211_RC_MINSTREL=y
+-CONFIG_MAC80211_LEDS=y
++#CONFIG_MAC80211_LEDS=y
+ 
+ # enable mesh networking too
+ CONFIG_MAC80211_MESH=y
+@@ -199,7 +199,7 @@
+ ifneq ($(CONFIG_PCMCIA),)
+ # CONFIG_B43_PCMCIA=y
+ endif
+-CONFIG_B43_LEDS=y
++# CONFIG_B43_LEDS=y
+ CONFIG_B43_PHY_LP=y
+ CONFIG_B43_NPHY=y
+ # CONFIG_B43_DEBUG=y
+@@ -207,7 +207,7 @@
+ CONFIG_B43LEGACY=m
+ CONFIG_B43LEGACY_HWRNG=y
+ CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+-CONFIG_B43LEGACY_LEDS=y
++# CONFIG_B43LEGACY_LEDS=y
+ # CONFIG_B43LEGACY_DEBUG=y
+ CONFIG_B43LEGACY_DMA=y
+ CONFIG_B43LEGACY_PIO=y
+@@ -332,13 +332,13 @@
+ 
+ CONFIG_P54_USB=m
+ CONFIG_RTL8187=m
+-CONFIG_RTL8187_LEDS=y
++# CONFIG_RTL8187_LEDS=y
+ 
+ CONFIG_AT76C50X_USB=m
+ 
+ ifndef CONFIG_COMPAT_KERNEL_28
+ CONFIG_AR9170_USB=m
+-CONFIG_AR9170_LEDS=y
++#CONFIG_AR9170_LEDS=y
+ endif
+ 
+ # RT2500USB does not require firmware
+@@ -411,7 +411,7 @@
+ CONFIG_RT2X00_LIB_HT=y
+ CONFIG_RT2X00_LIB_FIRMWARE=y
+ CONFIG_RT2X00_LIB_CRYPTO=y
+-CONFIG_RT2X00_LIB_LEDS=y
++#CONFIG_RT2X00_LIB_LEDS=y
+ # CONFIG_RT2X00_DEBUG=y
+ # CONFIG_RT2X00_LIB_DEBUGFS
+ endif
+@@ -422,7 +422,7 @@
+ 
+ # p54
+ CONFIG_P54_COMMON=m
+-CONFIG_P54_LEDS=y
++#CONFIG_P54_LEDS=y
+ 
+ # Atheros
+ CONFIG_ATH_COMMON=m
+
+--- a/drivers/net/wireless/b43/main.c  2010-03-26 19:25:51.000000000 +0100
++++ b/drivers/net/wireless/b43/main.c  2010-04-01 09:23:06.149155292 +0200
+@@ -2528,10 +2528,17 @@
+                   & ~B43_MACCTL_GPOUTSMSK);
+ 
+       b43_write16(dev, B43_MMIO_GPIO_MASK, b43_read16(dev, B43_MMIO_GPIO_MASK)
++#ifndef CONFIG_GPIOMMC
+                   | 0x000F);
+-
++#else
++                  | 0x0001);
++#endif
+       mask = 0x0000001F;
++#ifndef CONFIG_GPIOMMC
+       set = 0x0000000F;
++#else
++      set = 0x00000001;
++#endif
+       if (dev->dev->bus->chip_id == 0x4301) {
+               mask |= 0x0060;
+               set |= 0x0060;
+@@ -2559,10 +2566,11 @@
+       gpiodev = bus->chipco.dev ? : pcidev;
+       if (!gpiodev)
+               return 0;
++#ifndef CONFIG_GPIOMMC
+       ssb_write32(gpiodev, B43_GPIO_CONTROL,
+                   (ssb_read32(gpiodev, B43_GPIO_CONTROL)
+                    & mask) | set);
+-
++#endif
+       return 0;
+ }
+ 
+@@ -2578,7 +2586,9 @@
+       gpiodev = bus->chipco.dev ? : pcidev;
+       if (!gpiodev)
+               return;
++#ifndef CONFIG_GPIOMMC 
+       ssb_write32(gpiodev, B43_GPIO_CONTROL, 0);
++#endif
+ }
+ 
+ /* http://bcm-specs.sipsolutions.net/EnableMac */
Index: package/mac80211/Makefile
===================================================================
--- package/mac80211/Makefile   (revision 20646)
+++ package/mac80211/Makefile   (working copy)
@@ -628,6 +628,7 @@
        $(if $(CONFIG_PACKAGE_kmod-rt2x00-soc),-DCONFIG_RT2X00_LIB_SOC) \
        $(if $(CONFIG_PCI_SUPPORT),-DCONFIG_RT2800PCI_PCI) \
        $(if $(CONFIG_TARGET_ramips),-DCONFIG_RT2800PCI_SOC) \
+       $(if $(CONFIG_GPIOMMC),-DCONFIG_GPIOMMC) \
 
 MAKE_OPTS:= \
        CROSS_COMPILE="$(KERNEL_CROSS)" \
@@ -637,7 +638,7 @@
        CONFIG_MAC80211=$(if $(CONFIG_PACKAGE_kmod-mac80211),m) \
        CONFIG_MAC80211_RC_PID=y \
        CONFIG_MAC80211_RC_MINSTREL=y \
-       CONFIG_MAC80211_LEDS=$(CONFIG_LEDS_TRIGGERS) \
+       $(if $(CONFIG_LEDS_TRIGGERS), 
CONFIG_MAC80211_LEDS=$(CONFIG_LEDS_TRIGGERS)) \
        CONFIG_MAC80211_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
        CONFIG_B43_PCMCIA=n CONFIG_B43_PIO=n \
        CONFIG_B43_PCI_AUTOSELECT=$(if $(CONFIG_PCI),y) \
@@ -646,8 +647,9 @@
        CONFIG_SSB_DRIVER_PCICORE=$(if $(CONFIG_PCI),y) \
        CONFIG_SSB_PCIHOST_POSSIBLE=$(if $(CONFIG_PCI),y) \
        CONFIG_SSB_PCIHOST=$(if $(CONFIG_PCI),y) \
-       CONFIG_B43LEGACY_LEDS=$(CONFIG_LEDS_TRIGGERS) \
-       CONFIG_B43_LEDS=$(CONFIG_LEDS_TRIGGERS) \
+       $(if $(CONFIG_LEDS_TRIGGERS), 
CONFIG_B43LEGACY_LEDS=$(CONFIG_LEDS_TRIGGERS)) \
+       $(if $(CONFIG_LEDS_TRIGGERS), CONFIG_B43_LEDS=$(CONFIG_LEDS_TRIGGERS)) \
+       $(if $(CONFIG_GPIOMMC), CONFIG_GPIOMMC=$(CONFIG_GPIOMMC)) \
        CONFIG_B43_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
        CONFIG_B43LEGACY_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
        CONFIG_B43=$(if $(CONFIG_PACKAGE_kmod-b43),m) \

Attachment: signature.asc
Description: Digital signature

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to