diff options
-rw-r--r-- | drivers/net/wireless/b43legacy/phy.c | 2 | ||||
-rw-r--r-- | drivers/ssb/pci.c | 41 | ||||
-rw-r--r-- | drivers/ssb/pcmcia.c | 12 | ||||
-rw-r--r-- | drivers/ssb/sdio.c | 12 | ||||
-rw-r--r-- | include/linux/ssb/ssb.h | 7 |
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 { |