From: Greg Kroah-Hartman Date: Sat, 10 Nov 2018 15:23:57 +0000 (-0800) Subject: drop clk-tegra-add-quirk-for-getting-cdev1-2-clocks-on-te.patch from 4.14 X-Git-Tag: v3.18.125~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ad2fd91b71fb4426a8a725fa41fc23e5cac73cb7;p=thirdparty%2Fkernel%2Fstable-queue.git drop clk-tegra-add-quirk-for-getting-cdev1-2-clocks-on-te.patch from 4.14 --- diff --git a/queue-4.14/clk-tegra-add-quirk-for-getting-cdev1-2-clocks-on-te.patch b/queue-4.14/clk-tegra-add-quirk-for-getting-cdev1-2-clocks-on-te.patch deleted file mode 100644 index 0415b44e6f2..00000000000 --- a/queue-4.14/clk-tegra-add-quirk-for-getting-cdev1-2-clocks-on-te.patch +++ /dev/null @@ -1,169 +0,0 @@ -From 4cd924ba72d77eb135eef248b11c85106b58df3f Mon Sep 17 00:00:00 2001 -From: Dmitry Osipenko -Date: Tue, 8 May 2018 19:26:06 +0300 -Subject: clk: tegra: Add quirk for getting CDEV1/2 clocks on Tegra20 - -[ Upstream commit 5d797111afe12e488e08432fd9b372fae2cc7e93 ] - -CDEV1 and CDEV2 clocks are a bit special case, their parent clock is -created by the pinctrl driver. It should be possible for clk user to -request these clocks before pinctrl driver got probed and hence user will -get an orphaned clock. That might be undesirable because user may expect -parent clock to be enabled by the child, so let's return -EPROBE_DEFER -till parent clock appears. - -Signed-off-by: Dmitry Osipenko -Acked-by: Peter De Schrijver -Signed-off-by: Thierry Reding -Signed-off-by: Sasha Levin ---- - drivers/clk/tegra/clk-tegra114.c | 2 +- - drivers/clk/tegra/clk-tegra124.c | 2 +- - drivers/clk/tegra/clk-tegra20.c | 32 +++++++++++++++++++++++++++++++- - drivers/clk/tegra/clk-tegra210.c | 2 +- - drivers/clk/tegra/clk-tegra30.c | 2 +- - drivers/clk/tegra/clk.c | 5 +++-- - drivers/clk/tegra/clk.h | 2 +- - 7 files changed, 39 insertions(+), 8 deletions(-) - -diff --git a/drivers/clk/tegra/clk-tegra114.c b/drivers/clk/tegra/clk-tegra114.c -index fd1a99c05c2d..f94d1c016643 100644 ---- a/drivers/clk/tegra/clk-tegra114.c -+++ b/drivers/clk/tegra/clk-tegra114.c -@@ -1369,7 +1369,7 @@ static void __init tegra114_clock_init(struct device_node *np) - tegra_super_clk_gen4_init(clk_base, pmc_base, tegra114_clks, - &pll_x_params); - -- tegra_add_of_provider(np); -+ tegra_add_of_provider(np, of_clk_src_onecell_get); - tegra_register_devclks(devclks, ARRAY_SIZE(devclks)); - - tegra_clk_apply_init_table = tegra114_clock_apply_init_table; -diff --git a/drivers/clk/tegra/clk-tegra124.c b/drivers/clk/tegra/clk-tegra124.c -index e81ea5b11577..e08df2faafd7 100644 ---- a/drivers/clk/tegra/clk-tegra124.c -+++ b/drivers/clk/tegra/clk-tegra124.c -@@ -1480,7 +1480,7 @@ static void __init tegra124_132_clock_init_post(struct device_node *np) - &pll_x_params); - tegra_init_special_resets(1, tegra124_reset_assert, - tegra124_reset_deassert); -- tegra_add_of_provider(np); -+ tegra_add_of_provider(np, of_clk_src_onecell_get); - - clks[TEGRA124_CLK_EMC] = tegra_clk_register_emc(clk_base, np, - &emc_lock); -diff --git a/drivers/clk/tegra/clk-tegra20.c b/drivers/clk/tegra/clk-tegra20.c -index 837e5cbd60e9..532322b3d717 100644 ---- a/drivers/clk/tegra/clk-tegra20.c -+++ b/drivers/clk/tegra/clk-tegra20.c -@@ -1084,6 +1084,36 @@ static const struct of_device_id pmc_match[] __initconst = { - { }, - }; - -+static struct clk *tegra20_clk_src_onecell_get(struct of_phandle_args *clkspec, -+ void *data) -+{ -+ struct clk_hw *parent_hw; -+ struct clk_hw *hw; -+ struct clk *clk; -+ -+ clk = of_clk_src_onecell_get(clkspec, data); -+ if (IS_ERR(clk)) -+ return clk; -+ -+ /* -+ * Tegra20 CDEV1 and CDEV2 clocks are a bit special case, their parent -+ * clock is created by the pinctrl driver. It is possible for clk user -+ * to request these clocks before pinctrl driver got probed and hence -+ * user will get an orphaned clock. That might be undesirable because -+ * user may expect parent clock to be enabled by the child. -+ */ -+ if (clkspec->args[0] == TEGRA20_CLK_CDEV1 || -+ clkspec->args[0] == TEGRA20_CLK_CDEV2) { -+ hw = __clk_get_hw(clk); -+ -+ parent_hw = clk_hw_get_parent(hw); -+ if (!parent_hw) -+ return ERR_PTR(-EPROBE_DEFER); -+ } -+ -+ return clk; -+} -+ - static void __init tegra20_clock_init(struct device_node *np) - { - struct device_node *node; -@@ -1122,7 +1152,7 @@ static void __init tegra20_clock_init(struct device_node *np) - - tegra_init_dup_clks(tegra_clk_duplicates, clks, TEGRA20_CLK_CLK_MAX); - -- tegra_add_of_provider(np); -+ tegra_add_of_provider(np, tegra20_clk_src_onecell_get); - tegra_register_devclks(devclks, ARRAY_SIZE(devclks)); - - tegra_clk_apply_init_table = tegra20_clock_apply_init_table; -diff --git a/drivers/clk/tegra/clk-tegra210.c b/drivers/clk/tegra/clk-tegra210.c -index b92867814e2d..b57193fba643 100644 ---- a/drivers/clk/tegra/clk-tegra210.c -+++ b/drivers/clk/tegra/clk-tegra210.c -@@ -3169,7 +3169,7 @@ static void __init tegra210_clock_init(struct device_node *np) - tegra_init_special_resets(2, tegra210_reset_assert, - tegra210_reset_deassert); - -- tegra_add_of_provider(np); -+ tegra_add_of_provider(np, of_clk_src_onecell_get); - tegra_register_devclks(devclks, ARRAY_SIZE(devclks)); - - tegra_cpu_car_ops = &tegra210_cpu_car_ops; -diff --git a/drivers/clk/tegra/clk-tegra30.c b/drivers/clk/tegra/clk-tegra30.c -index 07f5203df01c..80748e7925f8 100644 ---- a/drivers/clk/tegra/clk-tegra30.c -+++ b/drivers/clk/tegra/clk-tegra30.c -@@ -1355,7 +1355,7 @@ static void __init tegra30_clock_init(struct device_node *np) - - tegra_init_dup_clks(tegra_clk_duplicates, clks, TEGRA30_CLK_CLK_MAX); - -- tegra_add_of_provider(np); -+ tegra_add_of_provider(np, of_clk_src_onecell_get); - tegra_register_devclks(devclks, ARRAY_SIZE(devclks)); - - tegra_clk_apply_init_table = tegra30_clock_apply_init_table; -diff --git a/drivers/clk/tegra/clk.c b/drivers/clk/tegra/clk.c -index ba923f0d5953..593d76a114f9 100644 ---- a/drivers/clk/tegra/clk.c -+++ b/drivers/clk/tegra/clk.c -@@ -298,7 +298,8 @@ static struct reset_controller_dev rst_ctlr = { - .of_reset_n_cells = 1, - }; - --void __init tegra_add_of_provider(struct device_node *np) -+void __init tegra_add_of_provider(struct device_node *np, -+ void *clk_src_onecell_get) - { - int i; - -@@ -314,7 +315,7 @@ void __init tegra_add_of_provider(struct device_node *np) - - clk_data.clks = clks; - clk_data.clk_num = clk_num; -- of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data); -+ of_clk_add_provider(np, clk_src_onecell_get, &clk_data); - - rst_ctlr.of_node = np; - rst_ctlr.nr_resets = periph_banks * 32 + num_special_reset; -diff --git a/drivers/clk/tegra/clk.h b/drivers/clk/tegra/clk.h -index 872f1189ad7f..a282a12637e3 100644 ---- a/drivers/clk/tegra/clk.h -+++ b/drivers/clk/tegra/clk.h -@@ -760,7 +760,7 @@ struct clk **tegra_clk_init(void __iomem *clk_base, int num, int periph_banks); - - struct clk **tegra_lookup_dt_id(int clk_id, struct tegra_clk *tegra_clk); - --void tegra_add_of_provider(struct device_node *np); -+void tegra_add_of_provider(struct device_node *np, void *clk_src_onecell_get); - void tegra_register_devclks(struct tegra_devclk *dev_clks, int num); - - void tegra_audio_clk_init(void __iomem *clk_base, --- -2.17.1 - diff --git a/queue-4.14/series b/queue-4.14/series index 6644d6a1118..edb78490ac2 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -4,7 +4,6 @@ usb-serial-option-improve-quectel-ep06-detection.patch usb-serial-option-add-two-endpoints-device-id-flag.patch bpf-fix-partial-copy-of-map_ptr-when-dst-is-scalar.patch revert-arm-tegra-fix-ulpi-regression-on-tegra20.patch -clk-tegra-add-quirk-for-getting-cdev1-2-clocks-on-te.patch fsnotify-fix-ignore-mask-logic-in-fsnotify.patch gpio-mxs-get-rid-of-external-api-call.patch xfs-truncate-transaction-does-not-modify-the-inobt.patch