1. 26 10月, 2015 1 次提交
    • D
      clk: rockchip: Allow more precision for some mmc clock phases · f0232063
      Douglas Anderson 提交于
      Because of the inexact nature of the extra MMC delay elements (it's
      not possible to keep the phase monotonic and to also make phases (mod
      90) > 70), we previously only allowed phases (mod 90) of 22.5, 45,
      and 67.5.
      
      But it's not the end of the world if the MMC clock phase goes
      non-monotonic.  At most we'll be 25 degrees off.  It's way better to
      test more phases to look for bad ones than to be 25 degrees off, because
      in the case of MMC really the point is to find bad phases and get as far
      asway from the as possible.  If we get to test extra phases by going
      slightly non-monotonic then that might be fine.  Worst case we would
      end up at a phases that's slight differnt than the one we wanted, but
      at least we'd still be quite far away from the a bad phase.
      Signed-off-by: NDouglas Anderson <dianders@chromium.org>
      Fold in more precise variance-values of 44-77 instead of 40-80.
      Fold in the actual removal of the monotonic requirement and adapt
      patch message accordingly.
      Signed-off-by: NHeiko Stuebner <heiko@sntech.de>
      Acked-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      f0232063
  2. 15 10月, 2015 1 次提交
  3. 02 10月, 2015 3 次提交
    • S
      clk: ti: dflt: fix enable_reg validity check · 7aba4f52
      Suman Anna 提交于
      The default clock enabling functions for TI clocks -
      omap2_dflt_clk_enable() and omap2_dflt_clk_disable() perform a
      NULL check for the enable_reg field of the clk_hw_omap structure.
      This enable_reg field however is merely a combination of the index
      of the master IP module, and the offset from the master IP module's
      base address. A value of 0 is perfectly valid, and the current error
      checking will fail in these cases. The issue was found when trying
      to enable the iva2_ck clock on OMAP3 platforms.
      
      So, switch the check to use IS_ERR. This correction is similar to the
      logic used in commit c807dbed ("clk: ti: fix ti_clk_get_reg_addr
      error handling").
      
      Fixes: 9f37e90e ("clk: ti: dflt: move support for default gate clock..")
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      Signed-off-by: NTero Kristo <t-kristo@ti.com>
      7aba4f52
    • B
      clk: ti: fix dual-registration of uart4_ick · 19e79687
      Ben Dooks 提交于
      On the OMAP AM3517 platform the uart4_ick gets registered
      twice, causing any power management to /dev/ttyO3 to fail
      when trying to wake the device up.
      
      This solves the following oops:
      
      [] Unhandled fault: external abort on non-linefetch (0x1028) at 0xfa09e008
      [] PC is at serial_omap_pm+0x48/0x15c
      [] LR is at _raw_spin_unlock_irqrestore+0x30/0x5c
      
      Fixes: aafd900c ("CLK: TI: add omap3 clock init file")
      Cc: stable@vger.kernel.org
      Cc: mturquette@baylibre.com
      Cc: sboyd@codeaurora.org
      Cc: linux-clk@vger.kernel.org
      Cc: linux-omap@vger.kernel.org
      Cc: linux-kernel@lists.codethink.co.uk
      Signed-off-by: NBen Dooks <ben.dooks@codethink.co.uk>
      Signed-off-by: NTero Kristo <t-kristo@ti.com>
      19e79687
    • P
      clk: ti: clk-7xx: Remove hardwired ABE clock configuration · 4b3061b3
      Peter Ujfalusi 提交于
      The ABE related clocks should be configured via DT and not have it wired
      inside of the kernel.
      
      Fixes: a74c52de ("clk: ti: clk-7xx: Correct ABE DPLL configuration")
      Signed-off-by: NPeter Ujfalusi <peter.ujfalusi@ti.com>
      Signed-off-by: NTero Kristo <t-kristo@ti.com>
      4b3061b3
  4. 23 9月, 2015 1 次提交
  5. 18 9月, 2015 1 次提交
  6. 17 9月, 2015 2 次提交
    • M
      clk: check for invalid parent index of orphans in __clk_init() · 9054a31d
      Mans Rullgard 提交于
      If a mux clock is initialised (by hardware or firmware) with an
      invalid parent, its ->get_parent() can return an out of range
      index.  For example, the generic mux clock attempts to return
      -EINVAL, which due to the u8 return type ends up a rather large
      number.  Using this index with the parent_names[] array results
      in an invalid pointer and (usually) a crash in the following
      strcmp().
      
      This patch adds a check for the parent index being in range,
      ignoring clocks reporting invalid values.
      Signed-off-by: NMans Rullgard <mans@mansr.com>
      Tested-by: NRhyland Klein <rklein@nvidia.com>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      9054a31d
    • T
      clk: tegra: dfll: Properly protect OPP list · e1595d89
      Thierry Reding 提交于
      The OPP list needs to be protected against concurrent accesses. Using
      simple RCU read locks does the trick and gets rid of the following
      lockdep warning:
      
      	===============================
      	[ INFO: suspicious RCU usage. ]
      	4.2.0-next-20150908 #1 Not tainted
      	-------------------------------
      	drivers/base/power/opp.c:460 Missing rcu_read_lock() or dev_opp_list_lock protection!
      
      	other info that might help us debug this:
      
      	rcu_scheduler_active = 1, debug_locks = 0
      	4 locks held by kworker/u8:0/6:
      	 #0:  ("%s""deferwq"){++++.+}, at: [<c0040d8c>] process_one_work+0x118/0x4bc
      	 #1:  (deferred_probe_work){+.+.+.}, at: [<c0040d8c>] process_one_work+0x118/0x4bc
      	 #2:  (&dev->mutex){......}, at: [<c03b8194>] __device_attach+0x20/0x118
      	 #3:  (prepare_lock){+.+...}, at: [<c054bc08>] clk_prepare_lock+0x10/0xf8
      
      	stack backtrace:
      	CPU: 2 PID: 6 Comm: kworker/u8:0 Not tainted 4.2.0-next-20150908 #1
      	Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
      	Workqueue: deferwq deferred_probe_work_func
      	[<c001802c>] (unwind_backtrace) from [<c00135a4>] (show_stack+0x10/0x14)
      	[<c00135a4>] (show_stack) from [<c02a8418>] (dump_stack+0x94/0xd4)
      	[<c02a8418>] (dump_stack) from [<c03c6f6c>] (dev_pm_opp_find_freq_ceil+0x108/0x114)
      	[<c03c6f6c>] (dev_pm_opp_find_freq_ceil) from [<c0551a3c>] (dfll_calculate_rate_request+0xb8/0x170)
      	[<c0551a3c>] (dfll_calculate_rate_request) from [<c0551b10>] (dfll_clk_round_rate+0x1c/0x2c)
      	[<c0551b10>] (dfll_clk_round_rate) from [<c054de2c>] (clk_calc_new_rates+0x1b8/0x228)
      	[<c054de2c>] (clk_calc_new_rates) from [<c054e44c>] (clk_core_set_rate_nolock+0x44/0xac)
      	[<c054e44c>] (clk_core_set_rate_nolock) from [<c054e4d8>] (clk_set_rate+0x24/0x34)
      	[<c054e4d8>] (clk_set_rate) from [<c0512460>] (tegra124_cpufreq_probe+0x120/0x230)
      	[<c0512460>] (tegra124_cpufreq_probe) from [<c03b9cbc>] (platform_drv_probe+0x44/0xac)
      	[<c03b9cbc>] (platform_drv_probe) from [<c03b84c8>] (driver_probe_device+0x218/0x304)
      	[<c03b84c8>] (driver_probe_device) from [<c03b69b0>] (bus_for_each_drv+0x60/0x94)
      	[<c03b69b0>] (bus_for_each_drv) from [<c03b8228>] (__device_attach+0xb4/0x118)
      	ata1: SATA link down (SStatus 0 SControl 300)
      	[<c03b8228>] (__device_attach) from [<c03b77c8>] (bus_probe_device+0x88/0x90)
      	[<c03b77c8>] (bus_probe_device) from [<c03b7be8>] (deferred_probe_work_func+0x58/0x8c)
      	[<c03b7be8>] (deferred_probe_work_func) from [<c0040dfc>] (process_one_work+0x188/0x4bc)
      	[<c0040dfc>] (process_one_work) from [<c004117c>] (worker_thread+0x4c/0x4f4)
      	[<c004117c>] (worker_thread) from [<c0047230>] (kthread+0xe4/0xf8)
      	[<c0047230>] (kthread) from [<c000f7d0>] (ret_from_fork+0x14/0x24)
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      Fixes: c4fe70ad ("clk: tegra: Add closed loop support for the DFLL")
      [vince.h@nvidia.com: Unlock rcu on error path]
      Signed-off-by: NVince Hsu <vince.h@nvidia.com>
      [sboyd@codeaurora.org: Dropped second hunk that nested the rcu
      read lock unnecessarily]
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      e1595d89
  7. 15 9月, 2015 1 次提交
  8. 11 9月, 2015 3 次提交
  9. 04 9月, 2015 1 次提交
  10. 03 9月, 2015 1 次提交
    • G
      clk: h8s2678: Fix compile error · ac0e137a
      Guenter Roeck 提交于
      Recent cleanup removed some include files without checking if the cleaned
      up code still compiles. This results in the following compile error.
      
      drivers/clk/h8300/clk-h8s2678.c: In function ‘h8s2678_pll_clk_setup’:
      drivers/clk/h8300/clk-h8s2678.c:99:14: error:
      	implicit declaration of function ‘kzalloc’
      drivers/clk/h8300/clk-h8s2678.c:138:2: error:
            implicit declaration of function ‘kfree’
      
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      ac0e137a
  11. 28 8月, 2015 1 次提交
  12. 27 8月, 2015 4 次提交
  13. 26 8月, 2015 2 次提交
  14. 25 8月, 2015 18 次提交