+--- a/drivers/ssb/driver_chipcommon.c
++++ b/drivers/ssb/driver_chipcommon.c
+@@ -26,19 +26,6 @@ enum ssb_clksrc {
+ };
+
+
+-static inline u32 chipco_read32(struct ssb_chipcommon *cc,
+- u16 offset)
+-{
+- return ssb_read32(cc->dev, offset);
+-}
+-
+-static inline void chipco_write32(struct ssb_chipcommon *cc,
+- u16 offset,
+- u32 value)
+-{
+- ssb_write32(cc->dev, offset, value);
+-}
+-
+ static inline u32 chipco_write32_masked(struct ssb_chipcommon *cc, u16 offset,
+ u32 mask, u32 value)
+ {
+@@ -246,6 +233,7 @@ void ssb_chipcommon_init(struct ssb_chip
+ {
+ if (!cc->dev)
+ return; /* We don't have a ChipCommon */
++ ssb_pmu_init(cc);
+ chipco_powercontrol_init(cc);
+ ssb_chipco_set_clockmode(cc, SSB_CLKMODE_FAST);
+ calc_fast_powerup_delay(cc);
+--- a/drivers/ssb/scan.c
++++ b/drivers/ssb/scan.c
+@@ -175,6 +175,8 @@ static u32 scan_read32(struct ssb_bus *b
+ } else
+ ssb_pcmcia_switch_segment(bus, 0);
+ break;
++ default:
++ break;
+ }
+ return readl(bus->mmio + offset);
+ }
+@@ -188,6 +190,8 @@ static int scan_switchcore(struct ssb_bu
+ return ssb_pci_switch_coreidx(bus, coreidx);
+ case SSB_BUSTYPE_PCMCIA:
+ return ssb_pcmcia_switch_coreidx(bus, coreidx);
++ default:
++ break;
+ }
+ return 0;
+ }
+@@ -206,6 +210,8 @@ void ssb_iounmap(struct ssb_bus *bus)
+ SSB_BUG_ON(1); /* Can't reach this code. */
+ #endif
+ break;
++ default:
++ break;
+ }
+ bus->mmio = NULL;
+ bus->mapped_device = NULL;
+@@ -230,6 +236,8 @@ static void __iomem *ssb_ioremap(struct
+ SSB_BUG_ON(1); /* Can't reach this code. */
+ #endif
+ break;
++ default:
++ break;
+ }
+
+ return mmio;