diff mbox series

[v1,2/3] ARM: dts: stm32: enable Vivante GPU support on stm32mp157c-ed1 board

Message ID 1550246316-9747-3-git-send-email-pierre-yves.mordret@st.com (mailing list archive)
State New, archived
Headers show
Series Add Vivante GPU support on STM32MP157c | expand

Commit Message

Pierre Yves MORDRET Feb. 15, 2019, 3:58 p.m. UTC
Enable Vivante GPU driver for stm32mp157c-ed1 board.

Signed-off-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com>
---
 arch/arm/boot/dts/stm32mp157c-ed1.dts | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

Comments

Lucas Stach Feb. 15, 2019, 4:14 p.m. UTC | #1
Am Freitag, den 15.02.2019, 16:58 +0100 schrieb Pierre-Yves MORDRET:
> Enable Vivante GPU driver for stm32mp157c-ed1 board.
> 
> Signed-off-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com>
> ---
>  arch/arm/boot/dts/stm32mp157c-ed1.dts | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/stm32mp157c-ed1.dts
> b/arch/arm/boot/dts/stm32mp157c-ed1.dts
> index 98ef7a0..792f402 100644
> --- a/arch/arm/boot/dts/stm32mp157c-ed1.dts
> +++ b/arch/arm/boot/dts/stm32mp157c-ed1.dts
> @@ -20,6 +20,17 @@
>  		reg = <0xC0000000 0x40000000>;
>  	};
>  
> +	reserved-memory {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges;
> +
> +		gpu_reserved: gpu@f8000000 {
> +			reg = <0xf8000000 0x8000000>;
> +			no-map;
> +		};
> +	};
> +

I don't think you need this. The GPU driver uses very little contig dma
memory. Most of the GPU memory is ordinary paged memory, so setting
aside a private memory region of this size is a waste of memory. Most
likely you can just allow the GPU driver to use the system global CMA
region.

Regards,
Lucas


>  	aliases {
>  		serial0 = &uart4;
>  	};
> @@ -53,6 +64,11 @@
>  	status = "okay";
>  };
>  
> +&gpu {
> +	contiguous-area = <&gpu_reserved>;
> +	status = "okay";
> +};
> +
>  &i2c4 {
>  	pinctrl-names = "default";
>  	pinctrl-0 = <&i2c4_pins_a>;
Pierre Yves MORDRET Feb. 25, 2019, 3:57 p.m. UTC | #2
Hi again,

On 2/15/19 5:14 PM, Lucas Stach wrote:
> Am Freitag, den 15.02.2019, 16:58 +0100 schrieb Pierre-Yves MORDRET:
>> Enable Vivante GPU driver for stm32mp157c-ed1 board.
>>
>> Signed-off-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com>
>> ---
>>  arch/arm/boot/dts/stm32mp157c-ed1.dts | 16 ++++++++++++++++
>>  1 file changed, 16 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/stm32mp157c-ed1.dts
>> b/arch/arm/boot/dts/stm32mp157c-ed1.dts
>> index 98ef7a0..792f402 100644
>> --- a/arch/arm/boot/dts/stm32mp157c-ed1.dts
>> +++ b/arch/arm/boot/dts/stm32mp157c-ed1.dts
>> @@ -20,6 +20,17 @@
>>  		reg = <0xC0000000 0x40000000>;
>>  	};
>>  
>> +	reserved-memory {
>> +		#address-cells = <1>;
>> +		#size-cells = <1>;
>> +		ranges;
>> +
>> +		gpu_reserved: gpu@f8000000 {
>> +			reg = <0xf8000000 0x8000000>;
>> +			no-map;
>> +		};
>> +	};
>> +
> 
> I don't think you need this. The GPU driver uses very little contig dma
> memory. Most of the GPU memory is ordinary paged memory, so setting
> aside a private memory region of this size is a waste of memory. Most
> likely you can just allow the GPU driver to use the system global CMA
> region.

That's correct, but this memory area is also used for U-BOOT splash screen
rendering.
Moreover, even if we lack of proof as for today, it turns out performances are
better with this region as reduces MMU accesses (with Vivante driver)
Eventually using Android framework application is started more gently whatever
previous application and CMA status(fragmentation).
Provided this memory, CMA region is decreased accordingly.

Hope it clarifies.

