diff options
| author | John W. Linville <linville@tuxdriver.com> | 2013-04-23 14:09:39 -0400 |
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2013-04-23 14:09:39 -0400 |
| commit | ec094144cdd54a36e65a69161e9705959c09cb23 (patch) | |
| tree | 5a41c0f766143e462bfde8515ca6547d4ee7f78e /drivers/ssb | |
| parent | c43933e61ea9b630521bf0d5cf06c155478308a7 (diff) | |
| parent | f09a878511997c25a76bf111a32f6b8345a701a5 (diff) | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
Conflicts:
drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
Diffstat (limited to 'drivers/ssb')
| -rw-r--r-- | drivers/ssb/driver_chipcommon_pmu.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/drivers/ssb/driver_chipcommon_pmu.c b/drivers/ssb/driver_chipcommon_pmu.c index 791da2c0d8f6..23c5dbfea115 100644 --- a/drivers/ssb/driver_chipcommon_pmu.c +++ b/drivers/ssb/driver_chipcommon_pmu.c | |||
| @@ -670,3 +670,32 @@ u32 ssb_pmu_get_controlclock(struct ssb_chipcommon *cc) | |||
| 670 | return 0; | 670 | return 0; |
| 671 | } | 671 | } |
| 672 | } | 672 | } |
| 673 | |||
| 674 | void ssb_pmu_spuravoid_pllupdate(struct ssb_chipcommon *cc, int spuravoid) | ||
| 675 | { | ||
| 676 | u32 pmu_ctl = 0; | ||
| 677 | |||
| 678 | switch (cc->dev->bus->chip_id) { | ||
| 679 | case 0x4322: | ||
| 680 | ssb_chipco_pll_write(cc, SSB_PMU1_PLLCTL0, 0x11100070); | ||
| 681 | ssb_chipco_pll_write(cc, SSB_PMU1_PLLCTL1, 0x1014140a); | ||
| 682 | ssb_chipco_pll_write(cc, SSB_PMU1_PLLCTL5, 0x88888854); | ||
| 683 | if (spuravoid == 1) | ||
| 684 | ssb_chipco_pll_write(cc, SSB_PMU1_PLLCTL2, 0x05201828); | ||
| 685 | else | ||
| 686 | ssb_chipco_pll_write(cc, SSB_PMU1_PLLCTL2, 0x05001828); | ||
| 687 | pmu_ctl = SSB_CHIPCO_PMU_CTL_PLL_UPD; | ||
| 688 | break; | ||
| 689 | case 43222: | ||
| 690 | /* TODO: BCM43222 requires updating PLLs too */ | ||
| 691 | return; | ||
| 692 | default: | ||
| 693 | ssb_printk(KERN_ERR PFX | ||
| 694 | "Unknown spuravoidance settings for chip 0x%04X, not changing PLL\n", | ||
| 695 | cc->dev->bus->chip_id); | ||
| 696 | return; | ||
| 697 | } | ||
| 698 | |||
| 699 | chipco_set32(cc, SSB_CHIPCO_PMU_CTL, pmu_ctl); | ||
| 700 | } | ||
| 701 | EXPORT_SYMBOL_GPL(ssb_pmu_spuravoid_pllupdate); | ||
