pci.c (6daf43216fd5171f0f44504226efeb5563538f66) | pci.c (6ad59343ecd72dd3f83c4db3bcddbb0beabb4c4c) |
---|---|
1/* 2 * Sonics Silicon Backplane PCI-Hostbus related functions. 3 * 4 * Copyright (C) 2005-2006 Michael Buesch <m@bues.ch> 5 * Copyright (C) 2005 Martin Langer <martin-langer@gmx.de> 6 * Copyright (C) 2005 Stefano Brivio <st3@riseup.net> 7 * Copyright (C) 2005 Danny van Dyk <kugelfang@gentoo.org> 8 * Copyright (C) 2005 Andreas Jaggi <andreas.jaggi@waterwave.ch> --- 456 unchanged lines hidden (view full) --- 465 SPEX(txpid5gh[2], SSB_SPROM4_TXPID5GH23, 466 SSB_SPROM4_TXPID5GH2, SSB_SPROM4_TXPID5GH2_SHIFT); 467 SPEX(txpid5gh[3], SSB_SPROM4_TXPID5GH23, 468 SSB_SPROM4_TXPID5GH3, SSB_SPROM4_TXPID5GH3_SHIFT); 469} 470 471static void sprom_extract_r45(struct ssb_sprom *out, const u16 *in) 472{ | 1/* 2 * Sonics Silicon Backplane PCI-Hostbus related functions. 3 * 4 * Copyright (C) 2005-2006 Michael Buesch <m@bues.ch> 5 * Copyright (C) 2005 Martin Langer <martin-langer@gmx.de> 6 * Copyright (C) 2005 Stefano Brivio <st3@riseup.net> 7 * Copyright (C) 2005 Danny van Dyk <kugelfang@gentoo.org> 8 * Copyright (C) 2005 Andreas Jaggi <andreas.jaggi@waterwave.ch> --- 456 unchanged lines hidden (view full) --- 465 SPEX(txpid5gh[2], SSB_SPROM4_TXPID5GH23, 466 SSB_SPROM4_TXPID5GH2, SSB_SPROM4_TXPID5GH2_SHIFT); 467 SPEX(txpid5gh[3], SSB_SPROM4_TXPID5GH23, 468 SSB_SPROM4_TXPID5GH3, SSB_SPROM4_TXPID5GH3_SHIFT); 469} 470 471static void sprom_extract_r45(struct ssb_sprom *out, const u16 *in) 472{ |
473 static const u16 pwr_info_offset[] = { 474 SSB_SPROM4_PWR_INFO_CORE0, SSB_SPROM4_PWR_INFO_CORE1, 475 SSB_SPROM4_PWR_INFO_CORE2, SSB_SPROM4_PWR_INFO_CORE3 476 }; |
|
473 u16 il0mac_offset; | 477 u16 il0mac_offset; |
478 int i; |
|
474 | 479 |
480 BUILD_BUG_ON(ARRAY_SIZE(pwr_info_offset) != 481 ARRAY_SIZE(out->core_pwr_info)); 482 |
|
475 if (out->revision == 4) 476 il0mac_offset = SSB_SPROM4_IL0MAC; 477 else 478 il0mac_offset = SSB_SPROM5_IL0MAC; 479 480 sprom_get_mac(out->il0mac, &in[SPOFF(il0mac_offset)]); 481 482 SPEX(et0phyaddr, SSB_SPROM4_ETHPHY, SSB_SPROM4_ETHPHY_ET0A, 0); --- 55 unchanged lines hidden (view full) --- 538 SSB_SPROM4_AGAIN23, 539 SSB_SPROM4_AGAIN2, 540 SSB_SPROM4_AGAIN2_SHIFT); 541 out->antenna_gain.a3 = sprom_extract_antgain(out->revision, in, 542 SSB_SPROM4_AGAIN23, 543 SSB_SPROM4_AGAIN3, 544 SSB_SPROM4_AGAIN3_SHIFT); 545 | 483 if (out->revision == 4) 484 il0mac_offset = SSB_SPROM4_IL0MAC; 485 else 486 il0mac_offset = SSB_SPROM5_IL0MAC; 487 488 sprom_get_mac(out->il0mac, &in[SPOFF(il0mac_offset)]); 489 490 SPEX(et0phyaddr, SSB_SPROM4_ETHPHY, SSB_SPROM4_ETHPHY_ET0A, 0); --- 55 unchanged lines hidden (view full) --- 546 SSB_SPROM4_AGAIN23, 547 SSB_SPROM4_AGAIN2, 548 SSB_SPROM4_AGAIN2_SHIFT); 549 out->antenna_gain.a3 = sprom_extract_antgain(out->revision, in, 550 SSB_SPROM4_AGAIN23, 551 SSB_SPROM4_AGAIN3, 552 SSB_SPROM4_AGAIN3_SHIFT); 553 |
554 /* Extract cores power info info */ 555 for (i = 0; i < ARRAY_SIZE(pwr_info_offset); i++) { 556 u16 o = pwr_info_offset[i]; 557 558 SPEX(core_pwr_info[i].itssi_2g, o + SSB_SPROM4_2G_MAXP_ITSSI, 559 SSB_SPROM4_2G_ITSSI, SSB_SPROM4_2G_ITSSI_SHIFT); 560 SPEX(core_pwr_info[i].maxpwr_2g, o + SSB_SPROM4_2G_MAXP_ITSSI, 561 SSB_SPROM4_2G_MAXP, 0); 562 563 SPEX(core_pwr_info[i].pa_2g[0], o + SSB_SPROM4_2G_PA_0, ~0, 0); 564 SPEX(core_pwr_info[i].pa_2g[1], o + SSB_SPROM4_2G_PA_1, ~0, 0); 565 SPEX(core_pwr_info[i].pa_2g[2], o + SSB_SPROM4_2G_PA_2, ~0, 0); 566 SPEX(core_pwr_info[i].pa_2g[3], o + SSB_SPROM4_2G_PA_3, ~0, 0); 567 568 SPEX(core_pwr_info[i].itssi_5g, o + SSB_SPROM4_5G_MAXP_ITSSI, 569 SSB_SPROM4_5G_ITSSI, SSB_SPROM4_5G_ITSSI_SHIFT); 570 SPEX(core_pwr_info[i].maxpwr_5g, o + SSB_SPROM4_5G_MAXP_ITSSI, 571 SSB_SPROM4_5G_MAXP, 0); 572 SPEX(core_pwr_info[i].maxpwr_5gh, o + SSB_SPROM4_5GHL_MAXP, 573 SSB_SPROM4_5GH_MAXP, 0); 574 SPEX(core_pwr_info[i].maxpwr_5gl, o + SSB_SPROM4_5GHL_MAXP, 575 SSB_SPROM4_5GL_MAXP, SSB_SPROM4_5GL_MAXP_SHIFT); 576 577 SPEX(core_pwr_info[i].pa_5gl[0], o + SSB_SPROM4_5GL_PA_0, ~0, 0); 578 SPEX(core_pwr_info[i].pa_5gl[1], o + SSB_SPROM4_5GL_PA_1, ~0, 0); 579 SPEX(core_pwr_info[i].pa_5gl[2], o + SSB_SPROM4_5GL_PA_2, ~0, 0); 580 SPEX(core_pwr_info[i].pa_5gl[3], o + SSB_SPROM4_5GL_PA_3, ~0, 0); 581 SPEX(core_pwr_info[i].pa_5g[0], o + SSB_SPROM4_5G_PA_0, ~0, 0); 582 SPEX(core_pwr_info[i].pa_5g[1], o + SSB_SPROM4_5G_PA_1, ~0, 0); 583 SPEX(core_pwr_info[i].pa_5g[2], o + SSB_SPROM4_5G_PA_2, ~0, 0); 584 SPEX(core_pwr_info[i].pa_5g[3], o + SSB_SPROM4_5G_PA_3, ~0, 0); 585 SPEX(core_pwr_info[i].pa_5gh[0], o + SSB_SPROM4_5GH_PA_0, ~0, 0); 586 SPEX(core_pwr_info[i].pa_5gh[1], o + SSB_SPROM4_5GH_PA_1, ~0, 0); 587 SPEX(core_pwr_info[i].pa_5gh[2], o + SSB_SPROM4_5GH_PA_2, ~0, 0); 588 SPEX(core_pwr_info[i].pa_5gh[3], o + SSB_SPROM4_5GH_PA_3, ~0, 0); 589 } 590 |
|
546 sprom_extract_r458(out, in); 547 548 /* TODO - get remaining rev 4 stuff needed */ 549} 550 551static void sprom_extract_r8(struct ssb_sprom *out, const u16 *in) 552{ 553 int i; --- 591 unchanged lines hidden --- | 591 sprom_extract_r458(out, in); 592 593 /* TODO - get remaining rev 4 stuff needed */ 594} 595 596static void sprom_extract_r8(struct ssb_sprom *out, const u16 *in) 597{ 598 int i; --- 591 unchanged lines hidden --- |