Regards
> 
> Regards,
> Lucas
> 
> 
>>  	aliases {
>>  		serial0 = &uart4;
>>  	};
>> @@ -53,6 +64,11 @@
>>  	status = "okay";
>>  };
>>  
>> +&gpu {
>> +	contiguous-area = <&gpu_reserved>;
>> +	status = "okay";
>> +};
>> +
>>  &i2c4 {
>>  	pinctrl-names = "default";
>>  	pinctrl-0 = <&i2c4_pins_a>;
Pierre Yves MORDRET March 18, 2019, 9:21 a.m. UTC | #3
Hi Lucas,

I'm going to resend a new version on this DT. I have to move this region elsewhere.

However I didn't get your feedback about statement I did.
Would it be possible to have your feelings ?

Thanks :)

On 2/25/19 4:57 PM, Pierre Yves MORDRET wrote:
> Hi again,
> 
> On 2/15/19 5:14 PM, Lucas Stach wrote:
>> Am Freitag, den 15.02.2019, 16:58 +0100 schrieb Pierre-Yves MORDRET:
>>> Enable Vivante GPU driver for stm32mp157c-ed1 board.
>>>
>>> Signed-off-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com>
>>> ---
>>>  arch/arm/boot/dts/stm32mp157c-ed1.dts | 16 ++++++++++++++++
>>>  1 file changed, 16 insertions(+)
>>>
>>> diff --git a/arch/arm/boot/dts/stm32mp157c-ed1.dts
>>> b/arch/arm/boot/dts/stm32mp157c-ed1.dts
>>> index 98ef7a0..792f402 100644
>>> --- a/arch/arm/boot/dts/stm32mp157c-ed1.dts
>>> +++ b/arch/arm/boot/dts/stm32mp157c-ed1.dts
>>> @@ -20,6 +20,17 @@
>>>  		reg = <0xC0000000 0x40000000>;
>>>  	};
>>>  
>>> +	reserved-memory {
>>> +		#address-cells = <1>;
>>> +		#size-cells = <1>;
>>> +		ranges;
>>> +
>>> +		gpu_reserved: gpu@f8000000 {
>>> +			reg = <0xf8000000 0x8000000>;
>>> +			no-map;
>>> +		};
>>> +	};
>>> +
>>
>> I don't think you need this. The GPU driver uses very little contig dma
>> memory. Most of the GPU memory is ordinary paged memory, so setting
>> aside a private memory region of this size is a waste of memory. Most
>> likely you can just allow the GPU driver to use the system global CMA
>> region.
> 
> That's correct, but this memory area is also used for U-BOOT splash screen
> rendering.
> Moreover, even if we lack of proof as for today, it turns out performances are
> better with this region as reduces MMU accesses (with Vivante driver)
> Eventually using Android framework application is started more gently whatever
> previous application and CMA status(fragmentation).
> Provided this memory, CMA region is decreased accordingly.
> 
> Hope it clarifies.
> 
> Regards
>>
>> Regards,
>> Lucas
>>
>>
>>>  	aliases {
>>>  		serial0 = &uart4;
>>>  	};
>>> @@ -53,6 +64,11 @@
>>>  	status = "okay";
>>>  };
>>>  
>>> +&gpu {
>>> +	contiguous-area = <&gpu_reserved>;
>>> +	status = "okay";
>>> +};
>>> +
>>>  &i2c4 {
>>>  	pinctrl-names = "default";
>>>  	pinctrl-0 = <&i2c4_pins_a>;
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/stm32mp157c-ed1.dts b/arch/arm/boot/dts/stm32mp157c-ed1.dts
index 98ef7a0..792f402 100644
--- a/arch/arm/boot/dts/stm32mp157c-ed1.dts
+++ b/arch/arm/boot/dts/stm32mp157c-ed1.dts
@@ -20,6 +20,17 @@ 
 		reg = <0xC0000000 0x40000000>;
 	};
 
+	reserved-memory {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		gpu_reserved: gpu@f8000000 {
+			reg = <0xf8000000 0x8000000>;
+			no-map;
+		};
+	};
+
 	aliases {
 		serial0 = &uart4;
 	};
@@ -53,6 +64,11 @@ 
 	status = "okay";
 };
 
+&gpu {
+	contiguous-area = <&gpu_reserved>;
+	status = "okay";
+};
+
 &i2c4 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&i2c4_pins_a>;