#define B43_MACCMD_CCA                 0x00000008      /* Clear channel assessment */
 #define B43_MACCMD_BGNOISE             0x00000010      /* Background noise */
 
+/* See BCMA_CLKCTLST_EXTRESREQ and BCMA_CLKCTLST_EXTRESST */
+#define B43_BCMA_CLKCTLST_80211_PLL_REQ        0x00000100
+#define B43_BCMA_CLKCTLST_PHY_PLL_REQ  0x00000200
+#define B43_BCMA_CLKCTLST_80211_PLL_ST 0x01000000
+#define B43_BCMA_CLKCTLST_PHY_PLL_ST   0x02000000
+
 /* BCMA 802.11 core specific IO Control (BCMA_IOCTL) flags */
 #define B43_BCMA_IOCTL_PHY_CLKEN       0x00000004      /* PHY Clock Enable */
 #define B43_BCMA_IOCTL_PHY_RESET       0x00000008      /* PHY Reset */
 
 
 static void b43_bcma_wireless_core_reset(struct b43_wldev *dev, bool gmode)
 {
+       u32 req = B43_BCMA_CLKCTLST_80211_PLL_REQ |
+                 B43_BCMA_CLKCTLST_PHY_PLL_REQ;
+       u32 status = B43_BCMA_CLKCTLST_80211_PLL_ST |
+                    B43_BCMA_CLKCTLST_PHY_PLL_ST;
+
        b43_device_enable(dev, B43_BCMA_IOCTL_PHY_CLKEN);
        bcma_core_set_clockmode(dev->dev->bdev, BCMA_CLKMODE_FAST);
        b43_bcma_phy_reset(dev);
-       bcma_core_pll_ctl(dev->dev->bdev, 0x300, 0x3000000, true);
+       bcma_core_pll_ctl(dev->dev->bdev, req, status, true);
 }
 #endif