b43: N-PHY: find table entry earlier for setting chanspec
authorRafał Miłecki <zajec5@gmail.com>
Sun, 28 Mar 2010 22:53:14 +0000 (00:53 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 31 Mar 2010 18:39:18 +0000 (14:39 -0400)
We do not want to partially change chanspec just to find out there is not
entry in table for given channel.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/b43/phy_n.c

index 052119b..d9e47ba 100644 (file)
@@ -3343,6 +3343,10 @@ static int b43_nphy_set_chanspec(struct b43_wldev *dev,
 
        if (dev->phy.rev >= 3) {
                /* TODO */
+       } else {
+               tabent = b43_nphy_get_chantabent(dev, channel);
+               if (!tabent)
+                       return -ESRCH;
        }
 
        nphy->radio_chanspec = chanspec;
@@ -3366,10 +3370,6 @@ static int b43_nphy_set_chanspec(struct b43_wldev *dev,
                /* TODO: PHY Radio2056 Setup (chan_info_ptr[i]) */
                /* TODO: N PHY Chanspec Setup (chan_info_ptr[i]) */
        } else {
-               tabent = b43_nphy_get_chantabent(dev, channel);
-               if (!tabent)
-                       return -ESRCH;
-
                tmp = (chanspec.b_freq == 1) ? 0x0020 : 0x0050;
                b43_radio_maskset(dev, B2055_MASTER1, 0xFF8F, tmp);
                b43_radio_2055_setup(dev, tabent);