All of lore.kernel.org
 help / color / mirror / Atom feed
From: Magnus Damm <magnus.damm@gmail.com>
To: linux-sh@vger.kernel.org
Subject: [PATCH] ARM: shmobile: r8a7795: DU and IPMMU prototype hack
Date: Thu, 17 Dec 2015 06:57:15 +0000	[thread overview]
Message-ID: <20151217065715.31261.43936.sendpatchset@little-apple> (raw)

From: Magnus Damm <damm+renesas@opensource.se>

This prototype hack tries to hook up the r8a7795 DU/VSPD/FCPVD
instance to the IPMMU device and hack the driver to get something
to work. The IPMMU device has been proven to work with other
on-chip r8a7795 devices with upstream support, however the DU
devices are not yet working and seem to be a moving target.

Developed on top on older renesas-drivers release that has the
DU patch stack included. More recent releases have the DU patch
stack excluded due to merge issues. Needs more work.

Not-Yet-Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
---

 Developed on top of renesas-drivers-2015-12-08-v4.4-rc4 and
 [PATCH 00/06] iommu/ipmmu-vmsa: IPMMU multi-arch update
 [PATCH/RFC 00/10] iommu/ipmmu-vmsa: Experimental r8a7795 support
 [PATCH/RFC 00/03] ARM: shmobile: r8a7795 Salvator-X IPMMU test code
 
 arch/arm64/boot/dts/renesas/r8a7795.dtsi |   15 +++++++++++++--
 drivers/gpu/drm/rcar-du/rcar_du_drv.c    |    4 ++--
 drivers/gpu/drm/rcar-du/rcar_du_vsp.c    |    2 ++
 drivers/media/platform/vsp1/vsp1_wpf.c   |    3 +++
 4 files changed, 20 insertions(+), 4 deletions(-)

--- 0028/arch/arm64/boot/dts/renesas/r8a7795.dtsi
+++ work/arch/arm64/boot/dts/renesas/r8a7795.dtsi	2015-12-17 11:28:23.700513000 +0900
@@ -325,7 +325,14 @@
 			compatible = "renesas,ipmmu-r8a7795";
 			reg = <0 0xe6740000 0 0x1000>; /* IPMMU-DS0 */
 			#iommu-cells = <1>;
-			status = "okay";
+			status = "disabled";
+		};
+
+		ipmmu_vi: mmu@febd0000 {
+			compatible = "renesas,ipmmu-r8a7795";
+			reg = <0 0xfebd0000 0 0x1000>;
+			#iommu-cells = <1>;
+			status = "disabled";
 		};
 
 		dmac0: dma-controller@e6700000 {
@@ -936,6 +943,7 @@
 			reg = <0 0xfea20000 0 0x8000>;
 			interrupts = <GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 623>;
+			iommus = <&ipmmu_vi 8>;
 
 			renesas,has-lif;
 			renesas,has-lut;
@@ -948,6 +956,7 @@
 			reg = <0 0xfea28000 0 0x8000>;
 			interrupts = <GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 622>;
+			iommus = <&ipmmu_vi 9>;
 
 			renesas,has-lif;
 			renesas,has-lut;
@@ -960,6 +969,7 @@
 			reg = <0 0xfea30000 0 0x8000>;
 			interrupts = <GIC_SPI 468 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 621>;
+			iommus = <&ipmmu_vi 10>;
 
 			renesas,has-lif;
 			renesas,has-lut;
@@ -972,6 +982,7 @@
 			reg = <0 0xfea38000 0 0x8000>;
 			interrupts = <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 620>;
+			iommus = <&ipmmu_vi 11>;
 
 			renesas,has-lif;
 			renesas,has-lut;
@@ -996,7 +1007,7 @@
 			clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0";
 			status = "disabled";
 
-			vsps = <&vspd0 &vspd1 &vspd2 &vspd3>;
+			vsps = <&vspd0>;
 
 			ports {
 				#address-cells = <1>;
--- 0001/drivers/gpu/drm/rcar-du/rcar_du_drv.c
+++ work/drivers/gpu/drm/rcar-du/rcar_du_drv.c	2015-12-17 11:10:01.380513000 +0900
@@ -138,13 +138,13 @@ static const struct rcar_du_device_info
 	.features = RCAR_DU_FEATURE_CRTC_IRQ_CLOCK
 		  | RCAR_DU_FEATURE_EXT_CTRL_REGS
 		  | RCAR_DU_FEATURE_VSP1_SOURCE,
-	.num_crtcs = 4,
+	.num_crtcs = 1,
 	.routes = {
 		/* R8A7795 has one RGB output, one LVDS output and two
 		 * (currently unsupported) HDMI outputs.
 		 */
 		[RCAR_DU_OUTPUT_DPAD0] = {
-			.possible_crtcs = BIT(3),
+			.possible_crtcs = BIT(0),
 			.encoder_type = DRM_MODE_ENCODER_NONE,
 			.port = 0,
 		},
--- 0001/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
+++ work/drivers/gpu/drm/rcar-du/rcar_du_vsp.c	2015-12-17 11:10:01.380513000 +0900
@@ -329,6 +329,8 @@ int rcar_du_vsp_init(struct rcar_du_vsp
 
 	vsp->vsp = &pdev->dev;
 
+	rcdu->ddev->dev = vsp->vsp; // HACK
+	
 	ret = vsp1_du_init(vsp->vsp);
 	if (ret < 0)
 		return ret;
--- 0001/drivers/media/platform/vsp1/vsp1_wpf.c
+++ work/drivers/media/platform/vsp1/vsp1_wpf.c	2015-12-17 11:11:46.790513000 +0900
@@ -158,6 +158,9 @@ static int wpf_s_stream(struct v4l2_subd
 	if (vsp1->pdata.uapi)
 		mutex_lock(wpf->ctrls.lock);
 	outfmt |= wpf->alpha->cur.val << VI6_WPF_OUTFMT_PDV_SHIFT;
+#if 1	
+	outfmt |= (1 << 20);
+#endif
 	vsp1_wpf_write(wpf, VI6_WPF_OUTFMT, outfmt);
 	if (vsp1->pdata.uapi)
 		mutex_unlock(wpf->ctrls.lock);

             reply	other threads:[~2015-12-17  6:57 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-17  6:57 Magnus Damm [this message]
2015-12-18  1:56 ` [PATCH] ARM: shmobile: r8a7795: DU and IPMMU prototype hack Khiem Nguyen
2015-12-27  9:08 ` 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=20151217065715.31261.43936.sendpatchset@little-apple \
    --to=magnus.damm@gmail.com \
    --cc=linux-sh@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.