Re: [PATCH v2 1/2] arm64: dts: qcom: sdm845: add framebuffer reserved memory

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 15, 2023 at 11:19:45AM +0000, Caleb Connolly wrote:
> The bootloader configures a framebuffer in memory to display splash
> screens or other information. This configuration is overriden when the
> display pipeline probes, but never unmapped from the SMMU.

Are you saying that as the SMMU driver clears the register content, this
mapping remains?

> To prevent
> issues from the kernel trying to allocate in this region and to allow
> using the framebuffer for debugging, many devices already reserve this
> region.
> 

What kind of issues do you see?

Regards,
Bjorn

> All devices follow MTP and use the same address for this region, Cheza
> is a likely exception though I'm not able to validate that.
> 
> Some devices only reserve the size needed to store the actual
> framebuffer, this is incorrect as on all devices I've checked the full
> 0x2400000 bytes are mapped.
> 
> This patch moves the framebuffer region to sdm845.dtsi and removes it
> from each individual device. This ensures that the correct size is
> always reserved and prevents having the add the region for each
> individual device.
> 
> This patch specifically ensures that this region is now reserved on the
> OnePlus 6, where it wasn't before.
> 
> Signed-off-by: Caleb Connolly <caleb.connolly@xxxxxxxxxx>
> ---
> 
> Changes since v1:
>  * Offer more context and justification for this change
>  * Make sure Cheza doesn't inherit the node.
> ---
>  arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi              | 6 ------
>  arch/arm64/boot/dts/qcom/sdm845-samsung-starqltechn.dts     | 5 -----
>  arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts           | 5 -----
>  arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama.dtsi       | 6 ------
>  .../arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-common.dtsi | 6 ------
>  arch/arm64/boot/dts/qcom/sdm845.dtsi                        | 5 +++++
>  arch/arm64/boot/dts/qcom/sdm850.dtsi                        | 2 ++
>  7 files changed, 7 insertions(+), 28 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi
> index f942c5afea9b..6a1c674a015b 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi
> @@ -93,12 +93,6 @@ spss_mem: memory@99000000 {
>  			no-map;
>  		};
>  
> -		/* Framebuffer region */
> -		memory@9d400000 {
> -			reg = <0x0 0x9d400000 0x0 0x2400000>;
> -			no-map;
> -		};
> -
>  		/* rmtfs lower guard */
>  		memory@f0800000 {
>  			reg = <0 0xf0800000 0 0x1000>;
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-samsung-starqltechn.dts b/arch/arm64/boot/dts/qcom/sdm845-samsung-starqltechn.dts
> index d37a433130b9..7c2457948a32 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-samsung-starqltechn.dts
> +++ b/arch/arm64/boot/dts/qcom/sdm845-samsung-starqltechn.dts
> @@ -55,11 +55,6 @@ vreg_s4a_1p8: pm8998-smps4 {
>  	};
>  
>  	reserved-memory {
> -		memory@9d400000 {
> -			reg = <0x0 0x9d400000 0x0 0x02400000>;
> -			no-map;
> -		};
> -
>  		memory@a1300000 {
>  			compatible = "ramoops";
>  			reg = <0x0 0xa1300000 0x0 0x100000>;
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
> index b54e304abf71..4f6b1053c15b 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
> +++ b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
> @@ -60,11 +60,6 @@ key-vol-up {
>  	};
>  
>  	reserved-memory {
> -		framebuffer_region@9d400000 {
> -			reg = <0x0 0x9d400000 0x0 (1080 * 2160 * 4)>;
> -			no-map;
> -		};
> -
>  		ramoops: ramoops@b0000000 {
>  			compatible = "ramoops";
>  			reg = <0 0xb0000000 0 0x00400000>;
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama.dtsi b/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama.dtsi
> index 4984c7496c31..7e273cc0158d 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama.dtsi
> @@ -79,12 +79,6 @@ vreg_s4a_1p8: pm8998-smps4 {
>  	};
>  
>  	reserved-memory {
> -		/* SONY was cool and didn't diverge from MTP this time, yay! */
> -		cont_splash_mem: memory@9d400000 {
> -			reg = <0x0 0x9d400000 0x0 0x2400000>;
> -			no-map;
> -		};
> -
>  		ramoops@ffc00000 {
>  			compatible = "ramoops";
>  			reg = <0x0 0xffc00000 0x0 0x100000>;
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-common.dtsi
> index e0fda4d754fe..191c2664f721 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-common.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-common.dtsi
> @@ -98,12 +98,6 @@ spss_mem: memory@97f00000 {
>  			no-map;
>  		};
>  
> -		/* Cont splash region set up by the bootloader */
> -		cont_splash_mem: framebuffer@9d400000 {
> -			reg = <0 0x9d400000 0 0x2400000>;
> -			no-map;
> -		};
> -
>  		rmtfs_mem: memory@f6301000 {
>  			compatible = "qcom,rmtfs-mem";
>  			reg = <0 0xf6301000 0 0x200000>;
> diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> index 479859bd8ab3..ecec2ee46683 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> @@ -865,6 +865,11 @@ spss_mem: spss@97b00000 {
>  			no-map;
>  		};
>  
> +		cont_splash_mem: framebuffer@9d400000 {
> +			reg = <0 0x9d400000 0 0x2400000>;
> +			no-map;
> +		};
> +
>  		mdata_mem: mpss-metadata {
>  			alloc-ranges = <0 0xa0000000 0 0x20000000>;
>  			size = <0 0x4000>;
> diff --git a/arch/arm64/boot/dts/qcom/sdm850.dtsi b/arch/arm64/boot/dts/qcom/sdm850.dtsi
> index da9f6fbe32f6..b787575c77a5 100644
> --- a/arch/arm64/boot/dts/qcom/sdm850.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm850.dtsi
> @@ -7,6 +7,8 @@
>  
>  #include "sdm845.dtsi"
>  
> +/delete-node/ &cont_splash_mem;
> +
>  &cpu4_opp_table {
>  	cpu4_opp33: opp-2841600000 {
>  		opp-hz = /bits/ 64 <2841600000>;
> -- 
> 2.39.2
> 



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux