Hello,

this is a rough cut patch in works-for-me-state. At least,
wireless is working without problem and mmc not worse than before
(see other post)

From the b43 driver I saw that the driver uses the gpio line only
for activity signalling via the connected LEDs, which is a
non-critical functionality to me.

Disabling the gpio LED access frees them up for other uses, e.g.
the mmc-over-gpio driver.

The whole patch should depend on CONFIG_GPIOMMC, but I could not
figure out a clean way to do this. Maybe sombody more comfortable
with the build system can have a look at this issue.

The patch for package/mac80211/Makefile should be rather generic.
The reason is that the b43 led.h file contain some #ifdefs that
are in the wrong case when it symbol is defined, even as empty,
so not define it at all.

Comments are welcome, I put my steel helmet on ;-)

Bye,

Joerg

Signed-off-by: Joerg Dorchain <jo...@dorchain.net>
Index: target/linux/brcm47xx/config-2.6.32
===================================================================
--- target/linux/brcm47xx/config-2.6.32 (revision 20235)
+++ target/linux/brcm47xx/config-2.6.32 (working copy)
@@ -101,7 +101,7 @@
 # CONFIG_IP_ROUTE_VERBOSE is not set
 CONFIG_IRQ_CPU=y
 CONFIG_KALLSYMS=y
-CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_GPIO=n
 # CONFIG_LEMOTE_FULONG is not set
 # CONFIG_MACH_ALCHEMY is not set
 # CONFIG_MACH_DECSTATION is not set
Index: target/linux/generic-2.6/config-2.6.32
===================================================================
--- target/linux/generic-2.6/config-2.6.32      (revision 20235)
+++ target/linux/generic-2.6/config-2.6.32      (working copy)
@@ -1114,7 +1114,7 @@
 # CONFIG_LDM_PARTITION is not set
 # CONFIG_LEDS_ALIX is not set
 # CONFIG_LEDS_BD2802 is not set
-CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_CLASS=n
 # CONFIG_LEDS_DAC124S085 is not set
 CONFIG_LEDS_GPIO_PLATFORM=y
 # CONFIG_LEDS_LP3944 is not set
@@ -1128,7 +1128,7 @@
 # CONFIG_LEDS_TRIGGER_IDE_DISK is not set
 # CONFIG_LEDS_TRIGGER_MORSE is not set
 CONFIG_LEDS_TRIGGER_NETDEV=y
-CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGERS=n
 CONFIG_LEDS_TRIGGER_TIMER=y
 # CONFIG_LEGACY_PTYS is not set
 # CONFIG_LIB80211_CRYPT_CCMP is not set
Index: package/mac80211/patches/013-no_led.patch
===================================================================
--- package/mac80211/patches/013-no_led.patch   (revision 0)
+++ package/mac80211/patches/013-no_led.patch   (revision 0)
@@ -0,0 +1,101 @@
+--- 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-13 16:11:07.350858754 +0100
++++ b/drivers/net/wireless/b43/main.c  2010-03-13 16:09:52.186885973 +0100
+@@ -2528,10 +2528,10 @@
+                   & ~B43_MACCTL_GPOUTSMSK);
+ 
+       b43_write16(dev, B43_MMIO_GPIO_MASK, b43_read16(dev, B43_MMIO_GPIO_MASK)
+-                  | 0x000F);
++                  | 0x0001);
+ 
+       mask = 0x0000001F;
+-      set = 0x0000000F;
++      set = 0x00000001;
+       if (dev->dev->bus->chip_id == 0x4301) {
+               mask |= 0x0060;
+               set |= 0x0060;
+@@ -2559,10 +2559,11 @@
+       gpiodev = bus->chipco.dev ? : pcidev;
+       if (!gpiodev)
+               return 0;
++#if 0 /* would be ifndef CONFIG_GPIOMMC */
+       ssb_write32(gpiodev, B43_GPIO_CONTROL,
+                   (ssb_read32(gpiodev, B43_GPIO_CONTROL)
+                    & mask) | set);
+-
++#endif
+       return 0;
+ }
+ 
+@@ -2578,7 +2579,9 @@
+       gpiodev = bus->chipco.dev ? : pcidev;
+       if (!gpiodev)
+               return;
++#if 0 /* would be 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 20235)
+++ package/mac80211/Makefile   (working copy)
@@ -609,7 +609,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) \
@@ -618,8 +618,8 @@
        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)) \
        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