From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from galahad.ideasonboard.com ([185.26.127.97]:54322 "EHLO galahad.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751928AbeDEJSe (ORCPT ); Thu, 5 Apr 2018 05:18:34 -0400 From: Laurent Pinchart To: linux-media@vger.kernel.org Cc: dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, Kieran Bingham Subject: [PATCH v2 01/15] v4l: vsp1: Don't start/stop media pipeline for DRM Date: Thu, 5 Apr 2018 12:18:26 +0300 Message-Id: <20180405091840.30728-2-laurent.pinchart+renesas@ideasonboard.com> In-Reply-To: <20180405091840.30728-1-laurent.pinchart+renesas@ideasonboard.com> References: <20180405091840.30728-1-laurent.pinchart+renesas@ideasonboard.com> Sender: linux-media-owner@vger.kernel.org List-ID: The DRM support code manages a pipeline of VSP entities, each backed by a media entity. When starting or stopping the pipeline, it starts and stops the media pipeline through the media API in order to store the pipeline pointer in every entity. The driver doesn't use the pipe pointer in media entities, neither does it rely on the other effects of the media_pipeline_start() and media_pipeline_stop() functions. Furthermore, as the media links for the DRM pipeline are never set up correctly, and as the pipeline can be modified dynamically when enabling or disabling planes, the current implementation is not correct. Remove the incorrect and unneeded code. While at it remove the outdated comment that states that entities are not started when the LIF is setup, as they now are. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham -- Changes since v1: - Remove outdated comment --- drivers/media/platform/vsp1/vsp1_drm.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/drivers/media/platform/vsp1/vsp1_drm.c b/drivers/media/platform/vsp1/vsp1_drm.c index b8fee1834253..a1f2ba044092 100644 --- a/drivers/media/platform/vsp1/vsp1_drm.c +++ b/drivers/media/platform/vsp1/vsp1_drm.c @@ -109,8 +109,6 @@ int vsp1_du_setup_lif(struct device *dev, unsigned int pipe_index, if (ret == -ETIMEDOUT) dev_err(vsp1->dev, "DRM pipeline stop timeout\n"); - media_pipeline_stop(&pipe->output->entity.subdev.entity); - for (i = 0; i < ARRAY_SIZE(pipe->inputs); ++i) { struct vsp1_rwpf *rpf = pipe->inputs[i]; @@ -223,13 +221,7 @@ int vsp1_du_setup_lif(struct device *dev, unsigned int pipe_index, return -EPIPE; } - /* - * Mark the pipeline as streaming and enable the VSP1. This will store - * the pipeline pointer in all entities, which the s_stream handlers - * will need. We don't start the entities themselves right at this point - * as there's no plane configured yet, so we can't start processing - * buffers. - */ + /* Enable the VSP1. */ ret = vsp1_device_get(vsp1); if (ret < 0) return ret; @@ -241,14 +233,6 @@ int vsp1_du_setup_lif(struct device *dev, unsigned int pipe_index, drm_pipe->du_complete = cfg->callback; drm_pipe->du_private = cfg->callback_data; - ret = media_pipeline_start(&pipe->output->entity.subdev.entity, - &pipe->pipe); - if (ret < 0) { - dev_dbg(vsp1->dev, "%s: pipeline start failed\n", __func__); - vsp1_device_put(vsp1); - return ret; - } - /* Disable the display interrupts. */ vsp1_write(vsp1, VI6_DISP_IRQ_STA, 0); vsp1_write(vsp1, VI6_DISP_IRQ_ENB, 0); -- Regards, Laurent Pinchart From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: [PATCH v2 01/15] v4l: vsp1: Don't start/stop media pipeline for DRM Date: Thu, 5 Apr 2018 12:18:26 +0300 Message-ID: <20180405091840.30728-2-laurent.pinchart+renesas@ideasonboard.com> References: <20180405091840.30728-1-laurent.pinchart+renesas@ideasonboard.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from galahad.ideasonboard.com (galahad.ideasonboard.com [IPv6:2001:4b98:dc2:45:216:3eff:febb:480d]) by gabe.freedesktop.org (Postfix) with ESMTPS id DADBF6E6DD for ; Thu, 5 Apr 2018 09:18:34 +0000 (UTC) In-Reply-To: <20180405091840.30728-1-laurent.pinchart+renesas@ideasonboard.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-media@vger.kernel.org Cc: linux-renesas-soc@vger.kernel.org, Kieran Bingham , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org VGhlIERSTSBzdXBwb3J0IGNvZGUgbWFuYWdlcyBhIHBpcGVsaW5lIG9mIFZTUCBlbnRpdGllcywg ZWFjaCBiYWNrZWQgYnkKYSBtZWRpYSBlbnRpdHkuIFdoZW4gc3RhcnRpbmcgb3Igc3RvcHBpbmcg dGhlIHBpcGVsaW5lLCBpdCBzdGFydHMgYW5kCnN0b3BzIHRoZSBtZWRpYSBwaXBlbGluZSB0aHJv dWdoIHRoZSBtZWRpYSBBUEkgaW4gb3JkZXIgdG8gc3RvcmUgdGhlCnBpcGVsaW5lIHBvaW50ZXIg aW4gZXZlcnkgZW50aXR5LgoKVGhlIGRyaXZlciBkb2Vzbid0IHVzZSB0aGUgcGlwZSBwb2ludGVy IGluIG1lZGlhIGVudGl0aWVzLCBuZWl0aGVyIGRvZXMKaXQgcmVseSBvbiB0aGUgb3RoZXIgZWZm ZWN0cyBvZiB0aGUgbWVkaWFfcGlwZWxpbmVfc3RhcnQoKSBhbmQKbWVkaWFfcGlwZWxpbmVfc3Rv cCgpIGZ1bmN0aW9ucy4gRnVydGhlcm1vcmUsIGFzIHRoZSBtZWRpYSBsaW5rcyBmb3IgdGhlCkRS TSBwaXBlbGluZSBhcmUgbmV2ZXIgc2V0IHVwIGNvcnJlY3RseSwgYW5kIGFzIHRoZSBwaXBlbGlu ZSBjYW4gYmUKbW9kaWZpZWQgZHluYW1pY2FsbHkgd2hlbiBlbmFibGluZyBvciBkaXNhYmxpbmcg cGxhbmVzLCB0aGUgY3VycmVudAppbXBsZW1lbnRhdGlvbiBpcyBub3QgY29ycmVjdC4gUmVtb3Zl IHRoZSBpbmNvcnJlY3QgYW5kIHVubmVlZGVkIGNvZGUuCgpXaGlsZSBhdCBpdCByZW1vdmUgdGhl IG91dGRhdGVkIGNvbW1lbnQgdGhhdCBzdGF0ZXMgdGhhdCBlbnRpdGllcyBhcmUKbm90IHN0YXJ0 ZWQgd2hlbiB0aGUgTElGIGlzIHNldHVwLCBhcyB0aGV5IG5vdyBhcmUuCgpTaWduZWQtb2ZmLWJ5 OiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0K3JlbmVzYXNAaWRlYXNvbmJvYXJk LmNvbT4KUmV2aWV3ZWQtYnk6IEtpZXJhbiBCaW5naGFtIDxraWVyYW4uYmluZ2hhbStyZW5lc2Fz QGlkZWFzb25ib2FyZC5jb20+Ci0tCkNoYW5nZXMgc2luY2UgdjE6CgotIFJlbW92ZSBvdXRkYXRl ZCBjb21tZW50Ci0tLQogZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfZHJtLmMgfCAx OCArLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMTcg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3Zz cDFfZHJtLmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3ZzcDEvdnNwMV9kcm0uYwppbmRleCBi OGZlZTE4MzQyNTMuLmExZjJiYTA0NDA5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0 Zm9ybS92c3AxL3ZzcDFfZHJtLmMKKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3Zz cDFfZHJtLmMKQEAgLTEwOSw4ICsxMDksNiBAQCBpbnQgdnNwMV9kdV9zZXR1cF9saWYoc3RydWN0 IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZV9pbmRleCwKIAkJaWYgKHJldCA9PSAtRVRJ TUVET1VUKQogCQkJZGV2X2Vycih2c3AxLT5kZXYsICJEUk0gcGlwZWxpbmUgc3RvcCB0aW1lb3V0 XG4iKTsKIAotCQltZWRpYV9waXBlbGluZV9zdG9wKCZwaXBlLT5vdXRwdXQtPmVudGl0eS5zdWJk ZXYuZW50aXR5KTsKLQogCQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShwaXBlLT5pbnB1dHMp OyArK2kpIHsKIAkJCXN0cnVjdCB2c3AxX3J3cGYgKnJwZiA9IHBpcGUtPmlucHV0c1tpXTsKIApA QCAtMjIzLDEzICsyMjEsNyBAQCBpbnQgdnNwMV9kdV9zZXR1cF9saWYoc3RydWN0IGRldmljZSAq ZGV2LCB1bnNpZ25lZCBpbnQgcGlwZV9pbmRleCwKIAkJcmV0dXJuIC1FUElQRTsKIAl9CiAKLQkv KgotCSAqIE1hcmsgdGhlIHBpcGVsaW5lIGFzIHN0cmVhbWluZyBhbmQgZW5hYmxlIHRoZSBWU1Ax LiBUaGlzIHdpbGwgc3RvcmUKLQkgKiB0aGUgcGlwZWxpbmUgcG9pbnRlciBpbiBhbGwgZW50aXRp ZXMsIHdoaWNoIHRoZSBzX3N0cmVhbSBoYW5kbGVycwotCSAqIHdpbGwgbmVlZC4gV2UgZG9uJ3Qg c3RhcnQgdGhlIGVudGl0aWVzIHRoZW1zZWx2ZXMgcmlnaHQgYXQgdGhpcyBwb2ludAotCSAqIGFz IHRoZXJlJ3Mgbm8gcGxhbmUgY29uZmlndXJlZCB5ZXQsIHNvIHdlIGNhbid0IHN0YXJ0IHByb2Nl c3NpbmcKLQkgKiBidWZmZXJzLgotCSAqLworCS8qIEVuYWJsZSB0aGUgVlNQMS4gKi8KIAlyZXQg PSB2c3AxX2RldmljZV9nZXQodnNwMSk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CkBA IC0yNDEsMTQgKzIzMyw2IEBAIGludCB2c3AxX2R1X3NldHVwX2xpZihzdHJ1Y3QgZGV2aWNlICpk ZXYsIHVuc2lnbmVkIGludCBwaXBlX2luZGV4LAogCWRybV9waXBlLT5kdV9jb21wbGV0ZSA9IGNm Zy0+Y2FsbGJhY2s7CiAJZHJtX3BpcGUtPmR1X3ByaXZhdGUgPSBjZmctPmNhbGxiYWNrX2RhdGE7 CiAKLQlyZXQgPSBtZWRpYV9waXBlbGluZV9zdGFydCgmcGlwZS0+b3V0cHV0LT5lbnRpdHkuc3Vi ZGV2LmVudGl0eSwKLQkJCQkJICAmcGlwZS0+cGlwZSk7Ci0JaWYgKHJldCA8IDApIHsKLQkJZGV2 X2RiZyh2c3AxLT5kZXYsICIlczogcGlwZWxpbmUgc3RhcnQgZmFpbGVkXG4iLCBfX2Z1bmNfXyk7 Ci0JCXZzcDFfZGV2aWNlX3B1dCh2c3AxKTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KIAkvKiBEaXNh YmxlIHRoZSBkaXNwbGF5IGludGVycnVwdHMuICovCiAJdnNwMV93cml0ZSh2c3AxLCBWSTZfRElT UF9JUlFfU1RBLCAwKTsKIAl2c3AxX3dyaXRlKHZzcDEsIFZJNl9ESVNQX0lSUV9FTkIsIDApOwot LSAKUmVnYXJkcywKCkxhdXJlbnQgUGluY2hhcnQKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=