From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 116B1C10F0B for ; Wed, 13 Mar 2019 00:06:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D368E214AE for ; Wed, 13 Mar 2019 00:06:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="fxYdsHgJ" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727429AbfCMAGA (ORCPT ); Tue, 12 Mar 2019 20:06:00 -0400 Received: from perceval.ideasonboard.com ([213.167.242.64]:42062 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727148AbfCMAFz (ORCPT ); Tue, 12 Mar 2019 20:05:55 -0400 Received: from pendragon.bb.dnainternet.fi (81-175-216-236.bb.dnainternet.fi [81.175.216.236]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id F35419DB; Wed, 13 Mar 2019 01:05:49 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1552435550; bh=wJ9TD5iSpzEG8YYZBSzgMSH8VQMOVzLjHqElJ+znd+c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fxYdsHgJGmWCgLDFvXmRRd2jqoYXchKLhnuPvdeR0IMoSImn0YXbNbYSXDElE3aVX 0EwTvomjLHion307kl8UOKQbD3Ci9VXpt+6Y5dxZXgWfDP51UdsenwFYRSKWQcJqlK FTV3+aqMRIeYQ+Kotl9FWqUJgHWFeNLRiPWi4Zus= From: Laurent Pinchart To: dri-devel@lists.freedesktop.org Cc: linux-media@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Liviu Dudau , Brian Starkey , Kieran Bingham Subject: [PATCH v6 10/18] media: vsp1: drm: Extend frame completion API to the DU driver Date: Wed, 13 Mar 2019 02:05:24 +0200 Message-Id: <20190313000532.7087-11-laurent.pinchart+renesas@ideasonboard.com> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20190313000532.7087-1-laurent.pinchart+renesas@ideasonboard.com> References: <20190313000532.7087-1-laurent.pinchart+renesas@ideasonboard.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org The VSP1 driver will need to pass extra flags to the DU through the frame completion API. Replace the completed bool flag by a bitmask to support this. Signed-off-by: Laurent Pinchart --- drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 4 ++-- drivers/media/platform/vsp1/vsp1_drm.c | 4 ++-- drivers/media/platform/vsp1/vsp1_drm.h | 2 +- include/media/vsp1.h | 4 +++- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c index 76a39eee7c9c..28bfeb8c24fb 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c @@ -26,14 +26,14 @@ #include "rcar_du_kms.h" #include "rcar_du_vsp.h" -static void rcar_du_vsp_complete(void *private, bool completed, u32 crc) +static void rcar_du_vsp_complete(void *private, unsigned int status, u32 crc) { struct rcar_du_crtc *crtc = private; if (crtc->vblank_enable) drm_crtc_handle_vblank(&crtc->crtc); - if (completed) + if (status & VSP1_DU_STATUS_COMPLETE) rcar_du_crtc_finish_page_flip(crtc); drm_crtc_add_crc_entry(&crtc->crtc, false, 0, &crc); diff --git a/drivers/media/platform/vsp1/vsp1_drm.c b/drivers/media/platform/vsp1/vsp1_drm.c index 5601a787688b..0367f88135bf 100644 --- a/drivers/media/platform/vsp1/vsp1_drm.c +++ b/drivers/media/platform/vsp1/vsp1_drm.c @@ -34,14 +34,14 @@ static void vsp1_du_pipeline_frame_end(struct vsp1_pipeline *pipe, unsigned int completion) { struct vsp1_drm_pipeline *drm_pipe = to_vsp1_drm_pipeline(pipe); - bool complete = completion & VSP1_DL_FRAME_END_COMPLETED; if (drm_pipe->du_complete) { struct vsp1_entity *uif = drm_pipe->uif; + unsigned int status = completion & VSP1_DU_STATUS_COMPLETE; u32 crc; crc = uif ? vsp1_uif_get_crc(to_uif(&uif->subdev)) : 0; - drm_pipe->du_complete(drm_pipe->du_private, complete, crc); + drm_pipe->du_complete(drm_pipe->du_private, status, crc); } if (completion & VSP1_DL_FRAME_END_INTERNAL) { diff --git a/drivers/media/platform/vsp1/vsp1_drm.h b/drivers/media/platform/vsp1/vsp1_drm.h index 8dfd274a59e2..e85ad4366fbb 100644 --- a/drivers/media/platform/vsp1/vsp1_drm.h +++ b/drivers/media/platform/vsp1/vsp1_drm.h @@ -42,7 +42,7 @@ struct vsp1_drm_pipeline { struct vsp1_du_crc_config crc; /* Frame synchronisation */ - void (*du_complete)(void *data, bool completed, u32 crc); + void (*du_complete)(void *data, unsigned int status, u32 crc); void *du_private; }; diff --git a/include/media/vsp1.h b/include/media/vsp1.h index 1cf868360701..877496936487 100644 --- a/include/media/vsp1.h +++ b/include/media/vsp1.h @@ -17,6 +17,8 @@ struct device; int vsp1_du_init(struct device *dev); +#define VSP1_DU_STATUS_COMPLETE BIT(0) + /** * struct vsp1_du_lif_config - VSP LIF configuration * @width: output frame width @@ -32,7 +34,7 @@ struct vsp1_du_lif_config { unsigned int height; bool interlaced; - void (*callback)(void *data, bool completed, u32 crc); + void (*callback)(void *data, unsigned int status, u32 crc); void *callback_data; }; -- Regards, Laurent Pinchart From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: [PATCH v6 10/18] media: vsp1: drm: Extend frame completion API to the DU driver Date: Wed, 13 Mar 2019 02:05:24 +0200 Message-ID: <20190313000532.7087-11-laurent.pinchart+renesas@ideasonboard.com> References: <20190313000532.7087-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 perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by gabe.freedesktop.org (Postfix) with ESMTPS id D4D076E03C for ; Wed, 13 Mar 2019 00:05:52 +0000 (UTC) In-Reply-To: <20190313000532.7087-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: dri-devel@lists.freedesktop.org Cc: linux-renesas-soc@vger.kernel.org, Kieran Bingham , Liviu Dudau , linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org VGhlIFZTUDEgZHJpdmVyIHdpbGwgbmVlZCB0byBwYXNzIGV4dHJhIGZsYWdzIHRvIHRoZSBEVSB0 aHJvdWdoIHRoZQpmcmFtZSBjb21wbGV0aW9uIEFQSS4gUmVwbGFjZSB0aGUgY29tcGxldGVkIGJv b2wgZmxhZyBieSBhIGJpdG1hc2sgdG8Kc3VwcG9ydCB0aGlzLgoKU2lnbmVkLW9mZi1ieTogTGF1 cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydCtyZW5lc2FzQGlkZWFzb25ib2FyZC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV92c3AuYyAgfCA0ICsrLS0KIGRy aXZlcnMvbWVkaWEvcGxhdGZvcm0vdnNwMS92c3AxX2RybS5jIHwgNCArKy0tCiBkcml2ZXJzL21l ZGlhL3BsYXRmb3JtL3ZzcDEvdnNwMV9kcm0uaCB8IDIgKy0KIGluY2x1ZGUvbWVkaWEvdnNwMS5o ICAgICAgICAgICAgICAgICAgIHwgNCArKystCiA0IGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9u cygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1k dS9yY2FyX2R1X3ZzcC5jIGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV92c3AuYwpp bmRleCA3NmEzOWVlZTdjOWMuLjI4YmZlYjhjMjRmYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3JjYXItZHUvcmNhcl9kdV92c3AuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9y Y2FyX2R1X3ZzcC5jCkBAIC0yNiwxNCArMjYsMTQgQEAKICNpbmNsdWRlICJyY2FyX2R1X2ttcy5o IgogI2luY2x1ZGUgInJjYXJfZHVfdnNwLmgiCiAKLXN0YXRpYyB2b2lkIHJjYXJfZHVfdnNwX2Nv bXBsZXRlKHZvaWQgKnByaXZhdGUsIGJvb2wgY29tcGxldGVkLCB1MzIgY3JjKQorc3RhdGljIHZv aWQgcmNhcl9kdV92c3BfY29tcGxldGUodm9pZCAqcHJpdmF0ZSwgdW5zaWduZWQgaW50IHN0YXR1 cywgdTMyIGNyYykKIHsKIAlzdHJ1Y3QgcmNhcl9kdV9jcnRjICpjcnRjID0gcHJpdmF0ZTsKIAog CWlmIChjcnRjLT52YmxhbmtfZW5hYmxlKQogCQlkcm1fY3J0Y19oYW5kbGVfdmJsYW5rKCZjcnRj LT5jcnRjKTsKIAotCWlmIChjb21wbGV0ZWQpCisJaWYgKHN0YXR1cyAmIFZTUDFfRFVfU1RBVFVT X0NPTVBMRVRFKQogCQlyY2FyX2R1X2NydGNfZmluaXNoX3BhZ2VfZmxpcChjcnRjKTsKIAogCWRy bV9jcnRjX2FkZF9jcmNfZW50cnkoJmNydGMtPmNydGMsIGZhbHNlLCAwLCAmY3JjKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdnNwMS92c3AxX2RybS5jIGIvZHJpdmVycy9t ZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfZHJtLmMKaW5kZXggNTYwMWE3ODc2ODhiLi4wMzY3Zjg4 MTM1YmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdnNwMS92c3AxX2RybS5j CisrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdnNwMS92c3AxX2RybS5jCkBAIC0zNCwxNCAr MzQsMTQgQEAgc3RhdGljIHZvaWQgdnNwMV9kdV9waXBlbGluZV9mcmFtZV9lbmQoc3RydWN0IHZz cDFfcGlwZWxpbmUgKnBpcGUsCiAJCQkJICAgICAgIHVuc2lnbmVkIGludCBjb21wbGV0aW9uKQog ewogCXN0cnVjdCB2c3AxX2RybV9waXBlbGluZSAqZHJtX3BpcGUgPSB0b192c3AxX2RybV9waXBl bGluZShwaXBlKTsKLQlib29sIGNvbXBsZXRlID0gY29tcGxldGlvbiAmIFZTUDFfRExfRlJBTUVf RU5EX0NPTVBMRVRFRDsKIAogCWlmIChkcm1fcGlwZS0+ZHVfY29tcGxldGUpIHsKIAkJc3RydWN0 IHZzcDFfZW50aXR5ICp1aWYgPSBkcm1fcGlwZS0+dWlmOworCQl1bnNpZ25lZCBpbnQgc3RhdHVz ID0gY29tcGxldGlvbiAmIFZTUDFfRFVfU1RBVFVTX0NPTVBMRVRFOwogCQl1MzIgY3JjOwogCiAJ CWNyYyA9IHVpZiA/IHZzcDFfdWlmX2dldF9jcmModG9fdWlmKCZ1aWYtPnN1YmRldikpIDogMDsK LQkJZHJtX3BpcGUtPmR1X2NvbXBsZXRlKGRybV9waXBlLT5kdV9wcml2YXRlLCBjb21wbGV0ZSwg Y3JjKTsKKwkJZHJtX3BpcGUtPmR1X2NvbXBsZXRlKGRybV9waXBlLT5kdV9wcml2YXRlLCBzdGF0 dXMsIGNyYyk7CiAJfQogCiAJaWYgKGNvbXBsZXRpb24gJiBWU1AxX0RMX0ZSQU1FX0VORF9JTlRF Uk5BTCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfZHJt LmggYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3ZzcDEvdnNwMV9kcm0uaAppbmRleCA4ZGZkMjc0 YTU5ZTIuLmU4NWFkNDM2NmZiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92 c3AxL3ZzcDFfZHJtLmgKKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfZHJt LmgKQEAgLTQyLDcgKzQyLDcgQEAgc3RydWN0IHZzcDFfZHJtX3BpcGVsaW5lIHsKIAlzdHJ1Y3Qg dnNwMV9kdV9jcmNfY29uZmlnIGNyYzsKIAogCS8qIEZyYW1lIHN5bmNocm9uaXNhdGlvbiAqLwot CXZvaWQgKCpkdV9jb21wbGV0ZSkodm9pZCAqZGF0YSwgYm9vbCBjb21wbGV0ZWQsIHUzMiBjcmMp OworCXZvaWQgKCpkdV9jb21wbGV0ZSkodm9pZCAqZGF0YSwgdW5zaWduZWQgaW50IHN0YXR1cywg dTMyIGNyYyk7CiAJdm9pZCAqZHVfcHJpdmF0ZTsKIH07CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUv bWVkaWEvdnNwMS5oIGIvaW5jbHVkZS9tZWRpYS92c3AxLmgKaW5kZXggMWNmODY4MzYwNzAxLi44 Nzc0OTY5MzY0ODcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbWVkaWEvdnNwMS5oCisrKyBiL2luY2x1 ZGUvbWVkaWEvdnNwMS5oCkBAIC0xNyw2ICsxNyw4IEBAIHN0cnVjdCBkZXZpY2U7CiAKIGludCB2 c3AxX2R1X2luaXQoc3RydWN0IGRldmljZSAqZGV2KTsKIAorI2RlZmluZSBWU1AxX0RVX1NUQVRV U19DT01QTEVURQkJQklUKDApCisKIC8qKgogICogc3RydWN0IHZzcDFfZHVfbGlmX2NvbmZpZyAt IFZTUCBMSUYgY29uZmlndXJhdGlvbgogICogQHdpZHRoOiBvdXRwdXQgZnJhbWUgd2lkdGgKQEAg LTMyLDcgKzM0LDcgQEAgc3RydWN0IHZzcDFfZHVfbGlmX2NvbmZpZyB7CiAJdW5zaWduZWQgaW50 IGhlaWdodDsKIAlib29sIGludGVybGFjZWQ7CiAKLQl2b2lkICgqY2FsbGJhY2spKHZvaWQgKmRh dGEsIGJvb2wgY29tcGxldGVkLCB1MzIgY3JjKTsKKwl2b2lkICgqY2FsbGJhY2spKHZvaWQgKmRh dGEsIHVuc2lnbmVkIGludCBzdGF0dXMsIHUzMiBjcmMpOwogCXZvaWQgKmNhbGxiYWNrX2RhdGE7 CiB9OwogCi0tIApSZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFydAoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs