This patch converts code to use the new b43_radio_maskset() API.

The semantic patch that makes this change is as follows:

// <smpl>
@@
expression dev, addr, mask, set;
@@

-b43_radio_write16(dev, addr, (b43_radio_read16(dev, addr) & mask) | set);
+b43_radio_maskset(dev, addr, mask, set);
// </smpl>

Signed-off-by: Michael Buesch <[email protected]>

---

Index: wireless-testing/drivers/net/wireless/b43/lo.c
===================================================================
--- wireless-testing.orig/drivers/net/wireless/b43/lo.c 2009-02-20 
19:14:48.000000000 +0100
+++ wireless-testing/drivers/net/wireless/b43/lo.c      2009-02-20 
19:15:06.000000000 +0100
@@ -222,14 +222,13 @@ static void lo_measure_txctl_values(stru
                        if (tmp >= cmp_val)
                                radio_pctl_reg = cmp_val;
                        else
                                radio_pctl_reg = tmp;
                }
        }
-       b43_radio_write16(dev, 0x43, (b43_radio_read16(dev, 0x43)
-                                     & 0xFFF0) | radio_pctl_reg);
+       b43_radio_maskset(dev, 0x43, 0xFFF0, radio_pctl_reg);
        b43_gphy_set_baseband_attenuation(dev, 2);
 
        reg = lo_txctl_register_table(dev, &mask, NULL);
        mask = ~mask;
        b43_radio_mask(dev, reg, mask);
 
