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: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
545a8aa793
commit
aec7ffdf4f
@@ -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 @@
|
|||||||
|
|
||||||
|
|
||||||
/* 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 */
|
||||||
|
@@ -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 @@ err_dfs_exit:
|
|||||||
|
|
||||||
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
|
||||||
|
Reference in New Issue
Block a user