[Letux-kernel] [PATCH] mxc_epdc_fb: Fix build on LPAE kernels

David Shah dave at ds0.me
Sat Dec 12 10:00:19 CET 2020


This fixes mixing between u32 and dma_addr_t. I don't have hardware to
test this on, so I can only confirm it builds.

Signed-off-by: David Shah <dave at ds0.me>
---
 drivers/video/fbdev/mxc/mxc_epdc_fb.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/video/fbdev/mxc/mxc_epdc_fb.c b/drivers/video/fbdev/mxc/mxc_epdc_fb.c
index 005e276eb5da1..77df5ddf740c8 100644
--- a/drivers/video/fbdev/mxc/mxc_epdc_fb.c
+++ b/drivers/video/fbdev/mxc/mxc_epdc_fb.c
@@ -4720,6 +4720,7 @@ static void mxc_epdc_fb_fw_handler(const struct firmware *fw,
 	struct clk *epdc_parent;
 	unsigned long rounded_parent_rate, epdc_pix_rate,
 			rounded_pix_clk, target_pix_clk;
+	dma_addr_t temp_addr;
 
 	if (fw == NULL) {
 		/* If default FW file load failed, we give up */
@@ -4762,8 +4763,9 @@ static void mxc_epdc_fb_fw_handler(const struct firmware *fw,
 	/* Allocate memory for waveform data */
 	fb_data->waveform_buffer_virt = dma_alloc_coherent(fb_data->dev,
 						fb_data->waveform_buffer_size,
-						&fb_data->waveform_buffer_phys,
-						GFP_DMA | GFP_KERNEL);
+						&temp_addr,
+						GFP_DMA32 | GFP_KERNEL);
+	fb_data->waveform_buffer_phys = temp_addr;
 	if (fb_data->waveform_buffer_virt == NULL) {
 		dev_err(fb_data->dev, "Can't allocate mem for waveform!\n");
 		return;
@@ -4946,6 +4948,7 @@ int mxc_epdc_fb_probe(struct platform_device *pdev)
 	u32 val;
 	int irq;
 	struct device_node *np = pdev->dev.of_node;
+	dma_addr_t temp_addr;
 
 	fb_data = (struct mxc_epdc_fb_data *)framebuffer_alloc(
 			sizeof(struct mxc_epdc_fb_data), &pdev->dev);
@@ -5311,8 +5314,9 @@ int mxc_epdc_fb_probe(struct platform_device *pdev)
 	/* Allocate memory for EPDC working buffer */
 	fb_data->working_buffer_virt =
 	    dma_alloc_coherent(&pdev->dev, fb_data->working_buffer_size,
-			       &fb_data->working_buffer_phys,
-			       GFP_DMA | GFP_KERNEL);
+			       &temp_addr,
+			       GFP_DMA32 | GFP_KERNEL);
+	fb_data->working_buffer_phys = temp_addr;
 	if (fb_data->working_buffer_virt == NULL) {
 		dev_err(&pdev->dev, "Can't allocate mem for working buf!\n");
 		ret = -ENOMEM;
-- 
2.29.2



More information about the Letux-kernel mailing list