clk: qcom: Fix pre-divider usage for pixel RCG
authorArchit Taneja <architt@codeaurora.org>
Sun, 28 Feb 2016 10:07:17 +0000 (15:37 +0530)
committerStephen Boyd <sboyd@codeaurora.org>
Mon, 29 Feb 2016 20:57:06 +0000 (12:57 -0800)
commit811a498e5e9ab802cbd23a8ef9c844ec92450fa4
treeb869f7a6bfd55c6f85e18347af59e9feb2fe000b
parentd3622b5885dc424cfb5e27ff7a3c79d942b2acb4
clk: qcom: Fix pre-divider usage for pixel RCG

The clk_rcg_pixel_set_rate clk_op sets up the pre-divider by reading
its current value from the NS register.

Using the pre-divider wasn't really intended when creating these ops.
The pixel RCG was only intended to achieve fractional multiplication
provided in the pixel_table array. Leaving the pre-divider to the
existing register value results in a wrong pixel clock when the
bootloader sets up the display. This was left unidentified because
the IFC6410 Plus board on which this was verified didn't have a
bootloader that configured the display.

Don't set the RCG pre-divider in freq_tbl to the existing NS register
value. Force it to 1 and only use the M/N counter to achieve the desired
fractional multiplication.

Cc: Vinay Simha <vinaysimha@inforcecomputing.com>
Signed-off-by: Archit Taneja <architt@codeaurora.org>
Tested-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
drivers/clk/qcom/clk-rcg.c