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