Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6be433d1 authored by Ujwal Patel's avatar Ujwal Patel
Browse files

msm: mdss: Allocate fb memory under 4GB physical address space



Linux kernel framework of framebuffer APIs do not support LPAE systems.
These APIs are using "unsigned long" data type instead of "phys_addr_t"
for physical addresses which doesn't work with LPAE systems. Until
framebuffer APIs are fixed, allocate fb memory on MSM chip-sets using
dma_alloc_coherent and GFP_KERNEL to get the memory from below 4GB
physical address space.

Change-Id: Ieca41cae21c956a8b4cf1d5729d287bb0bb30f8d
Signed-off-by: default avatarUjwal Patel <ujwalp@codeaurora.org>
parent 23fe9299
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -213,6 +213,14 @@ Subnode properties:
			 This property is required whenever the continuous splash
			 screen feature is enabled for the corresponding
			 framebuffer device.
- linux,contiguous-region: Phandle to the continuous memory region reserved for
			 frame-buffer. Size of this region is dependent on the
			 display panel resolution and buffering scheme.
			 Currently driver uses double buffering.

			 Example: Width = 1920, Height = 1080, BytesPerPixel = 4,
			 Number of frame-buffers reserved = 2.
			 Size = 1920*1080*4*2 = ROUND_1MB(15.8MB) = 16MB.

Example:
	mdss_mdp: qcom,mdss_mdp@fd900000 {
@@ -276,6 +284,7 @@ Example:
			compatible = "qcom,mdss-fb";
			qcom,mdss-mixer-swap;
			qcom,mdss-fb-split = <480 240>
			linux,contiguous-region = <&fb_mem>;
		};
	};
+1 −2
Original line number Diff line number Diff line
@@ -95,8 +95,7 @@
		mdss_fb0: qcom,mdss_fb_primary {
			cell-index = <0>;
			compatible = "qcom,mdss-fb";
			qcom,memory-reservation-type = "EBI1";
			qcom,memory-reservation-size = <0x1000000>;
			linux,contiguous-region = <&fb_mem>;
		};

		mdss_fb1: qcom,mdss_fb_external {
+1 −2
Original line number Diff line number Diff line
@@ -56,9 +56,8 @@
		mdss_fb0: qcom,mdss_fb_primary {
			cell-index = <0>;
			compatible = "qcom,mdss-fb";
			qcom,memory-reservation-type = "EBI1";
			qcom,memory-reservation-size = <0x800000>;
			qcom,memblock-reserve = <0x03200000 0xFA0000>;
			linux,contiguous-region = <&fb_mem>;
		};

		mdss_fb1: qcom,mdss_fb_wfd {
+1 −2
Original line number Diff line number Diff line
@@ -71,9 +71,8 @@
		mdss_fb0: qcom,mdss_fb_primary {
			cell-index = <0>;
			compatible = "qcom,mdss-fb";
			qcom,memory-reservation-type = "EBI1";
			qcom,memory-reservation-size = <0x800000>;
			qcom,memblock-reserve = <0x03200000 0x01E00000>;
			linux,contiguous-region = <&fb_mem>;
		};

		mdss_fb1: qcom,mdss_fb_external {
+1 −2
Original line number Diff line number Diff line
@@ -48,8 +48,7 @@
		mdss_fb0: qcom,mdss_fb_primary {
			cell-index = <0>;
			compatible = "qcom,mdss-fb";
			qcom,memory-reservation-type = "EBI1";
			qcom,memory-reservation-size = <0x1400000>;
			linux,contiguous-region = <&fb_mem>;
		};

		mdss_fb1: qcom,mdss_fb_wfd {
Loading