dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Steve Longerbeam <slongerbeam@gmail.com>
To: dri-devel@lists.freedesktop.org
Subject: [PATCH 50/72] imx-drm: Fix separate primary plane objects
Date: Fri, 31 Oct 2014 15:54:33 -0700	[thread overview]
Message-ID: <1414796095-10107-51-git-send-email-steve_longerbeam@mentor.com> (raw)
In-Reply-To: <1414796095-10107-1-git-send-email-steve_longerbeam@mentor.com>

drm_crtc_init() will create a primary plane object, while imx-drm also
creates its own, thus two primary planes are separately created, and
can cause difficult bugs to track down in the future.

Fix by using drm_crtc_init_with_planes() instead of drm_crtc_init(),
so that we can hand drm our own primary plane object, thus crtc->primary
and ipu_crtc->plane[0].base now are the same object.

To do this we need to statically declare the primary and overlay
planes in the crtc driver, to avoid a chicken-before-the-egg problem,
the primary plane must exist when imx_drm_add_crtc() is called but
before ipu_plane_init().

Signed-off-by: Steve Longerbeam <steve_longerbeam@mentor.com>
---
 drivers/staging/imx-drm/imx-drm-core.c |    3 +-
 drivers/staging/imx-drm/imx-drm.h      |    1 +
 drivers/staging/imx-drm/ipuv3-crtc.c   |   54 ++++++++++++++++++--------------
 drivers/staging/imx-drm/ipuv3-plane.c  |   32 +++++--------------
 drivers/staging/imx-drm/ipuv3-plane.h  |    6 ++--
 5 files changed, 45 insertions(+), 51 deletions(-)

diff --git a/drivers/staging/imx-drm/imx-drm-core.c b/drivers/staging/imx-drm/imx-drm-core.c
index e5ec010..59200ff 100644
--- a/drivers/staging/imx-drm/imx-drm-core.c
+++ b/drivers/staging/imx-drm/imx-drm-core.c
@@ -342,6 +342,7 @@ err_kms:
  * imx_drm_add_crtc - add a new crtc
  */
 int imx_drm_add_crtc(struct drm_device *drm, struct drm_crtc *crtc,
+		struct drm_plane *primary,
 		struct imx_drm_crtc **new_crtc,
 		const struct imx_drm_crtc_helper_funcs *imx_drm_helper_funcs,
 		struct device_node *port)
