linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vineet Gupta <Vineet.Gupta1@synopsys.com>
To: Alexey Brodkin <Alexey.Brodkin@synopsys.com>,
	<dri-devel@lists.freedesktop.org>
Cc: <devicetree@vger.kernel.org>,
	<linux-snps-arc@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/2] ARC: [axs10x] Specify reserved memory for frame buffer
Date: Thu, 28 Apr 2016 09:56:27 +0530	[thread overview]
Message-ID: <572190F3.3020709@synopsys.com> (raw)
In-Reply-To: <1461767701-12208-3-git-send-email-abrodkin@synopsys.com>

On Wednesday 27 April 2016 08:05 PM, Alexey Brodkin wrote:
> Allocation of a frame buffer memory in a special memory region
> allows bypassing of so-called IO Coherency aperture
> which is typically set as a range 0x8z-0xAz.
> 
> I.e. all data traffic to PGU bypasses IO Coherency block
> and saves its bandwidth for other peripherals.
> 
> Even though for AXS101 (which sorts ARC770 CPU) IOC is not
> an option for a sake of keeping one DT description for the
> base-board (axs10x_mb.dtsi) we're still defining reserved
> memory location in the very end of DDR.
> 
> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: devicetree@vger.kernel.org
> ---
>  arch/arc/boot/dts/axc001.dtsi     | 20 +++++++++++++++++++-
>  arch/arc/boot/dts/axc003.dtsi     | 14 ++++++++++++++
>  arch/arc/boot/dts/axc003_idu.dtsi | 14 ++++++++++++++
>  arch/arc/boot/dts/axs10x_mb.dtsi  |  2 +-
>  4 files changed, 48 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arc/boot/dts/axc001.dtsi b/arch/arc/boot/dts/axc001.dtsi
> index 420dcfd..ae6162d 100644
> --- a/arch/arc/boot/dts/axc001.dtsi
> +++ b/arch/arc/boot/dts/axc001.dtsi
> @@ -95,6 +95,24 @@
>  		#size-cells = <1>;
>  		ranges = <0x00000000 0x80000000 0x40000000>;
>  		device_type = "memory";
> -		reg = <0x80000000 0x20000000>;	/* 512MiB */
> +		reg = <0x80000000 0x1f000000>;	/* 512 - 16 MiB */

Is 16MB fixed size or is this a function of display resolution / density etc.

> +	};
> +
> +	reserved-memory {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges;
> +		/*
> +		 * We just move frame buffer area to the very end of
> +		 * available DDR. And even though in case of ARC770 there's
> +		 * no strict requirement for a frame-buffer to be in any
> +		 * particular location it allows us to use the same
> +		 * base board's DT node for ARC PGU as for ARc HS38.
> +		 */
> +		frame_buffer: frame_buffer@9f000000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x9f000000 0x1000000>;
> +			no-map;
> +		};
>  	};
>  };
> diff --git a/arch/arc/boot/dts/axc003.dtsi b/arch/arc/boot/dts/axc003.dtsi
> index f90fadf..c7a95c2 100644
> --- a/arch/arc/boot/dts/axc003.dtsi
> +++ b/arch/arc/boot/dts/axc003.dtsi
> @@ -100,4 +100,18 @@
>  		device_type = "memory";
>  		reg = <0x80000000 0x20000000>;	/* 512MiB */
>  	};
> +
> +	reserved-memory {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges;
> +		/*
> +		 * Move frame buffer out of IOC aperture (0x8z-0xAz).
> +		 */
> +		frame_buffer: frame_buffer@a0000000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0xa0000000 0x1000000>;

Can this be made a bit more future safe. AXS103 has 1 GB of DDR while kernel
currently only uses 512M. Once we increase that, this will need fixing too. Better
to make this as far possible. Note that the IOC start alignment needs to follow
max(4k, size). What will be maximum size of frame buffer - 16M always !

Same for the idu DT below !

> +			no-map;
> +		};
> +	};
>  };
> diff --git a/arch/arc/boot/dts/axc003_idu.dtsi b/arch/arc/boot/dts/axc003_idu.dtsi
> index 06a9f29..929ec8c 100644
> --- a/arch/arc/boot/dts/axc003_idu.dtsi
> +++ b/arch/arc/boot/dts/axc003_idu.dtsi
> @@ -123,4 +123,18 @@
>  		device_type = "memory";
>  		reg = <0x80000000 0x20000000>;	/* 512MiB */
>  	};
> +
> +	reserved-memory {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges;
> +		/*
> +		 * Move frame buffer out of IOC aperture (0x8z-0xAz).
> +		 */
> +		frame_buffer: frame_buffer@a0000000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0xa0000000 0x1000000>;
> +			no-map;
> +		};
> +	};
>  };
> diff --git a/arch/arc/boot/dts/axs10x_mb.dtsi b/arch/arc/boot/dts/axs10x_mb.dtsi
> index 823f15c..64b063d 100644
> --- a/arch/arc/boot/dts/axs10x_mb.dtsi
> +++ b/arch/arc/boot/dts/axs10x_mb.dtsi
> @@ -283,7 +283,7 @@
>  			encoder-slave = <&adv7511>;
>  			clocks = <&pguclk>;
>  			clock-names = "pxlclk";
> -
> +			memory-region = <&frame_buffer>;
>  			port {
>  				pgu_output: endpoint {
>  					remote-endpoint = <&adv7511_input>;
> 

  reply	other threads:[~2016-04-28  4:26 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-27 14:34 [PATCH 0/2] drm/arcpgu: Get use of dedicated memory area for frame buffer Alexey Brodkin
2016-04-27 14:35 ` [PATCH 1/2] drm/arcpgu: use " Alexey Brodkin
2016-04-27 14:35 ` [PATCH 2/2] ARC: [axs10x] Specify reserved memory " Alexey Brodkin
2016-04-28  4:26   ` Vineet Gupta [this message]
2016-04-28 13:46     ` Alexey Brodkin
2016-04-28 13:56       ` Vineet Gupta
2016-04-28 14:38         ` Alexey Brodkin

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=572190F3.3020709@synopsys.com \
    --to=vineet.gupta1@synopsys.com \
    --cc=Alexey.Brodkin@synopsys.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-snps-arc@lists.infradead.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 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).