<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Imx8mPlus IPU error in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Imx8mPlus-IPU-error/m-p/1316738#M177752</link>
    <description>&lt;P&gt;Hello Kevin,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Those driver are for the MX6, since MX8Mplus don't have IPU.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards&lt;/P&gt;</description>
    <pubDate>Mon, 02 Aug 2021 13:14:51 GMT</pubDate>
    <dc:creator>Bio_TICFSL</dc:creator>
    <dc:date>2021-08-02T13:14:51Z</dc:date>
    <item>
      <title>Imx8mPlus IPU error</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Imx8mPlus-IPU-error/m-p/1316655#M177750</link>
      <description>&lt;P&gt;Dear Sir,&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I am using Imx8mPlus and yocto-L5.10.35_2.0.0.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;It seems that the IPU error occurs during compiler linux kernel.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I turn on the config in kernel as below:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;CONFIG_MXC_IPU=y&lt;BR /&gt;CONFIG_MXC_IPU_V3=y&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;and apply below patch:&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100%"&gt;diff --git a/drivers/media/platform/mxc/capture/ipu_csi_enc.c b/drivers/media/platform/mxc/capture/ipu_csi_enc.c&lt;BR /&gt;index 241c744bfcb0..86ee9394fc0c 100644&lt;BR /&gt;--- a/drivers/media/platform/mxc/capture/ipu_csi_enc.c&lt;BR /&gt;+++ b/drivers/media/platform/mxc/capture/ipu_csi_enc.c&lt;BR /&gt;@@ -239,7 +239,7 @@ static int csi_enc_enabling_tasks(void *private)&lt;BR /&gt;&lt;BR /&gt;cam-&amp;gt;dummy_frame.vaddress = dma_alloc_coherent(cam-&amp;gt;dev,&lt;BR /&gt;PAGE_ALIGN(cam-&amp;gt;v2f.fmt.pix.sizeimage),&lt;BR /&gt;- &amp;amp;cam-&amp;gt;dummy_frame.paddress,&lt;BR /&gt;+ (dma_addr_t *) &amp;amp;cam-&amp;gt;dummy_frame.paddress,&lt;BR /&gt;GFP_DMA | GFP_KERNEL);&lt;BR /&gt;if (cam-&amp;gt;dummy_frame.vaddress == 0) {&lt;BR /&gt;pr_err("ERROR: v4l2 capture: Allocate dummy frame "&lt;BR /&gt;diff --git a/drivers/media/platform/mxc/capture/ipu_prp_enc.c b/drivers/media/platform/mxc/capture/ipu_prp_enc.c&lt;BR /&gt;index c26ef944cb46..d2509572aac2 100644&lt;BR /&gt;--- a/drivers/media/platform/mxc/capture/ipu_prp_enc.c&lt;BR /&gt;+++ b/drivers/media/platform/mxc/capture/ipu_prp_enc.c&lt;BR /&gt;@@ -383,7 +383,7 @@ static int prp_enc_enabling_tasks(void *private)&lt;BR /&gt;&lt;BR /&gt;cam-&amp;gt;dummy_frame.vaddress = dma_alloc_coherent(cam-&amp;gt;dev,&lt;BR /&gt;PAGE_ALIGN(cam-&amp;gt;v2f.fmt.pix.sizeimage),&lt;BR /&gt;- &amp;amp;cam-&amp;gt;dummy_frame.paddress,&lt;BR /&gt;+ (dma_addr_t *) &amp;amp;cam-&amp;gt;dummy_frame.paddress,&lt;BR /&gt;GFP_DMA | GFP_KERNEL);&lt;BR /&gt;if (cam-&amp;gt;dummy_frame.vaddress == 0) {&lt;BR /&gt;pr_err("ERROR: v4l2 capture: Allocate dummy frame "&lt;BR /&gt;diff --git a/drivers/media/platform/mxc/capture/mxc_v4l2_capture.c b/drivers/media/platform/mxc/capture/mxc_v4l2_capture.c&lt;BR /&gt;index a7444ce375c7..688b77e8f31f 100644&lt;BR /&gt;--- a/drivers/media/platform/mxc/capture/mxc_v4l2_capture.c&lt;BR /&gt;+++ b/drivers/media/platform/mxc/capture/mxc_v4l2_capture.c&lt;BR /&gt;@@ -266,7 +266,7 @@ static int mxc_allocate_frame_buf(cam_data *cam, int count)&lt;BR /&gt;cam-&amp;gt;frame[i].vaddress =&lt;BR /&gt;dma_alloc_coherent(cam-&amp;gt;dev,&lt;BR /&gt;PAGE_ALIGN(cam-&amp;gt;v2f.fmt.pix.sizeimage),&lt;BR /&gt;- &amp;amp;cam-&amp;gt;frame[i].paddress,&lt;BR /&gt;+ (dma_addr_t *) &amp;amp;cam-&amp;gt;frame[i].paddress,&lt;BR /&gt;GFP_DMA | GFP_KERNEL);&lt;BR /&gt;if (cam-&amp;gt;frame[i].vaddress == 0) {&lt;BR /&gt;pr_err("ERROR: v4l2 capture: "&lt;BR /&gt;diff --git a/drivers/mxc/ipu3/ipu_device.c b/drivers/mxc/ipu3/ipu_device.c&lt;BR /&gt;index 86e93e418e36..f1b4726c281f 100644&lt;BR /&gt;--- a/drivers/mxc/ipu3/ipu_device.c&lt;BR /&gt;+++ b/drivers/mxc/ipu3/ipu_device.c&lt;BR /&gt;@@ -557,7 +557,7 @@ static void dump_task_info(struct ipu_task_entry *t)&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]\tcrop.pos.y = %d\n",&lt;BR /&gt;(void *)t, t-&amp;gt;input.crop.pos.y);&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]input buffer:\n", (void *)t);&lt;BR /&gt;- dev_dbg(t-&amp;gt;dev, "[0x%p]\tpaddr = 0x%x\n", (void *)t, t-&amp;gt;input.paddr);&lt;BR /&gt;+ dev_dbg(t-&amp;gt;dev, "[0x%p]\tpaddr = 0x%llx\n", (void *)t, t-&amp;gt;input.paddr);&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]\ti_off = 0x%x\n", (void *)t, t-&amp;gt;set.i_off);&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]\ti_uoff = 0x%x\n", (void *)t, t-&amp;gt;set.i_uoff);&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]\ti_voff = 0x%x\n", (void *)t, t-&amp;gt;set.i_voff);&lt;BR /&gt;@@ -566,7 +566,7 @@ static void dump_task_info(struct ipu_task_entry *t)&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]deinterlace enabled with:\n", (void *)t);&lt;BR /&gt;if (t-&amp;gt;input.deinterlace.motion != HIGH_MOTION) {&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]\tlow/medium motion\n", (void *)t);&lt;BR /&gt;- dev_dbg(t-&amp;gt;dev, "[0x%p]\tpaddr_n = 0x%x\n",&lt;BR /&gt;+ dev_dbg(t-&amp;gt;dev, "[0x%p]\tpaddr_n = 0x%llx\n",&lt;BR /&gt;(void *)t, t-&amp;gt;input.paddr_n);&lt;BR /&gt;} else&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]\thigh motion\n", (void *)t);&lt;BR /&gt;@@ -584,7 +584,7 @@ static void dump_task_info(struct ipu_task_entry *t)&lt;BR /&gt;(void *)t, t-&amp;gt;output.crop.pos.y);&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]\trotate = %d\n", (void *)t, t-&amp;gt;output.rotate);&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]output buffer:\n", (void *)t);&lt;BR /&gt;- dev_dbg(t-&amp;gt;dev, "[0x%p]\tpaddr = 0x%x\n", (void *)t, t-&amp;gt;output.paddr);&lt;BR /&gt;+ dev_dbg(t-&amp;gt;dev, "[0x%p]\tpaddr = 0x%llx\n", (void *)t, t-&amp;gt;output.paddr);&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]\to_off = 0x%x\n", (void *)t, t-&amp;gt;set.o_off);&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]\to_uoff = 0x%x\n", (void *)t, t-&amp;gt;set.o_uoff);&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]\to_voff = 0x%x\n", (void *)t, t-&amp;gt;set.o_voff);&lt;BR /&gt;@@ -607,7 +607,7 @@ static void dump_task_info(struct ipu_task_entry *t)&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]\tcrop.pos.y = %d\n",&lt;BR /&gt;(void *)t, t-&amp;gt;overlay.crop.pos.y);&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]overlay buffer:\n", (void *)t);&lt;BR /&gt;- dev_dbg(t-&amp;gt;dev, "[0x%p]\tpaddr = 0x%x\n",&lt;BR /&gt;+ dev_dbg(t-&amp;gt;dev, "[0x%p]\tpaddr = 0x%llx\n",&lt;BR /&gt;(void *)t, t-&amp;gt;overlay.paddr);&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]\tov_off = 0x%x\n",&lt;BR /&gt;(void *)t, t-&amp;gt;set.ov_off);&lt;BR /&gt;@@ -620,7 +620,7 @@ static void dump_task_info(struct ipu_task_entry *t)&lt;BR /&gt;if (t-&amp;gt;overlay.alpha.mode == IPU_ALPHA_MODE_LOCAL) {&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]local alpha enabled with:\n",&lt;BR /&gt;(void *)t);&lt;BR /&gt;- dev_dbg(t-&amp;gt;dev, "[0x%p]\tpaddr = 0x%x\n",&lt;BR /&gt;+ dev_dbg(t-&amp;gt;dev, "[0x%p]\tpaddr = 0x%llx\n",&lt;BR /&gt;(void *)t, t-&amp;gt;overlay.alpha.loc_alp_paddr);&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]\tov_alpha_off = 0x%x\n",&lt;BR /&gt;(void *)t, t-&amp;gt;set.ov_alpha_off);&lt;BR /&gt;@@ -2829,7 +2829,7 @@ static void do_task(struct ipu_task_entry *t)&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]\tformat = 0x%x\n", (void *)t, t-&amp;gt;set.r_fmt);&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]\twidth = %d\n", (void *)t, t-&amp;gt;set.r_width);&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]\theight = %d\n", (void *)t, t-&amp;gt;set.r_height);&lt;BR /&gt;- dev_dbg(t-&amp;gt;dev, "[0x%p]\tpaddr = 0x%x\n", (void *)t, t-&amp;gt;set.r_paddr);&lt;BR /&gt;+ dev_dbg(t-&amp;gt;dev, "[0x%p]\tpaddr = 0x%llx\n", (void *)t, t-&amp;gt;set.r_paddr);&lt;BR /&gt;dev_dbg(t-&amp;gt;dev, "[0x%p]\trstride = %d\n", (void *)t, t-&amp;gt;set.r_stride);&lt;BR /&gt;&lt;BR /&gt;ret = init_ic(ipu, t);&lt;BR /&gt;@@ -3561,7 +3561,7 @@ static long mxc_ipu_ioctl(struct file *file,&lt;BR /&gt;return -EFAULT;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;- dev_dbg(ipu_dev, "allocated %d bytes @ 0x%08X\n",&lt;BR /&gt;+ dev_dbg(ipu_dev, "allocated %d bytes @ 0x%08llX\n",&lt;BR /&gt;mem-&amp;gt;size, mem-&amp;gt;phy_addr);&lt;BR /&gt;&lt;BR /&gt;break;&lt;BR /&gt;@@ -3590,7 +3590,7 @@ static long mxc_ipu_ioctl(struct file *file,&lt;BR /&gt;}&lt;BR /&gt;mutex_unlock(&amp;amp;ipu_alloc_lock);&lt;BR /&gt;if (0 == ret)&lt;BR /&gt;- dev_dbg(ipu_dev, "free %d bytes @ 0x%08X\n",&lt;BR /&gt;+ dev_dbg(ipu_dev, "free %d bytes @ 0x%08llX\n",&lt;BR /&gt;mem-&amp;gt;size, mem-&amp;gt;phy_addr);&lt;BR /&gt;&lt;BR /&gt;break;&lt;BR /&gt;@@ -3649,7 +3649,7 @@ static int mxc_ipu_release(struct inode *inode, struct file *file)&lt;BR /&gt;mem-&amp;gt;size,&lt;BR /&gt;mem-&amp;gt;cpu_addr,&lt;BR /&gt;mem-&amp;gt;phy_addr);&lt;BR /&gt;- dev_dbg(ipu_dev, "rel-free %d bytes @ 0x%08X\n",&lt;BR /&gt;+ dev_dbg(ipu_dev, "rel-free %d bytes @ 0x%08llX\n",&lt;BR /&gt;mem-&amp;gt;size, mem-&amp;gt;phy_addr);&lt;BR /&gt;kfree(mem);&lt;BR /&gt;}&lt;BR /&gt;diff --git a/arch/arm64/include/asm/outercache.h b/arch/arm64/include/asm/outercache.h&lt;BR /&gt;new file mode 100644&lt;BR /&gt;index 000000000000..1137a8e97d6f&lt;BR /&gt;--- /dev/null&lt;BR /&gt;+++ b/arch/arm64/include/asm/outercache.h&lt;BR /&gt;@@ -0,0 +1 @@&lt;BR /&gt;+#include "../../../arm/include/asm/outercache.h"&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;However, It seems that IPU error occurs as below .&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100%"&gt;GEN Makefile&lt;BR /&gt;CALL /home/imx8mpevk/yocto-5.10.35/fic-src/linux-imx/scripts/atomic/check-atomics.sh&lt;BR /&gt;CALL /home/imx8mpevk/yocto-5.10.35/fic-src/linux-imx/scripts/checksyscalls.sh&lt;BR /&gt;CHK include/generated/compile.h&lt;BR /&gt;CC drivers/mxc/ipu3/ipu_device.o&lt;BR /&gt;/home/imx8mpevk/yocto-5.10.35/fic-src/linux-imx/drivers/mxc/ipu3/ipu_device.c: In function 'vdi_split_process':&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;/home/imx8mpevk/yocto-5.10.35/fic-src/linux-imx/drivers/mxc/ipu3/ipu_device.c:2500:4: &lt;FONT face="arial,helvetica,sans-serif"&gt;error: implicit declaration of function 'dmac_flush_range'; did you mean 'outer_flush_range'? [-Werror=implicit-function-declaration]&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="arial,helvetica,sans-serif" color="#FF0000"&gt;2500 | dmac_flush_range(base_off + offset_addr,&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Q1.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;How can we resolve this error?&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Best Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Kevin Huang&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 02 Aug 2021 11:31:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Imx8mPlus-IPU-error/m-p/1316655#M177750</guid>
      <dc:creator>kevin_huang1</dc:creator>
      <dc:date>2021-08-02T11:31:10Z</dc:date>
    </item>
    <item>
      <title>Re: Imx8mPlus IPU error</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Imx8mPlus-IPU-error/m-p/1316738#M177752</link>
      <description>&lt;P&gt;Hello Kevin,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Those driver are for the MX6, since MX8Mplus don't have IPU.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards&lt;/P&gt;</description>
      <pubDate>Mon, 02 Aug 2021 13:14:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Imx8mPlus-IPU-error/m-p/1316738#M177752</guid>
      <dc:creator>Bio_TICFSL</dc:creator>
      <dc:date>2021-08-02T13:14:51Z</dc:date>
    </item>
  </channel>
</rss>

