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) \
signature.asc
Description: Digital signature
_______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel