[alsa-devel] [PATCH RFC 02/11] drm: bridge/dw_hdmi: use drm_hdmi_avi_infoframe_from_display_mode()
Yakir
ykk at rock-chips.com
Wed Apr 1 03:31:43 CEST 2015
Hi Russell,
在 2015/3/31 19:57, Russell King - ARM Linux 写道:
> On Tue, Mar 31, 2015 at 05:02:20AM -0400, Yang Kuankuan wrote:
>> 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".
> 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.
Yeah, that is the point. Though there's no designedware datasheet
difference between
"0000b" & 0100b" in vp_pr_cd, but I think the color_depth in vp_pr_cd
register are
mapping to CD0-CD3 filed in GCP packet, and acutally "0000b" & "0100b"
are differnent
in CD filed ("0000b Color Depth not indicated" & "0100b 24 bit per pixel").
If the CD filed is non-zero, that indicate we are support depth color
mode(but I think
the depth color mode need at least 36bpp). Besides as the HDMI
Specification descripte,
"/If the Sink dose not receive a GCP with non-zero CD from more than 4
consecutive video//
//fields, it should exit deep color mode and reverting to 24-bit
color/"(24-bit color is default).
In the end I think if we only output 24-bit color, we should make the CD
field to zero :)
> Are you saying that you wish to pass something other than 24 bpp video
> to your HDMI encoder?
>
>> 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:
> >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.
Agree! If we only output 24-bit color, we should let the
hdmi_data.enc_color_depth = 0,
and hdmi_video_csc() & hdmi_video_packetize() should handle the
"enc_color_depth = 0".
Best regards.
Yakir Yang
More information about the Alsa-devel
mailing list