[PATCH v6 0/7] drm/vc4: hdmi: Yet Another Approach to HDMI YUV output

Ville Syrjälä ville.syrjala at linux.intel.com
Thu Mar 24 10:27:04 UTC 2022


On Tue, Feb 22, 2022 at 05:40:35PM +0100, Maxime Ripard wrote:
> Hi,
> 
> This is another attempt at supporting the HDMI YUV output in the vc4 HDMI
> driver.
> 
> This is a follow-up of
> https://lore.kernel.org/dri-devel/20210317154352.732095-1-maxime@cerno.tech/
> 
> And the discussions that occured recently on the mailing lists and IRC about
> this.
> 
> The series mentioned above had multiple issues, the main one being that it was
> a bit too much complicated for what we wanted to achieve. This series is taking
> a much simpler approach with an ad-hoc solution.
> 
> I think some parts of it could still be moved to KMS helpers (notably, the
> output format enum, and the helper to set the infoframe for it) and structures
> (the output format stored in drm_connector_state). This would also interact
> nicely with the work done here:
> 
> https://lore.kernel.org/dri-devel/20211118103814.524670-1-maxime@cerno.tech/
> 
> This can come as a second step though.
> 
> The other issues with the first attempt was that nothing was reported to
> userspace about the decision we made about the format, and that this decision
> was essentially policy, without any way for the userspace to influence it.
> 
> Those two points however are being worked on by Werner in a cross-driver
> effort:
> 
> https://lore.kernel.org/dri-devel/e452775c-5b95-bbfd-e818-f1480f556336@tuxedocomputers.com/
> 
> Since it's a KMS decision, I don't think we should hold off any driver as long
> as it's consistent with what the other drivers are doing.
> 
> Let me know what you think,

High level view looks fine to me. No clue about the low level hw bits.
Acked-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

> Maxime
> 
> ---
> 
> Changes from v5:
>   - Renamed pixel_rate to tmds_char_rate
>   - used do_div when necessary
>   - Used limited range YUV matrixes
>   - Rebased on current drm-misc-next
> 
> Changes from v4:
>   - Fix a clock calculation
>   - Rebased on latest drm-misc-next tag
> 
> Changes from v3:
>   - Rebased on latest next
>   - Fixed build error
> 
> Changes from v2:
>   - Rename the output format enum
>   - Split the edid_hdmi_dc_modes in two for RGB444 and YUV444
>   - Remove color_formats modifications from _parse_deep_color entirely
>   - Fixed comment formatting
>   - Fixed mode_valid that would always return true
>   - Fixed max_tmds_clock handling
> 
> Changes from v1:
>   - Fixed an EDID parsing error for YUV422
>   - Fixed the scrambling setup when using a bpc > 8
>   - Added some logging
>   - Fixed some build-bot warnings
>   - Fixed a number of HDMI specifications and EDID issues
>   - Try to max out the bpc every time
> 
> Maxime Ripard (7):
>   drm/vc4: hdmi: Rename pixel_rate variable
>   drm/vc4: hdmi: Move clock validation to its own function
>   drm/vc4: hdmi: Move clock calculation into its own function
>   drm/vc4: hdmi: Take the sink maximum TMDS clock into account
>   drm/vc4: hdmi: Take bpp into account for the scrambler
>   drm/vc4: hdmi: Always try to have the highest bpc
>   drm/vc4: hdmi: Support HDMI YUV output
> 
>  drivers/gpu/drm/vc4/vc4_hdmi.c      | 429 +++++++++++++++++++++++++---
>  drivers/gpu/drm/vc4/vc4_hdmi.h      |  23 +-
>  drivers/gpu/drm/vc4/vc4_hdmi_phy.c  |   2 +-
>  drivers/gpu/drm/vc4/vc4_hdmi_regs.h |   6 +
>  drivers/gpu/drm/vc4/vc4_regs.h      |  16 ++
>  5 files changed, 427 insertions(+), 49 deletions(-)
> 
> -- 
> 2.35.1
> 

-- 
Ville Syrjälä
Intel


More information about the dri-devel mailing list