b43: add Kconfig option for compiling SSB driver
authorRafał Miłecki <zajec5@gmail.com>
Tue, 14 Jun 2011 06:18:59 +0000 (08:18 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 17 Jun 2011 18:22:22 +0000 (14:22 -0400)
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>
drivers/net/wireless/b43/Kconfig
drivers/net/wireless/b43/bus.c
drivers/net/wireless/b43/main.c

index e02db1be172338f50e42918538606ef9b142092a..d5add69aac8f671bd21d33ef6e9db756d115a16e 100644 (file)
@@ -31,6 +31,11 @@ config B43_BCMA
        depends on B43 && BCMA && BROKEN
        default y
 
+config B43_SSB
+       bool
+       depends on B43 && SSB
+       default y
+
 # Auto-select SSB PCI-HOST support, if possible
 config B43_PCI_AUTOSELECT
        bool
index 8a10b82f8ea7c22a5b486e2b0aac7da30ff944d8..4200713eb597cc2d35b5db1f0b84ac85b37c3d27 100644 (file)
@@ -25,7 +25,7 @@
 
 
 /* SSB */
-
+#ifdef CONFIG_B43_SSB
 static inline int b43_bus_ssb_bus_may_powerdown(struct b43_bus_dev *dev)
 {
        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;
 }
+#endif /* CONFIG_B43_SSB */
index acee7b6af29a66538148a2a69a5323b1499fc7b9..834df5a3fb6a10df0a8927162c4109e926da0414 100644 (file)
@@ -123,6 +123,7 @@ static const struct bcma_device_id b43_bcma_tbl[] = {
 MODULE_DEVICE_TABLE(bcma, b43_bcma_tbl);
 #endif
 
+#ifdef CONFIG_B43_SSB
 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, 6),
@@ -136,8 +137,8 @@ static const struct ssb_device_id b43_ssb_tbl[] = {
        SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_80211, 16),
        SSB_DEVTABLE_END
 };
-
 MODULE_DEVICE_TABLE(ssb, b43_ssb_tbl);
+#endif
 
 /* Channel and ratetables are shared for all devices.
  * They can't be const, because ieee80211 puts some precalculated
@@ -5026,6 +5027,7 @@ static struct bcma_driver b43_bcma_driver = {
 };
 #endif
 
+#ifdef CONFIG_B43_SSB
 static
 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. */
 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);
 }
 
-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)
 {
        const char *feat_pci = "", *feat_pcmcia = "", *feat_nphy = "",
@@ -5163,14 +5166,18 @@ static int __init b43_init(void)
        if (err)
                goto err_sdio_exit;
 #endif
+#ifdef CONFIG_B43_SSB
        err = ssb_driver_register(&b43_ssb_driver);
        if (err)
                goto err_bcma_driver_exit;
+#endif
        b43_print_driverinfo();
 
        return err;
 
+#ifdef CONFIG_B43_SSB
 err_bcma_driver_exit:
+#endif
 #ifdef CONFIG_B43_BCMA
        bcma_driver_unregister(&b43_bcma_driver);
 err_sdio_exit:
@@ -5185,7 +5192,9 @@ err_dfs_exit:
 
 static void __exit b43_exit(void)
 {
+#ifdef CONFIG_B43_SSB
        ssb_driver_unregister(&b43_ssb_driver);
+#endif
 #ifdef CONFIG_B43_BCMA
        bcma_driver_unregister(&b43_bcma_driver);
 #endif