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 00/20] drm: rcar-du: Add Color Management Module (CMM) Date: Thu, 6 Jun 2019 16:22:00 +0200 Message-ID: <20190606142220.1392-1-jacopo+renesas@jmondi.org> (raw) Hello, this series add support for the Color Management Module (CMM) found on the R-Car Display Unit output channels. CMM is present in most of the Gen3 SoCs (V3-H and V3-M excluded) and in Gen2 (which is not supported by the series). The CMM allows setting 1-D and 3-D gamma tables and generates histograms on images before they are directed to the DU's output pads. The current implementation only supports configuration of the 1-D gamma table, by using the GAMMA_LUT KMS property. On top of this current version, more advanced features such as 3-D LUT support and histogram generation can be later implemented. The series starts by adding the bindings definitions and by registering the clock providers for the various SoCs that support the CMM. It then registers CMMs in the SoC device tree sources and finally adds a driver for the CMM itself and integrates it in the rcar-du driver infrastructure to register, enable and update the CMM units. Tested on M3-W Salvator-x on HDMI connector and on E3 Ebisu on VGA connector by injecting a 'color inversion' gamma table using a patched version of the KMS++ kmstest utility[1], and observing the CMM applies the correction matrix properly. Series based on Laurent's drm/du/next branch at git://linuxtv.org/pinchartl/media.git Thanks j [1] https://github.com/tomba/kmsxx/ Jacopo Mondi (20): dt-bindings: display: renesas,cmm: Add R-Car CMM documentation dt-bindings: display, renesas,du: Document cmms property dt-bindings: display, renesas,du: Update 'vsps' in example clk: renesas: r8a7796: Add CMM clocks clk: renesas: r8a7795: Add CMM clocks clk: renesas: r8a77965: Add CMM clocks clk: renesas: r8a77990: Add CMM clocks clk: renesas: r8a77995: Add CMM clocks arm64: dts: renesas: r8a7796: Add CMM units arm64: dts: renesas: r8a7795: Add CMM units arm64: dts: renesas: r8a77965: Add CMM units arm64: dts: renesas: r8a77990: Add CMM units arm64: dts: renesas: r8a77995: Add CMM units drm: rcar-du: Add support for CMM drm: rcar-du: Claim CMM support for Gen3 SoCs drm: rcar-du: kms: Collect CMM instances drm: rcar-du: crtc: Enable and disable CMMs drm: rcar-du: group: Enable DU's CMM extension drm: rcar-du: crtc: Register GAMMA_LUT properties drm: rcar-du: kms: Update CMM in atomic commit tail .../bindings/display/renesas,cmm.txt | 25 +++ .../bindings/display/renesas,du.txt | 7 +- arch/arm64/boot/dts/renesas/r8a7795.dtsi | 36 +++- arch/arm64/boot/dts/renesas/r8a7796.dtsi | 25 +++ arch/arm64/boot/dts/renesas/r8a77965.dtsi | 25 +++ arch/arm64/boot/dts/renesas/r8a77990.dtsi | 20 +- arch/arm64/boot/dts/renesas/r8a77995.dtsi | 20 +- drivers/clk/renesas/r8a7795-cpg-mssr.c | 4 + drivers/clk/renesas/r8a7796-cpg-mssr.c | 3 + drivers/clk/renesas/r8a77965-cpg-mssr.c | 3 + drivers/clk/renesas/r8a77990-cpg-mssr.c | 2 + drivers/clk/renesas/r8a77995-cpg-mssr.c | 2 + drivers/gpu/drm/rcar-du/Kconfig | 7 + drivers/gpu/drm/rcar-du/Makefile | 1 + drivers/gpu/drm/rcar-du/rcar_cmm.c | 197 ++++++++++++++++++ drivers/gpu/drm/rcar-du/rcar_cmm.h | 38 ++++ drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 18 ++ drivers/gpu/drm/rcar-du/rcar_du_crtc.h | 2 + drivers/gpu/drm/rcar-du/rcar_du_drv.c | 12 +- drivers/gpu/drm/rcar-du/rcar_du_drv.h | 4 + drivers/gpu/drm/rcar-du/rcar_du_group.c | 8 + drivers/gpu/drm/rcar-du/rcar_du_group.h | 2 + drivers/gpu/drm/rcar-du/rcar_du_kms.c | 86 ++++++++ drivers/gpu/drm/rcar-du/rcar_du_regs.h | 5 + 24 files changed, 544 insertions(+), 8 deletions(-) create mode 100644 Documentation/devicetree/bindings/display/renesas,cmm.txt create mode 100644 drivers/gpu/drm/rcar-du/rcar_cmm.c create mode 100644 drivers/gpu/drm/rcar-du/rcar_cmm.h -- 2.21.0
next reply index Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-06 14:22 Jacopo Mondi [this message] 2019-06-06 14:22 ` [PATCH 01/20] dt-bindings: display: renesas,cmm: Add R-Car CMM documentation Jacopo Mondi 2019-06-06 16:52 ` Laurent Pinchart 2019-06-06 18:06 ` Geert Uytterhoeven 2019-06-06 20:19 ` Sergei Shtylyov 2019-06-06 14:22 ` [PATCH 02/20] dt-bindings: display, renesas,du: Document cmms property Jacopo Mondi 2019-06-06 16:52 ` Laurent Pinchart 2019-06-06 14:22 ` [PATCH 03/20] dt-bindings: display, renesas,du: Update 'vsps' in example Jacopo Mondi 2019-06-06 16:53 ` Laurent Pinchart 2019-06-06 20:00 ` Geert Uytterhoeven 2019-06-07 11:36 ` Laurent Pinchart 2019-06-06 14:22 ` [PATCH 04/20] clk: renesas: r8a7796: Add CMM clocks Jacopo Mondi 2019-06-06 14:22 ` [PATCH 05/20] clk: renesas: r8a7795: " Jacopo Mondi 2019-06-06 16:58 ` Laurent Pinchart 2019-06-06 18:18 ` Jacopo Mondi 2019-06-12 7:41 ` Geert Uytterhoeven 2019-06-06 14:22 ` [PATCH 06/20] clk: renesas: r8a77965: " Jacopo Mondi 2019-06-06 16:59 ` Laurent Pinchart 2019-06-12 7:43 ` Geert Uytterhoeven 2019-06-06 14:22 ` [PATCH 07/20] clk: renesas: r8a77990: " Jacopo Mondi 2019-06-06 17:00 ` Laurent Pinchart 2019-06-12 7:43 ` Geert Uytterhoeven 2019-06-06 14:22 ` [PATCH 08/20] clk: renesas: r8a77995: " Jacopo Mondi 2019-06-06 17:00 ` Laurent Pinchart 2019-06-12 7:44 ` Geert Uytterhoeven 2019-06-06 14:22 ` [PATCH 09/20] arm64: dts: renesas: r8a7796: Add CMM units Jacopo Mondi 2019-06-06 17:04 ` Laurent Pinchart 2019-06-06 14:22 ` [PATCH 10/20] arm64: dts: renesas: r8a7795: " Jacopo Mondi 2019-06-06 17:06 ` Laurent Pinchart 2019-06-06 14:22 ` [PATCH 11/20] arm64: dts: renesas: r8a77965: " Jacopo Mondi 2019-06-06 17:06 ` Laurent Pinchart 2019-06-06 14:22 ` [PATCH 12/20] arm64: dts: renesas: r8a77990: " Jacopo Mondi 2019-06-06 17:07 ` Laurent Pinchart 2019-06-06 14:22 ` [PATCH 13/20] arm64: dts: renesas: r8a77995: " Jacopo Mondi 2019-06-06 17:08 ` Laurent Pinchart 2019-06-06 14:22 ` [PATCH 14/20] drm: rcar-du: Add support for CMM Jacopo Mondi 2019-06-07 11:35 ` Laurent Pinchart 2019-06-07 11:44 ` Laurent Pinchart 2019-06-07 12:18 ` Laurent Pinchart 2019-06-14 8:54 ` Jacopo Mondi 2019-06-06 14:22 ` [PATCH 15/20] drm: rcar-du: Claim CMM support for Gen3 SoCs Jacopo Mondi 2019-06-07 11:38 ` Laurent Pinchart 2019-06-06 14:22 ` [PATCH 16/20] drm: rcar-du: kms: Collect CMM instances Jacopo Mondi 2019-06-07 11:49 ` Laurent Pinchart 2019-06-06 14:22 ` [PATCH 17/20] drm: rcar-du: crtc: Enable and disable CMMs Jacopo Mondi 2019-06-07 11:51 ` Laurent Pinchart 2019-06-06 14:22 ` [PATCH 18/20] drm: rcar-du: group: Enable DU's CMM extension Jacopo Mondi 2019-06-07 11:55 ` Laurent Pinchart 2019-06-06 14:22 ` [PATCH 19/20] drm: rcar-du: crtc: Register GAMMA_LUT properties Jacopo Mondi 2019-06-07 12:03 ` Laurent Pinchart 2019-06-14 8:15 ` Jacopo Mondi 2019-06-14 8:42 ` Daniel Vetter 2019-06-14 9:27 ` Jacopo Mondi 2019-06-14 14:47 ` Daniel Vetter 2019-06-06 14:22 ` [PATCH 20/20] drm: rcar-du: kms: Update CMM in atomic commit tail Jacopo Mondi 2019-06-07 12:06 ` Laurent Pinchart 2019-06-14 8:19 ` Jacopo Mondi 2019-09-12 23:39 ` 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=20190606142220.1392-1-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
Linux-Renesas-SoC Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-renesas-soc/0 linux-renesas-soc/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-renesas-soc linux-renesas-soc/ https://lore.kernel.org/linux-renesas-soc \ linux-renesas-soc@vger.kernel.org public-inbox-index linux-renesas-soc Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-renesas-soc AGPL code for this site: git clone https://public-inbox.org/public-inbox.git