diff options
Diffstat (limited to 'drivers/ssb/driver_chipcommon_pmu.c')
-rw-r--r-- | drivers/ssb/driver_chipcommon_pmu.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/drivers/ssb/driver_chipcommon_pmu.c b/drivers/ssb/driver_chipcommon_pmu.c index 3d551245a4e2..5732bb2c3578 100644 --- a/drivers/ssb/driver_chipcommon_pmu.c +++ b/drivers/ssb/driver_chipcommon_pmu.c | |||
@@ -502,9 +502,9 @@ static void ssb_pmu_resources_init(struct ssb_chipcommon *cc) | |||
502 | chipco_write32(cc, SSB_CHIPCO_PMU_MAXRES_MSK, max_msk); | 502 | chipco_write32(cc, SSB_CHIPCO_PMU_MAXRES_MSK, max_msk); |
503 | } | 503 | } |
504 | 504 | ||
505 | /* http://bcm-v4.sipsolutions.net/802.11/SSB/PmuInit */ | ||
505 | void ssb_pmu_init(struct ssb_chipcommon *cc) | 506 | void ssb_pmu_init(struct ssb_chipcommon *cc) |
506 | { | 507 | { |
507 | struct ssb_bus *bus = cc->dev->bus; | ||
508 | u32 pmucap; | 508 | u32 pmucap; |
509 | 509 | ||
510 | if (!(cc->capabilities & SSB_CHIPCO_CAP_PMU)) | 510 | if (!(cc->capabilities & SSB_CHIPCO_CAP_PMU)) |
@@ -516,15 +516,12 @@ void ssb_pmu_init(struct ssb_chipcommon *cc) | |||
516 | ssb_dprintk(KERN_DEBUG PFX "Found rev %u PMU (capabilities 0x%08X)\n", | 516 | ssb_dprintk(KERN_DEBUG PFX "Found rev %u PMU (capabilities 0x%08X)\n", |
517 | cc->pmu.rev, pmucap); | 517 | cc->pmu.rev, pmucap); |
518 | 518 | ||
519 | if (cc->pmu.rev >= 1) { | 519 | if (cc->pmu.rev == 1) |
520 | if ((bus->chip_id == 0x4325) && (bus->chip_rev < 2)) { | 520 | chipco_mask32(cc, SSB_CHIPCO_PMU_CTL, |
521 | chipco_mask32(cc, SSB_CHIPCO_PMU_CTL, | 521 | ~SSB_CHIPCO_PMU_CTL_NOILPONW); |
522 | ~SSB_CHIPCO_PMU_CTL_NOILPONW); | 522 | else |
523 | } else { | 523 | chipco_set32(cc, SSB_CHIPCO_PMU_CTL, |
524 | chipco_set32(cc, SSB_CHIPCO_PMU_CTL, | 524 | SSB_CHIPCO_PMU_CTL_NOILPONW); |
525 | SSB_CHIPCO_PMU_CTL_NOILPONW); | ||
526 | } | ||
527 | } | ||
528 | ssb_pmu_pll_init(cc); | 525 | ssb_pmu_pll_init(cc); |
529 | ssb_pmu_resources_init(cc); | 526 | ssb_pmu_resources_init(cc); |
530 | } | 527 | } |