<p>I am slightly curious about this as well; I have a device with only YUV scanout and was considering KMS, but don&#39;t know what the best approach is.</p>
<p>At least one KMS driver, nouveau, has to wrap all accesses to its scanout buffers on certain chipsets for tiling reasons, so the same strategy might work.</p>
<p>Sending from a mobile, pardon the brevity. ~ C.</p>
<div class="gmail_quote">On Mar 1, 2011 12:22 PM, &quot;Geert Uytterhoeven&quot; &lt;<a href="mailto:geert@linux-m68k.org">geert@linux-m68k.org</a>&gt; wrote:<br type="attribution">&gt; On Tue, Mar 1, 2011 at 09:25, Magnus Damm &lt;<a href="mailto:magnus.damm@gmail.com">magnus.damm@gmail.com</a>&gt; wrote:<br>
&gt;&gt; On Thu, Feb 24, 2011 at 3:05 PM, Geert Uytterhoeven<br>&gt;&gt; &lt;<a href="mailto:geert@linux-m68k.org">geert@linux-m68k.org</a>&gt; wrote:<br>&gt;&gt;&gt; On Thu, Feb 24, 2011 at 00:28, Magnus Damm &lt;<a href="mailto:magnus.damm@gmail.com">magnus.damm@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt; Please ditch the SH_FB_YUV constant all together. No need to build<br>&gt;&gt;&gt;&gt; some abstraction on top of a hackish interface. Just check if nonstd<br>&gt;&gt;&gt;&gt; is non-zero in the driver and assume that means YUV for now. That&#39;s<br>
&gt;&gt;&gt;&gt; good enough.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; For YUV (do you mean YCbCr?), I&#39;m inclined to suggest adding a new FB_VISUAL_*<br>&gt;&gt;&gt; type instead, which indicates the fb_var_screeninfo.{red,green,blue} fields are<br>
&gt;&gt;&gt; YCbCr instead of RGB.<br>&gt;&gt;&gt; Depending on the frame buffer organization, you also need new FB_TYPE_*/FB_AUX_*<br>&gt;&gt;&gt; types.<br>&gt;&gt;<br>&gt;&gt; I&#39;m all for extending the common code instead of hiding code in<br>
&gt;&gt; drivers. But I wonder how much overlap there is with V4L2 for<br>&gt;&gt; instance. I remember adding support for some NVxx formats for V4L2<br>&gt;&gt; some years ago. It&#39;s mainly used for Video input on Renesas SoCs<br>
&gt;&gt; though:<br>&gt;&gt;<br>&gt;&gt; <a href="http://kerneltrap.org/mailarchive/git-commits-head/2008/12/31/4560474">http://kerneltrap.org/mailarchive/git-commits-head/2008/12/31/4560474</a><br>&gt;&gt;<br>&gt;&gt; So I was hoping that something like the above could be added to fbdev<br>
&gt;&gt; too, but it looks like more code is needed.<br>&gt;&gt;<br>&gt;&gt; Do you have any idea on how to tie in the valid range of each color<br>&gt;&gt; channel? The LCDC hardware block can select between 0-&gt;255 range or<br>
&gt;&gt; 16-&gt;235/240 for the YUV channels. In V4L2 this is handled by<br>&gt;&gt; v4l2_colorspace, the 0-&gt;255 maps directly to V4L2_COLORSPACE_JPEG.<br>&gt; <br>&gt; Unfortunately not. Unlike for the YCbCr visual, I don&#39;t see a field we<br>
&gt; can easily<br>&gt; (ab)use for that. Except if it&#39;s limited to standard 16-235/240 Y vs.<br>&gt; full 0-255 Y,<br>&gt; for which we could just have 2 different visual types.<br>&gt; <br>&gt;&gt; And how does all this relate to KMS? I&#39;d prefer to keep this code in<br>
&gt;&gt; one place if possible.<br>&gt; <br>&gt; Good question!<br>&gt; <br>&gt; I&#39;m still puzzled about this KMS thing. If the name &quot;Kernel Mode Setting&quot;<br>&gt; covers it, then how does it compare to plain fbdev? Just additional frame buffer<br>
&gt; memory management?<br>&gt; <br>&gt; Furthermore, everybody states that &quot;future X/desktop&quot; will require KMS drivers.<br>&gt; How do/will we handle this on dumb frame buffers? It&#39;s not like we can&#39;t do<br>
&gt; &quot;advanced&quot; things like compositing using the CPU. Transparency may stretch<br>&gt; it a bit on lower end CPUs, but you don&#39;t always need that.<br>&gt; <br>&gt; Gr{oetje,eeting}s,<br>&gt; <br>&gt;                         Geert<br>
&gt; <br>&gt; --<br>&gt; Geert Uytterhoeven -- There&#39;s lots of Linux beyond ia32 -- <a href="mailto:geert@linux-m68k.org">geert@linux-m68k.org</a><br>&gt; <br>&gt; In personal conversations with technical people, I call myself a hacker. But<br>
&gt; when I&#39;m talking to journalists I just say &quot;programmer&quot; or something like that.<br>&gt;                                 -- Linus Torvalds<br>&gt; _______________________________________________<br>&gt; dri-devel mailing list<br>
&gt; <a href="mailto:dri-devel@lists.freedesktop.org">dri-devel@lists.freedesktop.org</a><br>&gt; <a href="http://lists.freedesktop.org/mailman/listinfo/dri-devel">http://lists.freedesktop.org/mailman/listinfo/dri-devel</a><br>
</div>