linux-renesas-soc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jacopo Mondi <jacopo+renesas@jmondi.org>
To: laurent.pinchart@ideasonboard.com,
	kieran.bingham+renesas@ideasonboard.com, airlied@linux.ie,
	daniel@ffwll.ch
Cc: Jacopo Mondi <jacopo+renesas@jmondi.org>,
	koji.matsuoka.xm@renesas.com, muroya@ksk.co.jp,
	VenkataRajesh.Kalakodima@in.bosch.com,
	Harsha.ManjulaMallikarjun@in.bosch.com,
	linux-renesas-soc@vger.kernel.org,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Subject: [PATCH v2 17/19] drm: rcar-du: crtc: Enable and disable CMMs
Date: Sat,  6 Jul 2019 16:07:44 +0200	[thread overview]
Message-ID: <20190706140746.29132-18-jacopo+renesas@jmondi.org> (raw)
In-Reply-To: <20190706140746.29132-1-jacopo+renesas@jmondi.org>

Enable/disable the CMM associated with a CRTC at crtc start and stop
time and enable the CMM unit through the Display Extensional Functions
register at group setup time.

Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
---
 drivers/gpu/drm/rcar-du/rcar_du_crtc.c  | 7 +++++++
 drivers/gpu/drm/rcar-du/rcar_du_group.c | 8 ++++++++
 drivers/gpu/drm/rcar-du/rcar_du_regs.h  | 5 +++++
 3 files changed, 20 insertions(+)

diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
index 23f1d6cc1719..3dac605c3a67 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
@@ -21,6 +21,7 @@
 #include <drm/drm_plane_helper.h>
 #include <drm/drm_vblank.h>
 
+#include "rcar_cmm.h"
 #include "rcar_du_crtc.h"
 #include "rcar_du_drv.h"
 #include "rcar_du_encoder.h"
@@ -619,6 +620,9 @@ static void rcar_du_crtc_stop(struct rcar_du_crtc *rcrtc)
 	if (rcar_du_has(rcrtc->dev, RCAR_DU_FEATURE_VSP1_SOURCE))
 		rcar_du_vsp_disable(rcrtc);
 
+	if (rcrtc->cmm)
+		rcar_cmm_disable(rcrtc->cmm);
+
 	/*
 	 * Select switch sync mode. This stops display operation and configures
 	 * the HSYNC and VSYNC signals as inputs.
@@ -686,6 +690,9 @@ static void rcar_du_crtc_atomic_enable(struct drm_crtc *crtc,
 	}
 
 	rcar_du_crtc_start(rcrtc);
+
+	if (rcrtc->cmm)
+		rcar_cmm_enable(rcrtc->cmm);
 }
 
 static void rcar_du_crtc_atomic_disable(struct drm_crtc *crtc,
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_group.c b/drivers/gpu/drm/rcar-du/rcar_du_group.c
index 9eee47969e77..d252c9bb9809 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_group.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_group.c
@@ -147,6 +147,14 @@ static void rcar_du_group_setup(struct rcar_du_group *rgrp)
 
 	rcar_du_group_setup_pins(rgrp);
 
+	if (rcar_du_has(rcdu, RCAR_DU_FEATURE_CMM)) {
+		u32 defr7 = DEFR7_CODE |
+			    (rgrp->cmms_mask & BIT(1) ? DEFR7_CMME1 : 0) |
+			    (rgrp->cmms_mask & BIT(0) ? DEFR7_CMME0 : 0);
+
+		rcar_du_group_write(rgrp, DEFR7, defr7);
+	}
+
 	if (rcdu->info->gen >= 2) {
 		rcar_du_group_setup_defr8(rgrp);
 		rcar_du_group_setup_didsr(rgrp);
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_regs.h b/drivers/gpu/drm/rcar-du/rcar_du_regs.h
index bc87f080b170..fb9964949368 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_regs.h
+++ b/drivers/gpu/drm/rcar-du/rcar_du_regs.h
@@ -197,6 +197,11 @@
 #define DEFR6_MLOS1		(1 << 2)
 #define DEFR6_DEFAULT		(DEFR6_CODE | DEFR6_TCNE1)
 
+#define DEFR7			0x000ec
+#define DEFR7_CODE		(0x7779 << 16)
+#define DEFR7_CMME1		BIT(6)
+#define DEFR7_CMME0		BIT(4)
+
 /* -----------------------------------------------------------------------------
  * R8A7790-only Control Registers
  */
