On my WRT54G v2, the B43 driver takes over GPIO 0-3. This disables the IO pins needed for the MMC mod and also disables the DMZ LED. On the WRT54G v2, only the GPIO 0 should be used for WLAN status.
I have attached my workaround, not sure if this is the best solution. The GPIOs used would depend on the router model.
main.c.diff​ (410 bytes) - added by presslab@… 9 years ago.
This patch has been applied upstream.
I have a wrt54gv2 and having 0xF (see diff) instead of 0x1, I can't use mmc because b43 takes over the gpio lines. I have changed it to 0x1 and now everything works at the same time. I'm using backfire 10.03.
Sent a patch to the openwrt-devel mailinglist for comment on the 15th of Aug 2010.
In the mean time if your interested.
makes it possible to limit the GPIO lines used by the b43 module.
Useful for those using the GPIO lines for other things like mmc over GPIO.
It is helpful to those not able / interested in recompiling OpenWRT themselves.
The default action is the same as before, that is 0xf gpiomask.
The gpiomask is 0xf if the kernel module option is not specified.
Change the line "b43" to "b43 gpiomask=0x1" or something else.
Reload the b43 kernel module or reboot.
Sorry, I applied the b43-gpio-mask-module-option patch but the SD-Card still won't work.
Have you set the gpiomask ?
before loading the mmc module ?
Did you get the answer to your question? I would also like to know where the main.c file is located.
Hi , The patch mentioned in comment #4 above was applied in September 2010 to the trunk. It should now also be in the Backfire branch.
So no more code changes should be needed. If you are interested in the changes then look at the patch.
1) 30-b43 content changed to "b43 gpiomask=0x1"
ie. echo 0x9c > /proc/diag/gpiomask before loading the mmc module ?