]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 4 Jun 2016 21:21:47 +0000 (14:21 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 4 Jun 2016 21:21:47 +0000 (14:21 -0700)
added patches:
drm-i915-don-t-leave-old-junk-in-ilk-active-watermarks-on-readout.patch
drm-imx-match-imx-ipuv3-crtc-components-using-device-node-in-platform-data.patch

queue-4.4/drm-i915-don-t-leave-old-junk-in-ilk-active-watermarks-on-readout.patch [new file with mode: 0644]
queue-4.4/drm-imx-match-imx-ipuv3-crtc-components-using-device-node-in-platform-data.patch [new file with mode: 0644]
queue-4.4/series

diff --git a/queue-4.4/drm-i915-don-t-leave-old-junk-in-ilk-active-watermarks-on-readout.patch b/queue-4.4/drm-i915-don-t-leave-old-junk-in-ilk-active-watermarks-on-readout.patch
new file mode 100644 (file)
index 0000000..74a2481
--- /dev/null
@@ -0,0 +1,45 @@
+From 7045c3689f148a0c95f42bae8ef3eb2829ac7de9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala@linux.intel.com>
+Date: Fri, 13 May 2016 17:55:17 +0300
+Subject: drm/i915: Don't leave old junk in ilk active watermarks on readout
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Ville Syrjälä <ville.syrjala@linux.intel.com>
+
+commit 7045c3689f148a0c95f42bae8ef3eb2829ac7de9 upstream.
+
+When we read out the watermark state from the hardware we're supposed to
+transfer that into the active watermarks, but currently we fail to any
+part of the active watermarks that isn't explicitly written. Let's clear
+it all upfront.
+
+Looks like this has been like this since the beginning, when I added the
+readout. No idea why I didn't clear it up.
+
+Cc: Matt Roper <matthew.d.roper@intel.com>
+Fixes: 243e6a44b9ca ("drm/i915: Init HSW watermark tracking in intel_modeset_setup_hw_state()")
+Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
+Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
+Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
+Link: http://patchwork.freedesktop.org/patch/msgid/1463151318-14719-2-git-send-email-ville.syrjala@linux.intel.com
+(cherry picked from commit 15606534bf0a65d8a74a90fd57b8712d147dbca6)
+Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/intel_pm.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/gpu/drm/i915/intel_pm.c
++++ b/drivers/gpu/drm/i915/intel_pm.c
+@@ -3880,6 +3880,8 @@ static void ilk_pipe_wm_get_hw_state(str
+       if (IS_HASWELL(dev) || IS_BROADWELL(dev))
+               hw->wm_linetime[pipe] = I915_READ(PIPE_WM_LINETIME(pipe));
++      memset(active, 0, sizeof(*active));
++
+       active->pipe_enabled = intel_crtc->active;
+       if (active->pipe_enabled) {
diff --git a/queue-4.4/drm-imx-match-imx-ipuv3-crtc-components-using-device-node-in-platform-data.patch b/queue-4.4/drm-imx-match-imx-ipuv3-crtc-components-using-device-node-in-platform-data.patch
new file mode 100644 (file)
index 0000000..5a47b7d
--- /dev/null
@@ -0,0 +1,124 @@
+From 310944d148e3600dcff8b346bee7fa01d34903b1 Mon Sep 17 00:00:00 2001
+From: Philipp Zabel <p.zabel@pengutronix.de>
+Date: Thu, 12 May 2016 15:00:44 +0200
+Subject: drm/imx: Match imx-ipuv3-crtc components using device node in platform data
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Philipp Zabel <p.zabel@pengutronix.de>
+
+commit 310944d148e3600dcff8b346bee7fa01d34903b1 upstream.
+
+The component master driver imx-drm-core matches component devices using
+their of_node. Since commit 950b410dd1ab ("gpu: ipu-v3: Fix imx-ipuv3-crtc
+module autoloading"), the imx-ipuv3-crtc dev->of_node is not set during
+probing. Before that, of_node was set and caused an of: modalias to be
+used instead of the platform: modalias, which broke module autoloading.
+
+On the other hand, if dev->of_node is not set yet when the imx-ipuv3-crtc
+probe function calls component_add, component matching in imx-drm-core
+fails. While dev->of_node will be set once the next component tries to
+bring up the component master, imx-drm-core component binding will never
+succeed if one of the crtc devices is probed last.
+
+Add of_node to the component platform data and match against the
+pdata->of_node instead of dev->of_node in imx-drm-core to work around
+this problem.
+
+Fixes: 950b410dd1ab ("gpu: ipu-v3: Fix imx-ipuv3-crtc module autoloading")
+Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
+Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
+Tested-by: Lothar Waßmann <LW@KARO-electronics.de>
+Tested-by: Heiko Schocher <hs@denx.de>
+Tested-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/imx/imx-drm-core.c |    8 ++++++++
+ drivers/gpu/drm/imx/ipuv3-crtc.c   |    2 +-
+ drivers/gpu/ipu-v3/ipu-common.c    |    5 +++--
+ include/video/imx-ipu-v3.h         |    2 ++
+ 4 files changed, 14 insertions(+), 3 deletions(-)
+
+--- a/drivers/gpu/drm/imx/imx-drm-core.c
++++ b/drivers/gpu/drm/imx/imx-drm-core.c
+@@ -26,6 +26,7 @@
+ #include <drm/drm_fb_cma_helper.h>
+ #include <drm/drm_plane_helper.h>
+ #include <drm/drm_of.h>
++#include <video/imx-ipu-v3.h>
+ #include "imx-drm.h"
+@@ -504,6 +505,13 @@ static int compare_of(struct device *dev
+ {
+       struct device_node *np = data;
++      /* Special case for DI, dev->of_node may not be set yet */
++      if (strcmp(dev->driver->name, "imx-ipuv3-crtc") == 0) {
++              struct ipu_client_platformdata *pdata = dev->platform_data;
++
++              return pdata->of_node == np;
++      }
++
+       /* Special case for LDB, one device for two channels */
+       if (of_node_cmp(np->name, "lvds-channel") == 0) {
+               np = of_get_parent(np);
+--- a/drivers/gpu/drm/imx/ipuv3-crtc.c
++++ b/drivers/gpu/drm/imx/ipuv3-crtc.c
+@@ -369,7 +369,7 @@ static int ipu_crtc_init(struct ipu_crtc
+       ret = imx_drm_add_crtc(drm, &ipu_crtc->base, &ipu_crtc->imx_crtc,
+                       &ipu_crtc->plane[0]->base, &ipu_crtc_helper_funcs,
+-                      ipu_crtc->dev->of_node);
++                      pdata->of_node);
+       if (ret) {
+               dev_err(ipu_crtc->dev, "adding crtc failed with %d.\n", ret);
+               goto err_put_resources;
+--- a/drivers/gpu/ipu-v3/ipu-common.c
++++ b/drivers/gpu/ipu-v3/ipu-common.c
+@@ -997,7 +997,7 @@ struct ipu_platform_reg {
+ };
+ /* These must be in the order of the corresponding device tree port nodes */
+-static const struct ipu_platform_reg client_reg[] = {
++static struct ipu_platform_reg client_reg[] = {
+       {
+               .pdata = {
+                       .csi = 0,
+@@ -1048,7 +1048,7 @@ static int ipu_add_client_devices(struct
+       mutex_unlock(&ipu_client_id_mutex);
+       for (i = 0; i < ARRAY_SIZE(client_reg); i++) {
+-              const struct ipu_platform_reg *reg = &client_reg[i];
++              struct ipu_platform_reg *reg = &client_reg[i];
+               struct platform_device *pdev;
+               struct device_node *of_node;
+@@ -1070,6 +1070,7 @@ static int ipu_add_client_devices(struct
+               pdev->dev.parent = dev;
++              reg->pdata.of_node = of_node;
+               ret = platform_device_add_data(pdev, &reg->pdata,
+                                              sizeof(reg->pdata));
+               if (!ret)
+--- a/include/video/imx-ipu-v3.h
++++ b/include/video/imx-ipu-v3.h
+@@ -16,6 +16,7 @@
+ #include <linux/videodev2.h>
+ #include <linux/bitmap.h>
+ #include <linux/fb.h>
++#include <linux/of.h>
+ #include <media/v4l2-mediabus.h>
+ #include <video/videomode.h>
+@@ -344,6 +345,7 @@ struct ipu_client_platformdata {
+       int dc;
+       int dp;
+       int dma[2];
++      struct device_node *of_node;
+ };
+ #endif /* __DRM_IPU_H__ */
index e8b2a80db70794a0f5f039df07cfd8444cb3a496..35bccfad3fcbd9925b93dd8a9f07a56e3e126cbc 100644 (file)
@@ -78,3 +78,5 @@ drm-amdgpu-fix-hdmi-deep-color-support.patch
 drm-i915-fbdev-fix-num_connector-references-in-intel_fb_initial_config.patch
 drm-fb_helper-fix-references-to-dev-mode_config.num_connector.patch
 drm-atomic-verify-connector-funcs-null-when-clearing-states.patch
+drm-i915-don-t-leave-old-junk-in-ilk-active-watermarks-on-readout.patch
+drm-imx-match-imx-ipuv3-crtc-components-using-device-node-in-platform-data.patch