1. 13 2月, 2016 1 次提交
    • S
      Revert "clk: qcom: Specify LE device endianness" · c430daf9
      Stephen Boyd 提交于
      This reverts commit 329cabce.
      
      The commit that caused us to specify LE device endianness here,
      29bb45f2 (regmap-mmio: Use native endianness for read/write,
      2015-10-29), has been reverted in mainline so now when we specify
      LE it actively breaks big endian kernels because the byte
      swapping in regmap-mmio is incorrect. Let's revert this change
      because it will 1) fix the big endian kernels and 2) be redundant
      to specify LE because that will become the default soon.
      
      Cc: Kevin Hilman <khilman@linaro.org>
      Tested-by: NKevin Hilman <khilman@baylibre.com>
      Cc: Mark Brown <broonie@kernel.org>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      c430daf9
  2. 11 2月, 2016 1 次提交
    • L
      clk: versatile: mask VCO bits before writing · df9cd564
      Linus Walleij 提交于
      The Versatile syscon ICST driver OR:s the bits into place but
      forgets to mask the previous value, making the code only work
      if the register is zero or giving haphazard results. Mask the
      19 bits used by the Versatile syscon interface register.
      
      Regression caused and now fixed by yours truly.
      
      Cc: Michael Turquette <mturquette@baylibre.com>
      Cc: Stephen Boyd <sboyd@codeaurora.org>
      Cc: linux-clk@vger.kernel.org
      Fixes: 179c8fb3 ("clk: versatile-icst: convert to use regmap")
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      df9cd564
  3. 02 2月, 2016 15 次提交
    • J
      clk: tegra: super: Fix sparse warnings for functions not declared as static · 5a1d5eff
      Jon Hunter 提交于
      Sparse reports the following warnings for structures and functions that
      should be declared static:
      
      drivers/clk/tegra/clk-tegra-super-gen4.c:70:35: warning: symbol
       'tegra_super_gen_info_gen4' was not declared. Should it be static?
      drivers/clk/tegra/clk-tegra-super-gen4.c:96:35: warning: symbol
       'tegra_super_gen_info_gen5' was not declared. Should it be static?
      drivers/clk/tegra/clk-tegra-super-gen4.c:174:13: warning: symbol
       'tegra_super_clk_init' was not declared. Should it be static?
      
      Fix this by making the above static.
      Signed-off-by: NJon Hunter <jonathanh@nvidia.com>
      Acked-by: NRhyland Klein <rklein@nvidia.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      5a1d5eff
    • J
      clk: tegra: Fix sparse warnings for functions not declared as static · fd360e20
      Jon Hunter 提交于
      Sparse reports the following warnings for functions in clk-tegra210.c
      that should be declared as static:
      
      drivers/clk/tegra/clk-tegra210.c:460:6: warning: symbol
       'tegra210_pllcx_set_defaults' was not declared. Should it be static?
      drivers/clk/tegra/clk-tegra210.c:485:6: warning: symbol
       '_pllc_set_defaults' was not declared. Should it be static?
      drivers/clk/tegra/clk-tegra210.c:490:6: warning: symbol
       '_pllc2_set_defaults' was not declared. Should it be static?
      drivers/clk/tegra/clk-tegra210.c:495:6: warning: symbol
       '_pllc3_set_defaults' was not declared. Should it be static?
      drivers/clk/tegra/clk-tegra210.c:500:6: warning: symbol
       '_plla1_set_defaults' was not declared. Should it be static?
      drivers/clk/tegra/clk-tegra210.c:510:6: warning: symbol
       'tegra210_plla_set_defaults' was not declared. Should it be static?
      drivers/clk/tegra/clk-tegra210.c:562:6: warning: symbol
       'tegra210_plld_set_defaults' was not declared. Should it be static?
      drivers/clk/tegra/clk-tegra210.c:701:6: warning: symbol
       'tegra210_plld2_set_defaults' was not declared. Should it be static?
      drivers/clk/tegra/clk-tegra210.c:709:6: warning: symbol
       'tegra210_plldp_set_defaults' was not declared. Should it be static?
      drivers/clk/tegra/clk-tegra210.c:722:6: warning: symbol
       'tegra210_pllc4_set_defaults' was not declared. Should it be static?
      drivers/clk/tegra/clk-tegra210.c:731:6: warning: symbol
       'tegra210_pllre_set_defaults' was not declared. Should it be static?
      drivers/clk/tegra/clk-tegra210.c:844:6: warning: symbol
       'tegra210_pllx_set_defaults' was not declared. Should it be static?
      drivers/clk/tegra/clk-tegra210.c:904:6: warning: symbol
       'tegra210_pllmb_set_defaults' was not declared. Should it be static?
      drivers/clk/tegra/clk-tegra210.c:963:6: warning: symbol
       'tegra210_pllp_set_defaults' was not declared. Should it be static?
      drivers/clk/tegra/clk-tegra210.c:1025:6: warning: symbol
       'tegra210_pllu_set_defaults' was not declared. Should it be static?
      drivers/clk/tegra/clk-tegra210.c:1215:15: warning: symbol
       'tegra210_clk_adjust_vco_min' was not declared. Should it be static?
      
      Fix this by declaring the above as static.
      Signed-off-by: NJon Hunter <jonathanh@nvidia.com>
      Acked-by: NRhyland Klein <rklein@nvidia.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      fd360e20
    • J
      clk: tegra: Fix sparse warning for pll_m · d9e65791
      Jon Hunter 提交于
      Sparse generates the following warning for the pll_m params structure:
      
      drivers/clk/tegra/clk-tegra210.c:1569:10: warning: Initializer entry
       defined twice
      drivers/clk/tegra/clk-tegra210.c:1570:10:   also defined here
      
      Fix this by correcting the index for the MISC1 register.
      
      Fixes: b31eba5ff3f7 ("clk: tegra: Add support for Tegra210 clocks")
      Signed-off-by: NJon Hunter <jonathanh@nvidia.com>
      Acked-by: NRhyland Klein <rklein@nvidia.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      d9e65791
    • J
      clk: tegra: Use definition for pll_u override bit · 2d5b6cf8
      Jon Hunter 提交于
      The definition, PLLU_BASE_OVERRIDE, for the pll_u OVERRIDE bit is defined
      but not used and when the OVERRIDE bit is cleared in tegra210_pll_init()
      the code directly uses the bit number. Therefore, use the definition,
      PLLU_BASE_OVERRIDE when clearing the OVERRIDE bit.
      Signed-off-by: NJon Hunter <jonathanh@nvidia.com>
      Acked-by: NRhyland Klein <rklein@nvidia.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      2d5b6cf8
    • J
      clk: tegra: Fix warning caused by pll_u failing to lock · 0649c323
      Jon Hunter 提交于
      If the pll_u is not configured by the bootloader, then on kernel boot the
      following warning is seen:
      
       clk_pll_wait_for_lock: Timed out waiting for pll pll_u_vco lock
       tegra_init_from_table: Failed to enable pll_u_out1
       ------------[ cut here ]------------
       WARNING: at drivers/clk/tegra/clk.c:269
       Modules linked in:
      
       CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.4.0-rc4-next-20151214+ #1
       Hardware name: NVIDIA Tegra210 P2371 reference board (E.1) (DT)
       task: ffffffc0bc0a0000 ti: ffffffc0bc0a8000 task.ti: ffffffc0bc0a8000
       PC is at tegra_init_from_table+0x140/0x164
       LR is at tegra_init_from_table+0x140/0x164
       pc : [<ffffffc0008fee78>] lr : [<ffffffc0008fee78>] pstate: 80000045
       sp : ffffffc0bc0abd50
       x29: ffffffc0bc0abd50 x28: ffffffc00090b8a8
       x27: ffffffc000a06000 x26: ffffffc0bc019780
       x25: ffffffc00086a708 x24: ffffffc00086a790
       x23: ffffffc0006d7188 x22: ffffffc0bc010000
       x21: 000000000000016e x20: ffffffc0bc00d100
       x19: ffffffc000944178 x18: 0000000000000007
       x17: 000000000000000e x16: 0000000000000001
       x15: 0000000000000007 x14: 000000000000000e
       x13: 0000000000000013 x12: 000000000000001a
       x11: 000000000000004d x10: 0000000000000750
       x9 : ffffffc0bc0a8000 x8 : ffffffc0bc0a07b0
       x7 : 0000000000000001 x6 : 0000000002d5f0f8
       x5 : 0000000000000000 x4 : 0000000000000000
       x3 : 0000000000000002 x2 : ffffffc000996724
       x1 : 0000000000000000 x0 : 0000000000000032
      
       ---[ end trace cbd20ae519e92ced ]---
       Call trace:
       [<ffffffc0008fee78>] tegra_init_from_table+0x140/0x164
       [<ffffffc000900ac8>] tegra210_clock_apply_init_table+0x20/0x28
       [<ffffffc0008fec40>] tegra_clocks_apply_init_table+0x18/0x24
       [<ffffffc00008291c>] do_one_initcall+0x90/0x194
       [<ffffffc0008cfab0>] kernel_init_freeable+0x148/0x1e8
       [<ffffffc000636bb0>] kernel_init+0x10/0xdc
       [<ffffffc000085cd0>] ret_from_fork+0x10/0x40
       clk_pll_wait_for_lock: Timed out waiting for pll pll_u_vco lock
       tegra_init_from_table: Failed to enable pll_u_out2
       ------------[ cut here ]------------
      
      pll_u can be either controlled by software or hardware and this is
      selected via the OVERRIDE bit in the pll_u base register. In the function
      tegra210_pll_init(), the OVERRIDE bit for pll_u is cleared, which selects
      hardware control of the pll. However, at the same time the pll_u clocks
      are populated in the init_table for tegra210 and so software will try to
      configure the pll_u if it is not already configured and hence, the above
      warning is seen when the pll fails to lock. Remove the pll_u clocks from
      the init_table so that software does not try to configure this pll on
      boot.
      Signed-off-by: NJon Hunter <jonathanh@nvidia.com>
      Acked-by: NRhyland Klein <rklein@nvidia.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      0649c323
    • J
      clk: tegra: Fix clock sources for Tegra210 EMC · 4f8d4440
      Jon Hunter 提交于
      The EMC clock sources for Tegra210 currently incorrectly include pll_c2
      and pll_c3. However, both of these should have been pll_mb as shown in
      the TRM. If Tegra210 happens to be configured such that the pll_mb is the
      default clock for the EMC, as configured by the bootloader, then this will
      cause a system hang on boot. This is because the kernel will disable the
      pll_mb when disabling unused clock as it appears to be unused when it is
      not.
      
      Also add the additional pll_p clock source for the EMC.
      Signed-off-by: NJon Hunter <jonathanh@nvidia.com>
      Acked-by: NRhyland Klein <rklein@nvidia.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      4f8d4440
    • J
      clk: tegra: Add the APB2APE audio clock on Tegra210 · 29569941
      Jon Hunter 提交于
      The APB2APE clock for the audio subsystem is required for powering up the
      audio power domain and accessing the various modules in this subsystem on
      Tegra210 devices. Add this clock for Tegra210.
      Signed-off-by: NJon Hunter <jonathanh@nvidia.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      29569941
    • A
      clk: tegra: Add missing of_node_put() · 047d6d84
      Amitoj Kaur Chawla 提交于
      for_each_child_of_node() performs an of_node_get() on each iteration, so
      before breaking out of the loop an of_node_put() is required.
      
      Found using Coccinelle. The semantic patch used for this is as follows:
      
      // <smpl>
      @@
      expression e;
      local idexpression child;
      @@
      
       for_each_child_of_node(root, child) {
         ... when != of_node_put(child)
             when != e = child
      (
         return child;
      |
      +  of_node_put(child);
      ?  return ...;
      )
         ...
       }
      // </smpl>
      Signed-off-by: NAmitoj Kaur Chawla <amitoj1606@gmail.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      047d6d84
    • M
      clk: tegra: Fix PLLE SS coefficients · 442f53fb
      Mark Kuo 提交于
      The PLLE SS coefficients are different between Tegra210 and Tegra114.
      Add SoC generation specific versions for Tegra114 and Tegra210 and use
      them in their respective ->enable() callbacks.
      Signed-off-by: NMark Kuo <mkuo@nvidia.com>
      Signed-off-by: NRhyland Klein <rklein@nvidia.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      442f53fb
    • R
      clk: tegra: Fix typos around clearing PLLE bits during enable · fd2963b0
      Rhyland Klein 提交于
      While enabling PLLE on both Tegra114 and Tegra210, we should be clearing
      PLLE_MISC_VREG_BG_CTRL_MASK and PLLE_MISC_VREG_CTRL_MASK not setting
      them. This patch fixes both places where we incorrectly set instead of
      cleared those bits.
      Signed-off-by: NRhyland Klein <rklein@nvidia.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      fd2963b0
    • M
      clk: tegra: Do not disable PLLE when under hardware control · f59b0168
      Mark Kuo 提交于
      Software should not disable PLLE if PLLE is already put under hardware
      control.
      Signed-off-by: NMark Kuo <mkuo@nvidia.com>
      Signed-off-by: NRhyland Klein <rklein@nvidia.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      f59b0168
    • R
      clk: tegra: Fix pllx dyn step calculation · 3dad5c5f
      Rhyland Klein 提交于
      The logic for calculating the input rate used when figuring out the
      proper dynamic steps for pllx was incorrect. It is supposed to be
      calculated using parent_rate / m but it was just using the parent rate
      directly, therefore using the wrong step values.
      Signed-off-by: NRhyland Klein <rklein@nvidia.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      3dad5c5f
    • A
      clk: tegra: pll: Fix potential sleeping-while-atomic · 3eb61566
      Andrew Bresticker 提交于
      Since the ->enable() callback is called with a spinlock held, we cannot
      call potentially blocking functions such as clk_get_rate() or
      clk_get_parent(), so use the unlocked versions instead.
      Signed-off-by: NAndrew Bresticker <abrestic@chromium.org>
      [rklein: Adapted from ChromeOS patch, removing pllu_enable cleanup as
      it isn't present upstream]
      Signed-off-by: NRhyland Klein <rklein@nvidia.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      3eb61566
    • R
      clk: tegra: Fix the misnaming of nvenc from msenc · 736971be
      Rhyland Klein 提交于
      When adding the nvenc clock, it was partially named msenc in the code.
      Since the msenc clock isn't present in Tegra210 and has been replaced by
      the nvenc clock, its misleading to see it present. Therefore, properly
      rename it.
      Signed-off-by: NRhyland Klein <rklein@nvidia.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      736971be
    • R
      clk: tegra: Fix naming of MISC registers · 474f2ba2
      Rhyland Klein 提交于
      Some register for PLLM and PLLMB were named MISC0 but according to the
      TRM, they have different names. Sync up the names to make it easier to
      understand which register they are really referring to.
      Signed-off-by: NRhyland Klein <rklein@nvidia.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      474f2ba2
  4. 30 1月, 2016 3 次提交
  5. 25 1月, 2016 4 次提交
  6. 24 1月, 2016 3 次提交
  7. 23 1月, 2016 3 次提交
  8. 22 1月, 2016 10 次提交