diff options
Diffstat (limited to 'meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0038-media-aspeed-backport-ikvm-patches.patch')
-rw-r--r-- | meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0038-media-aspeed-backport-ikvm-patches.patch | 174 |
1 files changed, 0 insertions, 174 deletions
diff --git a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0038-media-aspeed-backport-ikvm-patches.patch b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0038-media-aspeed-backport-ikvm-patches.patch deleted file mode 100644 index 92d0a045d..000000000 --- a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0038-media-aspeed-backport-ikvm-patches.patch +++ /dev/null @@ -1,174 +0,0 @@ -From 13d6fd0f71b3d0d69370878613bf7eb78fefa18f Mon Sep 17 00:00:00 2001 -From: Jae Hyun Yoo <jae.hyun.yoo@intel.com> -Date: Fri, 9 Nov 2018 11:32:27 -0800 -Subject: [PATCH] Add Aspeed Video Engine Driver - -media: platform: Fix missing spin_lock_init() - -The driver allocates the spinlock but not initialize it. -Use spin_lock_init() on it to initialize it correctly. - -This is detected by Coccinelle semantic patch. - -Fixes: d2b4387f3bdf ("media: platform: Add Aspeed Video Engine driver") - -Signed-off-by: Eddie James <eajames@linux.ibm.com> -Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> -Reviewed-by: Rob Herring <robh@kernel.org> -Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> -Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> -Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com> ---- - arch/arm/boot/dts/aspeed-g5.dtsi | 11 +++++++++ - drivers/clk/clk-aspeed.c | 41 ++++++++++++++++++++++++++++++-- - drivers/media/platform/aspeed-video.c | 1 + - include/dt-bindings/clock/aspeed-clock.h | 1 + - 4 files changed, 52 insertions(+), 2 deletions(-) - -diff --git a/arch/arm/boot/dts/aspeed-g5.dtsi b/arch/arm/boot/dts/aspeed-g5.dtsi -index 6f26e0d323d6..d5783eaf30ae 100644 ---- a/arch/arm/boot/dts/aspeed-g5.dtsi -+++ b/arch/arm/boot/dts/aspeed-g5.dtsi -@@ -243,6 +243,17 @@ - interrupts = <0x19>; - }; - -+ video: video@1e700000 { -+ compatible = "aspeed,ast2500-video-engine"; -+ reg = <0x1e700000 0x20000>; -+ clocks = <&syscon ASPEED_CLK_GATE_VCLK>, -+ <&syscon ASPEED_CLK_GATE_ECLK>; -+ clock-names = "vclk", "eclk"; -+ resets = <&syscon ASPEED_RESET_VIDEO>; -+ interrupts = <7>; -+ status = "disabled"; -+ }; -+ - adc: adc@1e6e9000 { - compatible = "aspeed,ast2500-adc"; - reg = <0x1e6e9000 0xb0>; -diff --git a/drivers/clk/clk-aspeed.c b/drivers/clk/clk-aspeed.c -index 3bbb4fbf00c9..6cea55de485f 100644 ---- a/drivers/clk/clk-aspeed.c -+++ b/drivers/clk/clk-aspeed.c -@@ -95,7 +95,7 @@ struct aspeed_clk_gate { - /* TODO: ask Aspeed about the actual parent data */ - static const struct aspeed_gate_data aspeed_gates[] = { - /* clk rst name parent flags */ -- [ASPEED_CLK_GATE_ECLK] = { 0, -1, "eclk-gate", "eclk", 0 }, /* Video Engine */ -+ [ASPEED_CLK_GATE_ECLK] = { 0, 6, "eclk-gate", "eclk", 0 }, /* Video Engine */ - [ASPEED_CLK_GATE_GCLK] = { 1, 7, "gclk-gate", NULL, 0 }, /* 2D engine */ - [ASPEED_CLK_GATE_MCLK] = { 2, -1, "mclk-gate", "mpll", CLK_IS_CRITICAL }, /* SDRAM */ - [ASPEED_CLK_GATE_VCLK] = { 3, 6, "vclk-gate", NULL, 0 }, /* Video Capture */ -@@ -121,6 +121,24 @@ static const struct aspeed_gate_data aspeed_gates[] = { - [ASPEED_CLK_GATE_LHCCLK] = { 28, -1, "lhclk-gate", "lhclk", 0 }, /* LPC master/LPC+ */ - }; - -+static const char * const eclk_parent_names[] = { -+ "mpll", -+ "hpll", -+ "dpll", -+}; -+ -+static const struct clk_div_table ast2500_eclk_div_table[] = { -+ { 0x0, 2 }, -+ { 0x1, 2 }, -+ { 0x2, 3 }, -+ { 0x3, 4 }, -+ { 0x4, 5 }, -+ { 0x5, 6 }, -+ { 0x6, 7 }, -+ { 0x7, 8 }, -+ { 0 } -+}; -+ - static const struct clk_div_table ast2500_mac_div_table[] = { - { 0x0, 4 }, /* Yep, really. Aspeed confirmed this is correct */ - { 0x1, 4 }, -@@ -200,18 +218,21 @@ static struct clk_hw *aspeed_ast2500_calc_pll(const char *name, u32 val) - - struct aspeed_clk_soc_data { - const struct clk_div_table *div_table; -+ const struct clk_div_table *eclk_div_table; - const struct clk_div_table *mac_div_table; - struct clk_hw *(*calc_pll)(const char *name, u32 val); - }; - - static const struct aspeed_clk_soc_data ast2500_data = { - .div_table = ast2500_div_table, -+ .eclk_div_table = ast2500_eclk_div_table, - .mac_div_table = ast2500_mac_div_table, - .calc_pll = aspeed_ast2500_calc_pll, - }; - - static const struct aspeed_clk_soc_data ast2400_data = { - .div_table = ast2400_div_table, -+ .eclk_div_table = ast2400_div_table, - .mac_div_table = ast2400_div_table, - .calc_pll = aspeed_ast2400_calc_pll, - }; -@@ -325,6 +346,7 @@ static const u8 aspeed_resets[] = { - [ASPEED_RESET_PECI] = 10, - [ASPEED_RESET_I2C] = 2, - [ASPEED_RESET_AHB] = 1, -+ [ASPEED_RESET_VIDEO] = 6, - - /* - * SCUD4 resets start at an offset to separate them from -@@ -538,6 +560,22 @@ static int aspeed_clk_probe(struct platform_device *pdev) - return PTR_ERR(hw); - aspeed_clk_data->hws[ASPEED_CLK_24M] = hw; - -+ hw = clk_hw_register_mux(dev, "eclk-mux", eclk_parent_names, -+ ARRAY_SIZE(eclk_parent_names), 0, -+ scu_base + ASPEED_CLK_SELECTION, 2, 0x3, 0, -+ &aspeed_clk_lock); -+ if (IS_ERR(hw)) -+ return PTR_ERR(hw); -+ aspeed_clk_data->hws[ASPEED_CLK_ECLK_MUX] = hw; -+ -+ hw = clk_hw_register_divider_table(dev, "eclk", "eclk-mux", 0, -+ scu_base + ASPEED_CLK_SELECTION, 28, -+ 3, 0, soc_data->eclk_div_table, -+ &aspeed_clk_lock); -+ if (IS_ERR(hw)) -+ return PTR_ERR(hw); -+ aspeed_clk_data->hws[ASPEED_CLK_ECLK] = hw; -+ - /* - * TODO: There are a number of clocks that not included in this driver - * as more information is required: -@@ -547,7 +585,6 @@ static int aspeed_clk_probe(struct platform_device *pdev) - * RGMII - * RMII - * UART[1..5] clock source mux -- * Video Engine (ECLK) mux and clock divider - */ - - /* Get the uart clock source configuration from SCU4C*/ -diff --git a/drivers/media/platform/aspeed-video.c b/drivers/media/platform/aspeed-video.c -index dfec813f50a9..692e08ef38c0 100644 ---- a/drivers/media/platform/aspeed-video.c -+++ b/drivers/media/platform/aspeed-video.c -@@ -1661,6 +1661,7 @@ static int aspeed_video_probe(struct platform_device *pdev) - - video->frame_rate = 30; - video->dev = &pdev->dev; -+ spin_lock_init(&video->lock); - mutex_init(&video->video_lock); - init_waitqueue_head(&video->wait); - INIT_DELAYED_WORK(&video->res_work, aspeed_video_resolution_work); -diff --git a/include/dt-bindings/clock/aspeed-clock.h b/include/dt-bindings/clock/aspeed-clock.h -index 335879505a72..0b0f3a0ebe9b 100644 ---- a/include/dt-bindings/clock/aspeed-clock.h -+++ b/include/dt-bindings/clock/aspeed-clock.h -@@ -52,5 +52,6 @@ - #define ASPEED_RESET_I2C 7 - #define ASPEED_RESET_AHB 8 - #define ASPEED_RESET_CRT1 9 -+#define ASPEED_RESET_VIDEO 10 - - #endif --- -2.7.4 - |