1. 21 11月, 2015 1 次提交
    • S
      clk: qcom: Specify LE device endianness · 329cabce
      Stephen Boyd 提交于
      All these clock controllers are little endian devices, but so far
      we've been relying on the regmap mmio bus handling this for us
      without explicitly stating that fact. After commit 4a98da2164cf
      (regmap-mmio: Use native endianness for read/write, 2015-10-29),
      the regmap mmio bus will read/write with the __raw_*() IO
      accessors, instead of using the readl/writel() APIs that do
      proper byte swapping for little endian devices.
      
      So if we're running on a big endian processor and haven't
      specified the endianness explicitly in the regmap config or in
      DT, we're going to switch from doing little endian byte swapping
      to big endian accesses without byte swapping, leading to some
      confusing results. On my apq8074 dragonboard, this causes the
      device to fail to boot as we access the clock controller with
      big endian IO accesses even though the device is little endian.
      
      Specify the endianness explicitly so that the regmap core
      properly byte swaps the accesses for us.
      Reported-by: NKevin Hilman <khilman@linaro.org>
      Tested-by: NTyler Baker <tyler.baker@linaro.org>
      Tested-by: NKevin Hilman <khilman@linaro.org>
      Cc: Simon Arlott <simon@fire.lp0.eu>
      Cc: Mark Brown <broonie@kernel.org>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      329cabce
  2. 28 10月, 2015 1 次提交
    • S
      clk: qcom: msm8960: Fix dsi1/2 halt bits · e5bf1991
      Stephen Boyd 提交于
      The halt bits for these clocks seem wrong. I get the following
      warning while booting on an msm8960-cdp:
      
      WARNING: CPU: 0 PID: 1 at drivers/clk/qcom/clk-branch.c:97 clk_branch_toggle+0xd0/0x138()
      dsi1_clk status stuck at 'on'
      Modules linked in:
      CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.3.0-rc3-00113-g5532cfb5 #110
      Hardware name: Qualcomm (Flattened Device Tree)
      [<c0216984>] (unwind_backtrace) from [<c02138f8>] (show_stack+0x10/0x14)
      [<c02138f8>] (show_stack) from [<c04a525c>] (dump_stack+0x70/0xbc)
      [<c04a525c>] (dump_stack) from [<c0223c70>] (warn_slowpath_common+0x78/0xb4)
      [<c0223c70>] (warn_slowpath_common) from [<c0223d40>] (warn_slowpath_fmt+0x30/0x40)
      [<c0223d40>] (warn_slowpath_fmt) from [<c05fc2dc>] (clk_branch_toggle+0xd0/0x138)
      [<c05fc2dc>] (clk_branch_toggle) from [<c05f3f3c>] (clk_disable_unused_subtree+0x98/0x1b0)
      [<c05f3f3c>] (clk_disable_unused_subtree) from [<c05f3ec4>] (clk_disable_unused_subtree+0x20/0x1b0)
      [<c05f3ec4>] (clk_disable_unused_subtree) from [<c05f5474>] (clk_disable_unused+0x58/0xd8)
      [<c05f5474>] (clk_disable_unused) from [<c0209710>] (do_one_initcall+0xac/0x1ec)
      [<c0209710>] (do_one_initcall) from [<c0991db4>] (kernel_init_freeable+0x11c/0x1e8)
      [<c0991db4>] (kernel_init_freeable) from [<c0727ae0>] (kernel_init+0x8/0xec)
      [<c0727ae0>] (kernel_init) from [<c0210238>] (ret_from_fork+0x14/0x3c)
      
      Fix the status bits and the errors go away.
      
      Fixes: 5532cfb5 ("clk: qcom: mmcc-8960: Add DSI related clocks")
      Acked-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      e5bf1991
  3. 17 10月, 2015 1 次提交
  4. 09 10月, 2015 1 次提交
  5. 25 8月, 2015 2 次提交
  6. 21 7月, 2015 1 次提交
  7. 07 7月, 2015 1 次提交
  8. 24 3月, 2015 1 次提交
    • G
      clk: qcom: Introduce parent_map tables · 293d2e97
      Georgi Djakov 提交于
      In the current parent mapping code, we can get duplicate or inconsistent
      indexes, which leads to discrepancy between the number of elements in the
      array and the number of parents. Until now, this was solved with some
      reordering but this is not always possible.
      
      This patch introduces index tables that are used to define the relations
      between the PLL source and the hardware mux configuration value.
      To accomplish this, here we do the following:
       - Define a parent_map struct to map the relations between PLL source index
       and register configuration value.
       - Add a qcom_find_src_index() function for finding the index of a clock
       matching the specific PLL configuration.
       - Update the {set,get}_parent RCG functions use the newly introduced
       parent_map struct.
       - Convert all existing drivers to the new parent_map tables.
      Signed-off-by: NGeorgi Djakov <georgi.djakov@linaro.org>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      293d2e97
  9. 26 9月, 2014 1 次提交
  10. 23 9月, 2014 1 次提交
  11. 16 7月, 2014 4 次提交
    • S
      clk: qcom: Add support for APQ8064 multimedia clocks · e216ce60
      Stephen Boyd 提交于
      The APQ8064 multimedia clock controller is fairly similar to the
      8960 multimedia clock controller, except that gfx2d0/1 has been
      removed and the gfx3d frequency is slightly faster when using the
      newly introduced PLL15. We also add vcap clocks and a couple new
      TV clocks.
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      e216ce60
    • S
      clk: qcom: mdp_lut_clk is a child of mdp_src · f87dfcab
      Stephen Boyd 提交于
      The mdp_lut_clk isn't a child of the mdp_clk. Instead it's the
      child of the mdp_src clock. Fix it.
      
      Fixes: 6d00b56f "clk: qcom: Add support for MSM8960's multimedia clock controller (MMCC)"
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      f87dfcab
    • S
      clk: qcom: Fix MN frequency tables, parent map, and jpegd · ff20783f
      Stephen Boyd 提交于
      Clocks that don't have a pre-divider don't list any pre-divider
      in their frequency tables, but their tables are initialized using
      aggregate initializers. Use tagged initializers so we properly
      assign the m and n values for each frequency. Furthermore, the
      mmcc_pxo_pll8_pll2_pll3 array improperly mapped the second
      element to pll2 instead of pll8, causing the clock driver to
      recalculate the wrong rate for any clocks using this array along
      with a rate that uses pll2. Plus the .num_parents field is 3
      instead of 4 so you can't even switch the parent to pll3. Finally
      I noticed that the jpegd clock improperly indicates that the
      pre-divider width is only 2, when it's actually 4 bits wide.
      
      Fixes: 6d00b56f "clk: qcom: Add support for MSM8960's multimedia clock controller (MMCC)"
      Tested-by: NRob Clark <robdclark@gmail.com>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      ff20783f
    • S
      clk: qcom: Support bypass RCG configuration · 404c1ff6
      Stephen Boyd 提交于
      In the case of HDMI clocks, we want to bypass the RCG's ability
      to divide the output clock and pass through the parent HDMI PLL
      rate. Add a simple set of clk_ops to configure the RCG to do
      this. This removes the need to keep adding more frequency entries
      to the tv_src clock whenever we want to support a new rate.
      Tested-by: NRob Clark <robdclark@gmail.com>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      404c1ff6
  12. 03 7月, 2014 1 次提交
  13. 01 5月, 2014 1 次提交
  14. 17 1月, 2014 1 次提交