<?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>i.MX Processorsのトピックweird IPU DP register macro define on kernel 3.0.35</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/weird-IPU-DP-register-macro-define-on-kernel-3-0-35/m-p/452232#M70280</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, guys:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; recently I found kernel 3.0.35 had different IPU DP register macros&amp;nbsp; with kernel 3.10.17:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in kernel/drivers/mxc/ipu3/ipu_regs.h:&lt;/P&gt;&lt;P&gt;3.0.35:&lt;/P&gt;&lt;P&gt;#define DP_SYNC 0&lt;/P&gt;&lt;P&gt;#define DP_ASYNC0 0x60&lt;/P&gt;&lt;P&gt;#define DP_ASYNC1 0xBC&lt;/P&gt;&lt;P&gt;#define DP_COM_CONF(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp; (flow/4)&lt;/P&gt;&lt;P&gt;#define DP_GRAPH_WIND_CTRL(flow) (0x0004/4 + flow/4)&lt;/P&gt;&lt;P&gt;#define DP_FG_POS(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x0008/4 + flow/4)&lt;/P&gt;&lt;P&gt;#define DP_CUR_POS(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x000C/4 + flow/4)&lt;/P&gt;&lt;P&gt;#define DP_CUR_MAP(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x0010/4 + flow/4)&lt;/P&gt;&lt;P&gt;#define DP_GAMMA_C(flow, i)&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x0014/4 + flow/4 + i)&lt;/P&gt;&lt;P&gt;#define DP_GAMMA_S(flow, i)&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x0034/4 + flow/4 + i)&lt;/P&gt;&lt;P&gt;#define DP_CSC_A_0(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x0044/4 + flow/4)&lt;/P&gt;&lt;P&gt;#define DP_CSC_A_1(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x0048/4 + flow/4)&lt;/P&gt;&lt;P&gt;#define DP_CSC_A_2(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x004C/4 + flow/4)&lt;/P&gt;&lt;P&gt;#define DP_CSC_A_3(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x0050/4 + flow/4)&lt;/P&gt;&lt;P&gt;#define DP_CSC_0(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x0054/4 + flow/4)&lt;/P&gt;&lt;P&gt;#define DP_CSC_1(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x0058/4 + flow/4)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3.10.17:&lt;/P&gt;&lt;P&gt;#define IPU_DP_REG(offset)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (offset)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define DP_SYNC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;#define DP_ASYNC0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x60&lt;/P&gt;&lt;P&gt;#define DP_ASYNC1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xBC&lt;/P&gt;&lt;P&gt;#define DP_COM_CONF(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(flow)&lt;/P&gt;&lt;P&gt;#define DP_GRAPH_WIND_CTRL(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x0004 + (flow))&lt;/P&gt;&lt;P&gt;#define DP_FG_POS(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x0008 + (flow))&lt;/P&gt;&lt;P&gt;#define DP_GAMMA_C(flow, i)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x0014 + (flow) + 4 * (i))&lt;/P&gt;&lt;P&gt;#define DP_GAMMA_S(flow, i)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x0034 + (flow) + 4 * (i))&lt;/P&gt;&lt;P&gt;#define DP_CSC_A_0(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x0044 + (flow))&lt;/P&gt;&lt;P&gt;#define DP_CSC_A_1(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x0048 + (flow))&lt;/P&gt;&lt;P&gt;#define DP_CSC_A_2(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x004C + (flow))&lt;/P&gt;&lt;P&gt;#define DP_CSC_A_3(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x0050 + (flow))&lt;/P&gt;&lt;P&gt;#define DP_CSC_0(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x0054 + (flow))&lt;/P&gt;&lt;P&gt;#define DP_CSC_1(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x0058 + (flow))&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;does kernel 3.0.35 initialize IPU wrong? and if not, why the value need to divided by 4?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 28 Jul 2015 05:37:14 GMT</pubDate>
    <dc:creator>wallyyeh</dc:creator>
    <dc:date>2015-07-28T05:37:14Z</dc:date>
    <item>
      <title>weird IPU DP register macro define on kernel 3.0.35</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/weird-IPU-DP-register-macro-define-on-kernel-3-0-35/m-p/452232#M70280</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, guys:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; recently I found kernel 3.0.35 had different IPU DP register macros&amp;nbsp; with kernel 3.10.17:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in kernel/drivers/mxc/ipu3/ipu_regs.h:&lt;/P&gt;&lt;P&gt;3.0.35:&lt;/P&gt;&lt;P&gt;#define DP_SYNC 0&lt;/P&gt;&lt;P&gt;#define DP_ASYNC0 0x60&lt;/P&gt;&lt;P&gt;#define DP_ASYNC1 0xBC&lt;/P&gt;&lt;P&gt;#define DP_COM_CONF(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp; (flow/4)&lt;/P&gt;&lt;P&gt;#define DP_GRAPH_WIND_CTRL(flow) (0x0004/4 + flow/4)&lt;/P&gt;&lt;P&gt;#define DP_FG_POS(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x0008/4 + flow/4)&lt;/P&gt;&lt;P&gt;#define DP_CUR_POS(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x000C/4 + flow/4)&lt;/P&gt;&lt;P&gt;#define DP_CUR_MAP(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x0010/4 + flow/4)&lt;/P&gt;&lt;P&gt;#define DP_GAMMA_C(flow, i)&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x0014/4 + flow/4 + i)&lt;/P&gt;&lt;P&gt;#define DP_GAMMA_S(flow, i)&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x0034/4 + flow/4 + i)&lt;/P&gt;&lt;P&gt;#define DP_CSC_A_0(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x0044/4 + flow/4)&lt;/P&gt;&lt;P&gt;#define DP_CSC_A_1(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x0048/4 + flow/4)&lt;/P&gt;&lt;P&gt;#define DP_CSC_A_2(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x004C/4 + flow/4)&lt;/P&gt;&lt;P&gt;#define DP_CSC_A_3(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x0050/4 + flow/4)&lt;/P&gt;&lt;P&gt;#define DP_CSC_0(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x0054/4 + flow/4)&lt;/P&gt;&lt;P&gt;#define DP_CSC_1(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (0x0058/4 + flow/4)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3.10.17:&lt;/P&gt;&lt;P&gt;#define IPU_DP_REG(offset)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (offset)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define DP_SYNC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;#define DP_ASYNC0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x60&lt;/P&gt;&lt;P&gt;#define DP_ASYNC1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xBC&lt;/P&gt;&lt;P&gt;#define DP_COM_CONF(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(flow)&lt;/P&gt;&lt;P&gt;#define DP_GRAPH_WIND_CTRL(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x0004 + (flow))&lt;/P&gt;&lt;P&gt;#define DP_FG_POS(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x0008 + (flow))&lt;/P&gt;&lt;P&gt;#define DP_GAMMA_C(flow, i)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x0014 + (flow) + 4 * (i))&lt;/P&gt;&lt;P&gt;#define DP_GAMMA_S(flow, i)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x0034 + (flow) + 4 * (i))&lt;/P&gt;&lt;P&gt;#define DP_CSC_A_0(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x0044 + (flow))&lt;/P&gt;&lt;P&gt;#define DP_CSC_A_1(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x0048 + (flow))&lt;/P&gt;&lt;P&gt;#define DP_CSC_A_2(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x004C + (flow))&lt;/P&gt;&lt;P&gt;#define DP_CSC_A_3(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x0050 + (flow))&lt;/P&gt;&lt;P&gt;#define DP_CSC_0(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x0054 + (flow))&lt;/P&gt;&lt;P&gt;#define DP_CSC_1(flow)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPU_DP_REG(0x0058 + (flow))&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;does kernel 3.0.35 initialize IPU wrong? and if not, why the value need to divided by 4?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Jul 2015 05:37:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/weird-IPU-DP-register-macro-define-on-kernel-3-0-35/m-p/452232#M70280</guid>
      <dc:creator>wallyyeh</dc:creator>
      <dc:date>2015-07-28T05:37:14Z</dc:date>
    </item>
    <item>
      <title>Re: weird IPU DP register macro define on kernel 3.0.35</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/weird-IPU-DP-register-macro-define-on-kernel-3-0-35/m-p/452233#M70281</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;ok, I found the commit of this:&lt;/P&gt;&lt;P&gt;&lt;A href="http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/commit/?h=imx_3.10.17_1.0.0_ga&amp;amp;id=1f82c833d18876682f772cc6f0f87ba24d5cae85"&gt;ENGR00293235 IPUv3: Refine register access&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but still not understand the meaning "This makes the register offset values shrink 4 times"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;register is 32 bit, ipu-&amp;gt;reg_base is defined as u32. so they should be matched. why shrink 4 times?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Jul 2015 08:26:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/weird-IPU-DP-register-macro-define-on-kernel-3-0-35/m-p/452233#M70281</guid>
      <dc:creator>wallyyeh</dc:creator>
      <dc:date>2015-07-28T08:26:29Z</dc:date>
    </item>
    <item>
      <title>Re: weird IPU DP register macro define on kernel 3.0.35</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/weird-IPU-DP-register-macro-define-on-kernel-3-0-35/m-p/452234#M70282</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Wally,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"The original IPUv3 driver uses readl()/writel() to access the IPUv3 registers in the following way where ipu-&amp;gt;reg_base is a pointer which points to a 32 bit I/O memory cell of a certain IPUv3 deblock's base address: writel(value, ipu-&amp;gt;reg_base + offset); readl(ipu-&amp;gt;reg_base + offset); "&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Refers only to pointer aritmethic. If ipu-&amp;gt;reg_base is a 32bit pointer, when you add an offet, the address will increment 4 times the offsset.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/Alejandro&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Aug 2015 17:32:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/weird-IPU-DP-register-macro-define-on-kernel-3-0-35/m-p/452234#M70282</guid>
      <dc:creator>alejandrolozan1</dc:creator>
      <dc:date>2015-08-03T17:32:03Z</dc:date>
    </item>
    <item>
      <title>Re: weird IPU DP register macro define on kernel 3.0.35</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/weird-IPU-DP-register-macro-define-on-kernel-3-0-35/m-p/452235#M70283</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks! your answer is so sweet. :smileygrin:&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Aug 2015 05:35:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/weird-IPU-DP-register-macro-define-on-kernel-3-0-35/m-p/452235#M70283</guid>
      <dc:creator>wallyyeh</dc:creator>
      <dc:date>2015-08-04T05:35:55Z</dc:date>
    </item>
  </channel>
</rss>