-- 
2.21.0


  parent reply	other threads:[~2019-07-06 14:07 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-06 14:07 [PATCH v2 00/19] drm: rcar-du: Add Color Management Module (CMM) Jacopo Mondi
2019-07-06 14:07 ` [PATCH v2 01/19] dt-bindings: display: renesas,cmm: Add R-Car CMM documentation Jacopo Mondi
2019-07-08  7:58   ` Geert Uytterhoeven
2019-08-19 13:45     ` Geert Uytterhoeven
2019-08-20  7:48       ` Jacopo Mondi
2019-08-20  7:53         ` Geert Uytterhoeven
2019-08-20  8:05           ` Jacopo Mondi
2019-08-20 17:41           ` Laurent Pinchart
2019-08-20 18:08             ` Geert Uytterhoeven
2019-07-06 14:07 ` [PATCH v2 02/19] dt-bindings: display, renesas,du: Document cmms property Jacopo Mondi
2019-07-06 14:07 ` [PATCH v2 03/19] arm64: renesas: Update 'vsps' property Jacopo Mondi
2019-07-08  3:11   ` Laurent Pinchart
2019-07-09 13:10     ` Kieran Bingham
2019-08-21 12:16   ` Geert Uytterhoeven
2019-08-22 10:00     ` Jacopo Mondi
2019-08-22 15:02       ` Laurent Pinchart
2019-07-06 14:07 ` [PATCH v2 04/19] clk: renesas: r8a7796: Add CMM clocks Jacopo Mondi
2019-07-06 14:07 ` [PATCH v2 05/19] clk: renesas: r8a7795: " Jacopo Mondi
2019-07-06 14:07 ` [PATCH v2 06/19] clk: renesas: r8a77965: " Jacopo Mondi
2019-07-06 14:07 ` [PATCH v2 07/19] clk: renesas: r8a77990: " Jacopo Mondi
2019-07-06 14:07 ` [PATCH v2 08/19] clk: renesas: r8a77995: " Jacopo Mondi
2019-07-06 14:07 ` [PATCH v2 09/19] arm64: dts: renesas: r8a7796: Add CMM units Jacopo Mondi
2019-07-06 14:07 ` [PATCH v2 10/19] arm64: dts: renesas: r8a7795: " Jacopo Mondi
2019-07-06 14:07 ` [PATCH v2 11/19] arm64: dts: renesas: r8a77965: " Jacopo Mondi
2019-07-08  3:16   ` Laurent Pinchart
2019-07-06 14:07 ` [PATCH v2 12/19] arm64: dts: renesas: r8a77990: " Jacopo Mondi
2019-07-06 14:07 ` [PATCH v2 13/19] arm64: dts: renesas: r8a77995: " Jacopo Mondi
2019-07-06 14:07 ` [PATCH v2 14/19] drm: rcar-du: Add support for CMM Jacopo Mondi
2019-07-16 13:17   ` Ulrich Hecht
2019-08-20 17:37     ` Laurent Pinchart
2019-08-22 16:44       ` Jacopo Mondi
2019-08-20 17:34   ` Laurent Pinchart
2019-08-22 13:01     ` Jacopo Mondi
2019-08-22 15:10       ` Laurent Pinchart
2019-07-06 14:07 ` [PATCH v2 15/19] drm: rcar-du: Claim CMM support for Gen3 SoCs Jacopo Mondi
2019-07-16 13:18   ` Ulrich Hecht
2019-08-20 17:45   ` Laurent Pinchart
2019-07-06 14:07 ` [PATCH v2 16/19] drm: rcar-du: kms: Collect CMM instances Jacopo Mondi
2019-07-16 13:22   ` Ulrich Hecht
2019-08-20 17:54   ` Laurent Pinchart
2019-08-22 19:09     ` Jacopo Mondi
2019-07-06 14:07 ` Jacopo Mondi [this message]
2019-07-16 13:31   ` [PATCH v2 17/19] drm: rcar-du: crtc: Enable and disable CMMs Ulrich Hecht
2019-08-20 17:57   ` Laurent Pinchart
2019-07-06 14:07 ` [PATCH v2 18/19] drm: rcar-du: crtc: Register GAMMA_LUT properties Jacopo Mondi
2019-07-16 13:32   ` Ulrich Hecht
2019-08-20 18:02   ` Laurent Pinchart
2019-07-06 14:07 ` [PATCH v2 19/19] drm: rcar-du: kms: Update CMM in atomic commit tail Jacopo Mondi
2019-07-16 13:33   ` Ulrich Hecht
2019-08-20 18:42   ` Laurent Pinchart
2019-08-22 19:19     ` Jacopo Mondi
2019-08-22 19:54       ` Laurent Pinchart

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=20190706140746.29132-18-jacopo+renesas@jmondi.org \
    --to=jacopo+renesas@jmondi.org \
    --cc=Harsha.ManjulaMallikarjun@in.bosch.com \
    --cc=VenkataRajesh.Kalakodima@in.bosch.com \
    --cc=airlied@linux.ie \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=kieran.bingham+renesas@ideasonboard.com \
    --cc=koji.matsuoka.xm@renesas.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=muroya@ksk.co.jp \
    /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;
as well as URLs for NNTP newsgroup(s).