b43: Honor the no-slow-clock boardflag
authorMichael Buesch <mb@bu3sch.de>
Fri, 20 Feb 2009 13:47:56 +0000 (14:47 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 27 Feb 2009 19:52:50 +0000 (14:52 -0500)
Do not turn off the crystal, if the boardflags tell us so.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/b43/main.c

index 390ce140637d1b8218701ea19572883fb4d1c79b..3ad3a6c447c00c8c97348677dc681d7d929b9343 100644 (file)
@@ -4177,6 +4177,8 @@ static int b43_wireless_core_init(struct b43_wldev *dev)
                if (phy->radio_rev < 6)
                        hf |= B43_HF_VCORECALC;
        }
+       if (sprom->boardflags_lo & B43_BFL_XTAL_NOSLOW)
+               hf |= B43_HF_DSCRQ; /* Disable slowclock requests from ucode. */
        b43_hf_write(dev, hf);
 
        b43_set_retry_limits(dev, B43_DEFAULT_SHORT_RETRY_LIMIT,
@@ -4215,7 +4217,7 @@ static int b43_wireless_core_init(struct b43_wldev *dev)
        b43_set_synth_pu_delay(dev, 1);
        b43_bluetooth_coext_enable(dev);
 
-       ssb_bus_powerup(bus, 1);        /* Enable dynamic PCTL */
+       ssb_bus_powerup(bus, !(sprom->boardflags_lo & B43_BFL_XTAL_NOSLOW));
        b43_upload_card_macaddress(dev);
        b43_security_init(dev);
        if (!dev->suspend_in_progress)