aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/b43legacy/phy.c2
-rw-r--r--drivers/ssb/pci.c41
-rw-r--r--drivers/ssb/pcmcia.c12
-rw-r--r--drivers/ssb/sdio.c12
-rw-r--r--include/linux/ssb/ssb.h7
5 files changed, 24 insertions, 50 deletions
diff --git a/drivers/net/wireless/b43legacy/phy.c b/drivers/net/wireless/b43legacy/phy.c
index 96faaef3661b..950334197f40 100644
--- a/drivers/net/wireless/b43legacy/phy.c
+++ b/drivers/net/wireless/b43legacy/phy.c
@@ -1860,7 +1860,7 @@ void b43legacy_phy_xmitpower(struct b43legacy_wldev *dev)
1860 * which accounts for the factor of 4 */ 1860 * which accounts for the factor of 4 */
1861#define REG_MAX_PWR 20 1861#define REG_MAX_PWR 20
1862 max_pwr = min(REG_MAX_PWR * 4 1862 max_pwr = min(REG_MAX_PWR * 4
1863 - dev->dev->bus->sprom.antenna_gain.ghz24.a0 1863 - dev->dev->bus->sprom.antenna_gain.a0
1864 - 0x6, max_pwr); 1864 - 0x6, max_pwr);
1865 1865
1866 /* find the desired power in Q5.2 - power_level is in dBm 1866 /* find the desired power in Q5.2 - power_level is in dBm
diff --git a/drivers/ssb/pci.c b/drivers/ssb/pci.c
index befa89eac6f3..ed4124469a3a 100644
--- a/drivers/ssb/pci.c
+++ b/drivers/ssb/pci.c
@@ -331,7 +331,6 @@ static void sprom_extract_r123(struct ssb_sprom *out, const u16 *in)
331{ 331{
332 int i; 332 int i;
333 u16 v; 333 u16 v;
334 s8 gain;
335 u16 loc[3]; 334 u16 loc[3];
336 335
337 if (out->revision == 3) /* rev 3 moved MAC */ 336 if (out->revision == 3) /* rev 3 moved MAC */
@@ -390,20 +389,12 @@ static void sprom_extract_r123(struct ssb_sprom *out, const u16 *in)
390 SPEX(boardflags_hi, SSB_SPROM2_BFLHI, 0xFFFF, 0); 389 SPEX(boardflags_hi, SSB_SPROM2_BFLHI, 0xFFFF, 0);
391 390
392 /* Extract the antenna gain values. */ 391 /* Extract the antenna gain values. */
393 gain = r123_extract_antgain(out->revision, in, 392 out->antenna_gain.a0 = r123_extract_antgain(out->revision, in,
394 SSB_SPROM1_AGAIN_BG, 393 SSB_SPROM1_AGAIN_BG,
395 SSB_SPROM1_AGAIN_BG_SHIFT); 394 SSB_SPROM1_AGAIN_BG_SHIFT);
396 out->antenna_gain.ghz24.a0 = gain; 395 out->antenna_gain.a1 = r123_extract_antgain(out->revision, in,
397 out->antenna_gain.ghz24.a1 = gain; 396 SSB_SPROM1_AGAIN_A,
398 out->antenna_gain.ghz24.a2 = gain; 397 SSB_SPROM1_AGAIN_A_SHIFT);
399 out->antenna_gain.ghz24.a3 = gain;
400 gain = r123_extract_antgain(out->revision, in,
401 SSB_SPROM1_AGAIN_A,
402 SSB_SPROM1_AGAIN_A_SHIFT);
403 out->antenna_gain.ghz5.a0 = gain;
404 out->antenna_gain.ghz5.a1 = gain;
405 out->antenna_gain.ghz5.a2 = gain;
406 out->antenna_gain.ghz5.a3 = gain;
407} 398}
408 399
409/* Revs 4 5 and 8 have partially shared layout */ 400/* Revs 4 5 and 8 have partially shared layout */
@@ -504,16 +495,14 @@ static void sprom_extract_r45(struct ssb_sprom *out, const u16 *in)
504 } 495 }
505 496
506 /* Extract the antenna gain values. */ 497 /* Extract the antenna gain values. */
507 SPEX(antenna_gain.ghz24.a0, SSB_SPROM4_AGAIN01, 498 SPEX(antenna_gain.a0, SSB_SPROM4_AGAIN01,
508 SSB_SPROM4_AGAIN0, SSB_SPROM4_AGAIN0_SHIFT); 499 SSB_SPROM4_AGAIN0, SSB_SPROM4_AGAIN0_SHIFT);
509 SPEX(antenna_gain.ghz24.a1, SSB_SPROM4_AGAIN01, 500 SPEX(antenna_gain.a1, SSB_SPROM4_AGAIN01,
510 SSB_SPROM4_AGAIN1, SSB_SPROM4_AGAIN1_SHIFT); 501 SSB_SPROM4_AGAIN1, SSB_SPROM4_AGAIN1_SHIFT);
511 SPEX(antenna_gain.ghz24.a2, SSB_SPROM4_AGAIN23, 502 SPEX(antenna_gain.a2, SSB_SPROM4_AGAIN23,
512 SSB_SPROM4_AGAIN2, SSB_SPROM4_AGAIN2_SHIFT); 503 SSB_SPROM4_AGAIN2, SSB_SPROM4_AGAIN2_SHIFT);
513 SPEX(antenna_gain.ghz24.a3, SSB_SPROM4_AGAIN23, 504 SPEX(antenna_gain.a3, SSB_SPROM4_AGAIN23,
514 SSB_SPROM4_AGAIN3, SSB_SPROM4_AGAIN3_SHIFT); 505 SSB_SPROM4_AGAIN3, SSB_SPROM4_AGAIN3_SHIFT);
515 memcpy(&out->antenna_gain.ghz5, &out->antenna_gain.ghz24,
516 sizeof(out->antenna_gain.ghz5));
517 506
518 sprom_extract_r458(out, in); 507 sprom_extract_r458(out, in);
519 508
@@ -602,16 +591,14 @@ static void sprom_extract_r8(struct ssb_sprom *out, const u16 *in)
602 SPEX32(ofdm5ghpo, SSB_SPROM8_OFDM5GHPO, 0xFFFFFFFF, 0); 591 SPEX32(ofdm5ghpo, SSB_SPROM8_OFDM5GHPO, 0xFFFFFFFF, 0);
603 592
604 /* Extract the antenna gain values. */ 593 /* Extract the antenna gain values. */
605 SPEX(antenna_gain.ghz24.a0, SSB_SPROM8_AGAIN01, 594 SPEX(antenna_gain.a0, SSB_SPROM8_AGAIN01,
606 SSB_SPROM8_AGAIN0, SSB_SPROM8_AGAIN0_SHIFT); 595 SSB_SPROM8_AGAIN0, SSB_SPROM8_AGAIN0_SHIFT);
607 SPEX(antenna_gain.ghz24.a1, SSB_SPROM8_AGAIN01, 596 SPEX(antenna_gain.a1, SSB_SPROM8_AGAIN01,
608 SSB_SPROM8_AGAIN1, SSB_SPROM8_AGAIN1_SHIFT); 597 SSB_SPROM8_AGAIN1, SSB_SPROM8_AGAIN1_SHIFT);
609 SPEX(antenna_gain.ghz24.a2, SSB_SPROM8_AGAIN23, 598 SPEX(antenna_gain.a2, SSB_SPROM8_AGAIN23,
610 SSB_SPROM8_AGAIN2, SSB_SPROM8_AGAIN2_SHIFT); 599 SSB_SPROM8_AGAIN2, SSB_SPROM8_AGAIN2_SHIFT);
611 SPEX(antenna_gain.ghz24.a3, SSB_SPROM8_AGAIN23, 600 SPEX(antenna_gain.a3, SSB_SPROM8_AGAIN23,
612 SSB_SPROM8_AGAIN3, SSB_SPROM8_AGAIN3_SHIFT); 601 SSB_SPROM8_AGAIN3, SSB_SPROM8_AGAIN3_SHIFT);
613 memcpy(&out->antenna_gain.ghz5, &out->antenna_gain.ghz24,
614 sizeof(out->antenna_gain.ghz5));
615 602
616 /* Extract cores power info info */ 603 /* Extract cores power info info */
617 for (i = 0; i < ARRAY_SIZE(pwr_info_offset); i++) { 604 for (i = 0; i < ARRAY_SIZE(pwr_info_offset); i++) {
diff --git a/drivers/ssb/pcmcia.c b/drivers/ssb/pcmcia.c
index c821c6b2a6a0..fbafed5b729b 100644
--- a/drivers/ssb/pcmcia.c
+++ b/drivers/ssb/pcmcia.c
@@ -676,14 +676,10 @@ static int ssb_pcmcia_do_get_invariants(struct pcmcia_device *p_dev,
676 case SSB_PCMCIA_CIS_ANTGAIN: 676 case SSB_PCMCIA_CIS_ANTGAIN:
677 GOTO_ERROR_ON(tuple->TupleDataLen != 2, 677 GOTO_ERROR_ON(tuple->TupleDataLen != 2,
678 "antg tpl size"); 678 "antg tpl size");
679 sprom->antenna_gain.ghz24.a0 = tuple->TupleData[1]; 679 sprom->antenna_gain.a0 = tuple->TupleData[1];
680 sprom->antenna_gain.ghz24.a1 = tuple->TupleData[1]; 680 sprom->antenna_gain.a1 = tuple->TupleData[1];
681 sprom->antenna_gain.ghz24.a2 = tuple->TupleData[1]; 681 sprom->antenna_gain.a2 = tuple->TupleData[1];
682 sprom->antenna_gain.ghz24.a3 = tuple->TupleData[1]; 682 sprom->antenna_gain.a3 = tuple->TupleData[1];
683 sprom->antenna_gain.ghz5.a0 = tuple->TupleData[1];
684 sprom->antenna_gain.ghz5.a1 = tuple->TupleData[1];
685 sprom->antenna_gain.ghz5.a2 = tuple->TupleData[1];
686 sprom->antenna_gain.ghz5.a3 = tuple->TupleData[1];
687 break; 683 break;
688 case SSB_PCMCIA_CIS_BFLAGS: 684 case SSB_PCMCIA_CIS_BFLAGS:
689 GOTO_ERROR_ON((tuple->TupleDataLen != 3) && 685 GOTO_ERROR_ON((tuple->TupleDataLen != 3) &&
diff --git a/drivers/ssb/sdio.c b/drivers/ssb/sdio.c
index 63fd709038ca..b2d36f7736c5 100644
--- a/drivers/ssb/sdio.c
+++ b/drivers/ssb/sdio.c
@@ -551,14 +551,10 @@ int ssb_sdio_get_invariants(struct ssb_bus *bus,
551 case SSB_SDIO_CIS_ANTGAIN: 551 case SSB_SDIO_CIS_ANTGAIN:
552 GOTO_ERROR_ON(tuple->size != 2, 552 GOTO_ERROR_ON(tuple->size != 2,
553 "antg tpl size"); 553 "antg tpl size");
554 sprom->antenna_gain.ghz24.a0 = tuple->data[1]; 554 sprom->antenna_gain.a0 = tuple->data[1];
555 sprom->antenna_gain.ghz24.a1 = tuple->data[1]; 555 sprom->antenna_gain.a1 = tuple->data[1];
556 sprom->antenna_gain.ghz24.a2 = tuple->data[1]; 556 sprom->antenna_gain.a2 = tuple->data[1];
557 sprom->antenna_gain.ghz24.a3 = tuple->data[1]; 557 sprom->antenna_gain.a3 = tuple->data[1];
558 sprom->antenna_gain.ghz5.a0 = tuple->data[1];
559 sprom->antenna_gain.ghz5.a1 = tuple->data[1];
560 sprom->antenna_gain.ghz5.a2 = tuple->data[1];
561 sprom->antenna_gain.ghz5.a3 = tuple->data[1];
562 break; 558 break;
563 case SSB_SDIO_CIS_BFLAGS: 559 case SSB_SDIO_CIS_BFLAGS:
564 GOTO_ERROR_ON((tuple->size != 3) && 560 GOTO_ERROR_ON((tuple->size != 3) &&
diff --git a/include/linux/ssb/ssb.h b/include/linux/ssb/ssb.h
index f1696213e3b5..1de56757e949 100644
--- a/include/linux/ssb/ssb.h
+++ b/include/linux/ssb/ssb.h
@@ -94,12 +94,7 @@ struct ssb_sprom {
94 * on each band. Values in dBm/4 (Q5.2). Negative gain means the 94 * on each band. Values in dBm/4 (Q5.2). Negative gain means the
95 * loss in the connectors is bigger than the gain. */ 95 * loss in the connectors is bigger than the gain. */
96 struct { 96 struct {
97 struct { 97 s8 a0, a1, a2, a3;
98 s8 a0, a1, a2, a3;
99 } ghz24; /* 2.4GHz band */
100 struct {
101 s8 a0, a1, a2, a3;
102 } ghz5; /* 5GHz band */
103 } antenna_gain; 98 } antenna_gain;
104 99
105 struct { 100 struct {