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

The semantic patch that makes this change is as follows:

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

-b43_phy_write(dev, addr, b43_phy_read(dev, addr) | set);
+b43_phy_set(dev, addr, set);
// </smpl>

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

---

Index: wireless-testing/drivers/net/wireless/b43/phy_a.c
===================================================================
--- wireless-testing.orig/drivers/net/wireless/b43/phy_a.c      2009-01-23 
19:18:42.000000000 +0100
+++ wireless-testing/drivers/net/wireless/b43/phy_a.c   2009-02-20 
19:04:18.000000000 +0100
@@ -223,14 +223,13 @@ static void b43_phy_ww(struct b43_wldev 
 {
        u16 b, curr_s, best_s = 0xFFFF;
        int i;
 
        b43_phy_write(dev, B43_PHY_CRS0,
                b43_phy_read(dev, B43_PHY_CRS0) & ~B43_PHY_CRS0_EN);
-       b43_phy_write(dev, B43_PHY_OFDM(0x1B),
-               b43_phy_read(dev, B43_PHY_OFDM(0x1B)) | 0x1000);
+       b43_phy_set(dev, B43_PHY_OFDM(0x1B), 0x1000);
        b43_phy_write(dev, B43_PHY_OFDM(0x82),
                (b43_phy_read(dev, B43_PHY_OFDM(0x82)) & 0xF0FF) | 0x0300);
        b43_radio_write16(dev, 0x0009,
                b43_radio_read16(dev, 0x0009) | 0x0080);
        b43_radio_write16(dev, 0x0012,
                (b43_radio_read16(dev, 0x0012) & 0xFFFC) | 0x0002);
@@ -273,14 +272,13 @@ static void b43_phy_ww(struct b43_wldev 
        for (i = 0; i < 6; i++)
                b43_ofdmtab_write16(dev, B43_OFDMTAB_AGC1, i, 0x000F);
        b43_ofdmtab_write16(dev, B43_OFDMTAB_AGC1, 0x0D, 0x000E);
        b43_ofdmtab_write16(dev, B43_OFDMTAB_AGC1, 0x0E, 0x0011);
        b43_ofdmtab_write16(dev, B43_OFDMTAB_AGC1, 0x0F, 0x0013);
        b43_phy_write(dev, B43_PHY_OFDM(0x33), 0x5030);
-       b43_phy_write(dev, B43_PHY_CRS0,
-               b43_phy_read(dev, B43_PHY_CRS0) | B43_PHY_CRS0_EN);
+       b43_phy_set(dev, B43_PHY_CRS0, B43_PHY_CRS0_EN);
 }
 
 static void hardware_pctl_init_aphy(struct b43_wldev *dev)
 {
        //TODO
 }
@@ -300,29 +298,26 @@ void b43_phy_inita(struct b43_wldev *dev
 
        if (phy->rev >= 6) {
                if (phy->type == B43_PHYTYPE_A)
                        b43_phy_write(dev, B43_PHY_OFDM(0x1B),
                                b43_phy_read(dev, B43_PHY_OFDM(0x1B)) & 
~0x1000);
                if (b43_phy_read(dev, B43_PHY_ENCORE) & B43_PHY_ENCORE_EN)
-                       b43_phy_write(dev, B43_PHY_ENCORE,
-                               b43_phy_read(dev, B43_PHY_ENCORE) | 0x0010);
+                       b43_phy_set(dev, B43_PHY_ENCORE, 0x0010);
                else
                        b43_phy_write(dev, B43_PHY_ENCORE,
                                b43_phy_read(dev, B43_PHY_ENCORE) & ~0x1010);
        }
 
        b43_wa_all(dev);
 
        if (phy->type == B43_PHYTYPE_A) {
                if (phy->gmode && (phy->rev < 3))
-                       b43_phy_write(dev, 0x0034,
-                               b43_phy_read(dev, 0x0034) | 0x0001);
+                       b43_phy_set(dev, 0x0034, 0x0001);
                b43_phy_rssiagc(dev, 0);
 
-               b43_phy_write(dev, B43_PHY_CRS0,
-                       b43_phy_read(dev, B43_PHY_CRS0) | B43_PHY_CRS0_EN);
+               b43_phy_set(dev, B43_PHY_CRS0, B43_PHY_CRS0_EN);
 
                b43_radio_init2060(dev);
 
                if ((bus->boardinfo.vendor == SSB_BOARDVENDOR_BCM) &&
                    ((bus->boardinfo.type == SSB_BOARD_BU4306) ||
                     (bus->boardinfo.type == SSB_BOARD_BU4309))) {
@@ -523,14 +518,14 @@ static void b43_aphy_op_software_rfkill(
                b43_phy_write(dev, 0x0010, b43_phy_read(dev, 0x0010) & 0xFFF7);
                b43_phy_write(dev, 0x0011, b43_phy_read(dev, 0x0011) & 0xFFF7);
                b43_radio_init2060(dev);
        } else {
                b43_radio_write16(dev, 0x0004, 0x00FF);
                b43_radio_write16(dev, 0x0005, 0x00FB);
-               b43_phy_write(dev, 0x0010, b43_phy_read(dev, 0x0010) | 0x0008);
-               b43_phy_write(dev, 0x0011, b43_phy_read(dev, 0x0011) | 0x0008);
+               b43_phy_set(dev, 0x0010, 0x0008);
+               b43_phy_set(dev, 0x0011, 0x0008);
        }
 }
 
 static int b43_aphy_op_switch_channel(struct b43_wldev *dev,
                                      unsigned int new_channel)
 {
Index: wireless-testing/drivers/net/wireless/b43/phy_g.c
===================================================================
--- wireless-testing.orig/drivers/net/wireless/b43/phy_g.c      2009-02-20 
14:33:18.000000000 +0100
+++ wireless-testing/drivers/net/wireless/b43/phy_g.c   2009-02-20 
19:04:18.000000000 +0100
@@ -454,13 +454,13 @@ static void b43_calc_nrssi_offset(struct
        backup[10] = b43_radio_read16(dev, 0x007A);
        backup[11] = b43_radio_read16(dev, 0x0043);
 
        b43_phy_write(dev, 0x0429, b43_phy_read(dev, 0x0429) & 0x7FFF);
        b43_phy_write(dev, 0x0001,
                      (b43_phy_read(dev, 0x0001) & 0x3FFF) | 0x4000);
-       b43_phy_write(dev, 0x0811, b43_phy_read(dev, 0x0811) | 0x000C);
+       b43_phy_set(dev, 0x0811, 0x000C);
        b43_phy_write(dev, 0x0812,
                      (b43_phy_read(dev, 0x0812) & 0xFFF3) | 0x0004);
        b43_phy_write(dev, 0x0802, b43_phy_read(dev, 0x0802) & ~(0x1 | 0x2));
        if (phy->rev >= 6) {
                backup[12] = b43_phy_read(dev, 0x002E);
                backup[13] = b43_phy_read(dev, 0x002F);
@@ -472,16 +472,16 @@ static void b43_calc_nrssi_offset(struct
                backup[19] = b43_phy_read(dev, 0x0478);
 
                b43_phy_write(dev, 0x002E, 0);
                b43_phy_write(dev, 0x002F, 0);
                b43_phy_write(dev, 0x080F, 0);
                b43_phy_write(dev, 0x0810, 0);
-               b43_phy_write(dev, 0x0478, b43_phy_read(dev, 0x0478) | 0x0100);
-               b43_phy_write(dev, 0x0801, b43_phy_read(dev, 0x0801) | 0x0040);
-               b43_phy_write(dev, 0x0060, b43_phy_read(dev, 0x0060) | 0x0040);
-               b43_phy_write(dev, 0x0014, b43_phy_read(dev, 0x0014) | 0x0200);
+               b43_phy_set(dev, 0x0478, 0x0100);
+               b43_phy_set(dev, 0x0801, 0x0040);
+               b43_phy_set(dev, 0x0060, 0x0040);
+               b43_phy_set(dev, 0x0014, 0x0200);
        }
        b43_radio_write16(dev, 0x007A, b43_radio_read16(dev, 0x007A) | 0x0070);
        b43_radio_write16(dev, 0x007A, b43_radio_read16(dev, 0x007A) | 0x0080);
        udelay(30);
 
        v47F = (s16) ((b43_phy_read(dev, 0x047F) >> 8) & 0x003F);
@@ -501,33 +501,30 @@ static void b43_calc_nrssi_offset(struct
                if (saved == 0xFFFF)
                        saved = 4;
        } else {
                b43_radio_write16(dev, 0x007A,
                                  b43_radio_read16(dev, 0x007A) & 0x007F);
                if (phy->rev != 1) {    /* Not in specs, but needed to prevent 
PPC machine check */
-                       b43_phy_write(dev, 0x0814,
-                                     b43_phy_read(dev, 0x0814) | 0x0001);
+                       b43_phy_set(dev, 0x0814, 0x0001);
                        b43_phy_write(dev, 0x0815,
                                      b43_phy_read(dev, 0x0815) & 0xFFFE);
                }
-               b43_phy_write(dev, 0x0811, b43_phy_read(dev, 0x0811) | 0x000C);
-               b43_phy_write(dev, 0x0812, b43_phy_read(dev, 0x0812) | 0x000C);
-               b43_phy_write(dev, 0x0811, b43_phy_read(dev, 0x0811) | 0x0030);
-               b43_phy_write(dev, 0x0812, b43_phy_read(dev, 0x0812) | 0x0030);
+               b43_phy_set(dev, 0x0811, 0x000C);
+               b43_phy_set(dev, 0x0812, 0x000C);
+               b43_phy_set(dev, 0x0811, 0x0030);
+               b43_phy_set(dev, 0x0812, 0x0030);
                b43_phy_write(dev, 0x005A, 0x0480);
                b43_phy_write(dev, 0x0059, 0x0810);
                b43_phy_write(dev, 0x0058, 0x000D);
                if (phy->rev == 0) {
                        b43_phy_write(dev, 0x0003, 0x0122);
                } else {
-                       b43_phy_write(dev, 0x000A, b43_phy_read(dev, 0x000A)
-                                     | 0x2000);
+                       b43_phy_set(dev, 0x000A, 0x2000);
                }
                if (phy->rev != 1) {    /* Not in specs, but needed to prevent 
PPC machine check */
-                       b43_phy_write(dev, 0x0814,
-                                     b43_phy_read(dev, 0x0814) | 0x0004);
+                       b43_phy_set(dev, 0x0814, 0x0004);
                        b43_phy_write(dev, 0x0815,
                                      b43_phy_read(dev, 0x0815) & 0xFFFB);
                }
                b43_phy_write(dev, 0x0003, (b43_phy_read(dev, 0x0003) & 0xFF9F)
                              | 0x0040);
                b43_radio_write16(dev, 0x007A,
@@ -573,13 +570,13 @@ static void b43_calc_nrssi_offset(struct
        b43_phy_write(dev, 0x0058, backup[7]);
        b43_phy_write(dev, 0x000A, backup[8]);
        b43_phy_write(dev, 0x0003, backup[9]);
        b43_radio_write16(dev, 0x0043, backup[11]);
        b43_radio_write16(dev, 0x007A, backup[10]);
        b43_phy_write(dev, 0x0802, b43_phy_read(dev, 0x0802) | 0x1 | 0x2);
-       b43_phy_write(dev, 0x0429, b43_phy_read(dev, 0x0429) | 0x8000);
+       b43_phy_set(dev, 0x0429, 0x8000);
        b43_set_original_gains(dev);
        if (phy->rev >= 6) {
                b43_phy_write(dev, 0x0801, backup[16]);
                b43_phy_write(dev, 0x0060, backup[17]);
                b43_phy_write(dev, 0x0014, backup[18]);
                b43_phy_write(dev, 0x0478, backup[19]);
@@ -630,30 +627,24 @@ static void b43_calc_nrssi_slope(struct 
                b43_phy_write(dev, 0x002E, 0);
                b43_phy_write(dev, B43_PHY_G_LO_CONTROL, 0);
                switch (phy->rev) {
                case 4:
                case 6:
                case 7:
-                       b43_phy_write(dev, 0x0478,
-                                     b43_phy_read(dev, 0x0478)
-                                     | 0x0100);
-                       b43_phy_write(dev, 0x0801,
-                                     b43_phy_read(dev, 0x0801)
-                                     | 0x0040);
+                       b43_phy_set(dev, 0x0478, 0x0100);
+                       b43_phy_set(dev, 0x0801, 0x0040);
                        break;
                case 3:
                case 5:
                        b43_phy_write(dev, 0x0801,
                                      b43_phy_read(dev, 0x0801)
                                      & 0xFFBF);
                        break;
                }
-               b43_phy_write(dev, 0x0060, b43_phy_read(dev, 0x0060)
-                             | 0x0040);
-               b43_phy_write(dev, 0x0014, b43_phy_read(dev, 0x0014)
-                             | 0x0200);
+               b43_phy_set(dev, 0x0060, 0x0040);
+               b43_phy_set(dev, 0x0014, 0x0200);
        }
        b43_radio_write16(dev, 0x007A,
                          b43_radio_read16(dev, 0x007A) | 0x0070);
        b43_set_all_gains(dev, 0, 8, 0);
        b43_radio_write16(dev, 0x007A,
                          b43_radio_read16(dev, 0x007A) & 0x00F7);
@@ -740,17 +731,15 @@ static void b43_calc_nrssi_slope(struct 
        b43_write16(dev, B43_MMIO_CHANNEL_EXT, backup[9]);
        b43_phy_write(dev, 0x0015, backup[3]);
        b43_phy_write(dev, 0x005A, backup[4]);
        b43_phy_write(dev, 0x0059, backup[5]);
        b43_phy_write(dev, 0x0058, backup[6]);
        b43_synth_pu_workaround(dev, phy->channel);
-       b43_phy_write(dev, 0x0802,
-                     b43_phy_read(dev, 0x0802) | (0x0001 | 0x0002));
+       b43_phy_set(dev, 0x0802, (0x0001 | 0x0002));
        b43_set_original_gains(dev);
-       b43_phy_write(dev, B43_PHY_G_CRS,
-                     b43_phy_read(dev, B43_PHY_G_CRS) | 0x8000);
+       b43_phy_set(dev, B43_PHY_G_CRS, 0x8000);
        if (phy->rev >= 3) {
                b43_phy_write(dev, 0x0801, backup[14]);
                b43_phy_write(dev, 0x0060, backup[15]);
                b43_phy_write(dev, 0x0014, backup[16]);
                b43_phy_write(dev, 0x0478, backup[17]);
        }
@@ -898,14 +887,13 @@ b43_radio_interference_mitigation_enable
        size_t stackidx = 0;
        u32 *stack = gphy->interfstack;
 
        switch (mode) {
        case B43_INTERFMODE_NONWLAN:
                if (phy->rev != 1) {
-                       b43_phy_write(dev, 0x042B,
-                                     b43_phy_read(dev, 0x042B) | 0x0800);
+                       b43_phy_set(dev, 0x042B, 0x0800);
                        b43_phy_write(dev, B43_PHY_G_CRS,
                                      b43_phy_read(dev,
                                                   B43_PHY_G_CRS) & ~0x4000);
                        break;
                }
                radio_stacksave(0x0078);
@@ -921,16 +909,14 @@ b43_radio_interference_mitigation_enable
 
                b43_calc_nrssi_threshold(dev);
 
                phy_stacksave(0x0406);
                b43_phy_write(dev, 0x0406, 0x7E28);
 
-               b43_phy_write(dev, 0x042B, b43_phy_read(dev, 0x042B) | 0x0800);
-               b43_phy_write(dev, B43_PHY_RADIO_BITFIELD,
-                             b43_phy_read(dev,
-                                          B43_PHY_RADIO_BITFIELD) | 0x1000);
+               b43_phy_set(dev, 0x042B, 0x0800);
+               b43_phy_set(dev, B43_PHY_RADIO_BITFIELD, 0x1000);
 
                phy_stacksave(0x04A0);
                b43_phy_write(dev, 0x04A0,
                              (b43_phy_read(dev, 0x04A0) & 0xC0C0) | 0x0008);
                phy_stacksave(0x04A1);
                b43_phy_write(dev, 0x04A1,
@@ -1061,21 +1047,19 @@ b43_radio_interference_mitigation_enable
                                                    & 0x8000) | 0x36D8);
                        b43_phy_write(dev, 0x0416, (b43_phy_read(dev, 0x0416)
                                                    & 0x8000) | 0x36D8);
                        b43_phy_write(dev, 0x0417, (b43_phy_read(dev, 0x0417)
                                                    & 0xFE00) | 0x016D);
                } else {
-                       b43_phy_write(dev, 0x048A, b43_phy_read(dev, 0x048A)
-                                     | 0x1000);
+                       b43_phy_set(dev, 0x048A, 0x1000);
                        b43_phy_write(dev, 0x048A, (b43_phy_read(dev, 0x048A)
                                                    & 0x9FFF) | 0x2000);
                        b43_hf_write(dev, b43_hf_read(dev) | B43_HF_ACIW);
                }
                if (phy->rev >= 2) {
-                       b43_phy_write(dev, 0x042B, b43_phy_read(dev, 0x042B)
-                                     | 0x0800);
+                       b43_phy_set(dev, 0x042B, 0x0800);
                }
                b43_phy_write(dev, 0x048C, (b43_phy_read(dev, 0x048C)
                                            & 0xF0FF) | 0x0200);
                if (phy->rev == 2) {
                        b43_phy_write(dev, 0x04AE, (b43_phy_read(dev, 0x04AE)
                                                    & 0xFF00) | 0x007F);
@@ -1103,28 +1087,25 @@ b43_radio_interference_mitigation_disabl
 
        switch (mode) {
        case B43_INTERFMODE_NONWLAN:
                if (phy->rev != 1) {
                        b43_phy_write(dev, 0x042B,
                                      b43_phy_read(dev, 0x042B) & ~0x0800);
-                       b43_phy_write(dev, B43_PHY_G_CRS,
-                                     b43_phy_read(dev,
-                                                  B43_PHY_G_CRS) | 0x4000);
+                       b43_phy_set(dev, B43_PHY_G_CRS, 0x4000);
                        break;
                }
                radio_stackrestore(0x0078);
                b43_calc_nrssi_threshold(dev);
                phy_stackrestore(0x0406);
                b43_phy_write(dev, 0x042B, b43_phy_read(dev, 0x042B) & ~0x0800);
                if (!dev->bad_frames_preempt) {
                        b43_phy_write(dev, B43_PHY_RADIO_BITFIELD,
                                      b43_phy_read(dev, B43_PHY_RADIO_BITFIELD)
                                      & ~(1 << 11));
                }
-               b43_phy_write(dev, B43_PHY_G_CRS,
-                             b43_phy_read(dev, B43_PHY_G_CRS) | 0x4000);
+               b43_phy_set(dev, B43_PHY_G_CRS, 0x4000);
                phy_stackrestore(0x04A0);
                phy_stackrestore(0x04A1);
                phy_stackrestore(0x04A2);
                phy_stackrestore(0x04A8);
                phy_stackrestore(0x04AB);
                phy_stackrestore(0x04A7);
@@ -1386,15 +1367,13 @@ static u16 b43_radio_init2050(struct b43
                sav.phy_analogover = b43_phy_read(dev, B43_PHY_ANALOGOVER);
                sav.phy_analogoverval =
                    b43_phy_read(dev, B43_PHY_ANALOGOVERVAL);
                sav.phy_crs0 = b43_phy_read(dev, B43_PHY_CRS0);
                sav.phy_classctl = b43_phy_read(dev, B43_PHY_CLASSCTL);
 
-               b43_phy_write(dev, B43_PHY_ANALOGOVER,
-                             b43_phy_read(dev, B43_PHY_ANALOGOVER)
-                             | 0x0003);
+               b43_phy_set(dev, B43_PHY_ANALOGOVER, 0x0003);
                b43_phy_write(dev, B43_PHY_ANALOGOVERVAL,
                              b43_phy_read(dev, B43_PHY_ANALOGOVERVAL)
                              & 0xFFFC);
                b43_phy_write(dev, B43_PHY_CRS0, b43_phy_read(dev, B43_PHY_CRS0)
                              & 0x7FFF);
                b43_phy_write(dev, B43_PHY_CLASSCTL,
@@ -1634,29 +1613,27 @@ static void b43_phy_initb5(struct b43_wl
                        b43_radio_write16(dev, 0x0051,
                                          b43_radio_read16(dev, 0x0051)
                                          | 0x0004);
                }
                b43_write16(dev, B43_MMIO_PHY_RADIO, 0x0000);
 
-               b43_phy_write(dev, 0x0802, b43_phy_read(dev, 0x0802) | 0x0100);
-               b43_phy_write(dev, 0x042B, b43_phy_read(dev, 0x042B) | 0x2000);
+               b43_phy_set(dev, 0x0802, 0x0100);
+               b43_phy_set(dev, 0x042B, 0x2000);
 
                b43_phy_write(dev, 0x001C, 0x186A);
 
                b43_phy_write(dev, 0x0013,
                              (b43_phy_read(dev, 0x0013) & 0x00FF) | 0x1900);
                b43_phy_write(dev, 0x0035,
                              (b43_phy_read(dev, 0x0035) & 0xFFC0) | 0x0064);
                b43_phy_write(dev, 0x005D,
                              (b43_phy_read(dev, 0x005D) & 0xFF80) | 0x000A);
        }
 
        if (dev->bad_frames_preempt) {
-               b43_phy_write(dev, B43_PHY_RADIO_BITFIELD,
-                             b43_phy_read(dev,
-                                          B43_PHY_RADIO_BITFIELD) | (1 << 11));
+               b43_phy_set(dev, B43_PHY_RADIO_BITFIELD, (1 << 11));
        }
 
        if (phy->analog == 1) {
                b43_phy_write(dev, 0x0026, 0xCE00);
                b43_phy_write(dev, 0x0021, 0x3763);
                b43_phy_write(dev, 0x0022, 0x1BC3);
@@ -1772,14 +1749,14 @@ static void b43_phy_initb6(struct b43_wl
        }
        if (phy->type == B43_PHYTYPE_G) {
                b43_radio_write16(dev, 0x007A,
                                  b43_radio_read16(dev, 0x007A) | 0x0020);
                b43_radio_write16(dev, 0x0051,
                                  b43_radio_read16(dev, 0x0051) | 0x0004);
-               b43_phy_write(dev, 0x0802, b43_phy_read(dev, 0x0802) | 0x0100);
-               b43_phy_write(dev, 0x042B, b43_phy_read(dev, 0x042B) | 0x2000);
+               b43_phy_set(dev, 0x0802, 0x0100);
+               b43_phy_set(dev, 0x042B, 0x2000);
                b43_phy_write(dev, 0x5B, 0);
                b43_phy_write(dev, 0x5C, 0);
        }
 
        old_channel = phy->channel;
        if (old_channel >= 8)
@@ -1867,53 +1844,43 @@ static void b43_calc_loopback_gain(struc
        backup_radio[0] = b43_radio_read16(dev, 0x52);
        backup_radio[1] = b43_radio_read16(dev, 0x43);
        backup_radio[2] = b43_radio_read16(dev, 0x7A);
 
        b43_phy_write(dev, B43_PHY_CRS0,
                      b43_phy_read(dev, B43_PHY_CRS0) & 0x3FFF);
-       b43_phy_write(dev, B43_PHY_CCKBBANDCFG,
-                     b43_phy_read(dev, B43_PHY_CCKBBANDCFG) | 0x8000);
-       b43_phy_write(dev, B43_PHY_RFOVER,
-                     b43_phy_read(dev, B43_PHY_RFOVER) | 0x0002);
+       b43_phy_set(dev, B43_PHY_CCKBBANDCFG, 0x8000);
+       b43_phy_set(dev, B43_PHY_RFOVER, 0x0002);
        b43_phy_write(dev, B43_PHY_RFOVERVAL,
                      b43_phy_read(dev, B43_PHY_RFOVERVAL) & 0xFFFD);
-       b43_phy_write(dev, B43_PHY_RFOVER,
-                     b43_phy_read(dev, B43_PHY_RFOVER) | 0x0001);
+       b43_phy_set(dev, B43_PHY_RFOVER, 0x0001);
        b43_phy_write(dev, B43_PHY_RFOVERVAL,
                      b43_phy_read(dev, B43_PHY_RFOVERVAL) & 0xFFFE);
        if (phy->rev != 1) {    /* Not in specs, but needed to prevent PPC 
machine check */
-               b43_phy_write(dev, B43_PHY_ANALOGOVER,
-                             b43_phy_read(dev, B43_PHY_ANALOGOVER) | 0x0001);
+               b43_phy_set(dev, B43_PHY_ANALOGOVER, 0x0001);
                b43_phy_write(dev, B43_PHY_ANALOGOVERVAL,
                              b43_phy_read(dev,
                                           B43_PHY_ANALOGOVERVAL) & 0xFFFE);
-               b43_phy_write(dev, B43_PHY_ANALOGOVER,
-                             b43_phy_read(dev, B43_PHY_ANALOGOVER) | 0x0002);
+               b43_phy_set(dev, B43_PHY_ANALOGOVER, 0x0002);
                b43_phy_write(dev, B43_PHY_ANALOGOVERVAL,
                              b43_phy_read(dev,
                                           B43_PHY_ANALOGOVERVAL) & 0xFFFD);
        }
-       b43_phy_write(dev, B43_PHY_RFOVER,
-                     b43_phy_read(dev, B43_PHY_RFOVER) | 0x000C);
-       b43_phy_write(dev, B43_PHY_RFOVERVAL,
-                     b43_phy_read(dev, B43_PHY_RFOVERVAL) | 0x000C);
-       b43_phy_write(dev, B43_PHY_RFOVER,
-                     b43_phy_read(dev, B43_PHY_RFOVER) | 0x0030);
+       b43_phy_set(dev, B43_PHY_RFOVER, 0x000C);
+       b43_phy_set(dev, B43_PHY_RFOVERVAL, 0x000C);
+       b43_phy_set(dev, B43_PHY_RFOVER, 0x0030);
        b43_phy_write(dev, B43_PHY_RFOVERVAL,
                      (b43_phy_read(dev, B43_PHY_RFOVERVAL)
                       & 0xFFCF) | 0x10);
 
        b43_phy_write(dev, B43_PHY_CCK(0x5A), 0x0780);
        b43_phy_write(dev, B43_PHY_CCK(0x59), 0xC810);
        b43_phy_write(dev, B43_PHY_CCK(0x58), 0x000D);
 
-       b43_phy_write(dev, B43_PHY_CCK(0x0A),
-                     b43_phy_read(dev, B43_PHY_CCK(0x0A)) | 0x2000);
+       b43_phy_set(dev, B43_PHY_CCK(0x0A), 0x2000);
        if (phy->rev != 1) {    /* Not in specs, but needed to prevent PPC 
machine check */
-               b43_phy_write(dev, B43_PHY_ANALOGOVER,
-                             b43_phy_read(dev, B43_PHY_ANALOGOVER) | 0x0004);
+               b43_phy_set(dev, B43_PHY_ANALOGOVER, 0x0004);
                b43_phy_write(dev, B43_PHY_ANALOGOVERVAL,
                              b43_phy_read(dev,
                                           B43_PHY_ANALOGOVERVAL) & 0xFFFB);
        }
        b43_phy_write(dev, B43_PHY_CCK(0x03),
                      (b43_phy_read(dev, B43_PHY_CCK(0x03))
@@ -1938,25 +1905,20 @@ static void b43_calc_loopback_gain(struc
                      (b43_phy_read(dev, B43_PHY_CCK(0x2B))
                       & 0xFFC0) | 0x01);
        b43_phy_write(dev, B43_PHY_CCK(0x2B),
                      (b43_phy_read(dev, B43_PHY_CCK(0x2B))
                       & 0xC0FF) | 0x800);
 
-       b43_phy_write(dev, B43_PHY_RFOVER,
-                     b43_phy_read(dev, B43_PHY_RFOVER) | 0x0100);
+       b43_phy_set(dev, B43_PHY_RFOVER, 0x0100);
        b43_phy_write(dev, B43_PHY_RFOVERVAL,
                      b43_phy_read(dev, B43_PHY_RFOVERVAL) & 0xCFFF);
 
        if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_EXTLNA) {
                if (phy->rev >= 7) {
-                       b43_phy_write(dev, B43_PHY_RFOVER,
-                                     b43_phy_read(dev, B43_PHY_RFOVER)
-                                     | 0x0800);
-                       b43_phy_write(dev, B43_PHY_RFOVERVAL,
-                                     b43_phy_read(dev, B43_PHY_RFOVERVAL)
-                                     | 0x8000);
+                       b43_phy_set(dev, B43_PHY_RFOVER, 0x0800);
+                       b43_phy_set(dev, B43_PHY_RFOVERVAL, 0x8000);
                }
        }
        b43_radio_write16(dev, 0x7A, b43_radio_read16(dev, 0x7A)
                          & 0x00F7);
 
        j = 0;
@@ -1967,38 +1929,32 @@ static void b43_calc_loopback_gain(struc
                        b43_phy_write(dev, B43_PHY_RFOVERVAL,
                                      (b43_phy_read(dev, B43_PHY_RFOVERVAL)
                                       & 0xF0FF) | (j << 8));
                        b43_phy_write(dev, B43_PHY_PGACTL,
                                      (b43_phy_read(dev, B43_PHY_PGACTL)
                                       & 0x0FFF) | 0xA000);
-                       b43_phy_write(dev, B43_PHY_PGACTL,
-                                     b43_phy_read(dev, B43_PHY_PGACTL)
-                                     | 0xF000);
+                       b43_phy_set(dev, B43_PHY_PGACTL, 0xF000);
                        udelay(20);
                        if (b43_phy_read(dev, B43_PHY_LO_LEAKAGE) >= 0xDFC)
                                goto exit_loop1;
                }
        }
       exit_loop1:
        loop1_outer_done = i;
        loop1_inner_done = j;
        if (j >= 8) {
-               b43_phy_write(dev, B43_PHY_RFOVERVAL,
-                             b43_phy_read(dev, B43_PHY_RFOVERVAL)
-                             | 0x30);
+               b43_phy_set(dev, B43_PHY_RFOVERVAL, 0x30);
                trsw_rx = 0x1B;
                for (j = j - 8; j < 16; j++) {
                        b43_phy_write(dev, B43_PHY_RFOVERVAL,
                                      (b43_phy_read(dev, B43_PHY_RFOVERVAL)
                                       & 0xF0FF) | (j << 8));
                        b43_phy_write(dev, B43_PHY_PGACTL,
                                      (b43_phy_read(dev, B43_PHY_PGACTL)
                                       & 0x0FFF) | 0xA000);
-                       b43_phy_write(dev, B43_PHY_PGACTL,
-                                     b43_phy_read(dev, B43_PHY_PGACTL)
-                                     | 0xF000);
+                       b43_phy_set(dev, B43_PHY_PGACTL, 0xF000);
                        udelay(20);
                        trsw_rx -= 3;
                        if (b43_phy_read(dev, B43_PHY_LO_LEAKAGE) >= 0xDFC)
                                goto exit_loop2;
                }
        } else
@@ -2045,29 +2001,25 @@ static void b43_hardware_pctl_early_init
                b43_phy_write(dev, 0x047A, 0xC111);
                return;
        }
 
        b43_phy_write(dev, 0x0036, b43_phy_read(dev, 0x0036) & 0xFEFF);
        b43_phy_write(dev, 0x002F, 0x0202);
-       b43_phy_write(dev, 0x047C, b43_phy_read(dev, 0x047C) | 0x0002);
-       b43_phy_write(dev, 0x047A, b43_phy_read(dev, 0x047A) | 0xF000);
+       b43_phy_set(dev, 0x047C, 0x0002);
+       b43_phy_set(dev, 0x047A, 0xF000);
        if (phy->radio_ver == 0x2050 && phy->radio_rev == 8) {
                b43_phy_write(dev, 0x047A, (b43_phy_read(dev, 0x047A)
                                            & 0xFF0F) | 0x0010);
-               b43_phy_write(dev, 0x005D, b43_phy_read(dev, 0x005D)
-                             | 0x8000);
+               b43_phy_set(dev, 0x005D, 0x8000);
                b43_phy_write(dev, 0x004E, (b43_phy_read(dev, 0x004E)
                                            & 0xFFC0) | 0x0010);
                b43_phy_write(dev, 0x002E, 0xC07F);
-               b43_phy_write(dev, 0x0036, b43_phy_read(dev, 0x0036)
-                             | 0x0400);
+               b43_phy_set(dev, 0x0036, 0x0400);
        } else {
-               b43_phy_write(dev, 0x0036, b43_phy_read(dev, 0x0036)
-                             | 0x0200);
-               b43_phy_write(dev, 0x0036, b43_phy_read(dev, 0x0036)
-                             | 0x0400);
+               b43_phy_set(dev, 0x0036, 0x0200);
+               b43_phy_set(dev, 0x0036, 0x0400);
                b43_phy_write(dev, 0x005D, b43_phy_read(dev, 0x005D)
                              & 0x7FFF);
                b43_phy_write(dev, 0x004F, b43_phy_read(dev, 0x004F)
                              & 0xFFFE);
                b43_phy_write(dev, 0x004E, (b43_phy_read(dev, 0x004E)
                                            & 0xFFC0) | 0x0010);
@@ -2096,14 +2048,13 @@ static void b43_hardware_pctl_init_gphy(
        b43_gphy_tssi_power_lt_init(dev);
        b43_gphy_gain_lt_init(dev);
        b43_phy_write(dev, 0x0060, b43_phy_read(dev, 0x0060) & 0xFFBF);
        b43_phy_write(dev, 0x0014, 0x0000);
 
        B43_WARN_ON(phy->rev < 6);
-       b43_phy_write(dev, 0x0478, b43_phy_read(dev, 0x0478)
-                     | 0x0800);
+       b43_phy_set(dev, 0x0478, 0x0800);
        b43_phy_write(dev, 0x0478, b43_phy_read(dev, 0x0478)
                      & 0xFEFF);
        b43_phy_write(dev, 0x0801, b43_phy_read(dev, 0x0801)
                      & 0xFFBF);
 
        b43_gphy_dc_lt_init(dev, 1);
@@ -2225,18 +2176,14 @@ static void b43_phy_initg(struct b43_wld
                                       & 0x00FF) | 0x1F00);
                }
        }
        if ((phy->rev <= 2 && phy->gmode) || phy->rev >= 2)
                b43_phy_write(dev, B43_PHY_OFDM(0x7E), 0x78);
        if (phy->radio_rev == 8) {
-               b43_phy_write(dev, B43_PHY_EXTG(0x01),
-                             b43_phy_read(dev, B43_PHY_EXTG(0x01))
-                             | 0x80);
-               b43_phy_write(dev, B43_PHY_OFDM(0x3E),
-                             b43_phy_read(dev, B43_PHY_OFDM(0x3E))
-                             | 0x4);
+               b43_phy_set(dev, B43_PHY_EXTG(0x01), 0x80);
+               b43_phy_set(dev, B43_PHY_OFDM(0x3E), 0x4);
        }
        if (has_loopback_gain(phy))
                b43_calc_loopback_gain(dev);
 
        if (phy->radio_rev != 8) {
                if (gphy->initval == 0xFFFF)
@@ -2517,14 +2464,13 @@ static u8 b43_gphy_aci_scan(struct b43_w
                        ret[i - 1] = b43_gphy_aci_detect(dev, i);
        }
        b43_switch_channel(dev, channel);
        b43_phy_write(dev, 0x0802,
                      (b43_phy_read(dev, 0x0802) & 0xFFFC) | 0x0003);
        b43_phy_write(dev, 0x0403, b43_phy_read(dev, 0x0403) & 0xFFF8);
-       b43_phy_write(dev, B43_PHY_G_CRS,
-                     b43_phy_read(dev, B43_PHY_G_CRS) | 0x8000);
+       b43_phy_set(dev, B43_PHY_G_CRS, 0x8000);
        b43_set_original_gains(dev);
        for (i = 0; i < 13; i++) {
                if (!ret[i])
                        continue;
                end = (i + 5 < 13) ? i + 5 : 13;
                for (j = i; j < end; j++)
Index: wireless-testing/drivers/net/wireless/b43/lo.c
===================================================================
--- wireless-testing.orig/drivers/net/wireless/b43/lo.c 2009-02-19 
22:20:24.000000000 +0100
+++ wireless-testing/drivers/net/wireless/b43/lo.c      2009-02-20 
19:05:21.000000000 +0100
@@ -403,24 +403,16 @@ static void lo_measure_setup(struct b43_
                sav->phy_lo_mask = b43_phy_read(dev, B43_PHY_LO_MASK);
                sav->phy_extg_01 = b43_phy_read(dev, B43_PHY_EXTG(0x01));
                sav->phy_dacctl_hwpctl = b43_phy_read(dev, B43_PHY_DACCTL);
                sav->phy_cck_14 = b43_phy_read(dev, B43_PHY_CCK(0x14));
                sav->phy_hpwr_tssictl = b43_phy_read(dev, B43_PHY_HPWR_TSSICTL);
 
-               b43_phy_write(dev, B43_PHY_HPWR_TSSICTL,
-                             b43_phy_read(dev, B43_PHY_HPWR_TSSICTL)
-                             | 0x100);
-               b43_phy_write(dev, B43_PHY_EXTG(0x01),
-                             b43_phy_read(dev, B43_PHY_EXTG(0x01))
-                             | 0x40);
-               b43_phy_write(dev, B43_PHY_DACCTL,
-                             b43_phy_read(dev, B43_PHY_DACCTL)
-                             | 0x40);
-               b43_phy_write(dev, B43_PHY_CCK(0x14),
-                             b43_phy_read(dev, B43_PHY_CCK(0x14))
-                             | 0x200);
+               b43_phy_set(dev, B43_PHY_HPWR_TSSICTL, 0x100);
+               b43_phy_set(dev, B43_PHY_EXTG(0x01), 0x40);
+               b43_phy_set(dev, B43_PHY_DACCTL, 0x40);
+               b43_phy_set(dev, B43_PHY_CCK(0x14), 0x200);
        }
        if (phy->type == B43_PHYTYPE_B &&
            phy->radio_ver == 0x2050 && phy->radio_rev < 6) {
                b43_phy_write(dev, B43_PHY_CCK(0x16), 0x410);
                b43_phy_write(dev, B43_PHY_CCK(0x17), 0x820);
        }
@@ -436,15 +428,13 @@ static void lo_measure_setup(struct b43_
 
                b43_phy_write(dev, B43_PHY_CLASSCTL,
                              b43_phy_read(dev, B43_PHY_CLASSCTL)
                              & 0xFFFC);
                b43_phy_write(dev, B43_PHY_CRS0, b43_phy_read(dev, B43_PHY_CRS0)
                              & 0x7FFF);
-               b43_phy_write(dev, B43_PHY_ANALOGOVER,
-                             b43_phy_read(dev, B43_PHY_ANALOGOVER)
-                             | 0x0003);
+               b43_phy_set(dev, B43_PHY_ANALOGOVER, 0x0003);
                b43_phy_write(dev, B43_PHY_ANALOGOVERVAL,
                              b43_phy_read(dev, B43_PHY_ANALOGOVERVAL)
                              & 0xFFFC);
                if (phy->type == B43_PHYTYPE_G) {
                        if ((phy->rev >= 7) &&
                            (sprom->boardflags_lo & B43_BFL_EXTLNA)) {
Index: wireless-testing/drivers/net/wireless/b43/wa.c
===================================================================
--- wireless-testing.orig/drivers/net/wireless/b43/wa.c 2008-08-30 
02:13:22.000000000 +0200
+++ wireless-testing/drivers/net/wireless/b43/wa.c      2009-02-20 
19:05:28.000000000 +0100
@@ -315,22 +315,18 @@ static void b43_wa_crs_ed(struct b43_wld
 
        if (phy->rev == 1) {
                b43_phy_write(dev, B43_PHY_CRSTHRES1_R1, 0x4F19);
        } else if (phy->rev == 2) {
                b43_phy_write(dev, B43_PHY_CRSTHRES1, 0x1861);
                b43_phy_write(dev, B43_PHY_CRSTHRES2, 0x0271);
-               b43_phy_write(dev, B43_PHY_ANTDWELL,
-                                 b43_phy_read(dev, B43_PHY_ANTDWELL)
-                                 | 0x0800);
+               b43_phy_set(dev, B43_PHY_ANTDWELL, 0x0800);
        } else {
                b43_phy_write(dev, B43_PHY_CRSTHRES1, 0x0098);
                b43_phy_write(dev, B43_PHY_CRSTHRES2, 0x0070);
                b43_phy_write(dev, B43_PHY_OFDM(0xC9), 0x0080);
-               b43_phy_write(dev, B43_PHY_ANTDWELL,
-                                 b43_phy_read(dev, B43_PHY_ANTDWELL)
-                                 | 0x0800);
+               b43_phy_set(dev, B43_PHY_ANTDWELL, 0x0800);
        }
 }
 
 static void b43_wa_crs_thr(struct b43_wldev *dev)
 {
        b43_phy_write(dev, B43_PHY_CRS0,

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

Reply via email to