<?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 Is it safe to decrease the memory reserved for v4l2 video output? in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Is-it-safe-to-decrease-the-memory-reserved-for-v4l2-video-output/m-p/447262#M69055</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We have a customized board (simular to Sabrelite) with MX6Q and 1GB DDR3 DRAM.&lt;/P&gt;&lt;P&gt;The Linux kernel is 3.0.35.&lt;/P&gt;&lt;P&gt;After booting, the 'free' command shows that the total available memory is 769712kB（768MB）.&lt;/P&gt;&lt;P&gt;And the 'dmesg' shows:&lt;/P&gt;&lt;P&gt;......&lt;/P&gt;&lt;P&gt;Memory: 512MB 256MB = 768MB total&lt;/P&gt;&lt;P&gt;Memory: 769712k/769712k available, 278864k reserved, 0K highmem&lt;/P&gt;&lt;P&gt;......&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Obviously,&amp;nbsp; 256MB memory is reserved by kernel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And in kernel code, arch/arm/mach-mx6/board-mx6q_sabrelite.c:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static void __init mx6q_sabrelite_reserve(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phys_addr_t phys;&lt;/P&gt;&lt;P&gt;#if defined(CONFIG_MXC_GPU_VIV) || defined(CONFIG_MXC_GPU_VIV_MODULE)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (imx6q_gpu_pdata.reserved_mem_size) {//128MB&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phys = memblock_alloc_base(imx6q_gpu_pdata.reserved_mem_size,&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SZ_4K, SZ_1G);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memblock_remove(phys, imx6q_gpu_pdata.reserved_mem_size);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; imx6q_gpu_pdata.reserved_mem_base = phys;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (vout_mem.res_msize) {//128MB&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phys = memblock_alloc_base(vout_mem.res_msize,&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SZ_4K, SZ_1G);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memblock_remove(phys, vout_mem.res_msize);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vout_mem.res_mbase = phys;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here we can see 128MB is reserved for GPU, and 128MB is reserved for v4l2 output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As GPU is not used in my project, so it is safe to release the 128MB memory reserved for GPU.&lt;/P&gt;&lt;P&gt;But I'm not sure if it is safe to release the 128MB reserved memory for v4l2 video output.&lt;/P&gt;&lt;P&gt;Why should such a large memory be reserved for v4l2 video output?&lt;/P&gt;&lt;P&gt;What will happen if setting v4l2 video output reserved memory to 0MB?&lt;/P&gt;&lt;P&gt;Is it safe?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Robbie&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 02 Nov 2015 00:50:19 GMT</pubDate>
    <dc:creator>RobbieJiang</dc:creator>
    <dc:date>2015-11-02T00:50:19Z</dc:date>
    <item>
      <title>Is it safe to decrease the memory reserved for v4l2 video output?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Is-it-safe-to-decrease-the-memory-reserved-for-v4l2-video-output/m-p/447262#M69055</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We have a customized board (simular to Sabrelite) with MX6Q and 1GB DDR3 DRAM.&lt;/P&gt;&lt;P&gt;The Linux kernel is 3.0.35.&lt;/P&gt;&lt;P&gt;After booting, the 'free' command shows that the total available memory is 769712kB（768MB）.&lt;/P&gt;&lt;P&gt;And the 'dmesg' shows:&lt;/P&gt;&lt;P&gt;......&lt;/P&gt;&lt;P&gt;Memory: 512MB 256MB = 768MB total&lt;/P&gt;&lt;P&gt;Memory: 769712k/769712k available, 278864k reserved, 0K highmem&lt;/P&gt;&lt;P&gt;......&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Obviously,&amp;nbsp; 256MB memory is reserved by kernel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And in kernel code, arch/arm/mach-mx6/board-mx6q_sabrelite.c:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static void __init mx6q_sabrelite_reserve(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phys_addr_t phys;&lt;/P&gt;&lt;P&gt;#if defined(CONFIG_MXC_GPU_VIV) || defined(CONFIG_MXC_GPU_VIV_MODULE)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (imx6q_gpu_pdata.reserved_mem_size) {//128MB&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phys = memblock_alloc_base(imx6q_gpu_pdata.reserved_mem_size,&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SZ_4K, SZ_1G);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memblock_remove(phys, imx6q_gpu_pdata.reserved_mem_size);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; imx6q_gpu_pdata.reserved_mem_base = phys;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (vout_mem.res_msize) {//128MB&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phys = memblock_alloc_base(vout_mem.res_msize,&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SZ_4K, SZ_1G);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memblock_remove(phys, vout_mem.res_msize);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vout_mem.res_mbase = phys;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here we can see 128MB is reserved for GPU, and 128MB is reserved for v4l2 output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As GPU is not used in my project, so it is safe to release the 128MB memory reserved for GPU.&lt;/P&gt;&lt;P&gt;But I'm not sure if it is safe to release the 128MB reserved memory for v4l2 video output.&lt;/P&gt;&lt;P&gt;Why should such a large memory be reserved for v4l2 video output?&lt;/P&gt;&lt;P&gt;What will happen if setting v4l2 video output reserved memory to 0MB?&lt;/P&gt;&lt;P&gt;Is it safe?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Robbie&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Nov 2015 00:50:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Is-it-safe-to-decrease-the-memory-reserved-for-v4l2-video-output/m-p/447262#M69055</guid>
      <dc:creator>RobbieJiang</dc:creator>
      <dc:date>2015-11-02T00:50:19Z</dc:date>
    </item>
  </channel>
</rss>

