diff options
-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}" KBRANCH ?= "" SRCBRANCHARG = "${@['nobranch=1', 'branch=${KBRANCH}'][d.getVar('KBRANCH', True) != '']}" -FILESEXTRAPATHS_prepend := "${THISDIR}/linux-xlnx:" +FILESOVERRIDES_append = ":${LINUX_VERSION}" SRC_URI = " \ git://github.com/Xilinx/linux-xlnx.git;protocol=https;${SRCBRANCHARG} \ 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 @@ -From 3d1820b308dcc9344d8e7df4a8a712632fb77b97 Mon Sep 17 00:00:00 2001 -Message-Id: <3d1820b308dcc9344d8e7df4a8a712632fb77b97.1460291687.git.jason.wu.misc@gmail.com> +From 9f144ae13de8a48eda11af4d5738338894ad92c6 Mon Sep 17 00:00:00 2001 From: Jason Wu <jason.wu.misc@gmail.com> Date: Sun, 10 Apr 2016 13:14:13 +1000 -Subject: [LINUX] [PATCH] drm: xilinx: Add encoder for Digilent boards +Subject: [PATCH 1/3] drm: xilinx: Add encoder for Digilent boards Add the dglnt_encoder driver that enables DRM support for the VGA and HDMI output ports found on many Digilent boards. @@ -12,11 +11,17 @@ Upstream-Status: Pending Signed-off-by: Sam Bobrowicz <sbobrowicz@digilentinc.com> Signed-off-by: Jason Wu <jason.wu.misc@gmail.com> --- -github.com () linux-xlnx.git xlnx/master + .../bindings/drm/xilinx/dglnt_encoder.txt | 23 +++ + drivers/gpu/drm/xilinx/Kconfig | 6 + + drivers/gpu/drm/xilinx/Makefile | 1 + + drivers/gpu/drm/xilinx/dglnt_encoder.c | 217 +++++++++++++++++++++ + 4 files changed, 247 insertions(+) + create mode 100644 Documentation/devicetree/bindings/drm/xilinx/dglnt_encoder.txt + create mode 100644 drivers/gpu/drm/xilinx/dglnt_encoder.c diff --git a/Documentation/devicetree/bindings/drm/xilinx/dglnt_encoder.txt b/Documentation/devicetree/bindings/drm/xilinx/dglnt_encoder.txt new file mode 100644 -index 0000000..242b24e +index 0000000000..242b24e482 --- /dev/null +++ b/Documentation/devicetree/bindings/drm/xilinx/dglnt_encoder.txt @@ -0,0 +1,23 @@ @@ -44,7 +49,7 @@ index 0000000..242b24e + dglnt,edid-i2c = <&i2c1>; + }; diff --git a/drivers/gpu/drm/xilinx/Kconfig b/drivers/gpu/drm/xilinx/Kconfig -index a713b17..c32a4a6 100644 +index a713b17673..c32a4a679e 100644 --- a/drivers/gpu/drm/xilinx/Kconfig +++ b/drivers/gpu/drm/xilinx/Kconfig @@ -21,3 +21,9 @@ config DRM_XILINX_DP_SUB @@ -58,7 +63,7 @@ index a713b17..c32a4a6 100644 + help + DRM slave encoder for Video-out on Digilent boards. diff --git a/drivers/gpu/drm/xilinx/Makefile b/drivers/gpu/drm/xilinx/Makefile -index 705472c..a571bd9 100644 +index 705472c338..a571bd96cf 100644 --- a/drivers/gpu/drm/xilinx/Makefile +++ b/drivers/gpu/drm/xilinx/Makefile @@ -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 +obj-$(CONFIG_DRM_DIGILENT_ENCODER) += dglnt_encoder.o diff --git a/drivers/gpu/drm/xilinx/dglnt_encoder.c b/drivers/gpu/drm/xilinx/dglnt_encoder.c new file mode 100644 -index 0000000..26a2398 +index 0000000000..26a23986f9 --- /dev/null +++ b/drivers/gpu/drm/xilinx/dglnt_encoder.c @@ -0,0 +1,217 @@ @@ -290,5 +295,5 @@ index 0000000..26a2398 +MODULE_DESCRIPTION("DRM slave encoder for Video-out on Digilent boards"); +MODULE_LICENSE("GPL v2"); -- -1.9.1 +2.10.2 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 @@ -From e3b9c3186bbdf9cd5d084c62ecd232b57a316d3f Mon Sep 17 00:00:00 2001 +From b1c1dbc241385fcf1f85c5be9a6fb30fd70c784d Mon Sep 17 00:00:00 2001 From: Jason Wu <jason.wu.misc@gmail.com> Date: Sun, 10 Apr 2016 13:16:06 +1000 -Subject: [PATCH] clk: Add driver for axi_dynclk IP Core +Subject: [PATCH 2/3] clk: Add driver for axi_dynclk IP Core Add support for the axi_dynclk IP Core available from Digilent. This IP core dynamically configures the clock resources inside a Xilinx FPGA to @@ -11,12 +11,18 @@ Upstream-Status: Pending Signed-off-by: Sam Bobrowicz <sbobrowicz@digilentinc.com> Signed-off-by: Jason Wu <jason.wu.misc@gmail.com> +--- + drivers/clk/Kconfig | 8 + + drivers/clk/Makefile | 1 + + drivers/clk/clk-dglnt-dynclk.c | 547 +++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 556 insertions(+) + create mode 100644 drivers/clk/clk-dglnt-dynclk.c diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig -index c3e3a02..29dfd15 100644 +index d42af55820..e276d9a27e 100644 --- a/drivers/clk/Kconfig +++ b/drivers/clk/Kconfig -@@ -147,6 +147,14 @@ config CLK_QORIQ +@@ -158,6 +158,14 @@ config CLK_QORIQ This adds the clock driver support for Freescale QorIQ platforms using common clock framework. @@ -32,12 +38,12 @@ index c3e3a02..29dfd15 100644 bool "Clock driver for APM XGene SoC" default y diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile -index 820714c..9043f45 100644 +index e861470ef1..6c0a5a8d6b 100644 --- a/drivers/clk/Makefile +++ b/drivers/clk/Makefile -@@ -22,6 +22,7 @@ obj-$(CONFIG_COMMON_CLK_AXI_CLKGEN) += clk-axi-clkgen.o - obj-$(CONFIG_ARCH_AXXIA) += clk-axm5516.o +@@ -23,6 +23,7 @@ obj-$(CONFIG_ARCH_AXXIA) += clk-axm5516.o obj-$(CONFIG_COMMON_CLK_CDCE706) += clk-cdce706.o + obj-$(CONFIG_COMMON_CLK_CS2000_CP) += clk-cs2000-cp.o obj-$(CONFIG_ARCH_CLPS711X) += clk-clps711x.o +obj-$(CONFIG_COMMON_CLK_DGLNT_DYNCLK) += clk-dglnt-dynclk.o obj-$(CONFIG_ARCH_EFM32) += clk-efm32gg.o @@ -45,7 +51,7 @@ index 820714c..9043f45 100644 obj-$(CONFIG_MACH_LOONGSON32) += clk-ls1x.o diff --git a/drivers/clk/clk-dglnt-dynclk.c b/drivers/clk/clk-dglnt-dynclk.c new file mode 100644 -index 0000000..496ad5f +index 0000000000..496ad5fc90 --- /dev/null +++ b/drivers/clk/clk-dglnt-dynclk.c @@ -0,0 +1,547 @@ @@ -597,5 +603,5 @@ index 0000000..496ad5f +MODULE_AUTHOR("Sam Bobrowicz <sbobrowicz@digilentinc.com>"); +MODULE_DESCRIPTION("CCF Driver for Digilent axi_dynclk IP Core"); -- -1.9.1 +2.10.2 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 @@ +From aec919daafd960b5bfcb8eb2352bc7f2857df56f Mon Sep 17 00:00:00 2001 +From: Nathan Rossi <nathan@nathanrossi.com> +Date: Mon, 2 May 2016 23:46:42 +1000 +Subject: [PATCH 3/3] drm: xilinx: Fix DPMS transition to on + +Fix the issues where the VTC is reset (losing its timing config). + +Also fix the issue where the plane destroys its DMA descriptors and +marks the DMA channels as inactive but never recreates the descriptors +and never updates the active state when turning DPMS back on. + +Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> +Upstream-Status: Pending [This is a workaround] +--- + drivers/gpu/drm/xilinx/xilinx_drm_crtc.c | 1 - + drivers/gpu/drm/xilinx/xilinx_drm_plane.c | 7 +++---- + 2 files changed, 3 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c b/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c +index 33a7931c2e..0f346c53de 100644 +--- a/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c ++++ b/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c +@@ -78,7 +78,6 @@ static void xilinx_drm_crtc_dpms(struct drm_crtc *base_crtc, int dpms) + default: + if (crtc->vtc) { + xilinx_vtc_disable(crtc->vtc); +- xilinx_vtc_reset(crtc->vtc); + } + if (crtc->cresample) { + xilinx_cresample_disable(crtc->cresample); +diff --git a/drivers/gpu/drm/xilinx/xilinx_drm_plane.c b/drivers/gpu/drm/xilinx/xilinx_drm_plane.c +index 7fc110a8a5..83fcfd6db5 100644 +--- a/drivers/gpu/drm/xilinx/xilinx_drm_plane.c ++++ b/drivers/gpu/drm/xilinx/xilinx_drm_plane.c +@@ -151,9 +151,7 @@ void xilinx_drm_plane_dpms(struct drm_plane *base_plane, int dpms) + } + + /* start dma engine */ +- for (i = 0; i < MAX_NUM_SUB_PLANES; i++) +- if (plane->dma[i].chan && plane->dma[i].is_active) +- dma_async_issue_pending(plane->dma[i].chan); ++ xilinx_drm_plane_commit(base_plane); + + if (plane->rgb2yuv) + xilinx_rgb2yuv_enable(plane->rgb2yuv); +@@ -228,7 +226,7 @@ void xilinx_drm_plane_commit(struct drm_plane *base_plane) + for (i = 0; i < MAX_NUM_SUB_PLANES; i++) { + struct xilinx_drm_plane_dma *dma = &plane->dma[i]; + +- if (dma->chan && dma->is_active) { ++ if (dma->chan) { + flags = DMA_CTRL_ACK | DMA_PREP_INTERRUPT; + desc = dmaengine_prep_interleaved_dma(dma->chan, + &dma->xt, +@@ -241,6 +239,7 @@ void xilinx_drm_plane_commit(struct drm_plane *base_plane) + dmaengine_submit(desc); + + dma_async_issue_pending(dma->chan); ++ dma->is_active = true; + } + } + } +-- +2.10.2 + 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 @@ -From e4264e80116684297e353f6da4156c4ad6f8a03a Mon Sep 17 00:00:00 2001 -From: Nathan Rossi <nathan@nathanrossi.com> -Date: Mon, 2 May 2016 23:46:42 +1000 -Subject: [PATCH] drm: xilinx: Fix DPMS transition to on - -Fix the issues where the VTC is reset (losing its timing config) as well -as fixing the issue where the plane destroys its DMA descriptor but -never recreates it when turning back on. - -Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> -Upstream-Status: Pending [This is a workaround] ---- - drivers/gpu/drm/xilinx/xilinx_drm_crtc.c | 2 +- - drivers/gpu/drm/xilinx/xilinx_drm_plane.c | 3 ++- - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c b/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c -index 5925d11..ddb75fc 100644 ---- a/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c -+++ b/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c -@@ -78,7 +78,7 @@ static void xilinx_drm_crtc_dpms(struct drm_crtc *base_crtc, int dpms) - default: - if (crtc->vtc) { - xilinx_vtc_disable(crtc->vtc); -- xilinx_vtc_reset(crtc->vtc); -+ /*xilinx_vtc_reset(crtc->vtc);*/ - } - if (crtc->cresample) { - xilinx_cresample_disable(crtc->cresample); -diff --git a/drivers/gpu/drm/xilinx/xilinx_drm_plane.c b/drivers/gpu/drm/xilinx/xilinx_drm_plane.c -index 8a86735..6de8eb7 100644 ---- a/drivers/gpu/drm/xilinx/xilinx_drm_plane.c -+++ b/drivers/gpu/drm/xilinx/xilinx_drm_plane.c -@@ -146,7 +146,8 @@ void xilinx_drm_plane_dpms(struct drm_plane *base_plane, int dpms) - } - - /* start dma engine */ -- dma_async_issue_pending(plane->dma.chan); -+ /*dma_async_issue_pending(plane->dma.chan);*/ -+ xilinx_drm_plane_commit(base_plane); - - if (plane->rgb2yuv) - xilinx_rgb2yuv_enable(plane->rgb2yuv); --- -2.8.1 - 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" SRCREV ?="0e4e4071493171bbac37bf60709022f49171c813" include linux-xlnx.inc + +SRC_URI_append_zybo-linux-bd-zynq7 = " \ + file://0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch \ + file://0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch \ + file://0003-drm-xilinx-Fix-DPMS-transition-to-on.patch \ + " + |