Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[firefly-linux-kernel-4.4.55.git] / drivers / bcma / core.c
index 03bbe104338ff70db5abb6fbace10b1595f438a0..17b26ce7e051b1374b6be01f18f3dd1cad057e56 100644 (file)
@@ -104,7 +104,13 @@ void bcma_core_pll_ctl(struct bcma_device *core, u32 req, u32 status, bool on)
                if (i)
                        bcma_err(core->bus, "PLL enable timeout\n");
        } else {
-               bcma_warn(core->bus, "Disabling PLL not supported yet!\n");
+               /*
+                * Mask the PLL but don't wait for it to be disabled. PLL may be
+                * shared between cores and will be still up if there is another
+                * core using it.
+                */
+               bcma_mask32(core, BCMA_CLKCTLST, ~req);
+               bcma_read32(core, BCMA_CLKCTLST);
        }
 }
 EXPORT_SYMBOL_GPL(bcma_core_pll_ctl);