@@ -238,20 +237,16 @@ static void lo_measure_txctl_values(stru
                int feedthrough;
                int min_feedth = 0xFFFF;
                u8 tx_magn, tx_bias;
 
                for (i = 0; i < ARRAY_SIZE(tx_magn_values); i++) {
                        tx_magn = tx_magn_values[i];
-                       b43_radio_write16(dev, 0x52,
-                                         (b43_radio_read16(dev, 0x52)
-                                          & 0xFF0F) | tx_magn);
+                       b43_radio_maskset(dev, 0x52, 0xFF0F, tx_magn);
                        for (j = 0; j < ARRAY_SIZE(tx_bias_values); j++) {
                                tx_bias = tx_bias_values[j];
-                               b43_radio_write16(dev, 0x52,
-                                                 (b43_radio_read16(dev, 0x52)
-                                                  & 0xFFF0) | tx_bias);
+                               b43_radio_maskset(dev, 0x52, 0xFFF0, tx_bias);
                                feedthrough =
                                    lo_measure_feedthrough(dev, 0, pga,
                                                           trsw_rx);
                                if (feedthrough < min_feedth) {
                                        lo->tx_bias = tx_bias;
                                        lo->tx_magn = tx_magn;
@@ -538,14 +533,13 @@ static void lo_measure_restore(struct b4
        b43_phy_write(dev, B43_PHY_SYNCCTL, sav->phy_syncctl);
        b43_phy_write(dev, B43_PHY_DACCTL, sav->phy_dacctl);
        b43_radio_write16(dev, 0x43, sav->radio_43);
        b43_radio_write16(dev, 0x7A, sav->radio_7A);
        if (!has_tx_magnification(phy)) {
                tmp = sav->radio_52;
-               b43_radio_write16(dev, 0x52, (b43_radio_read16(dev, 0x52)
-                                             & 0xFF0F) | tmp);
+               b43_radio_maskset(dev, 0x52, 0xFF0F, tmp);
        }
        b43_write16(dev, 0x3E2, sav->reg_3E2);
        if (phy->type == B43_PHYTYPE_B &&
            phy->radio_ver == 0x2050 && phy->radio_rev <= 5) {
                b43_phy_write(dev, B43_PHY_CCK(0x30), sav->phy_cck_30);
                b43_phy_write(dev, B43_PHY_CCK(0x06), sav->phy_cck_06);
@@ -758,18 +752,14 @@ struct b43_lo_calib * b43_calibrate_lo_s
        saved_regs.old_channel = phy->channel;
        b43_mac_suspend(dev);
        lo_measure_setup(dev, &saved_regs);
 
        txctl_reg = lo_txctl_register_table(dev, &txctl_value, &pad_mix_gain);
 
-       b43_radio_write16(dev, 0x43,
-                         (b43_radio_read16(dev, 0x43) & 0xFFF0)
-                         | rfatt->att);
-       b43_radio_write16(dev, txctl_reg,
-                         (b43_radio_read16(dev, txctl_reg) & ~txctl_value)
-                         | (rfatt->with_padmix ? txctl_value : 0));
+       b43_radio_maskset(dev, 0x43, 0xFFF0, rfatt->att);
+       b43_radio_maskset(dev, txctl_reg, ~txctl_value, (rfatt->with_padmix ? 
txctl_value :0));
 
        max_rx_gain = rfatt->att * 2;
        max_rx_gain += bbatt->att / 2;
        if (rfatt->with_padmix)
                max_rx_gain -= pad_mix_gain;
        if (has_loopback_gain(phy))
Index: wireless-testing/drivers/net/wireless/b43/phy_a.c
===================================================================
--- wireless-testing.orig/drivers/net/wireless/b43/phy_a.c      2009-02-20 
19:14:48.000000000 +0100
+++ wireless-testing/drivers/net/wireless/b43/phy_a.c   2009-02-20 
19:15:06.000000000 +0100
@@ -118,31 +118,24 @@ static void aphy_channel_switch(struct b
                 */
                r8 = 3 * freq / 116;    /* is equal to r8 = freq * 0.025862 */
        }
        b43_radio_write16(dev, 0x0007, (r8 << 4) | r8);
        b43_radio_write16(dev, 0x0020, (r8 << 4) | r8);
        b43_radio_write16(dev, 0x0021, (r8 << 4) | r8);
-       b43_radio_write16(dev, 0x0022, (b43_radio_read16(dev, 0x0022)
-                                       & 0x000F) | (r8 << 4));
+       b43_radio_maskset(dev, 0x0022, 0x000F, (r8 << 4));
        b43_radio_write16(dev, 0x002A, (r8 << 4));
        b43_radio_write16(dev, 0x002B, (r8 << 4));
-       b43_radio_write16(dev, 0x0008, (b43_radio_read16(dev, 0x0008)
-                                       & 0x00F0) | (r8 << 4));
-       b43_radio_write16(dev, 0x0029, (b43_radio_read16(dev, 0x0029)
-                                       & 0xFF0F) | 0x00B0);
+       b43_radio_maskset(dev, 0x0008, 0x00F0, (r8 << 4));
+       b43_radio_maskset(dev, 0x0029, 0xFF0F, 0x00B0);
        b43_radio_write16(dev, 0x0035, 0x00AA);
        b43_radio_write16(dev, 0x0036, 0x0085);
-       b43_radio_write16(dev, 0x003A, (b43_radio_read16(dev, 0x003A)
-                                       & 0xFF20) |
-                         freq_r3A_value(freq));
+       b43_radio_maskset(dev, 0x003A, 0xFF20, freq_r3A_value(freq));
        b43_radio_mask(dev, 0x003D, 0x00FF);
-       b43_radio_write16(dev, 0x0081, (b43_radio_read16(dev, 0x0081)
-                                       & 0xFF7F) | 0x0080);
+       b43_radio_maskset(dev, 0x0081, 0xFF7F, 0x0080);
        b43_radio_mask(dev, 0x0035, 0xFFEF);
-       b43_radio_write16(dev, 0x0035, (b43_radio_read16(dev, 0x0035)
-                                       & 0xFFEF) | 0x0010);
+       b43_radio_maskset(dev, 0x0035, 0xFFEF, 0x0010);
        b43_radio_set_tx_iq(dev);
        //TODO: TSSI2dbm workaround
 //FIXME        b43_phy_xmitpower(dev);
 }
 
 static void b43_radio_init2060(struct b43_wldev *dev)
@@ -161,23 +154,20 @@ static void b43_radio_init2060(struct b4
        b43_radio_mask(dev, 0x0005, ~0x0008);
        b43_radio_mask(dev, 0x0081, ~0x0010);
        b43_radio_mask(dev, 0x0081, ~0x0020);
        b43_radio_mask(dev, 0x0081, ~0x0020);
        msleep(1);              /* delay 400usec */
 
-       b43_radio_write16(dev, 0x0081,
-                         (b43_radio_read16(dev, 0x0081) & ~0x0020) | 0x0010);
+       b43_radio_maskset(dev, 0x0081, ~0x0020, 0x0010);
        msleep(1);              /* delay 400usec */
 
-       b43_radio_write16(dev, 0x0005,
-                         (b43_radio_read16(dev, 0x0005) & ~0x0008) | 0x0008);
+       b43_radio_maskset(dev, 0x0005, ~0x0008, 0x0008);
        b43_radio_mask(dev, 0x0085, ~0x0010);
        b43_radio_mask(dev, 0x0005, ~0x0008);
        b43_radio_mask(dev, 0x0081, ~0x0040);
-       b43_radio_write16(dev, 0x0081,
-                         (b43_radio_read16(dev, 0x0081) & ~0x0040) | 0x0040);
+       b43_radio_maskset(dev, 0x0081, ~0x0040, 0x0040);
        b43_radio_write16(dev, 0x0005,
                          (b43_radio_read16(dev, 0x0081) & ~0x0008) | 0x0008);
        b43_phy_write(dev, 0x0063, 0xDDC6);
        b43_phy_write(dev, 0x0069, 0x07BE);
        b43_phy_write(dev, 0x006A, 0x0000);
 
@@ -223,14 +213,13 @@ static void b43_phy_ww(struct b43_wldev 
        int i;
 
        b43_phy_mask(dev, B43_PHY_CRS0, ~B43_PHY_CRS0_EN);
        b43_phy_set(dev, B43_PHY_OFDM(0x1B), 0x1000);
        b43_phy_maskset(dev, B43_PHY_OFDM(0x82), 0xF0FF, 0x0300);
        b43_radio_set(dev, 0x0009, 0x0080);
-       b43_radio_write16(dev, 0x0012,
-               (b43_radio_read16(dev, 0x0012) & 0xFFFC) | 0x0002);
+       b43_radio_maskset(dev, 0x0012, 0xFFFC, 0x0002);
        b43_wa_initgains(dev);
        b43_phy_write(dev, B43_PHY_OFDM(0xBA), 0x3ED5);
        b = b43_phy_read(dev, B43_PHY_PWRDOWN);
        b43_phy_write(dev, B43_PHY_PWRDOWN, (b & 0xFFF8) | 0x0005);
        b43_radio_set(dev, 0x0004, 0x0004);
        for (i = 0x10; i <= 0x20; i++) {
Index: wireless-testing/drivers/net/wireless/b43/phy_g.c
===================================================================
--- wireless-testing.orig/drivers/net/wireless/b43/phy_g.c      2009-02-20 
19:14:48.000000000 +0100
+++ wireless-testing/drivers/net/wireless/b43/phy_g.c   2009-02-20 
19:15:06.000000000 +0100
@@ -245,23 +245,19 @@ static void b43_set_txpower_g(struct b43
        b43_gphy_set_baseband_attenuation(dev, bb);
        b43_shm_write16(dev, B43_SHM_SHARED, B43_SHM_SH_RFATT, rf);
        if (phy->radio_ver == 0x2050 && phy->radio_rev == 8) {
                b43_radio_write16(dev, 0x43,
                                  (rf & 0x000F) | (tx_control & 0x0070));
        } else {
-               b43_radio_write16(dev, 0x43, (b43_radio_read16(dev, 0x43)
-                                             & 0xFFF0) | (rf & 0x000F));
-               b43_radio_write16(dev, 0x52, (b43_radio_read16(dev, 0x52)
-                                             & ~0x0070) | (tx_control &
-                                                           0x0070));
+               b43_radio_maskset(dev, 0x43, 0xFFF0, (rf & 0x000F));
+               b43_radio_maskset(dev, 0x52, ~0x0070, (tx_control & 0x0070));
        }
        if (has_tx_magnification(phy)) {
                b43_radio_write16(dev, 0x52, tx_magn | tx_bias);
        } else {
-               b43_radio_write16(dev, 0x52, (b43_radio_read16(dev, 0x52)
-                                             & 0xFFF0) | (tx_bias & 0x000F));
+               b43_radio_maskset(dev, 0x52, 0xFFF0, (tx_bias & 0x000F));
        }
        b43_lo_g_adjust(dev);
 }
 
 /* GPHY_TSSI_Power_Lookup_Table_Init */
 static void b43_gphy_tssi_power_lt_init(struct b43_wldev *dev)
@@ -510,14 +506,13 @@ static void b43_calc_nrssi_offset(struct
                        b43_phy_set(dev, 0x0814, 0x0004);
                        b43_phy_mask(dev, 0x0815, 0xFFFB);
                }
                b43_phy_maskset(dev, 0x0003, 0xFF9F, 0x0040);
                b43_radio_set(dev, 0x007A, 0x000F);
                b43_set_all_gains(dev, 3, 0, 1);
-               b43_radio_write16(dev, 0x0043, (b43_radio_read16(dev, 0x0043)
-                                               & 0x00F0) | 0x000F);
+               b43_radio_maskset(dev, 0x0043, 0x00F0, 0x000F);
                udelay(30);
                v47F = (s16) ((b43_phy_read(dev, 0x047F) >> 8) & 0x003F);
                if (v47F >= 0x20)
                        v47F -= 0x40;
                if (v47F == -32) {
                        for (i = 0; i < 4; i++) {
@@ -1350,14 +1345,13 @@ static u16 b43_radio_init2050(struct b43
        b43_phy_write(dev, B43_PHY_PGACTL, 0xBFA0);
        b43_radio_set(dev, 0x51, 0x0004);
        if (phy->radio_rev == 8) {
                b43_radio_write16(dev, 0x43, 0x1F);
        } else {
                b43_radio_write16(dev, 0x52, 0);
-               b43_radio_write16(dev, 0x43, (b43_radio_read16(dev, 0x43)
-                                             & 0xFFF0) | 0x0009);
+               b43_radio_maskset(dev, 0x43, 0xFFF0, 0x0009);
        }
        b43_phy_write(dev, B43_PHY_CCK(0x58), 0);
 
        for (i = 0; i < 16; i++) {
                b43_phy_write(dev, B43_PHY_CCK(0x5A), 0x0480);
                b43_phy_write(dev, B43_PHY_CCK(0x59), 0xC810);
@@ -1678,14 +1672,13 @@ static void b43_phy_initb6(struct b43_wl
        if (phy->radio_rev <= 2) {
                b43_radio_write16(dev, 0x7C, 0x20);
                b43_radio_write16(dev, 0x5A, 0x70);
                b43_radio_write16(dev, 0x5B, 0x7B);
                b43_radio_write16(dev, 0x5C, 0xB0);
        }
-       b43_radio_write16(dev, 0x007A,
-                         (b43_radio_read16(dev, 0x007A) & 0x00F8) | 0x0007);
+       b43_radio_maskset(dev, 0x007A, 0x00F8, 0x0007);
 
        b43_gphy_channel_switch(dev, old_channel, 0);
 
        b43_phy_write(dev, 0x0014, 0x0200);
        if (phy->radio_rev >= 6)
                b43_phy_write(dev, 0x2A, 0x88C2);
@@ -1774,14 +1767,13 @@ static void b43_calc_loopback_gain(struc
        b43_phy_maskset(dev, B43_PHY_CCK(0x03), 0xFF9F, 0x40);
 
        if (phy->radio_rev == 8) {
                b43_radio_write16(dev, 0x43, 0x000F);
        } else {
                b43_radio_write16(dev, 0x52, 0);
-               b43_radio_write16(dev, 0x43, (b43_radio_read16(dev, 0x43)
-                                             & 0xFFF0) | 0x9);
+               b43_radio_maskset(dev, 0x43, 0xFFF0, 0x9);
        }
        b43_gphy_set_baseband_attenuation(dev, 11);
 
        if (phy->rev >= 3)
                b43_phy_write(dev, B43_PHY_LO_MASK, 0xC020);
        else
@@ -1950,15 +1942,13 @@ static void b43_phy_init_pctl(struct b43
 
        if (!phy->gmode)
                return;
        b43_hardware_pctl_early_init(dev);
        if (gphy->cur_idle_tssi == 0) {
                if (phy->radio_ver == 0x2050 && phy->analog == 0) {
-                       b43_radio_write16(dev, 0x0076,
-                                         (b43_radio_read16(dev, 0x0076)
-                                          & 0x00F7) | 0x0084);
+                       b43_radio_maskset(dev, 0x0076, 0x00F7, 0x0084);
                } else {
                        struct b43_rfatt rfatt;
                        struct b43_bbatt bbatt;
 
                        memcpy(&old_rfatt, &gphy->rfatt, sizeof(old_rfatt));
                        memcpy(&old_bbatt, &gphy->bbatt, sizeof(old_bbatt));
@@ -2054,15 +2044,13 @@ static void b43_phy_initg(struct b43_wld
        if (has_tx_magnification(phy)) {
                b43_radio_write16(dev, 0x52,
                                  (b43_radio_read16(dev, 0x52) & 0xFF00)
                                  | gphy->lo_control->tx_bias | gphy->
                                  lo_control->tx_magn);
        } else {
-               b43_radio_write16(dev, 0x52,
-                                 (b43_radio_read16(dev, 0x52) & 0xFFF0)
-                                 | gphy->lo_control->tx_bias);
+               b43_radio_maskset(dev, 0x52, 0xFFF0, gphy->lo_control->tx_bias);
        }
        if (phy->rev >= 6) {
                b43_phy_maskset(dev, B43_PHY_CCK(0x36), 0x0FFF, 
(gphy->lo_control->tx_bias << 12));
        }
        if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_PACTRL)
                b43_phy_write(dev, B43_PHY_CCK(0x2E), 0x8075);

-- 
Greetings, Michael.
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to