All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: linux-sh@vger.kernel.org
Subject: Re: [PATCH] ARM: shmobile: r8a7795: DU and IPMMU prototype hack
Date: Sun, 27 Dec 2015 09:08:48 +0000	[thread overview]
Message-ID: <1474583.eS4S3zYtjr@avalon> (raw)
In-Reply-To: <20151217065715.31261.43936.sendpatchset@little-apple>

Hi Magnus,

Thank you for the patch.

On Thursday 17 December 2015 15:57:15 Magnus Damm wrote:
> 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

What's the purpose of this ?

>  	vsp1_wpf_write(wpf, VI6_WPF_OUTFMT, outfmt);
>  	if (vsp1->pdata.uapi)
>  		mutex_unlock(wpf->ctrls.lock);

-- 
Regards,

Laurent Pinchart


      parent reply	other threads:[~2015-12-27  9:08 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-17  6:57 [PATCH] ARM: shmobile: r8a7795: DU and IPMMU prototype hack Magnus Damm
2015-12-18  1:56 ` Khiem Nguyen
2015-12-27  9:08 ` Laurent Pinchart [this message]

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=1474583.eS4S3zYtjr@avalon \
    --to=laurent.pinchart@ideasonboard.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.