]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/ssb/driver_chipcommon_pmu.c
ssb: update PMU init to match specs
[net-next-2.6.git] / drivers / ssb / driver_chipcommon_pmu.c
index 3d551245a4e22c8ce59573490d690c132e89c04c..5732bb2c35787b5093d6b12a1d3fb7029bf59990 100644 (file)
@@ -502,9 +502,9 @@ static void ssb_pmu_resources_init(struct ssb_chipcommon *cc)
                chipco_write32(cc, SSB_CHIPCO_PMU_MAXRES_MSK, max_msk);
 }
 
+/* http://bcm-v4.sipsolutions.net/802.11/SSB/PmuInit */
 void ssb_pmu_init(struct ssb_chipcommon *cc)
 {
-       struct ssb_bus *bus = cc->dev->bus;
        u32 pmucap;
 
        if (!(cc->capabilities & SSB_CHIPCO_CAP_PMU))
@@ -516,15 +516,12 @@ void ssb_pmu_init(struct ssb_chipcommon *cc)
        ssb_dprintk(KERN_DEBUG PFX "Found rev %u PMU (capabilities 0x%08X)\n",
                    cc->pmu.rev, pmucap);
 
-       if (cc->pmu.rev >= 1) {
-               if ((bus->chip_id == 0x4325) && (bus->chip_rev < 2)) {
-                       chipco_mask32(cc, SSB_CHIPCO_PMU_CTL,
-                                     ~SSB_CHIPCO_PMU_CTL_NOILPONW);
-               } else {
-                       chipco_set32(cc, SSB_CHIPCO_PMU_CTL,
-                                    SSB_CHIPCO_PMU_CTL_NOILPONW);
-               }
-       }
+       if (cc->pmu.rev == 1)
+               chipco_mask32(cc, SSB_CHIPCO_PMU_CTL,
+                             ~SSB_CHIPCO_PMU_CTL_NOILPONW);
+       else
+               chipco_set32(cc, SSB_CHIPCO_PMU_CTL,
+                            SSB_CHIPCO_PMU_CTL_NOILPONW);
        ssb_pmu_pll_init(cc);
        ssb_pmu_resources_init(cc);
 }