@@ -380,7 +381,7 @@ int imx_drm_add_crtc(struct drm_device *drm, struct drm_crtc *crtc,
 	drm_crtc_helper_add(crtc,
 			imx_drm_crtc->imx_drm_helper_funcs.crtc_helper_funcs);
 
-	drm_crtc_init(drm, crtc,
+	drm_crtc_init_with_planes(drm, crtc, primary, NULL,
 			imx_drm_crtc->imx_drm_helper_funcs.crtc_funcs);
 
 	return 0;
diff --git a/drivers/staging/imx-drm/imx-drm.h b/drivers/staging/imx-drm/imx-drm.h
index 7453ae0..3a30f16 100644
--- a/drivers/staging/imx-drm/imx-drm.h
+++ b/drivers/staging/imx-drm/imx-drm.h
@@ -24,6 +24,7 @@ struct imx_drm_crtc_helper_funcs {
 };
 
 int imx_drm_add_crtc(struct drm_device *drm, struct drm_crtc *crtc,
+		struct drm_plane *primary,
 		struct imx_drm_crtc **new_crtc,
 		const struct imx_drm_crtc_helper_funcs *imx_helper_funcs,
 		struct device_node *port);
diff --git a/drivers/staging/imx-drm/ipuv3-crtc.c b/drivers/staging/imx-drm/ipuv3-crtc.c
index 5a60017..593261f 100644
--- a/drivers/staging/imx-drm/ipuv3-crtc.c
+++ b/drivers/staging/imx-drm/ipuv3-crtc.c
@@ -84,7 +84,8 @@ struct ipu_crtc {
 	const struct ipu_channels *ch;
 
 	/* plane[0] is the full plane, plane[1] is the partial plane */
-	struct ipu_plane	*plane[2];
+	struct ipu_plane	plane[2];
+	bool			have_overlay; /* we have a partial plane */
 
 	struct ipu_dc		*dc;
 	struct ipu_di		*di;
@@ -106,7 +107,7 @@ static void ipu_fb_enable(struct ipu_crtc *ipu_crtc)
 		return;
 
 	ipu_dc_enable(ipu_crtc->dc);
-	ipu_plane_enable(ipu_crtc->plane[0]);
+	ipu_plane_enable(&ipu_crtc->plane[0]);
 	/* Start DC channel and DI after IDMAC */
 	ipu_dc_enable_channel(ipu_crtc->dc);
 	ipu_di_enable(ipu_crtc->di);
@@ -123,7 +124,7 @@ static void ipu_fb_disable(struct ipu_crtc *ipu_crtc)
 	/* Stop DC channel and DI before IDMAC */
 	ipu_dc_disable_channel(ipu_crtc->dc);
 	ipu_di_disable(ipu_crtc->di);
-	ipu_plane_disable(ipu_crtc->plane[0]);
+	ipu_plane_disable(&ipu_crtc->plane[0]);
 	ipu_dc_disable(ipu_crtc->dc);
 	ipu_di_disable_clock(ipu_crtc->di);
 
@@ -241,7 +242,7 @@ static int ipu_crtc_mode_set(struct drm_crtc *crtc,
 		return ret;
 	}
 
-	return ipu_plane_mode_set(ipu_crtc->plane[0], crtc, mode,
+	return ipu_plane_mode_set(&ipu_crtc->plane[0], crtc, mode,
 				  crtc->primary->fb,
 				  0, 0, mode->hdisplay, mode->vdisplay,
 				  x, y, mode->hdisplay, mode->vdisplay);
@@ -267,7 +268,7 @@ static irqreturn_t ipu_irq_handler(int irq, void *dev_id)
 	imx_drm_handle_vblank(ipu_crtc->imx_crtc);
 
 	if (ipu_crtc->newfb) {
-		struct ipu_plane *plane = ipu_crtc->plane[0];
+		struct ipu_plane *plane = &ipu_crtc->plane[0];
 
 		ipu_crtc->newfb = NULL;
 		ipu_plane_set_base(plane, ipu_crtc->base.primary->fb,
@@ -474,20 +475,27 @@ static int ipu_crtc_init(struct ipu_crtc *ipu_crtc,
 		return ret;
 	}
 
-	ret = imx_drm_add_crtc(drm, &ipu_crtc->base, &ipu_crtc->imx_crtc,
-			       &ipu_crtc_helper_funcs, ipu_crtc->port);
+	ret = imx_drm_add_crtc(drm, &ipu_crtc->base, &ipu_crtc->plane[0].base,
+			       &ipu_crtc->imx_crtc, &ipu_crtc_helper_funcs,
+			       ipu_crtc->port);
 	if (ret) {
 		dev_err(ipu_crtc->dev, "adding crtc failed with %d.\n", ret);
 		goto err_put_resources;
 	}
 
 	id = imx_drm_crtc_id(ipu_crtc->imx_crtc);
-	ipu_crtc->plane[0] = ipu_plane_init(ipu_crtc->base.dev,
-					    ipu_crtc->ipu,
-					    ipu_crtc->ch->dma[0],
-					    ipu_crtc->ch->dp[0],
-					    BIT(id), true);
-	ret = ipu_plane_get_resources(ipu_crtc->plane[0]);
+	ret = ipu_plane_init(&ipu_crtc->plane[0], drm,
+			     ipu_crtc->ipu,
+			     ipu_crtc->ch->dma[0],
+			     ipu_crtc->ch->dp[0],
+			     BIT(id), true);
+	if (ret) {
+		dev_err(ipu_crtc->dev, "init primary plane failed with %d\n",
+			ret);
+		goto err_remove_crtc;
+	}
+
+	ret = ipu_plane_get_resources(&ipu_crtc->plane[0]);
 	if (ret) {
 		dev_err(ipu_crtc->dev, "getting plane 0 resources failed with %d.\n",
 			ret);
@@ -496,16 +504,16 @@ static int ipu_crtc_init(struct ipu_crtc *ipu_crtc,
 
 	/* If this crtc is using the DP, add an overlay plane */
 	if (ipu_crtc->ch->dp[1] >= 0) {
-		ipu_crtc->plane[1] = ipu_plane_init(ipu_crtc->base.dev,
-						    ipu_crtc->ipu,
-						    ipu_crtc->ch->dma[1],
-						    ipu_crtc->ch->dp[1],
-						    BIT(id), false);
-		if (IS_ERR(ipu_crtc->plane[1]))
-			ipu_crtc->plane[1] = NULL;
+		ret = ipu_plane_init(&ipu_crtc->plane[1], drm,
+				     ipu_crtc->ipu,
+				     ipu_crtc->ch->dma[1],
+				     ipu_crtc->ch->dp[1],
+				     BIT(id), false);
+
+		ipu_crtc->have_overlay = ret ? false : true;
 	}
 
-	ipu_crtc->irq = ipu_plane_irq(ipu_crtc->plane[0]);
+	ipu_crtc->irq = ipu_plane_irq(&ipu_crtc->plane[0]);
 	ret = devm_request_irq(ipu_crtc->dev, ipu_crtc->irq, ipu_irq_handler, 0,
 			"imx_drm", ipu_crtc);
 	if (ret < 0) {
@@ -516,7 +524,7 @@ static int ipu_crtc_init(struct ipu_crtc *ipu_crtc,
 	return 0;
 
 err_put_plane_res:
-	ipu_plane_put_resources(ipu_crtc->plane[0]);
+	ipu_plane_put_resources(&ipu_crtc->plane[0]);
 err_remove_crtc:
 	imx_drm_remove_crtc(ipu_crtc->imx_crtc);
 err_put_resources:
@@ -553,7 +561,7 @@ static void ipu_drm_unbind(struct device *dev, struct device *master,
 
 	imx_drm_remove_crtc(ipu_crtc->imx_crtc);
 
-	ipu_plane_put_resources(ipu_crtc->plane[0]);
+	ipu_plane_put_resources(&ipu_crtc->plane[0]);
 	ipu_put_resources(ipu_crtc);
 }
 
diff --git a/drivers/staging/imx-drm/ipuv3-plane.c b/drivers/staging/imx-drm/ipuv3-plane.c
index 1572c80..51a257a 100644
--- a/drivers/staging/imx-drm/ipuv3-plane.c
+++ b/drivers/staging/imx-drm/ipuv3-plane.c
@@ -338,13 +338,10 @@ static int ipu_disable_plane(struct drm_plane *plane)
 
 static void ipu_plane_destroy(struct drm_plane *plane)
 {
-	struct ipu_plane *ipu_plane = to_ipu_plane(plane);
-
 	DRM_DEBUG_KMS("[%d] %s\n", __LINE__, __func__);
 
 	ipu_disable_plane(plane);
 	drm_plane_cleanup(plane);
-	kfree(ipu_plane);
 }
 
 static int ipu_plane_set_global_alpha(struct ipu_plane *ipu_plane,
@@ -426,22 +423,15 @@ static struct drm_plane_funcs ipu_plane_funcs = {
 	.set_property	= ipu_plane_set_property,
 };
 
-struct ipu_plane *ipu_plane_init(struct drm_device *drm, struct ipu_soc *ipu,
-				 int dma, int dp, unsigned int possible_crtcs,
-				 bool priv)
+int ipu_plane_init(struct ipu_plane *ipu_plane, struct drm_device *drm,
+		   struct ipu_soc *ipu, int dma, int dp,
+		   unsigned int possible_crtcs, bool priv)
 {
-	struct ipu_plane *ipu_plane;
 	int ret;
 
 	DRM_DEBUG_KMS("channel %d, dp flow %d, possible_crtcs=0x%x\n",
 		      dma, dp, possible_crtcs);
 
-	ipu_plane = kzalloc(sizeof(*ipu_plane), GFP_KERNEL);
-	if (!ipu_plane) {
-		DRM_ERROR("failed to allocate plane\n");
-		return ERR_PTR(-ENOMEM);
-	}
-
 	ipu_plane->ipu = ipu;
 	ipu_plane->dma = dma;
 	ipu_plane->dp_flow = dp;
@@ -452,7 +442,7 @@ struct ipu_plane *ipu_plane_init(struct drm_device *drm, struct ipu_soc *ipu,
 			     priv);
 	if (ret) {
 		DRM_ERROR("failed to initialize plane\n");
-		goto err_free;
+		return ret;
 	}
 
 	/* default global alpha is enabled and completely opaque */
@@ -461,7 +451,7 @@ struct ipu_plane *ipu_plane_init(struct drm_device *drm, struct ipu_soc *ipu,
 
 	/* for private planes, skip setting up properties */
 	if (priv)
-		return ipu_plane;
+		return 0;
 
 	/*
 	 * global alpha range is 0 - 255. Bit 8 is used as a
@@ -472,8 +462,7 @@ struct ipu_plane *ipu_plane_init(struct drm_device *drm, struct ipu_soc *ipu,
 								 0, 0x1ff);
 	if (!ipu_plane->global_alpha_prop) {
 		DRM_ERROR("failed to create global alpha property\n");
-		ret = -ENOMEM;
-		goto err_free;
+		return -ENOMEM;
 	}
 
 	/*
@@ -485,8 +474,7 @@ struct ipu_plane *ipu_plane_init(struct drm_device *drm, struct ipu_soc *ipu,
 							     0, 0x01ffffff);
 	if (!ipu_plane->colorkey_prop) {
 		DRM_ERROR("failed to create colorkey property\n");
-		ret = -ENOMEM;
-		goto err_free;
+		return -ENOMEM;
 	}
 
 	drm_object_attach_property(&ipu_plane->base.base,
@@ -495,9 +483,5 @@ struct ipu_plane *ipu_plane_init(struct drm_device *drm, struct ipu_soc *ipu,
 	drm_object_attach_property(&ipu_plane->base.base,
 				   ipu_plane->colorkey_prop,
 				   0);
-	return ipu_plane;
-
-err_free:
-	kfree(ipu_plane);
-	return ERR_PTR(ret);
+	return 0;
 }
diff --git a/drivers/staging/imx-drm/ipuv3-plane.h b/drivers/staging/imx-drm/ipuv3-plane.h
index b4daee5..1487a08 100644
--- a/drivers/staging/imx-drm/ipuv3-plane.h
+++ b/drivers/staging/imx-drm/ipuv3-plane.h
@@ -37,9 +37,9 @@ struct ipu_plane {
 	bool			enabled;
 };
 
-struct ipu_plane *ipu_plane_init(struct drm_device *dev, struct ipu_soc *ipu,
-				 int dma, int dp, unsigned int possible_crtcs,
-				 bool priv);
+int ipu_plane_init(struct ipu_plane *ipu_plane, struct drm_device *drm,
+		   struct ipu_soc *ipu, int dma, int dp,
+		   unsigned int possible_crtcs, bool priv);
 
 /* Init IDMAC, DMFC, DP */
 int ipu_plane_mode_set(struct ipu_plane *plane, struct drm_crtc *crtc,
-- 
1.7.9.5

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2014-10-31 22:57 UTC|newest]

Thread overview: 115+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-31 22:53 [PATCH 00/72] staging imx-drm new features and fixes Steve Longerbeam
2014-10-31 22:53 ` [PATCH 01/72] ARM: dts: imx6qdl-sabrelite: Add HDMI device Steve Longerbeam
2014-10-31 22:53 ` [PATCH 02/72] ARM: dts: imx6qdl-sabreauto: " Steve Longerbeam
2014-10-31 22:53 ` [PATCH 03/72] ARM: dts: imx6qdl: Create imx-drm crtc nodes Steve Longerbeam
2014-11-03 12:31   ` Philipp Zabel
2014-11-03 17:09     ` Steve Longerbeam
2014-10-31 22:53 ` [PATCH 04/72] ARM: i.MX6: use pll2_pfd0_352m as clock root of ipu_di Steve Longerbeam
2014-11-03 12:30   ` Philipp Zabel
2014-11-03 19:10     ` Steve Longerbeam
2014-10-31 22:53 ` [PATCH 05/72] ARM: i.MX6: select pll3_usb_otg for ldb_di for rev 1.0 chip Steve Longerbeam
2014-11-03 12:30   ` Philipp Zabel
2014-11-03 19:17     ` Steve Longerbeam
2014-11-03 20:06       ` Fabio Estevam
2014-11-04  2:38         ` Steve Longerbeam
2014-10-31 22:53 ` [PATCH 06/72] gpu: ipu-cpmem: Add ipu_cpmem_set_uv_offset() Steve Longerbeam
2014-11-03 12:30   ` Philipp Zabel
2014-11-03 22:52     ` Steve Longerbeam
2014-10-31 22:53 ` [PATCH 07/72] gpu: ipu-v3: Add ipu_dp_set_chroma_key() Steve Longerbeam
2014-11-03 12:31   ` Philipp Zabel
2014-11-04  1:55     ` Steve Longerbeam
2014-10-31 22:53 ` [PATCH 08/72] gpu: ipu-v3: Add ipu_dp_set_gamma_correction() Steve Longerbeam
2014-10-31 22:53 ` [PATCH 09/72] gpu: ipu-v3: Add support for dynamic DC interface pixel maps Steve Longerbeam
2014-10-31 22:53 ` [PATCH 10/72] gpu: ipu-v3: Add ipu_dc_uninit_sync() Steve Longerbeam
2014-10-31 22:53 ` [PATCH 11/72] gpu: ipu-v3: Pass struct ipu_dc to enable/disable Steve Longerbeam
2014-10-31 22:53 ` [PATCH 12/72] gpu: ipu-v3: Add ipu_dp_uninit_channel() Steve Longerbeam
2014-10-31 22:53 ` [PATCH 13/72] gpu: ipu-v3: Pass struct ipu_dp to enable/disable Steve Longerbeam
2014-10-31 22:53 ` [PATCH 14/72] gpu: ipu-v3: Implement use counter for ipu_dc_enable(), ipu_dc_disable() Steve Longerbeam
2014-10-31 22:53 ` [PATCH 15/72] gpu: ipu-v3: fix HDMI timing issues Steve Longerbeam
2014-10-31 22:53 ` [PATCH 16/72] gpu: ipu-v3: Add DMFC/DP/DC/DI module enable/disable debug Steve Longerbeam
2014-10-31 22:54 ` [PATCH 17/72] gpu: ipu-v3: Add ipu_di_uninit_sync_panel() Steve Longerbeam
2014-10-31 22:54 ` [PATCH 18/72] gpu: ipu-v3: Split out DI clock enable/disable Steve Longerbeam
2014-10-31 22:54 ` [PATCH 19/72] gpu: ipu-v3: Protect more CM reg access with IPU lock Steve Longerbeam
2014-11-04 17:51   ` Philipp Zabel
2014-11-05  1:54     ` Steve Longerbeam
2014-11-05  1:55     ` Steve Longerbeam
2014-10-31 22:54 ` [PATCH 20/72] gpu: ipu-v3: Move DI waveform counter enable/disable to ipu-di Steve Longerbeam
2014-10-31 22:54 ` [PATCH 21/72] gpu: ipu-v3: Update DP sync SRM always in ipu_dp_enable_channel() Steve Longerbeam
2014-10-31 22:54 ` [PATCH 22/72] gpu: ipu-v3: Fix indent/ws in ipu-dmfc Steve Longerbeam
2014-10-31 22:54 ` [PATCH 23/72] gpu: ipu-v3: Allow burstsize of 20 in ipu_dmfc_setup_channel() Steve Longerbeam
2014-10-31 22:54 ` [PATCH 24/72] gpu: ipu-v3: Remove ipu_dmfc_init_channel() Steve Longerbeam
2014-10-31 22:54 ` [PATCH 25/72] gpu: ipu-v3: Consolidate mutex lock in ipu_dmfc_alloc_bandwidth() Steve Longerbeam
2014-10-31 22:54 ` [PATCH 26/72] gpu: ipu-v3: Enumerate the DC channel names Steve Longerbeam
2014-10-31 22:54 ` [PATCH 27/72] gpu: ipu-di: Move ipu pointer init Steve Longerbeam
2014-10-31 22:54 ` [PATCH 28/72] gpu: ipu-di: Add and improve debug/error messages Steve Longerbeam
2014-10-31 22:54 ` [PATCH 29/72] gpu: ipu-v3: Change signal names in struct ipu_di_signal_cfg Steve Longerbeam
2014-10-31 22:54 ` [PATCH 30/72] gpu: ipu-v3: Remove IPU client registration Steve Longerbeam
2014-10-31 22:54 ` [PATCH 31/72] gpu: ipu-di: Set rate of DI pre clock Steve Longerbeam
2014-10-31 22:54 ` [PATCH 32/72] gpu: ipu-v3: Add RGB666 interface pixel map Steve Longerbeam
2014-10-31 22:54 ` [PATCH 33/72] gpu: ipu-cpmem: Pass drm fourcc to ipu_cpmem_set_yuv_* Steve Longerbeam
2014-10-31 22:54 ` [PATCH 34/72] gpu: ipu-v3: Add ipu_drm_fourcc_is_planar() Steve Longerbeam
2014-10-31 22:54 ` [PATCH 35/72] gpu: ipu-v3: Add IDMA channel linking support Steve Longerbeam
2014-10-31 22:54 ` [PATCH 36/72] gpu: ipu-cpmem: Support YVU422 Steve Longerbeam
2014-10-31 22:54 ` [PATCH 37/72] gpu: ipu-cpmem: Add ipu_cpmem_get_burstsize() Steve Longerbeam
2014-10-31 22:54 ` [PATCH 38/72] imx-drm: Crtcs moved to device tree Steve Longerbeam
2014-10-31 22:54 ` [PATCH 39/72] imx-drm: hdmi: optimize i2c write wait Steve Longerbeam
2014-10-31 22:54 ` [PATCH 40/72] imx-drm: parallel-display: Support RGB666 pixel fmt Steve Longerbeam
2014-10-31 22:54 ` [PATCH 41/72] imx-drm: imx-ldb: Add debug to connector/encoder entry points Steve Longerbeam
2014-10-31 22:54 ` [PATCH 42/72] imx-drm: imx-ldb: Implement imx_ldb_encoder_dpms() Steve Longerbeam
2014-10-31 22:54 ` [PATCH 43/72] imx-drm: parallel-display: Fix typo when setting mode type Steve Longerbeam
2014-10-31 22:54 ` [PATCH 44/72] imx-drm: ipuv3-plane: Fix planar formats Steve Longerbeam
2014-10-31 22:54 ` [PATCH 45/72] imx-drm: ipuv3-plane: Allow YUV space for background plane Steve Longerbeam
2014-10-31 22:54 ` [PATCH 46/72] imx-drm: ipuv3-plane: Add more supported pixel formats Steve Longerbeam
2014-10-31 22:54 ` [PATCH 47/72] imx-drm: ipuv3-plane: Implement global alpha and colorkey properties Steve Longerbeam
2014-10-31 22:54 ` [PATCH 48/72] imx-drm: hdmi: rework irq request/free Steve Longerbeam
2014-10-31 22:54 ` [PATCH 49/72] imx-drm: imx-ldb: Add DDC support Steve Longerbeam
2014-11-04 17:52   ` Philipp Zabel
2014-10-31 22:54 ` Steve Longerbeam [this message]
2014-10-31 22:54 ` [PATCH 51/72] imx-drm: Move page flip handling to plane driver Steve Longerbeam
2014-10-31 22:54 ` [PATCH 52/72] imx-drm: Reset ipu unit pointers to NULL on errors Steve Longerbeam
2014-10-31 22:54 ` [PATCH 53/72] drm: implement page flipping support for planes Steve Longerbeam
2014-11-01 13:25   ` Rob Clark
2014-10-31 22:54 ` [PATCH 54/72] imx-drm: ipuv3-plane: Assign page_flip method to drm_plane_funcs Steve Longerbeam
2014-10-31 22:54 ` [PATCH 55/72] imx-drm: Implement DRM gamma set Steve Longerbeam
2014-10-31 22:54 ` [PATCH 56/72] imx-drm: Implement custom ioctl to set gamma Steve Longerbeam
2014-10-31 22:54 ` [PATCH 57/72] imx-drm: Add support for interface pixel maps Steve Longerbeam
2014-10-31 22:54 ` [PATCH 58/72] imx-drm: parallel-display: Add interface-pix-map DT property Steve Longerbeam
2014-10-31 22:54 ` [PATCH 59/72] imx-drm: hdmi: set DI clock source to DI pre clock Steve Longerbeam
2014-10-31 22:54 ` [PATCH 60/72] imx-drm: ipuv3-crtc: Set the crtc device name Steve Longerbeam
2014-10-31 22:54 ` [PATCH 61/72] imx-drm: hdmi: Save ipu/di mux for later iomux setup Steve Longerbeam
2014-10-31 22:54 ` [PATCH 62/72] imx-drm: ipuv3-plane: Assign correct dmfc burst size Steve Longerbeam
2014-10-31 22:54 ` [PATCH 63/72] drm_modes: videomode: add pos/neg pixel clock polarity flag Steve Longerbeam
2014-10-31 22:54 ` [PATCH 64/72] imx-drm: ipuv3-crtc: Use DRM mode flags to configure pixel clock polarity Steve Longerbeam
2014-10-31 22:54 ` [PATCH 65/72] imx-drm: imx-ldb: Add all defined of video modes Steve Longerbeam
2014-10-31 22:54 ` [PATCH 66/72] imx-drm: parallel-display: " Steve Longerbeam
2014-10-31 22:54 ` [PATCH 67/72] imx-drm: ipuv3-crtc: Disable fb on crtc unbind Steve Longerbeam
2014-10-31 22:54 ` [PATCH 68/72] imx-drm: imx-ldb: Use DDC probe as connection detect Steve Longerbeam
2014-11-04 17:57   ` Philipp Zabel
2014-10-31 22:54 ` [PATCH 69/72] imx-drm: ipuv3-crtc: Implement mode_set_base Steve Longerbeam
2014-10-31 22:54 ` [PATCH 70/72] imx-drm: Cancel pending page flip events at preclose Steve Longerbeam
2014-10-31 22:54 ` [PATCH 71/72] imx-drm: ipuv3-crtc: Disable overlay plane during crtc disable Steve Longerbeam
2014-10-31 22:54 ` [PATCH 72/72] imx-drm: ipuv3-plane: Enable 8 burst locking Steve Longerbeam
2014-11-01  0:09 ` [PATCH 00/72] staging imx-drm new features and fixes Fabio Estevam
2014-11-01  0:19   ` Steve Longerbeam
2014-11-03 13:12     ` Fabio Estevam
2014-11-03 13:17       ` Fabio Estevam
2014-11-03 13:20       ` Fabio Estevam
2014-11-03 14:13         ` Fabio Estevam
2014-11-03 22:41           ` Steve Longerbeam
2014-11-04 15:15             ` Fabio Estevam
2014-11-02  3:03   ` Steve Longerbeam
2014-11-03 11:17 ` Zubair Lutfullah Kakakhel
2014-11-03 16:04   ` Rob Clark
2014-11-03 16:12 ` Daniel Vetter
2014-11-03 16:14   ` Greg KH
2014-11-03 17:17     ` Daniel Vetter
2014-11-03 17:48       ` Greg KH
2014-11-03 18:58         ` Steve Longerbeam
2014-11-04  2:32           ` Alex Deucher
2014-11-03 18:59         ` Steve Longerbeam
2014-11-03 20:00           ` Fabio Estevam
2014-11-03 22:11             ` Steve Longerbeam
2014-11-04  9:35           ` Philipp Zabel
2014-11-05  1:20             ` Steve Longerbeam
2015-01-17 19:45               ` Fabio Estevam
2015-01-21 17:22 ` Rob Clark

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1414796095-10107-51-git-send-email-steve_longerbeam@mentor.com \
    --to=slongerbeam@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox