diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index 1390f41425f1abd4c330465f1a688336972b19a4..cc5285407e88ae2deb8034f72767b4414af0455f 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -2227,9 +2227,6 @@ static int b43_chip_init(struct b43_wldev *dev)
 	if (err)
 		goto err_gpio_cleanup;
 	b43_radio_turn_on(dev);
-	dev->radio_hw_enable = b43_is_hw_radio_enabled(dev);
-	b43dbg(dev->wl, "Radio %s by hardware\n",
-	       dev->radio_hw_enable ? "enabled" : "disabled");
 
 	b43_write16(dev, 0x03E6, 0x0000);
 	err = b43_phy_init(dev);
@@ -3252,6 +3249,9 @@ static void setup_struct_wldev_for_init(struct b43_wldev *dev)
 {
 	/* Flags */
 	dev->reg124_set_0x4 = 0;
+	/* Assume the radio is enabled. If it's not enabled, the state will
+	 * immediately get fixed on the first periodic work run. */
+	dev->radio_hw_enable = 1;
 
 	/* Stats */
 	memset(&dev->stats, 0, sizeof(dev->stats));