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

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
...@@ -31,6 +31,11 @@ config B43_BCMA ...@@ -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
......
...@@ -25,7 +25,7 @@ ...@@ -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) ...@@ -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 */
...@@ -123,6 +123,7 @@ static const struct bcma_device_id b43_bcma_tbl[] = { ...@@ -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[] = { ...@@ -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 = { ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment