msm: acpuclock-krait: Use standard regulator APIs during CPU Hotplug

Voltage regulators supplying CPU cores need to be properly
notified when their underlying core goes offline. Use
regulator_disable() / regulator_enable() during this case to
notify them. Also make calls to regulator_set_voltage to
complement the regulator_disable call, since in the regulator
framework voltages are orthogonal to enable / disable.

This solves a problem on msm8974 where the ganged regulator
voltage is left higher than necessary when offlining CPU cores.

CRs-fixed: 410992
Change-Id: I1e569924133d98e75343d8b4ff24901dd2951de7
Signed-off-by: Michael Bohan <mbohan@codeaurora.org>
msm: acpuclock-krait: Add __init markings to 'krait vmin' functions

These functions are only called during boot and can be safely
discarded after.

Change-Id: I6bf20a42fec8b82c3f35e1c042b799ef2dad7790
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
msm: acpuclock-krait: Enable HFPLL for init only if switching to it

The existing code left the HFPLL enabled in hfpll_init(), even if
the CPU was detected to be at a non-HFPLL rate. Correct this for
power savings between when hfpll_init() and the first runtime CPU
frequency switch happen. This also ensure votes for HFPLL
regulators are not left unnecessarily asserted.

Change-Id: Iaca5dc7e4769bdbd494d669726ba9b500256f793
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
msm: acpuclock-krait: Only print supported number of frequencies once

The current code prints the number of CPU frequencies supported
once for each possible CPU, even though the number of supported
frequencies is the same for each CPU. Cut down on log noise by
printing this number only once.

For example, print:

  [ 0.412932] acpuclk-8974 qcom,acpuclk.23: CPU Frequencies Supported: 11

...instead of:

  [ 0.426013] acpuclk-8974 qcom,acpuclk.23: CPU0: 11 frequencies supported
  [ 0.426052] acpuclk-8974 qcom,acpuclk.23: CPU1: 11 frequencies supported
  [ 0.426089] acpuclk-8974 qcom,acpuclk.23: CPU2: 11 frequencies supported
  [ 0.426124] acpuclk-8974 qcom,acpuclk.23: CPU3: 11 frequencies supported

Change-Id: Iaf15970e6cfcfaec79c0edf8564cab9141fbc05f
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
msm: acpuclock-krait: Remove inapplicable 8064 errata workaround

The secondary MUX switching errata is worked around in the secure
warm-boot path, and does not require an in-kernel workaround.

For devices with older warm-boot code (without the workaround),
the removal of the kernel workaround is also safe. The errata
symptoms can only manifest themselves after an L2 power-collapse,
which can't occur until after all Krait CPUs have been brought
online at least once. Since the secondary MUX is only touched by
acpuclock when onlining CPUs for the first time, the MUX will
never be switched after L2 power-collapse.

Change-Id: If675cfab7f325a9f7af6e06ff5ed67bd65461f20
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
msm: acpuclock-krait: Add support for HFPLL lock detect bit polling

Some recent devices have a lock detect bit that can be used to
determine when the HFPLL frequency has stabilized. Add optional
support for polling this bit instead of delaying pessimistically
for 60us.

Change-Id: I38bb0c98e36f66fc5efadf9189dbe817f648a972
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>