aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/b43
diff options
context:
space:
mode:
authorMichael Buesch <mb@bu3sch.de>2009-02-20 13:22:36 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-02-27 14:52:52 -0500
commite59be0b5299ce327d67cfca737b839ef98e0da0e (patch)
treec85dc5b69d3bdeb1641ebfc7c6cd2ca67d8c143d /drivers/net/wireless/b43
parent9b02f419a7dbd956b2c293e5cb1790b6b687f367 (diff)
b43: Convert usage of b43_phy_set()
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 <mb@bu3sch.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/b43')
-rw-r--r--drivers/net/wireless/b43/lo.c20
-rw-r--r--drivers/net/wireless/b43/phy_a.c19
-rw-r--r--drivers/net/wireless/b43/phy_g.c170
-rw-r--r--drivers/net/wireless/b43/wa.c8
4 files changed, 72 insertions, 145 deletions
diff --git a/drivers/net/wireless/b43/lo.c b/drivers/net/wireless/b43/lo.c
index 88ed75f68646..c334cfd63de7 100644
--- a/drivers/net/wireless/b43/lo.c
+++ b/drivers/net/wireless/b43/lo.c
@@ -406,18 +406,10 @@ static void lo_measure_setup(struct b43_wldev *dev,
406 sav->phy_cck_14 = b43_phy_read(dev, B43_PHY_CCK(0x14)); 406 sav->phy_cck_14 = b43_phy_read(dev, B43_PHY_CCK(0x14));
407 sav->phy_hpwr_tssictl = b43_phy_read(dev, B43_PHY_HPWR_TSSICTL); 407 sav->phy_hpwr_tssictl = b43_phy_read(dev, B43_PHY_HPWR_TSSICTL);
408 408
409 b43_phy_write(dev, B43_PHY_HPWR_TSSICTL, 409 b43_phy_set(dev, B43_PHY_HPWR_TSSICTL, 0x100);
410 b43_phy_read(dev, B43_PHY_HPWR_TSSICTL) 410 b43_phy_set(dev, B43_PHY_EXTG(0x01), 0x40);
411 | 0x100); 411 b43_phy_set(dev, B43_PHY_DACCTL, 0x40);
412 b43_phy_write(dev, B43_PHY_EXTG(0x01), 412 b43_phy_set(dev, B43_PHY_CCK(0x14), 0x200);
413 b43_phy_read(dev, B43_PHY_EXTG(0x01))
414 | 0x40);
415 b43_phy_write(dev, B43_PHY_DACCTL,
416 b43_phy_read(dev, B43_PHY_DACCTL)
417 | 0x40);
418 b43_phy_write(dev, B43_PHY_CCK(0x14),
419 b43_phy_read(dev, B43_PHY_CCK(0x14))
420 | 0x200);
421 } 413 }
422 if (phy->type == B43_PHYTYPE_B && 414 if (phy->type == B43_PHYTYPE_B &&
423 phy->radio_ver == 0x2050 && phy->radio_rev < 6) { 415 phy->radio_ver == 0x2050 && phy->radio_rev < 6) {
@@ -439,9 +431,7 @@ static void lo_measure_setup(struct b43_wldev *dev,
439 & 0xFFFC); 431 & 0xFFFC);
440 b43_phy_write(dev, B43_PHY_CRS0, b43_phy_read(dev, B43_PHY_CRS0) 432 b43_phy_write(dev, B43_PHY_CRS0, b43_phy_read(dev, B43_PHY_CRS0)
441 & 0x7FFF); 433 & 0x7FFF);
442 b43_phy_write(dev, B43_PHY_ANALOGOVER, 434 b43_phy_set(dev, B43_PHY_ANALOGOVER, 0x0003);
443 b43_phy_read(dev, B43_PHY_ANALOGOVER)
444 | 0x0003);
445 b43_phy_write(dev, B43_PHY_ANALOGOVERVAL, 435 b43_phy_write(dev, B43_PHY_ANALOGOVERVAL,
446 b43_phy_read(dev, B43_PHY_ANALOGOVERVAL) 436 b43_phy_read(dev, B43_PHY_ANALOGOVERVAL)
447 & 0xFFFC); 437 & 0xFFFC);
diff --git a/drivers/net/wireless/b43/phy_a.c b/drivers/net/wireless/b43/phy_a.c
index 7fe9d1701624..9dfba14c8988 100644
--- a/drivers/net/wireless/b43/phy_a.c
+++ b/drivers/net/wireless/b43/phy_a.c
@@ -226,8 +226,7 @@ static void b43_phy_ww(struct b43_wldev *dev)
226 226
227 b43_phy_write(dev, B43_PHY_CRS0, 227 b43_phy_write(dev, B43_PHY_CRS0,
228 b43_phy_read(dev, B43_PHY_CRS0) & ~B43_PHY_CRS0_EN); 228 b43_phy_read(dev, B43_PHY_CRS0) & ~B43_PHY_CRS0_EN);
229 b43_phy_write(dev, B43_PHY_OFDM(0x1B), 229 b43_phy_set(dev, B43_PHY_OFDM(0x1B), 0x1000);
230 b43_phy_read(dev, B43_PHY_OFDM(0x1B)) | 0x1000);
231 b43_phy_write(dev, B43_PHY_OFDM(0x82), 230 b43_phy_write(dev, B43_PHY_OFDM(0x82),
232 (b43_phy_read(dev, B43_PHY_OFDM(0x82)) & 0xF0FF) | 0x0300); 231 (b43_phy_read(dev, B43_PHY_OFDM(0x82)) & 0xF0FF) | 0x0300);
233 b43_radio_write16(dev, 0x0009, 232 b43_radio_write16(dev, 0x0009,
@@ -276,8 +275,7 @@ static void b43_phy_ww(struct b43_wldev *dev)
276 b43_ofdmtab_write16(dev, B43_OFDMTAB_AGC1, 0x0E, 0x0011); 275 b43_ofdmtab_write16(dev, B43_OFDMTAB_AGC1, 0x0E, 0x0011);
277 b43_ofdmtab_write16(dev, B43_OFDMTAB_AGC1, 0x0F, 0x0013); 276 b43_ofdmtab_write16(dev, B43_OFDMTAB_AGC1, 0x0F, 0x0013);
278 b43_phy_write(dev, B43_PHY_OFDM(0x33), 0x5030); 277 b43_phy_write(dev, B43_PHY_OFDM(0x33), 0x5030);
279 b43_phy_write(dev, B43_PHY_CRS0, 278 b43_phy_set(dev, B43_PHY_CRS0, B43_PHY_CRS0_EN);
280 b43_phy_read(dev, B43_PHY_CRS0) | B43_PHY_CRS0_EN);
281} 279}
282 280
283static void hardware_pctl_init_aphy(struct b43_wldev *dev) 281static void hardware_pctl_init_aphy(struct b43_wldev *dev)
@@ -303,8 +301,7 @@ void b43_phy_inita(struct b43_wldev *dev)
303 b43_phy_write(dev, B43_PHY_OFDM(0x1B), 301 b43_phy_write(dev, B43_PHY_OFDM(0x1B),
304 b43_phy_read(dev, B43_PHY_OFDM(0x1B)) & ~0x1000); 302 b43_phy_read(dev, B43_PHY_OFDM(0x1B)) & ~0x1000);
305 if (b43_phy_read(dev, B43_PHY_ENCORE) & B43_PHY_ENCORE_EN) 303 if (b43_phy_read(dev, B43_PHY_ENCORE) & B43_PHY_ENCORE_EN)
306 b43_phy_write(dev, B43_PHY_ENCORE, 304 b43_phy_set(dev, B43_PHY_ENCORE, 0x0010);
307 b43_phy_read(dev, B43_PHY_ENCORE) | 0x0010);
308 else 305 else
309 b43_phy_write(dev, B43_PHY_ENCORE, 306 b43_phy_write(dev, B43_PHY_ENCORE,
310 b43_phy_read(dev, B43_PHY_ENCORE) & ~0x1010); 307 b43_phy_read(dev, B43_PHY_ENCORE) & ~0x1010);
@@ -314,12 +311,10 @@ void b43_phy_inita(struct b43_wldev *dev)
314 311
315 if (phy->type == B43_PHYTYPE_A) { 312 if (phy->type == B43_PHYTYPE_A) {
316 if (phy->gmode && (phy->rev < 3)) 313 if (phy->gmode && (phy->rev < 3))
317 b43_phy_write(dev, 0x0034, 314 b43_phy_set(dev, 0x0034, 0x0001);
318 b43_phy_read(dev, 0x0034) | 0x0001);
319 b43_phy_rssiagc(dev, 0); 315 b43_phy_rssiagc(dev, 0);
320 316
321 b43_phy_write(dev, B43_PHY_CRS0, 317 b43_phy_set(dev, B43_PHY_CRS0, B43_PHY_CRS0_EN);
322 b43_phy_read(dev, B43_PHY_CRS0) | B43_PHY_CRS0_EN);
323 318
324 b43_radio_init2060(dev); 319 b43_radio_init2060(dev);
325 320
@@ -526,8 +521,8 @@ static void b43_aphy_op_software_rfkill(struct b43_wldev *dev,
526 } else { 521 } else {
527 b43_radio_write16(dev, 0x0004, 0x00FF); 522 b43_radio_write16(dev, 0x0004, 0x00FF);
528 b43_radio_write16(dev, 0x0005, 0x00FB); 523 b43_radio_write16(dev, 0x0005, 0x00FB);
529 b43_phy_write(dev, 0x0010, b43_phy_read(dev, 0x0010) | 0x0008); 524 b43_phy_set(dev, 0x0010, 0x0008);
530 b43_phy_write(dev, 0x0011, b43_phy_read(dev, 0x0011) | 0x0008); 525 b43_phy_set(dev, 0x0011, 0x0008);
531 } 526 }
532} 527}
533 528
diff --git a/drivers/net/wireless/b43/phy_g.c b/drivers/net/wireless/b43/phy_g.c
index 88bb303ae9d5..d3f2a700821f 100644
--- a/drivers/net/wireless/b43/phy_g.c
+++ b/drivers/net/wireless/b43/phy_g.c
@@ -457,7 +457,7 @@ static void b43_calc_nrssi_offset(struct b43_wldev *dev)
457 b43_phy_write(dev, 0x0429, b43_phy_read(dev, 0x0429) & 0x7FFF); 457 b43_phy_write(dev, 0x0429, b43_phy_read(dev, 0x0429) & 0x7FFF);
458 b43_phy_write(dev, 0x0001, 458 b43_phy_write(dev, 0x0001,
459 (b43_phy_read(dev, 0x0001) & 0x3FFF) | 0x4000); 459 (b43_phy_read(dev, 0x0001) & 0x3FFF) | 0x4000);
460 b43_phy_write(dev, 0x0811, b43_phy_read(dev, 0x0811) | 0x000C); 460 b43_phy_set(dev, 0x0811, 0x000C);
461 b43_phy_write(dev, 0x0812, 461 b43_phy_write(dev, 0x0812,
462 (b43_phy_read(dev, 0x0812) & 0xFFF3) | 0x0004); 462 (b43_phy_read(dev, 0x0812) & 0xFFF3) | 0x0004);
463 b43_phy_write(dev, 0x0802, b43_phy_read(dev, 0x0802) & ~(0x1 | 0x2)); 463 b43_phy_write(dev, 0x0802, b43_phy_read(dev, 0x0802) & ~(0x1 | 0x2));
@@ -475,10 +475,10 @@ static void b43_calc_nrssi_offset(struct b43_wldev *dev)
475 b43_phy_write(dev, 0x002F, 0); 475 b43_phy_write(dev, 0x002F, 0);
476 b43_phy_write(dev, 0x080F, 0); 476 b43_phy_write(dev, 0x080F, 0);
477 b43_phy_write(dev, 0x0810, 0); 477 b43_phy_write(dev, 0x0810, 0);
478 b43_phy_write(dev, 0x0478, b43_phy_read(dev, 0x0478) | 0x0100); 478 b43_phy_set(dev, 0x0478, 0x0100);
479 b43_phy_write(dev, 0x0801, b43_phy_read(dev, 0x0801) | 0x0040); 479 b43_phy_set(dev, 0x0801, 0x0040);
480 b43_phy_write(dev, 0x0060, b43_phy_read(dev, 0x0060) | 0x0040); 480 b43_phy_set(dev, 0x0060, 0x0040);
481 b43_phy_write(dev, 0x0014, b43_phy_read(dev, 0x0014) | 0x0200); 481 b43_phy_set(dev, 0x0014, 0x0200);
482 } 482 }
483 b43_radio_write16(dev, 0x007A, b43_radio_read16(dev, 0x007A) | 0x0070); 483 b43_radio_write16(dev, 0x007A, b43_radio_read16(dev, 0x007A) | 0x0070);
484 b43_radio_write16(dev, 0x007A, b43_radio_read16(dev, 0x007A) | 0x0080); 484 b43_radio_write16(dev, 0x007A, b43_radio_read16(dev, 0x007A) | 0x0080);
@@ -504,27 +504,24 @@ static void b43_calc_nrssi_offset(struct b43_wldev *dev)
504 b43_radio_write16(dev, 0x007A, 504 b43_radio_write16(dev, 0x007A,
505 b43_radio_read16(dev, 0x007A) & 0x007F); 505 b43_radio_read16(dev, 0x007A) & 0x007F);
506 if (phy->rev != 1) { /* Not in specs, but needed to prevent PPC machine check */ 506 if (phy->rev != 1) { /* Not in specs, but needed to prevent PPC machine check */
507 b43_phy_write(dev, 0x0814, 507 b43_phy_set(dev, 0x0814, 0x0001);
508 b43_phy_read(dev, 0x0814) | 0x0001);
509 b43_phy_write(dev, 0x0815, 508 b43_phy_write(dev, 0x0815,
510 b43_phy_read(dev, 0x0815) & 0xFFFE); 509 b43_phy_read(dev, 0x0815) & 0xFFFE);
511 } 510 }
512 b43_phy_write(dev, 0x0811, b43_phy_read(dev, 0x0811) | 0x000C); 511 b43_phy_set(dev, 0x0811, 0x000C);
513 b43_phy_write(dev, 0x0812, b43_phy_read(dev, 0x0812) | 0x000C); 512 b43_phy_set(dev, 0x0812, 0x000C);
514 b43_phy_write(dev, 0x0811, b43_phy_read(dev, 0x0811) | 0x0030); 513 b43_phy_set(dev, 0x0811, 0x0030);
515 b43_phy_write(dev, 0x0812, b43_phy_read(dev, 0x0812) | 0x0030); 514 b43_phy_set(dev, 0x0812, 0x0030);
516 b43_phy_write(dev, 0x005A, 0x0480); 515 b43_phy_write(dev, 0x005A, 0x0480);
517 b43_phy_write(dev, 0x0059, 0x0810); 516 b43_phy_write(dev, 0x0059, 0x0810);
518 b43_phy_write(dev, 0x0058, 0x000D); 517 b43_phy_write(dev, 0x0058, 0x000D);
519 if (phy->rev == 0) { 518 if (phy->rev == 0) {
520 b43_phy_write(dev, 0x0003, 0x0122); 519 b43_phy_write(dev, 0x0003, 0x0122);
521 } else { 520 } else {
522 b43_phy_write(dev, 0x000A, b43_phy_read(dev, 0x000A) 521 b43_phy_set(dev, 0x000A, 0x2000);
523 | 0x2000);
524 } 522 }
525 if (phy->rev != 1) { /* Not in specs, but needed to prevent PPC machine check */ 523 if (phy->rev != 1) { /* Not in specs, but needed to prevent PPC machine check */
526 b43_phy_write(dev, 0x0814, 524 b43_phy_set(dev, 0x0814, 0x0004);
527 b43_phy_read(dev, 0x0814) | 0x0004);
528 b43_phy_write(dev, 0x0815, 525 b43_phy_write(dev, 0x0815,
529 b43_phy_read(dev, 0x0815) & 0xFFFB); 526 b43_phy_read(dev, 0x0815) & 0xFFFB);
530 } 527 }
@@ -576,7 +573,7 @@ static void b43_calc_nrssi_offset(struct b43_wldev *dev)
576 b43_radio_write16(dev, 0x0043, backup[11]); 573 b43_radio_write16(dev, 0x0043, backup[11]);
577 b43_radio_write16(dev, 0x007A, backup[10]); 574 b43_radio_write16(dev, 0x007A, backup[10]);
578 b43_phy_write(dev, 0x0802, b43_phy_read(dev, 0x0802) | 0x1 | 0x2); 575 b43_phy_write(dev, 0x0802, b43_phy_read(dev, 0x0802) | 0x1 | 0x2);
579 b43_phy_write(dev, 0x0429, b43_phy_read(dev, 0x0429) | 0x8000); 576 b43_phy_set(dev, 0x0429, 0x8000);
580 b43_set_original_gains(dev); 577 b43_set_original_gains(dev);
581 if (phy->rev >= 6) { 578 if (phy->rev >= 6) {
582 b43_phy_write(dev, 0x0801, backup[16]); 579 b43_phy_write(dev, 0x0801, backup[16]);
@@ -633,12 +630,8 @@ static void b43_calc_nrssi_slope(struct b43_wldev *dev)
633 case 4: 630 case 4:
634 case 6: 631 case 6:
635 case 7: 632 case 7:
636 b43_phy_write(dev, 0x0478, 633 b43_phy_set(dev, 0x0478, 0x0100);
637 b43_phy_read(dev, 0x0478) 634 b43_phy_set(dev, 0x0801, 0x0040);
638 | 0x0100);
639 b43_phy_write(dev, 0x0801,
640 b43_phy_read(dev, 0x0801)
641 | 0x0040);
642 break; 635 break;
643 case 3: 636 case 3:
644 case 5: 637 case 5:
@@ -647,10 +640,8 @@ static void b43_calc_nrssi_slope(struct b43_wldev *dev)
647 & 0xFFBF); 640 & 0xFFBF);
648 break; 641 break;
649 } 642 }
650 b43_phy_write(dev, 0x0060, b43_phy_read(dev, 0x0060) 643 b43_phy_set(dev, 0x0060, 0x0040);
651 | 0x0040); 644 b43_phy_set(dev, 0x0014, 0x0200);
652 b43_phy_write(dev, 0x0014, b43_phy_read(dev, 0x0014)
653 | 0x0200);
654 } 645 }
655 b43_radio_write16(dev, 0x007A, 646 b43_radio_write16(dev, 0x007A,
656 b43_radio_read16(dev, 0x007A) | 0x0070); 647 b43_radio_read16(dev, 0x007A) | 0x0070);
@@ -743,11 +734,9 @@ static void b43_calc_nrssi_slope(struct b43_wldev *dev)
743 b43_phy_write(dev, 0x0059, backup[5]); 734 b43_phy_write(dev, 0x0059, backup[5]);
744 b43_phy_write(dev, 0x0058, backup[6]); 735 b43_phy_write(dev, 0x0058, backup[6]);
745 b43_synth_pu_workaround(dev, phy->channel); 736 b43_synth_pu_workaround(dev, phy->channel);
746 b43_phy_write(dev, 0x0802, 737 b43_phy_set(dev, 0x0802, (0x0001 | 0x0002));
747 b43_phy_read(dev, 0x0802) | (0x0001 | 0x0002));
748 b43_set_original_gains(dev); 738 b43_set_original_gains(dev);
749 b43_phy_write(dev, B43_PHY_G_CRS, 739 b43_phy_set(dev, B43_PHY_G_CRS, 0x8000);
750 b43_phy_read(dev, B43_PHY_G_CRS) | 0x8000);
751 if (phy->rev >= 3) { 740 if (phy->rev >= 3) {
752 b43_phy_write(dev, 0x0801, backup[14]); 741 b43_phy_write(dev, 0x0801, backup[14]);
753 b43_phy_write(dev, 0x0060, backup[15]); 742 b43_phy_write(dev, 0x0060, backup[15]);
@@ -901,8 +890,7 @@ b43_radio_interference_mitigation_enable(struct b43_wldev *dev, int mode)
901 switch (mode) { 890 switch (mode) {
902 case B43_INTERFMODE_NONWLAN: 891 case B43_INTERFMODE_NONWLAN:
903 if (phy->rev != 1) { 892 if (phy->rev != 1) {
904 b43_phy_write(dev, 0x042B, 893 b43_phy_set(dev, 0x042B, 0x0800);
905 b43_phy_read(dev, 0x042B) | 0x0800);
906 b43_phy_write(dev, B43_PHY_G_CRS, 894 b43_phy_write(dev, B43_PHY_G_CRS,
907 b43_phy_read(dev, 895 b43_phy_read(dev,
908 B43_PHY_G_CRS) & ~0x4000); 896 B43_PHY_G_CRS) & ~0x4000);
@@ -924,10 +912,8 @@ b43_radio_interference_mitigation_enable(struct b43_wldev *dev, int mode)
924 phy_stacksave(0x0406); 912 phy_stacksave(0x0406);
925 b43_phy_write(dev, 0x0406, 0x7E28); 913 b43_phy_write(dev, 0x0406, 0x7E28);
926 914
927 b43_phy_write(dev, 0x042B, b43_phy_read(dev, 0x042B) | 0x0800); 915 b43_phy_set(dev, 0x042B, 0x0800);
928 b43_phy_write(dev, B43_PHY_RADIO_BITFIELD, 916 b43_phy_set(dev, B43_PHY_RADIO_BITFIELD, 0x1000);
929 b43_phy_read(dev,
930 B43_PHY_RADIO_BITFIELD) | 0x1000);
931 917
932 phy_stacksave(0x04A0); 918 phy_stacksave(0x04A0);
933 b43_phy_write(dev, 0x04A0, 919 b43_phy_write(dev, 0x04A0,
@@ -1064,15 +1050,13 @@ b43_radio_interference_mitigation_enable(struct b43_wldev *dev, int mode)
1064 b43_phy_write(dev, 0x0417, (b43_phy_read(dev, 0x0417) 1050 b43_phy_write(dev, 0x0417, (b43_phy_read(dev, 0x0417)
1065 & 0xFE00) | 0x016D); 1051 & 0xFE00) | 0x016D);
1066 } else { 1052 } else {
1067 b43_phy_write(dev, 0x048A, b43_phy_read(dev, 0x048A) 1053 b43_phy_set(dev, 0x048A, 0x1000);
1068 | 0x1000);
1069 b43_phy_write(dev, 0x048A, (b43_phy_read(dev, 0x048A) 1054 b43_phy_write(dev, 0x048A, (b43_phy_read(dev, 0x048A)
1070 & 0x9FFF) | 0x2000); 1055 & 0x9FFF) | 0x2000);
1071 b43_hf_write(dev, b43_hf_read(dev) | B43_HF_ACIW); 1056 b43_hf_write(dev, b43_hf_read(dev) | B43_HF_ACIW);
1072 } 1057 }
1073 if (phy->rev >= 2) { 1058 if (phy->rev >= 2) {
1074 b43_phy_write(dev, 0x042B, b43_phy_read(dev, 0x042B) 1059 b43_phy_set(dev, 0x042B, 0x0800);
1075 | 0x0800);
1076 } 1060 }
1077 b43_phy_write(dev, 0x048C, (b43_phy_read(dev, 0x048C) 1061 b43_phy_write(dev, 0x048C, (b43_phy_read(dev, 0x048C)
1078 & 0xF0FF) | 0x0200); 1062 & 0xF0FF) | 0x0200);
@@ -1106,9 +1090,7 @@ b43_radio_interference_mitigation_disable(struct b43_wldev *dev, int mode)
1106 if (phy->rev != 1) { 1090 if (phy->rev != 1) {
1107 b43_phy_write(dev, 0x042B, 1091 b43_phy_write(dev, 0x042B,
1108 b43_phy_read(dev, 0x042B) & ~0x0800); 1092 b43_phy_read(dev, 0x042B) & ~0x0800);
1109 b43_phy_write(dev, B43_PHY_G_CRS, 1093 b43_phy_set(dev, B43_PHY_G_CRS, 0x4000);
1110 b43_phy_read(dev,
1111 B43_PHY_G_CRS) | 0x4000);
1112 break; 1094 break;
1113 } 1095 }
1114 radio_stackrestore(0x0078); 1096 radio_stackrestore(0x0078);
@@ -1120,8 +1102,7 @@ b43_radio_interference_mitigation_disable(struct b43_wldev *dev, int mode)
1120 b43_phy_read(dev, B43_PHY_RADIO_BITFIELD) 1102 b43_phy_read(dev, B43_PHY_RADIO_BITFIELD)
1121 & ~(1 << 11)); 1103 & ~(1 << 11));
1122 } 1104 }
1123 b43_phy_write(dev, B43_PHY_G_CRS, 1105 b43_phy_set(dev, B43_PHY_G_CRS, 0x4000);
1124 b43_phy_read(dev, B43_PHY_G_CRS) | 0x4000);
1125 phy_stackrestore(0x04A0); 1106 phy_stackrestore(0x04A0);
1126 phy_stackrestore(0x04A1); 1107 phy_stackrestore(0x04A1);
1127 phy_stackrestore(0x04A2); 1108 phy_stackrestore(0x04A2);
@@ -1389,9 +1370,7 @@ static u16 b43_radio_init2050(struct b43_wldev *dev)
1389 sav.phy_crs0 = b43_phy_read(dev, B43_PHY_CRS0); 1370 sav.phy_crs0 = b43_phy_read(dev, B43_PHY_CRS0);
1390 sav.phy_classctl = b43_phy_read(dev, B43_PHY_CLASSCTL); 1371 sav.phy_classctl = b43_phy_read(dev, B43_PHY_CLASSCTL);
1391 1372
1392 b43_phy_write(dev, B43_PHY_ANALOGOVER, 1373 b43_phy_set(dev, B43_PHY_ANALOGOVER, 0x0003);
1393 b43_phy_read(dev, B43_PHY_ANALOGOVER)
1394 | 0x0003);
1395 b43_phy_write(dev, B43_PHY_ANALOGOVERVAL, 1374 b43_phy_write(dev, B43_PHY_ANALOGOVERVAL,
1396 b43_phy_read(dev, B43_PHY_ANALOGOVERVAL) 1375 b43_phy_read(dev, B43_PHY_ANALOGOVERVAL)
1397 & 0xFFFC); 1376 & 0xFFFC);
@@ -1637,8 +1616,8 @@ static void b43_phy_initb5(struct b43_wldev *dev)
1637 } 1616 }
1638 b43_write16(dev, B43_MMIO_PHY_RADIO, 0x0000); 1617 b43_write16(dev, B43_MMIO_PHY_RADIO, 0x0000);
1639 1618
1640 b43_phy_write(dev, 0x0802, b43_phy_read(dev, 0x0802) | 0x0100); 1619 b43_phy_set(dev, 0x0802, 0x0100);
1641 b43_phy_write(dev, 0x042B, b43_phy_read(dev, 0x042B) | 0x2000); 1620 b43_phy_set(dev, 0x042B, 0x2000);
1642 1621
1643 b43_phy_write(dev, 0x001C, 0x186A); 1622 b43_phy_write(dev, 0x001C, 0x186A);
1644 1623
@@ -1651,9 +1630,7 @@ static void b43_phy_initb5(struct b43_wldev *dev)
1651 } 1630 }
1652 1631
1653 if (dev->bad_frames_preempt) { 1632 if (dev->bad_frames_preempt) {
1654 b43_phy_write(dev, B43_PHY_RADIO_BITFIELD, 1633 b43_phy_set(dev, B43_PHY_RADIO_BITFIELD, (1 << 11));
1655 b43_phy_read(dev,
1656 B43_PHY_RADIO_BITFIELD) | (1 << 11));
1657 } 1634 }
1658 1635
1659 if (phy->analog == 1) { 1636 if (phy->analog == 1) {
@@ -1775,8 +1752,8 @@ static void b43_phy_initb6(struct b43_wldev *dev)
1775 b43_radio_read16(dev, 0x007A) | 0x0020); 1752 b43_radio_read16(dev, 0x007A) | 0x0020);
1776 b43_radio_write16(dev, 0x0051, 1753 b43_radio_write16(dev, 0x0051,
1777 b43_radio_read16(dev, 0x0051) | 0x0004); 1754 b43_radio_read16(dev, 0x0051) | 0x0004);
1778 b43_phy_write(dev, 0x0802, b43_phy_read(dev, 0x0802) | 0x0100); 1755 b43_phy_set(dev, 0x0802, 0x0100);
1779 b43_phy_write(dev, 0x042B, b43_phy_read(dev, 0x042B) | 0x2000); 1756 b43_phy_set(dev, 0x042B, 0x2000);
1780 b43_phy_write(dev, 0x5B, 0); 1757 b43_phy_write(dev, 0x5B, 0);
1781 b43_phy_write(dev, 0x5C, 0); 1758 b43_phy_write(dev, 0x5C, 0);
1782 } 1759 }
@@ -1870,34 +1847,26 @@ static void b43_calc_loopback_gain(struct b43_wldev *dev)
1870 1847
1871 b43_phy_write(dev, B43_PHY_CRS0, 1848 b43_phy_write(dev, B43_PHY_CRS0,
1872 b43_phy_read(dev, B43_PHY_CRS0) & 0x3FFF); 1849 b43_phy_read(dev, B43_PHY_CRS0) & 0x3FFF);
1873 b43_phy_write(dev, B43_PHY_CCKBBANDCFG, 1850 b43_phy_set(dev, B43_PHY_CCKBBANDCFG, 0x8000);
1874 b43_phy_read(dev, B43_PHY_CCKBBANDCFG) | 0x8000); 1851 b43_phy_set(dev, B43_PHY_RFOVER, 0x0002);
1875 b43_phy_write(dev, B43_PHY_RFOVER,
1876 b43_phy_read(dev, B43_PHY_RFOVER) | 0x0002);
1877 b43_phy_write(dev, B43_PHY_RFOVERVAL, 1852 b43_phy_write(dev, B43_PHY_RFOVERVAL,
1878 b43_phy_read(dev, B43_PHY_RFOVERVAL) & 0xFFFD); 1853 b43_phy_read(dev, B43_PHY_RFOVERVAL) & 0xFFFD);
1879 b43_phy_write(dev, B43_PHY_RFOVER, 1854 b43_phy_set(dev, B43_PHY_RFOVER, 0x0001);
1880 b43_phy_read(dev, B43_PHY_RFOVER) | 0x0001);
1881 b43_phy_write(dev, B43_PHY_RFOVERVAL, 1855 b43_phy_write(dev, B43_PHY_RFOVERVAL,
1882 b43_phy_read(dev, B43_PHY_RFOVERVAL) & 0xFFFE); 1856 b43_phy_read(dev, B43_PHY_RFOVERVAL) & 0xFFFE);
1883 if (phy->rev != 1) { /* Not in specs, but needed to prevent PPC machine check */ 1857 if (phy->rev != 1) { /* Not in specs, but needed to prevent PPC machine check */
1884 b43_phy_write(dev, B43_PHY_ANALOGOVER, 1858 b43_phy_set(dev, B43_PHY_ANALOGOVER, 0x0001);
1885 b43_phy_read(dev, B43_PHY_ANALOGOVER) | 0x0001);
1886 b43_phy_write(dev, B43_PHY_ANALOGOVERVAL, 1859 b43_phy_write(dev, B43_PHY_ANALOGOVERVAL,
1887 b43_phy_read(dev, 1860 b43_phy_read(dev,
1888 B43_PHY_ANALOGOVERVAL) & 0xFFFE); 1861 B43_PHY_ANALOGOVERVAL) & 0xFFFE);
1889 b43_phy_write(dev, B43_PHY_ANALOGOVER, 1862 b43_phy_set(dev, B43_PHY_ANALOGOVER, 0x0002);
1890 b43_phy_read(dev, B43_PHY_ANALOGOVER) | 0x0002);
1891 b43_phy_write(dev, B43_PHY_ANALOGOVERVAL, 1863 b43_phy_write(dev, B43_PHY_ANALOGOVERVAL,
1892 b43_phy_read(dev, 1864 b43_phy_read(dev,
1893 B43_PHY_ANALOGOVERVAL) & 0xFFFD); 1865 B43_PHY_ANALOGOVERVAL) & 0xFFFD);
1894 } 1866 }
1895 b43_phy_write(dev, B43_PHY_RFOVER, 1867 b43_phy_set(dev, B43_PHY_RFOVER, 0x000C);
1896 b43_phy_read(dev, B43_PHY_RFOVER) | 0x000C); 1868 b43_phy_set(dev, B43_PHY_RFOVERVAL, 0x000C);
1897 b43_phy_write(dev, B43_PHY_RFOVERVAL, 1869 b43_phy_set(dev, B43_PHY_RFOVER, 0x0030);
1898 b43_phy_read(dev, B43_PHY_RFOVERVAL) | 0x000C);
1899 b43_phy_write(dev, B43_PHY_RFOVER,
1900 b43_phy_read(dev, B43_PHY_RFOVER) | 0x0030);
1901 b43_phy_write(dev, B43_PHY_RFOVERVAL, 1870 b43_phy_write(dev, B43_PHY_RFOVERVAL,
1902 (b43_phy_read(dev, B43_PHY_RFOVERVAL) 1871 (b43_phy_read(dev, B43_PHY_RFOVERVAL)
1903 & 0xFFCF) | 0x10); 1872 & 0xFFCF) | 0x10);
@@ -1906,11 +1875,9 @@ static void b43_calc_loopback_gain(struct b43_wldev *dev)
1906 b43_phy_write(dev, B43_PHY_CCK(0x59), 0xC810); 1875 b43_phy_write(dev, B43_PHY_CCK(0x59), 0xC810);
1907 b43_phy_write(dev, B43_PHY_CCK(0x58), 0x000D); 1876 b43_phy_write(dev, B43_PHY_CCK(0x58), 0x000D);
1908 1877
1909 b43_phy_write(dev, B43_PHY_CCK(0x0A), 1878 b43_phy_set(dev, B43_PHY_CCK(0x0A), 0x2000);
1910 b43_phy_read(dev, B43_PHY_CCK(0x0A)) | 0x2000);
1911 if (phy->rev != 1) { /* Not in specs, but needed to prevent PPC machine check */ 1879 if (phy->rev != 1) { /* Not in specs, but needed to prevent PPC machine check */
1912 b43_phy_write(dev, B43_PHY_ANALOGOVER, 1880 b43_phy_set(dev, B43_PHY_ANALOGOVER, 0x0004);
1913 b43_phy_read(dev, B43_PHY_ANALOGOVER) | 0x0004);
1914 b43_phy_write(dev, B43_PHY_ANALOGOVERVAL, 1881 b43_phy_write(dev, B43_PHY_ANALOGOVERVAL,
1915 b43_phy_read(dev, 1882 b43_phy_read(dev,
1916 B43_PHY_ANALOGOVERVAL) & 0xFFFB); 1883 B43_PHY_ANALOGOVERVAL) & 0xFFFB);
@@ -1941,19 +1908,14 @@ static void b43_calc_loopback_gain(struct b43_wldev *dev)
1941 (b43_phy_read(dev, B43_PHY_CCK(0x2B)) 1908 (b43_phy_read(dev, B43_PHY_CCK(0x2B))
1942 & 0xC0FF) | 0x800); 1909 & 0xC0FF) | 0x800);
1943 1910
1944 b43_phy_write(dev, B43_PHY_RFOVER, 1911 b43_phy_set(dev, B43_PHY_RFOVER, 0x0100);
1945 b43_phy_read(dev, B43_PHY_RFOVER) | 0x0100);
1946 b43_phy_write(dev, B43_PHY_RFOVERVAL, 1912 b43_phy_write(dev, B43_PHY_RFOVERVAL,
1947 b43_phy_read(dev, B43_PHY_RFOVERVAL) & 0xCFFF); 1913 b43_phy_read(dev, B43_PHY_RFOVERVAL) & 0xCFFF);
1948 1914
1949 if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_EXTLNA) { 1915 if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_EXTLNA) {
1950 if (phy->rev >= 7) { 1916 if (phy->rev >= 7) {
1951 b43_phy_write(dev, B43_PHY_RFOVER, 1917 b43_phy_set(dev, B43_PHY_RFOVER, 0x0800);
1952 b43_phy_read(dev, B43_PHY_RFOVER) 1918 b43_phy_set(dev, B43_PHY_RFOVERVAL, 0x8000);
1953 | 0x0800);
1954 b43_phy_write(dev, B43_PHY_RFOVERVAL,
1955 b43_phy_read(dev, B43_PHY_RFOVERVAL)
1956 | 0x8000);
1957 } 1919 }
1958 } 1920 }
1959 b43_radio_write16(dev, 0x7A, b43_radio_read16(dev, 0x7A) 1921 b43_radio_write16(dev, 0x7A, b43_radio_read16(dev, 0x7A)
@@ -1970,9 +1932,7 @@ static void b43_calc_loopback_gain(struct b43_wldev *dev)
1970 b43_phy_write(dev, B43_PHY_PGACTL, 1932 b43_phy_write(dev, B43_PHY_PGACTL,
1971 (b43_phy_read(dev, B43_PHY_PGACTL) 1933 (b43_phy_read(dev, B43_PHY_PGACTL)
1972 & 0x0FFF) | 0xA000); 1934 & 0x0FFF) | 0xA000);
1973 b43_phy_write(dev, B43_PHY_PGACTL, 1935 b43_phy_set(dev, B43_PHY_PGACTL, 0xF000);
1974 b43_phy_read(dev, B43_PHY_PGACTL)
1975 | 0xF000);
1976 udelay(20); 1936 udelay(20);
1977 if (b43_phy_read(dev, B43_PHY_LO_LEAKAGE) >= 0xDFC) 1937 if (b43_phy_read(dev, B43_PHY_LO_LEAKAGE) >= 0xDFC)
1978 goto exit_loop1; 1938 goto exit_loop1;
@@ -1982,9 +1942,7 @@ static void b43_calc_loopback_gain(struct b43_wldev *dev)
1982 loop1_outer_done = i; 1942 loop1_outer_done = i;
1983 loop1_inner_done = j; 1943 loop1_inner_done = j;
1984 if (j >= 8) { 1944 if (j >= 8) {
1985 b43_phy_write(dev, B43_PHY_RFOVERVAL, 1945 b43_phy_set(dev, B43_PHY_RFOVERVAL, 0x30);
1986 b43_phy_read(dev, B43_PHY_RFOVERVAL)
1987 | 0x30);
1988 trsw_rx = 0x1B; 1946 trsw_rx = 0x1B;
1989 for (j = j - 8; j < 16; j++) { 1947 for (j = j - 8; j < 16; j++) {
1990 b43_phy_write(dev, B43_PHY_RFOVERVAL, 1948 b43_phy_write(dev, B43_PHY_RFOVERVAL,
@@ -1993,9 +1951,7 @@ static void b43_calc_loopback_gain(struct b43_wldev *dev)
1993 b43_phy_write(dev, B43_PHY_PGACTL, 1951 b43_phy_write(dev, B43_PHY_PGACTL,
1994 (b43_phy_read(dev, B43_PHY_PGACTL) 1952 (b43_phy_read(dev, B43_PHY_PGACTL)
1995 & 0x0FFF) | 0xA000); 1953 & 0x0FFF) | 0xA000);
1996 b43_phy_write(dev, B43_PHY_PGACTL, 1954 b43_phy_set(dev, B43_PHY_PGACTL, 0xF000);
1997 b43_phy_read(dev, B43_PHY_PGACTL)
1998 | 0xF000);
1999 udelay(20); 1955 udelay(20);
2000 trsw_rx -= 3; 1956 trsw_rx -= 3;
2001 if (b43_phy_read(dev, B43_PHY_LO_LEAKAGE) >= 0xDFC) 1957 if (b43_phy_read(dev, B43_PHY_LO_LEAKAGE) >= 0xDFC)
@@ -2048,23 +2004,19 @@ static void b43_hardware_pctl_early_init(struct b43_wldev *dev)
2048 2004
2049 b43_phy_write(dev, 0x0036, b43_phy_read(dev, 0x0036) & 0xFEFF); 2005 b43_phy_write(dev, 0x0036, b43_phy_read(dev, 0x0036) & 0xFEFF);
2050 b43_phy_write(dev, 0x002F, 0x0202); 2006 b43_phy_write(dev, 0x002F, 0x0202);
2051 b43_phy_write(dev, 0x047C, b43_phy_read(dev, 0x047C) | 0x0002); 2007 b43_phy_set(dev, 0x047C, 0x0002);
2052 b43_phy_write(dev, 0x047A, b43_phy_read(dev, 0x047A) | 0xF000); 2008 b43_phy_set(dev, 0x047A, 0xF000);
2053 if (phy->radio_ver == 0x2050 && phy->radio_rev == 8) { 2009 if (phy->radio_ver == 0x2050 && phy->radio_rev == 8) {
2054 b43_phy_write(dev, 0x047A, (b43_phy_read(dev, 0x047A) 2010 b43_phy_write(dev, 0x047A, (b43_phy_read(dev, 0x047A)
2055 & 0xFF0F) | 0x0010); 2011 & 0xFF0F) | 0x0010);
2056 b43_phy_write(dev, 0x005D, b43_phy_read(dev, 0x005D) 2012 b43_phy_set(dev, 0x005D, 0x8000);
2057 | 0x8000);
2058 b43_phy_write(dev, 0x004E, (b43_phy_read(dev, 0x004E) 2013 b43_phy_write(dev, 0x004E, (b43_phy_read(dev, 0x004E)
2059 & 0xFFC0) | 0x0010); 2014 & 0xFFC0) | 0x0010);
2060 b43_phy_write(dev, 0x002E, 0xC07F); 2015 b43_phy_write(dev, 0x002E, 0xC07F);
2061 b43_phy_write(dev, 0x0036, b43_phy_read(dev, 0x0036) 2016 b43_phy_set(dev, 0x0036, 0x0400);
2062 | 0x0400);
2063 } else { 2017 } else {
2064 b43_phy_write(dev, 0x0036, b43_phy_read(dev, 0x0036) 2018 b43_phy_set(dev, 0x0036, 0x0200);
2065 | 0x0200); 2019 b43_phy_set(dev, 0x0036, 0x0400);
2066 b43_phy_write(dev, 0x0036, b43_phy_read(dev, 0x0036)
2067 | 0x0400);
2068 b43_phy_write(dev, 0x005D, b43_phy_read(dev, 0x005D) 2020 b43_phy_write(dev, 0x005D, b43_phy_read(dev, 0x005D)
2069 & 0x7FFF); 2021 & 0x7FFF);
2070 b43_phy_write(dev, 0x004F, b43_phy_read(dev, 0x004F) 2022 b43_phy_write(dev, 0x004F, b43_phy_read(dev, 0x004F)
@@ -2099,8 +2051,7 @@ static void b43_hardware_pctl_init_gphy(struct b43_wldev *dev)
2099 b43_phy_write(dev, 0x0014, 0x0000); 2051 b43_phy_write(dev, 0x0014, 0x0000);
2100 2052
2101 B43_WARN_ON(phy->rev < 6); 2053 B43_WARN_ON(phy->rev < 6);
2102 b43_phy_write(dev, 0x0478, b43_phy_read(dev, 0x0478) 2054 b43_phy_set(dev, 0x0478, 0x0800);
2103 | 0x0800);
2104 b43_phy_write(dev, 0x0478, b43_phy_read(dev, 0x0478) 2055 b43_phy_write(dev, 0x0478, b43_phy_read(dev, 0x0478)
2105 & 0xFEFF); 2056 & 0xFEFF);
2106 b43_phy_write(dev, 0x0801, b43_phy_read(dev, 0x0801) 2057 b43_phy_write(dev, 0x0801, b43_phy_read(dev, 0x0801)
@@ -2228,12 +2179,8 @@ static void b43_phy_initg(struct b43_wldev *dev)
2228 if ((phy->rev <= 2 && phy->gmode) || phy->rev >= 2) 2179 if ((phy->rev <= 2 && phy->gmode) || phy->rev >= 2)
2229 b43_phy_write(dev, B43_PHY_OFDM(0x7E), 0x78); 2180 b43_phy_write(dev, B43_PHY_OFDM(0x7E), 0x78);
2230 if (phy->radio_rev == 8) { 2181 if (phy->radio_rev == 8) {
2231 b43_phy_write(dev, B43_PHY_EXTG(0x01), 2182 b43_phy_set(dev, B43_PHY_EXTG(0x01), 0x80);
2232 b43_phy_read(dev, B43_PHY_EXTG(0x01)) 2183 b43_phy_set(dev, B43_PHY_OFDM(0x3E), 0x4);
2233 | 0x80);
2234 b43_phy_write(dev, B43_PHY_OFDM(0x3E),
2235 b43_phy_read(dev, B43_PHY_OFDM(0x3E))
2236 | 0x4);
2237 } 2184 }
2238 if (has_loopback_gain(phy)) 2185 if (has_loopback_gain(phy))
2239 b43_calc_loopback_gain(dev); 2186 b43_calc_loopback_gain(dev);
@@ -2520,8 +2467,7 @@ static u8 b43_gphy_aci_scan(struct b43_wldev *dev)
2520 b43_phy_write(dev, 0x0802, 2467 b43_phy_write(dev, 0x0802,
2521 (b43_phy_read(dev, 0x0802) & 0xFFFC) | 0x0003); 2468 (b43_phy_read(dev, 0x0802) & 0xFFFC) | 0x0003);
2522 b43_phy_write(dev, 0x0403, b43_phy_read(dev, 0x0403) & 0xFFF8); 2469 b43_phy_write(dev, 0x0403, b43_phy_read(dev, 0x0403) & 0xFFF8);
2523 b43_phy_write(dev, B43_PHY_G_CRS, 2470 b43_phy_set(dev, B43_PHY_G_CRS, 0x8000);
2524 b43_phy_read(dev, B43_PHY_G_CRS) | 0x8000);
2525 b43_set_original_gains(dev); 2471 b43_set_original_gains(dev);
2526 for (i = 0; i < 13; i++) { 2472 for (i = 0; i < 13; i++) {
2527 if (!ret[i]) 2473 if (!ret[i])
diff --git a/drivers/net/wireless/b43/wa.c b/drivers/net/wireless/b43/wa.c
index 0c0fb15abb9f..fe7a7de046fe 100644
--- a/drivers/net/wireless/b43/wa.c
+++ b/drivers/net/wireless/b43/wa.c
@@ -318,16 +318,12 @@ static void b43_wa_crs_ed(struct b43_wldev *dev)
318 } else if (phy->rev == 2) { 318 } else if (phy->rev == 2) {
319 b43_phy_write(dev, B43_PHY_CRSTHRES1, 0x1861); 319 b43_phy_write(dev, B43_PHY_CRSTHRES1, 0x1861);
320 b43_phy_write(dev, B43_PHY_CRSTHRES2, 0x0271); 320 b43_phy_write(dev, B43_PHY_CRSTHRES2, 0x0271);
321 b43_phy_write(dev, B43_PHY_ANTDWELL, 321 b43_phy_set(dev, B43_PHY_ANTDWELL, 0x0800);
322 b43_phy_read(dev, B43_PHY_ANTDWELL)
323 | 0x0800);
324 } else { 322 } else {
325 b43_phy_write(dev, B43_PHY_CRSTHRES1, 0x0098); 323 b43_phy_write(dev, B43_PHY_CRSTHRES1, 0x0098);
326 b43_phy_write(dev, B43_PHY_CRSTHRES2, 0x0070); 324 b43_phy_write(dev, B43_PHY_CRSTHRES2, 0x0070);
327 b43_phy_write(dev, B43_PHY_OFDM(0xC9), 0x0080); 325 b43_phy_write(dev, B43_PHY_OFDM(0xC9), 0x0080);
328 b43_phy_write(dev, B43_PHY_ANTDWELL, 326 b43_phy_set(dev, B43_PHY_ANTDWELL, 0x0800);
329 b43_phy_read(dev, B43_PHY_ANTDWELL)
330 | 0x0800);
331 } 327 }
332} 328}
333 329