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

Commit aec7ffdf authored by Rafał Miłecki's avatar Rafał Miłecki Committed by John W. Linville
Browse files

b43: add Kconfig option for compiling SSB driver



It is always "y" for now, b43 will not compile without CONFIG_SSB yet.
This is just a first step of dropping SSB dependency.

Signed-off-by: default avatarRafał Miłecki <zajec5@gmail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 545a8aa7
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -31,6 +31,11 @@ config B43_BCMA
	depends on B43 && BCMA && BROKEN
	depends on B43 && BCMA && BROKEN
	default y
	default y


config B43_SSB
	bool
	depends on B43 && SSB
	default y

# Auto-select SSB PCI-HOST support, if possible
# Auto-select SSB PCI-HOST support, if possible
config B43_PCI_AUTOSELECT
config B43_PCI_AUTOSELECT
	bool
	bool
+2 −1
Original line number Original line Diff line number Diff line
@@ -25,7 +25,7 @@




/* SSB */
/* SSB */

#ifdef CONFIG_B43_SSB
static inline int b43_bus_ssb_bus_may_powerdown(struct b43_bus_dev *dev)
static inline int b43_bus_ssb_bus_may_powerdown(struct b43_bus_dev *dev)
{
{
	return ssb_bus_may_powerdown(dev->sdev->bus);
	return ssb_bus_may_powerdown(dev->sdev->bus);
@@ -124,3 +124,4 @@ struct b43_bus_dev *b43_bus_dev_ssb_init(struct ssb_device *sdev)


	return dev;
	return dev;
}
}
#endif /* CONFIG_B43_SSB */
+17 −8
Original line number Original line Diff line number Diff line
@@ -123,6 +123,7 @@ static const struct bcma_device_id b43_bcma_tbl[] = {
MODULE_DEVICE_TABLE(bcma, b43_bcma_tbl);
MODULE_DEVICE_TABLE(bcma, b43_bcma_tbl);
#endif
#endif


#ifdef CONFIG_B43_SSB
static const struct ssb_device_id b43_ssb_tbl[] = {
static const struct ssb_device_id b43_ssb_tbl[] = {
	SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_80211, 5),
	SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_80211, 5),
	SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_80211, 6),
	SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_80211, 6),
@@ -136,8 +137,8 @@ static const struct ssb_device_id b43_ssb_tbl[] = {
	SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_80211, 16),
	SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_80211, 16),
	SSB_DEVTABLE_END
	SSB_DEVTABLE_END
};
};

MODULE_DEVICE_TABLE(ssb, b43_ssb_tbl);
MODULE_DEVICE_TABLE(ssb, b43_ssb_tbl);
#endif


/* Channel and ratetables are shared for all devices.
/* Channel and ratetables are shared for all devices.
 * They can't be const, because ieee80211 puts some precalculated
 * They can't be const, because ieee80211 puts some precalculated
@@ -5026,6 +5027,7 @@ static struct bcma_driver b43_bcma_driver = {
};
};
#endif
#endif


#ifdef CONFIG_B43_SSB
static
static
int b43_ssb_probe(struct ssb_device *sdev, const struct ssb_device_id *id)
int b43_ssb_probe(struct ssb_device *sdev, const struct ssb_device_id *id)
{
{
@@ -5103,6 +5105,14 @@ static void b43_ssb_remove(struct ssb_device *sdev)
	}
	}
}
}


static struct ssb_driver b43_ssb_driver = {
	.name		= KBUILD_MODNAME,
	.id_table	= b43_ssb_tbl,
	.probe		= b43_ssb_probe,
	.remove		= b43_ssb_remove,
};
#endif /* CONFIG_B43_SSB */

/* Perform a hardware reset. This can be called from any context. */
/* Perform a hardware reset. This can be called from any context. */
void b43_controller_restart(struct b43_wldev *dev, const char *reason)
void b43_controller_restart(struct b43_wldev *dev, const char *reason)
{
{
@@ -5113,13 +5123,6 @@ void b43_controller_restart(struct b43_wldev *dev, const char *reason)
	ieee80211_queue_work(dev->wl->hw, &dev->restart_work);
	ieee80211_queue_work(dev->wl->hw, &dev->restart_work);
}
}


static struct ssb_driver b43_ssb_driver = {
	.name		= KBUILD_MODNAME,
	.id_table	= b43_ssb_tbl,
	.probe		= b43_ssb_probe,
	.remove		= b43_ssb_remove,
};

static void b43_print_driverinfo(void)
static void b43_print_driverinfo(void)
{
{
	const char *feat_pci = "", *feat_pcmcia = "", *feat_nphy = "",
	const char *feat_pci = "", *feat_pcmcia = "", *feat_nphy = "",
@@ -5163,14 +5166,18 @@ static int __init b43_init(void)
	if (err)
	if (err)
		goto err_sdio_exit;
		goto err_sdio_exit;
#endif
#endif
#ifdef CONFIG_B43_SSB
	err = ssb_driver_register(&b43_ssb_driver);
	err = ssb_driver_register(&b43_ssb_driver);
	if (err)
	if (err)
		goto err_bcma_driver_exit;
		goto err_bcma_driver_exit;
#endif
	b43_print_driverinfo();
	b43_print_driverinfo();


	return err;
	return err;


#ifdef CONFIG_B43_SSB
err_bcma_driver_exit:
err_bcma_driver_exit:
#endif
#ifdef CONFIG_B43_BCMA
#ifdef CONFIG_B43_BCMA
	bcma_driver_unregister(&b43_bcma_driver);
	bcma_driver_unregister(&b43_bcma_driver);
err_sdio_exit:
err_sdio_exit:
@@ -5185,7 +5192,9 @@ static int __init b43_init(void)


static void __exit b43_exit(void)
static void __exit b43_exit(void)
{
{
#ifdef CONFIG_B43_SSB
	ssb_driver_unregister(&b43_ssb_driver);
	ssb_driver_unregister(&b43_ssb_driver);
#endif
#ifdef CONFIG_B43_BCMA
#ifdef CONFIG_B43_BCMA
	bcma_driver_unregister(&b43_bcma_driver);
	bcma_driver_unregister(&b43_bcma_driver);
#endif
#endif