Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 399500da authored by Rafał Miłecki's avatar Rafał Miłecki Committed by Kalle Valo
Browse files

ssb: pick PCMCIA host code support from b43 driver



ssb bus can be found on various "host" devices like PCI/PCMCIA/SDIO.
Every ssb bus contains cores AKA devices.
The main idea is to have ssb driver scan/initialize bus and register
ready-to-use cores. This way ssb drivers can operate on a single core
mostly ignoring underlaying details.

For some reason PCMCIA support was split between ssb and b43. We got
PCMCIA host device probing in b43, then bus scanning in ssb and then
wireless core probing back in b43. The truth is it's very unlikely we
will ever see PCMCIA ssb device with no 802.11 core but I still don't
see any advantage of the current architecture.

With proposed change we get the same functionality with a simpler
architecture, less Kconfig symbols, one killed EXPORT and hopefully
cleaner b43. Since b43 supports both: ssb & bcma I prefer to keep ssb
specific code in ssb driver.

This mostly moves code from b43's pcmcia.c to bridge_pcmcia_80211.c. We
already use similar solution with b43_pci_bridge.c. I didn't use "b43"
in name of this new file as in theory any driver can operate on wireless
core.

Signed-off-by: default avatarRafał Miłecki <zajec5@gmail.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 0117e78a
Loading
Loading
Loading
Loading
+0 −20
Original line number Diff line number Diff line
@@ -71,26 +71,6 @@ config B43_PCICORE_AUTOSELECT
	select SSB_DRIVER_PCICORE
	default y

config B43_PCMCIA
	bool "Broadcom 43xx PCMCIA device support"
	depends on B43 && B43_SSB && SSB_PCMCIAHOST_POSSIBLE
	select SSB_PCMCIAHOST
	---help---
	  Broadcom 43xx PCMCIA device support.

	  Support for 16bit PCMCIA devices.
	  Please note that most PC-CARD devices are _NOT_ 16bit PCMCIA
	  devices, but 32bit CardBUS devices. CardBUS devices are supported
	  out of the box by b43.

	  With this config option you can drive b43 cards in
	  CompactFlash formfactor in a PCMCIA adaptor.
	  CF b43 cards can sometimes be found in handheld PCs.

	  It's safe to select Y here, even if you don't have a B43 PCMCIA device.

	  If unsure, say N.

config B43_SDIO
	bool "Broadcom 43xx SDIO device support"
	depends on B43 && B43_SSB && SSB_SDIOHOST_POSSIBLE
+0 −1
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ b43-y += pio.o
b43-y				+= rfkill.o
b43-y				+= ppr.o
b43-$(CONFIG_B43_LEDS)		+= leds.o
b43-$(CONFIG_B43_PCMCIA)	+= pcmcia.o
b43-$(CONFIG_B43_SDIO)		+= sdio.o
b43-$(CONFIG_B43_DEBUG)		+= debugfs.o

+1 −8
Original line number Diff line number Diff line
@@ -56,7 +56,6 @@
#include "sysfs.h"
#include "xmit.h"
#include "lo.h"
#include "pcmcia.h"
#include "sdio.h"
#include <linux/mmc/sdio_func.h>

@@ -5850,12 +5849,9 @@ static int __init b43_init(void)
	int err;

	b43_debugfs_init();
	err = b43_pcmcia_init();
	if (err)
		goto err_dfs_exit;
	err = b43_sdio_init();
	if (err)
		goto err_pcmcia_exit;
		goto err_dfs_exit;
#ifdef CONFIG_B43_BCMA
	err = bcma_driver_register(&b43_bcma_driver);
	if (err)
@@ -5878,8 +5874,6 @@ static int __init b43_init(void)
err_sdio_exit:
#endif
	b43_sdio_exit();
err_pcmcia_exit:
	b43_pcmcia_exit();
err_dfs_exit:
	b43_debugfs_exit();
	return err;
@@ -5894,7 +5888,6 @@ static void __exit b43_exit(void)
	bcma_driver_unregister(&b43_bcma_driver);
#endif
	b43_sdio_exit();
	b43_pcmcia_exit();
	b43_debugfs_exit();
}

drivers/net/wireless/b43/pcmcia.h

deleted100644 → 0
+0 −20
Original line number Diff line number Diff line
#ifndef B43_PCMCIA_H_
#define B43_PCMCIA_H_

#ifdef CONFIG_B43_PCMCIA

int b43_pcmcia_init(void);
void b43_pcmcia_exit(void);

#else /* CONFIG_B43_PCMCIA */

static inline int b43_pcmcia_init(void)
{
	return 0;
}
static inline void b43_pcmcia_exit(void)
{
}

#endif /* CONFIG_B43_PCMCIA */
#endif /* B43_PCMCIA_H_ */
+1 −1
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@ ssb-$(CONFIG_SSB_SPROM) += sprom.o

# host support
ssb-$(CONFIG_SSB_PCIHOST)		+= pci.o pcihost_wrapper.o
ssb-$(CONFIG_SSB_PCMCIAHOST)		+= pcmcia.o
ssb-$(CONFIG_SSB_PCMCIAHOST)		+= pcmcia.o bridge_pcmcia_80211.o
ssb-$(CONFIG_SSB_SDIOHOST)		+= sdio.o

# built-in drivers
Loading