<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>