<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi Russell,<br>
<br>
<div class="moz-cite-prefix">在 2015/3/31 19:57, Russell King - ARM
Linux 写道:<br>
</div>
<blockquote cite="mid:20150331115718.GS24899@n2100.arm.linux.org.uk"
type="cite">
<pre wrap="">On Tue, Mar 31, 2015 at 05:02:20AM -0400, Yang Kuankuan wrote:
</pre>
<blockquote type="cite">
<pre wrap="">Besides, as you are going an dw_hdmi cleanups, I want to point another bugs
that relate to the HDMI CTS test. There are somethings wrong with General
Control Pack, as for now the encoder color depth is 8-bit packing mode,
so the color depth only support 24 bits per pixel video, In this case the
CD filed in GCP should set to "Color Depth Not indicated".
</pre>
</blockquote>
<pre wrap="">
I'm not sure I follow.
According to the iMX6 documentation, setting the CD field to either 0000
or 0100 indicates that the color depth is 24 bits per pixel, 8 bits per
component, 8 bit packing mode - there's no documented difference between
these.
</pre>
</blockquote>
Yeah, that is the point. Though there's no designedware datasheet
difference between<br>
"0000b" & 0100b" in vp_pr_cd, but I think the color_depth in
vp_pr_cd register are<br>
mapping to CD0-CD3 filed in GCP packet, and acutally "0000b" &
"0100b" are differnent<br>
in CD filed ("0000b Color Depth not indicated" & "0100b 24 bit
per pixel").<br>
<br>
If the CD filed is non-zero, that indicate we are support depth
color mode(but I think<br>
the depth color mode need at least 36bpp). Besides as the HDMI
Specification descripte,<br>
"<font color="#666666"><i>If the Sink dose not receive a GCP with
non-zero CD from more than 4 consecutive video</i><i><br>
</i><i>fields, it should exit deep color mode and reverting to
24-bit color</i></font>"(24-bit color is default).<br>
<br>
In the end I think if we only output 24-bit color, we should make
the CD field to zero :)<br>
<br>
<blockquote cite="mid:20150331115718.GS24899@n2100.arm.linux.org.uk"
type="cite">
<pre wrap="">
Are you saying that you wish to pass something other than 24 bpp video
to your HDMI encoder?
</pre>
<blockquote type="cite">
<pre wrap="">In the end we should keep the *csc_color_depth(HDMI_CSC_SCALE)* &
*color_depth(HDMI_VP_PR_CD)* to zero, code should modify like this GCP
would test pass:
</pre>
</blockquote>
<pre wrap="">
>From what you're describing, you want CD field = 0 and CSC_SCALE = 0.
It looks like hdmi_video_packetize() will set the CD field to zero if
hdmi_data.enc_color_depth = 0, but that would cause hdmi_video_sample()
and hdmi_video_csc() to fail. Maybe those two functions should be fixed
to accept a color depth of zero, and maybe you need to set
enc_color_depth to 0?
Interestingly, HDMI_CSC_SCALE_CSC_COLORDE_PTH_24BPP is defined to be
zero, but again, in the iMX6 data, it could take a value of either
0x00 or 0x40. I think hdmi_video_csc() should set this to 0x40 if
hdmi_data.enc_color_depth = 0, and 0x40 for hdmi_data.enc_color_depth = 8.
</pre>
</blockquote>
Agree! If we only output 24-bit color, we should let the
hdmi_data.enc_color_depth = 0,<br>
and hdmi_video_csc() & hdmi_video_packetize() should handle the
"enc_color_depth = 0".<br>
<br>
Best regards.<br>
Yakir Yang<br>
<blockquote cite="mid:20150331115718.GS24899@n2100.arm.linux.org.uk"
type="cite">
<pre wrap="">
</pre>
</blockquote>
<br>
</body>
</html>