diff options
| author | Nathan Rossi <nathan@nathanrossi.com> | 2016-11-11 19:54:21 +1000 |
|---|---|---|
| committer | Nathan Rossi <nathan@nathanrossi.com> | 2016-11-19 21:36:36 +1000 |
| commit | 53d74fcac046c0b324c5005ceca491c8057f69ab (patch) | |
| tree | 1cbb9fde60f1496ad3a61635cd912a7772d124c6 | |
| parent | d1865ce5578ffd57ba3a61dc34e1997836199e99 (diff) | |
| download | meta-xilinx-53d74fcac046c0b324c5005ceca491c8057f69ab.tar.gz | |
linux-xlnx_4.6: Update patches for zybo-linux-bd-zynq7 display support
Update the patches that enable the Digilent DRM encoder and clock cores.
Also update the patch that fixes DPMS issues with the Xilinx DRM driver.
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
| -rw-r--r-- | recipes-kernel/linux/linux-xlnx.inc | 2 | ||||
| -rw-r--r-- | recipes-kernel/linux/linux-xlnx/4.6/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch (renamed from recipes-kernel/linux/linux-xlnx/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch) | 23 | ||||
| -rw-r--r-- | recipes-kernel/linux/linux-xlnx/4.6/0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch (renamed from recipes-kernel/linux/linux-xlnx/0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch) | 24 | ||||
| -rw-r--r-- | recipes-kernel/linux/linux-xlnx/4.6/0003-drm-xilinx-Fix-DPMS-transition-to-on.patch | 65 | ||||
| -rw-r--r-- | recipes-kernel/linux/linux-xlnx/drm-xilinx-Fix-DPMS-transition-to-on.patch | 46 | ||||
| -rw-r--r-- | recipes-kernel/linux/linux-xlnx_4.6.bb | 7 |
6 files changed, 102 insertions, 65 deletions
diff --git a/recipes-kernel/linux/linux-xlnx.inc b/recipes-kernel/linux/linux-xlnx.inc index 89ce20d7..f3beaf89 100644 --- a/recipes-kernel/linux/linux-xlnx.inc +++ b/recipes-kernel/linux/linux-xlnx.inc | |||
| @@ -7,7 +7,7 @@ PV = "${LINUX_VERSION}${LINUX_VERSION_EXTENSION}+git${SRCPV}" | |||
| 7 | KBRANCH ?= "" | 7 | KBRANCH ?= "" |
| 8 | SRCBRANCHARG = "${@['nobranch=1', 'branch=${KBRANCH}'][d.getVar('KBRANCH', True) != '']}" | 8 | SRCBRANCHARG = "${@['nobranch=1', 'branch=${KBRANCH}'][d.getVar('KBRANCH', True) != '']}" |
| 9 | 9 | ||
| 10 | FILESEXTRAPATHS_prepend := "${THISDIR}/linux-xlnx:" | 10 | FILESOVERRIDES_append = ":${LINUX_VERSION}" |
| 11 | SRC_URI = " \ | 11 | SRC_URI = " \ |
| 12 | git://github.com/Xilinx/linux-xlnx.git;protocol=https;${SRCBRANCHARG} \ | 12 | git://github.com/Xilinx/linux-xlnx.git;protocol=https;${SRCBRANCHARG} \ |
| 13 | file://xilinx-base;type=kmeta;destsuffix=xilinx-base \ | 13 | file://xilinx-base;type=kmeta;destsuffix=xilinx-base \ |
diff --git a/recipes-kernel/linux/linux-xlnx/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch b/recipes-kernel/linux/linux-xlnx/4.6/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch index 892455af..1b78e9b9 100644 --- a/recipes-kernel/linux/linux-xlnx/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch +++ b/recipes-kernel/linux/linux-xlnx/4.6/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch | |||
| @@ -1,8 +1,7 @@ | |||
| 1 | From 3d1820b308dcc9344d8e7df4a8a712632fb77b97 Mon Sep 17 00:00:00 2001 | 1 | From 9f144ae13de8a48eda11af4d5738338894ad92c6 Mon Sep 17 00:00:00 2001 |
| 2 | Message-Id: <3d1820b308dcc9344d8e7df4a8a712632fb77b97.1460291687.git.jason.wu.misc@gmail.com> | ||
| 3 | From: Jason Wu <jason.wu.misc@gmail.com> | 2 | From: Jason Wu <jason.wu.misc@gmail.com> |
| 4 | Date: Sun, 10 Apr 2016 13:14:13 +1000 | 3 | Date: Sun, 10 Apr 2016 13:14:13 +1000 |
| 5 | Subject: [LINUX] [PATCH] drm: xilinx: Add encoder for Digilent boards | 4 | Subject: [PATCH 1/3] drm: xilinx: Add encoder for Digilent boards |
| 6 | 5 | ||
| 7 | Add the dglnt_encoder driver that enables DRM support for the VGA and | 6 | Add the dglnt_encoder driver that enables DRM support for the VGA and |
| 8 | HDMI output ports found on many Digilent boards. | 7 | HDMI output ports found on many Digilent boards. |
| @@ -12,11 +11,17 @@ Upstream-Status: Pending | |||
| 12 | Signed-off-by: Sam Bobrowicz <sbobrowicz@digilentinc.com> | 11 | Signed-off-by: Sam Bobrowicz <sbobrowicz@digilentinc.com> |
| 13 | Signed-off-by: Jason Wu <jason.wu.misc@gmail.com> | 12 | Signed-off-by: Jason Wu <jason.wu.misc@gmail.com> |
| 14 | --- | 13 | --- |
| 15 | github.com () linux-xlnx.git xlnx/master | 14 | .../bindings/drm/xilinx/dglnt_encoder.txt | 23 +++ |
| 15 | drivers/gpu/drm/xilinx/Kconfig | 6 + | ||
| 16 | drivers/gpu/drm/xilinx/Makefile | 1 + | ||
| 17 | drivers/gpu/drm/xilinx/dglnt_encoder.c | 217 +++++++++++++++++++++ | ||
| 18 | 4 files changed, 247 insertions(+) | ||
| 19 | create mode 100644 Documentation/devicetree/bindings/drm/xilinx/dglnt_encoder.txt | ||
| 20 | create mode 100644 drivers/gpu/drm/xilinx/dglnt_encoder.c | ||
| 16 | 21 | ||
| 17 | diff --git a/Documentation/devicetree/bindings/drm/xilinx/dglnt_encoder.txt b/Documentation/devicetree/bindings/drm/xilinx/dglnt_encoder.txt | 22 | diff --git a/Documentation/devicetree/bindings/drm/xilinx/dglnt_encoder.txt b/Documentation/devicetree/bindings/drm/xilinx/dglnt_encoder.txt |
| 18 | new file mode 100644 | 23 | new file mode 100644 |
| 19 | index 0000000..242b24e | 24 | index 0000000000..242b24e482 |
| 20 | --- /dev/null | 25 | --- /dev/null |
| 21 | +++ b/Documentation/devicetree/bindings/drm/xilinx/dglnt_encoder.txt | 26 | +++ b/Documentation/devicetree/bindings/drm/xilinx/dglnt_encoder.txt |
| 22 | @@ -0,0 +1,23 @@ | 27 | @@ -0,0 +1,23 @@ |
| @@ -44,7 +49,7 @@ index 0000000..242b24e | |||
| 44 | + dglnt,edid-i2c = <&i2c1>; | 49 | + dglnt,edid-i2c = <&i2c1>; |
| 45 | + }; | 50 | + }; |
| 46 | diff --git a/drivers/gpu/drm/xilinx/Kconfig b/drivers/gpu/drm/xilinx/Kconfig | 51 | diff --git a/drivers/gpu/drm/xilinx/Kconfig b/drivers/gpu/drm/xilinx/Kconfig |
| 47 | index a713b17..c32a4a6 100644 | 52 | index a713b17673..c32a4a679e 100644 |
| 48 | --- a/drivers/gpu/drm/xilinx/Kconfig | 53 | --- a/drivers/gpu/drm/xilinx/Kconfig |
| 49 | +++ b/drivers/gpu/drm/xilinx/Kconfig | 54 | +++ b/drivers/gpu/drm/xilinx/Kconfig |
| 50 | @@ -21,3 +21,9 @@ config DRM_XILINX_DP_SUB | 55 | @@ -21,3 +21,9 @@ config DRM_XILINX_DP_SUB |
| @@ -58,7 +63,7 @@ index a713b17..c32a4a6 100644 | |||
| 58 | + help | 63 | + help |
| 59 | + DRM slave encoder for Video-out on Digilent boards. | 64 | + DRM slave encoder for Video-out on Digilent boards. |
| 60 | diff --git a/drivers/gpu/drm/xilinx/Makefile b/drivers/gpu/drm/xilinx/Makefile | 65 | diff --git a/drivers/gpu/drm/xilinx/Makefile b/drivers/gpu/drm/xilinx/Makefile |
| 61 | index 705472c..a571bd9 100644 | 66 | index 705472c338..a571bd96cf 100644 |
| 62 | --- a/drivers/gpu/drm/xilinx/Makefile | 67 | --- a/drivers/gpu/drm/xilinx/Makefile |
| 63 | +++ b/drivers/gpu/drm/xilinx/Makefile | 68 | +++ b/drivers/gpu/drm/xilinx/Makefile |
| 64 | @@ -10,3 +10,4 @@ xilinx_drm-y += xilinx_cresample.o xilinx_osd.o xilinx_rgb2yuv.o xilinx_vtc.o | 69 | @@ -10,3 +10,4 @@ xilinx_drm-y += xilinx_cresample.o xilinx_osd.o xilinx_rgb2yuv.o xilinx_vtc.o |
| @@ -68,7 +73,7 @@ index 705472c..a571bd9 100644 | |||
| 68 | +obj-$(CONFIG_DRM_DIGILENT_ENCODER) += dglnt_encoder.o | 73 | +obj-$(CONFIG_DRM_DIGILENT_ENCODER) += dglnt_encoder.o |
| 69 | diff --git a/drivers/gpu/drm/xilinx/dglnt_encoder.c b/drivers/gpu/drm/xilinx/dglnt_encoder.c | 74 | diff --git a/drivers/gpu/drm/xilinx/dglnt_encoder.c b/drivers/gpu/drm/xilinx/dglnt_encoder.c |
| 70 | new file mode 100644 | 75 | new file mode 100644 |
| 71 | index 0000000..26a2398 | 76 | index 0000000000..26a23986f9 |
| 72 | --- /dev/null | 77 | --- /dev/null |
| 73 | +++ b/drivers/gpu/drm/xilinx/dglnt_encoder.c | 78 | +++ b/drivers/gpu/drm/xilinx/dglnt_encoder.c |
| 74 | @@ -0,0 +1,217 @@ | 79 | @@ -0,0 +1,217 @@ |
| @@ -290,5 +295,5 @@ index 0000000..26a2398 | |||
| 290 | +MODULE_DESCRIPTION("DRM slave encoder for Video-out on Digilent boards"); | 295 | +MODULE_DESCRIPTION("DRM slave encoder for Video-out on Digilent boards"); |
| 291 | +MODULE_LICENSE("GPL v2"); | 296 | +MODULE_LICENSE("GPL v2"); |
| 292 | -- | 297 | -- |
| 293 | 1.9.1 | 298 | 2.10.2 |
| 294 | 299 | ||
diff --git a/recipes-kernel/linux/linux-xlnx/0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch b/recipes-kernel/linux/linux-xlnx/4.6/0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch index b508fc27..5551b816 100644 --- a/recipes-kernel/linux/linux-xlnx/0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch +++ b/recipes-kernel/linux/linux-xlnx/4.6/0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | From e3b9c3186bbdf9cd5d084c62ecd232b57a316d3f Mon Sep 17 00:00:00 2001 | 1 | From b1c1dbc241385fcf1f85c5be9a6fb30fd70c784d Mon Sep 17 00:00:00 2001 |
| 2 | From: Jason Wu <jason.wu.misc@gmail.com> | 2 | From: Jason Wu <jason.wu.misc@gmail.com> |
| 3 | Date: Sun, 10 Apr 2016 13:16:06 +1000 | 3 | Date: Sun, 10 Apr 2016 13:16:06 +1000 |
| 4 | Subject: [PATCH] clk: Add driver for axi_dynclk IP Core | 4 | Subject: [PATCH 2/3] clk: Add driver for axi_dynclk IP Core |
| 5 | 5 | ||
| 6 | Add support for the axi_dynclk IP Core available from Digilent. This IP | 6 | Add support for the axi_dynclk IP Core available from Digilent. This IP |
| 7 | core dynamically configures the clock resources inside a Xilinx FPGA to | 7 | core dynamically configures the clock resources inside a Xilinx FPGA to |
| @@ -11,12 +11,18 @@ Upstream-Status: Pending | |||
| 11 | 11 | ||
| 12 | Signed-off-by: Sam Bobrowicz <sbobrowicz@digilentinc.com> | 12 | Signed-off-by: Sam Bobrowicz <sbobrowicz@digilentinc.com> |
| 13 | Signed-off-by: Jason Wu <jason.wu.misc@gmail.com> | 13 | Signed-off-by: Jason Wu <jason.wu.misc@gmail.com> |
| 14 | --- | ||
| 15 | drivers/clk/Kconfig | 8 + | ||
| 16 | drivers/clk/Makefile | 1 + | ||
| 17 | drivers/clk/clk-dglnt-dynclk.c | 547 +++++++++++++++++++++++++++++++++++++++++ | ||
| 18 | 3 files changed, 556 insertions(+) | ||
| 19 | create mode 100644 drivers/clk/clk-dglnt-dynclk.c | ||
| 14 | 20 | ||
| 15 | diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig | 21 | diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig |
| 16 | index c3e3a02..29dfd15 100644 | 22 | index d42af55820..e276d9a27e 100644 |
| 17 | --- a/drivers/clk/Kconfig | 23 | --- a/drivers/clk/Kconfig |
| 18 | +++ b/drivers/clk/Kconfig | 24 | +++ b/drivers/clk/Kconfig |
| 19 | @@ -147,6 +147,14 @@ config CLK_QORIQ | 25 | @@ -158,6 +158,14 @@ config CLK_QORIQ |
| 20 | This adds the clock driver support for Freescale QorIQ platforms | 26 | This adds the clock driver support for Freescale QorIQ platforms |
| 21 | using common clock framework. | 27 | using common clock framework. |
| 22 | 28 | ||
| @@ -32,12 +38,12 @@ index c3e3a02..29dfd15 100644 | |||
| 32 | bool "Clock driver for APM XGene SoC" | 38 | bool "Clock driver for APM XGene SoC" |
| 33 | default y | 39 | default y |
| 34 | diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile | 40 | diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile |
| 35 | index 820714c..9043f45 100644 | 41 | index e861470ef1..6c0a5a8d6b 100644 |
| 36 | --- a/drivers/clk/Makefile | 42 | --- a/drivers/clk/Makefile |
| 37 | +++ b/drivers/clk/Makefile | 43 | +++ b/drivers/clk/Makefile |
| 38 | @@ -22,6 +22,7 @@ obj-$(CONFIG_COMMON_CLK_AXI_CLKGEN) += clk-axi-clkgen.o | 44 | @@ -23,6 +23,7 @@ obj-$(CONFIG_ARCH_AXXIA) += clk-axm5516.o |
| 39 | obj-$(CONFIG_ARCH_AXXIA) += clk-axm5516.o | ||
| 40 | obj-$(CONFIG_COMMON_CLK_CDCE706) += clk-cdce706.o | 45 | obj-$(CONFIG_COMMON_CLK_CDCE706) += clk-cdce706.o |
| 46 | obj-$(CONFIG_COMMON_CLK_CS2000_CP) += clk-cs2000-cp.o | ||
| 41 | obj-$(CONFIG_ARCH_CLPS711X) += clk-clps711x.o | 47 | obj-$(CONFIG_ARCH_CLPS711X) += clk-clps711x.o |
| 42 | +obj-$(CONFIG_COMMON_CLK_DGLNT_DYNCLK) += clk-dglnt-dynclk.o | 48 | +obj-$(CONFIG_COMMON_CLK_DGLNT_DYNCLK) += clk-dglnt-dynclk.o |
| 43 | obj-$(CONFIG_ARCH_EFM32) += clk-efm32gg.o | 49 | obj-$(CONFIG_ARCH_EFM32) += clk-efm32gg.o |
| @@ -45,7 +51,7 @@ index 820714c..9043f45 100644 | |||
| 45 | obj-$(CONFIG_MACH_LOONGSON32) += clk-ls1x.o | 51 | obj-$(CONFIG_MACH_LOONGSON32) += clk-ls1x.o |
| 46 | diff --git a/drivers/clk/clk-dglnt-dynclk.c b/drivers/clk/clk-dglnt-dynclk.c | 52 | diff --git a/drivers/clk/clk-dglnt-dynclk.c b/drivers/clk/clk-dglnt-dynclk.c |
| 47 | new file mode 100644 | 53 | new file mode 100644 |
| 48 | index 0000000..496ad5f | 54 | index 0000000000..496ad5fc90 |
| 49 | --- /dev/null | 55 | --- /dev/null |
| 50 | +++ b/drivers/clk/clk-dglnt-dynclk.c | 56 | +++ b/drivers/clk/clk-dglnt-dynclk.c |
| 51 | @@ -0,0 +1,547 @@ | 57 | @@ -0,0 +1,547 @@ |
| @@ -597,5 +603,5 @@ index 0000000..496ad5f | |||
| 597 | +MODULE_AUTHOR("Sam Bobrowicz <sbobrowicz@digilentinc.com>"); | 603 | +MODULE_AUTHOR("Sam Bobrowicz <sbobrowicz@digilentinc.com>"); |
| 598 | +MODULE_DESCRIPTION("CCF Driver for Digilent axi_dynclk IP Core"); | 604 | +MODULE_DESCRIPTION("CCF Driver for Digilent axi_dynclk IP Core"); |
| 599 | -- | 605 | -- |
| 600 | 1.9.1 | 606 | 2.10.2 |
| 601 | 607 | ||
diff --git a/recipes-kernel/linux/linux-xlnx/4.6/0003-drm-xilinx-Fix-DPMS-transition-to-on.patch b/recipes-kernel/linux/linux-xlnx/4.6/0003-drm-xilinx-Fix-DPMS-transition-to-on.patch new file mode 100644 index 00000000..f0f51c3d --- /dev/null +++ b/recipes-kernel/linux/linux-xlnx/4.6/0003-drm-xilinx-Fix-DPMS-transition-to-on.patch | |||
| @@ -0,0 +1,65 @@ | |||
| 1 | From aec919daafd960b5bfcb8eb2352bc7f2857df56f Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Nathan Rossi <nathan@nathanrossi.com> | ||
| 3 | Date: Mon, 2 May 2016 23:46:42 +1000 | ||
| 4 | Subject: [PATCH 3/3] drm: xilinx: Fix DPMS transition to on | ||
| 5 | |||
| 6 | Fix the issues where the VTC is reset (losing its timing config). | ||
| 7 | |||
| 8 | Also fix the issue where the plane destroys its DMA descriptors and | ||
| 9 | marks the DMA channels as inactive but never recreates the descriptors | ||
| 10 | and never updates the active state when turning DPMS back on. | ||
| 11 | |||
| 12 | Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> | ||
| 13 | Upstream-Status: Pending [This is a workaround] | ||
| 14 | --- | ||
| 15 | drivers/gpu/drm/xilinx/xilinx_drm_crtc.c | 1 - | ||
| 16 | drivers/gpu/drm/xilinx/xilinx_drm_plane.c | 7 +++---- | ||
| 17 | 2 files changed, 3 insertions(+), 5 deletions(-) | ||
| 18 | |||
| 19 | diff --git a/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c b/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c | ||
| 20 | index 33a7931c2e..0f346c53de 100644 | ||
| 21 | --- a/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c | ||
| 22 | +++ b/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c | ||
| 23 | @@ -78,7 +78,6 @@ static void xilinx_drm_crtc_dpms(struct drm_crtc *base_crtc, int dpms) | ||
| 24 | default: | ||
| 25 | if (crtc->vtc) { | ||
| 26 | xilinx_vtc_disable(crtc->vtc); | ||
| 27 | - xilinx_vtc_reset(crtc->vtc); | ||
| 28 | } | ||
| 29 | if (crtc->cresample) { | ||
| 30 | xilinx_cresample_disable(crtc->cresample); | ||
| 31 | diff --git a/drivers/gpu/drm/xilinx/xilinx_drm_plane.c b/drivers/gpu/drm/xilinx/xilinx_drm_plane.c | ||
| 32 | index 7fc110a8a5..83fcfd6db5 100644 | ||
| 33 | --- a/drivers/gpu/drm/xilinx/xilinx_drm_plane.c | ||
| 34 | +++ b/drivers/gpu/drm/xilinx/xilinx_drm_plane.c | ||
| 35 | @@ -151,9 +151,7 @@ void xilinx_drm_plane_dpms(struct drm_plane *base_plane, int dpms) | ||
| 36 | } | ||
| 37 | |||
| 38 | /* start dma engine */ | ||
| 39 | - for (i = 0; i < MAX_NUM_SUB_PLANES; i++) | ||
| 40 | - if (plane->dma[i].chan && plane->dma[i].is_active) | ||
| 41 | - dma_async_issue_pending(plane->dma[i].chan); | ||
| 42 | + xilinx_drm_plane_commit(base_plane); | ||
| 43 | |||
| 44 | if (plane->rgb2yuv) | ||
| 45 | xilinx_rgb2yuv_enable(plane->rgb2yuv); | ||
| 46 | @@ -228,7 +226,7 @@ void xilinx_drm_plane_commit(struct drm_plane *base_plane) | ||
| 47 | for (i = 0; i < MAX_NUM_SUB_PLANES; i++) { | ||
| 48 | struct xilinx_drm_plane_dma *dma = &plane->dma[i]; | ||
| 49 | |||
| 50 | - if (dma->chan && dma->is_active) { | ||
| 51 | + if (dma->chan) { | ||
| 52 | flags = DMA_CTRL_ACK | DMA_PREP_INTERRUPT; | ||
| 53 | desc = dmaengine_prep_interleaved_dma(dma->chan, | ||
| 54 | &dma->xt, | ||
| 55 | @@ -241,6 +239,7 @@ void xilinx_drm_plane_commit(struct drm_plane *base_plane) | ||
| 56 | dmaengine_submit(desc); | ||
| 57 | |||
| 58 | dma_async_issue_pending(dma->chan); | ||
| 59 | + dma->is_active = true; | ||
| 60 | } | ||
| 61 | } | ||
| 62 | } | ||
| 63 | -- | ||
| 64 | 2.10.2 | ||
| 65 | |||
diff --git a/recipes-kernel/linux/linux-xlnx/drm-xilinx-Fix-DPMS-transition-to-on.patch b/recipes-kernel/linux/linux-xlnx/drm-xilinx-Fix-DPMS-transition-to-on.patch deleted file mode 100644 index d60a7514..00000000 --- a/recipes-kernel/linux/linux-xlnx/drm-xilinx-Fix-DPMS-transition-to-on.patch +++ /dev/null | |||
| @@ -1,46 +0,0 @@ | |||
| 1 | From e4264e80116684297e353f6da4156c4ad6f8a03a Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Nathan Rossi <nathan@nathanrossi.com> | ||
| 3 | Date: Mon, 2 May 2016 23:46:42 +1000 | ||
| 4 | Subject: [PATCH] drm: xilinx: Fix DPMS transition to on | ||
| 5 | |||
| 6 | Fix the issues where the VTC is reset (losing its timing config) as well | ||
| 7 | as fixing the issue where the plane destroys its DMA descriptor but | ||
| 8 | never recreates it when turning back on. | ||
| 9 | |||
| 10 | Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> | ||
| 11 | Upstream-Status: Pending [This is a workaround] | ||
| 12 | --- | ||
| 13 | drivers/gpu/drm/xilinx/xilinx_drm_crtc.c | 2 +- | ||
| 14 | drivers/gpu/drm/xilinx/xilinx_drm_plane.c | 3 ++- | ||
| 15 | 2 files changed, 3 insertions(+), 2 deletions(-) | ||
| 16 | |||
| 17 | diff --git a/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c b/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c | ||
| 18 | index 5925d11..ddb75fc 100644 | ||
| 19 | --- a/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c | ||
| 20 | +++ b/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c | ||
| 21 | @@ -78,7 +78,7 @@ static void xilinx_drm_crtc_dpms(struct drm_crtc *base_crtc, int dpms) | ||
| 22 | default: | ||
| 23 | if (crtc->vtc) { | ||
| 24 | xilinx_vtc_disable(crtc->vtc); | ||
| 25 | - xilinx_vtc_reset(crtc->vtc); | ||
| 26 | + /*xilinx_vtc_reset(crtc->vtc);*/ | ||
| 27 | } | ||
| 28 | if (crtc->cresample) { | ||
| 29 | xilinx_cresample_disable(crtc->cresample); | ||
| 30 | diff --git a/drivers/gpu/drm/xilinx/xilinx_drm_plane.c b/drivers/gpu/drm/xilinx/xilinx_drm_plane.c | ||
| 31 | index 8a86735..6de8eb7 100644 | ||
| 32 | --- a/drivers/gpu/drm/xilinx/xilinx_drm_plane.c | ||
| 33 | +++ b/drivers/gpu/drm/xilinx/xilinx_drm_plane.c | ||
| 34 | @@ -146,7 +146,8 @@ void xilinx_drm_plane_dpms(struct drm_plane *base_plane, int dpms) | ||
| 35 | } | ||
| 36 | |||
| 37 | /* start dma engine */ | ||
| 38 | - dma_async_issue_pending(plane->dma.chan); | ||
| 39 | + /*dma_async_issue_pending(plane->dma.chan);*/ | ||
| 40 | + xilinx_drm_plane_commit(base_plane); | ||
| 41 | |||
| 42 | if (plane->rgb2yuv) | ||
| 43 | xilinx_rgb2yuv_enable(plane->rgb2yuv); | ||
| 44 | -- | ||
| 45 | 2.8.1 | ||
| 46 | |||
diff --git a/recipes-kernel/linux/linux-xlnx_4.6.bb b/recipes-kernel/linux/linux-xlnx_4.6.bb index b2402ea7..fdf865aa 100644 --- a/recipes-kernel/linux/linux-xlnx_4.6.bb +++ b/recipes-kernel/linux/linux-xlnx_4.6.bb | |||
| @@ -3,3 +3,10 @@ LINUX_VERSION = "4.6" | |||
| 3 | SRCREV ?="0e4e4071493171bbac37bf60709022f49171c813" | 3 | SRCREV ?="0e4e4071493171bbac37bf60709022f49171c813" |
| 4 | 4 | ||
| 5 | include linux-xlnx.inc | 5 | include linux-xlnx.inc |
| 6 | |||
| 7 | SRC_URI_append_zybo-linux-bd-zynq7 = " \ | ||
| 8 | file://0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch \ | ||
| 9 | file://0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch \ | ||
| 10 | file://0003-drm-xilinx-Fix-DPMS-transition-to-on.patch \ | ||
| 11 | " | ||
| 12 | |||
