From: Maxime Ripard <maxime@cerno.tech>
To: Daniel Vetter <daniel.vetter@intel.com>,
David Airlie <airlied@linux.ie>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Thomas Zimmermann <tzimmermann@suse.de>,
Maxime Ripard <maxime@cerno.tech>
Cc: Dom Cobley <dom@raspberrypi.com>,
Tim Gover <tim.gover@raspberrypi.com>,
Dave Stevenson <dave.stevenson@raspberrypi.com>,
Werner Sembach <wse@tuxedocomputers.com>,
dri-devel@lists.freedesktop.org,
Phil Elwell <phil@raspberrypi.com>
Subject: [PATCH v3 00/16] drm/vc4: hdmi: Yet Another Approach to HDMI YUV output
Date: Thu, 13 Jan 2022 15:07:04 +0100 [thread overview]
Message-ID: <20220113140720.1678907-1-maxime@cerno.tech> (raw)
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,
Maxime
---
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 (16):
drm/edid: Rename drm_hdmi_avi_infoframe_colorspace to _colorimetry
drm/edid: Don't clear formats if using deep color
drm/edid: Split deep color modes between RGB and YUV444
drm/connector: Fix typo in output format
drm/vc4: hdmi: Add full range RGB helper
drm/vc4: hdmi: Use full range helper in csc functions
drm/vc4: hdmi: Move XBAR setup to csc_setup
drm/vc4: hdmi: Replace CSC_CTL hardcoded value by defines
drm/vc4: hdmi: Define colorspace matrices
drm/vc4: hdmi: Change CSC callback prototype
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
.../gpu/drm/amd/amdgpu/amdgpu_connectors.c | 2 +-
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
.../arm/display/komeda/d71/d71_component.c | 12 +-
drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 2 +-
.../drm/bridge/analogix/analogix_dp_core.c | 4 +-
.../drm/bridge/cadence/cdns-mhdp8546-core.c | 18 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 16 +-
drivers/gpu/drm/drm_edid.c | 39 +-
drivers/gpu/drm/i915/display/intel_hdmi.c | 6 +-
drivers/gpu/drm/i915/display/intel_lspcon.c | 2 +-
drivers/gpu/drm/radeon/radeon_connectors.c | 2 +-
.../gpu/drm/rockchip/analogix_dp-rockchip.c | 2 +-
drivers/gpu/drm/vc4/vc4_hdmi.c | 522 +++++++++++++++---
drivers/gpu/drm/vc4/vc4_hdmi.h | 26 +-
drivers/gpu/drm/vc4/vc4_hdmi_regs.h | 6 +
drivers/gpu/drm/vc4/vc4_regs.h | 19 +
include/drm/drm_connector.h | 18 +-
include/drm/drm_edid.h | 4 +-
18 files changed, 552 insertions(+), 150 deletions(-)
--
2.34.1
next reply other threads:[~2022-01-13 14:07 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-13 14:07 Maxime Ripard [this message]
2022-01-13 14:07 ` [PATCH v3 01/16] drm/edid: Rename drm_hdmi_avi_infoframe_colorspace to _colorimetry Maxime Ripard
2022-01-13 14:07 ` [PATCH v3 02/16] drm/edid: Don't clear formats if using deep color Maxime Ripard
2022-01-13 14:07 ` [PATCH v3 03/16] drm/edid: Split deep color modes between RGB and YUV444 Maxime Ripard
2022-01-13 14:07 ` [PATCH v3 04/16] drm/connector: Fix typo in output format Maxime Ripard
2022-01-13 20:16 ` kernel test robot
2022-01-13 20:16 ` kernel test robot
2022-01-13 14:07 ` [PATCH v3 05/16] drm/vc4: hdmi: Add full range RGB helper Maxime Ripard
2022-01-13 14:07 ` [PATCH v3 06/16] drm/vc4: hdmi: Use full range helper in csc functions Maxime Ripard
2022-01-13 14:07 ` [PATCH v3 07/16] drm/vc4: hdmi: Move XBAR setup to csc_setup Maxime Ripard
2022-01-13 14:07 ` [PATCH v3 08/16] drm/vc4: hdmi: Replace CSC_CTL hardcoded value by defines Maxime Ripard
2022-01-13 14:07 ` [PATCH v3 09/16] drm/vc4: hdmi: Define colorspace matrices Maxime Ripard
2022-01-13 14:07 ` [PATCH v3 10/16] drm/vc4: hdmi: Change CSC callback prototype Maxime Ripard
2022-01-13 14:07 ` [PATCH v3 11/16] drm/vc4: hdmi: Move clock validation to its own function Maxime Ripard
2022-01-13 14:07 ` [PATCH v3 12/16] drm/vc4: hdmi: Move clock calculation into " Maxime Ripard
2022-01-13 14:07 ` [PATCH v3 13/16] drm/vc4: hdmi: Take the sink maximum TMDS clock into account Maxime Ripard
2022-01-13 14:07 ` [PATCH v3 14/16] drm/vc4: hdmi: Take bpp into account for the scrambler Maxime Ripard
2022-01-13 14:07 ` [PATCH v3 15/16] drm/vc4: hdmi: Always try to have the highest bpc Maxime Ripard
2022-01-13 14:07 ` [PATCH v3 16/16] drm/vc4: hdmi: Support HDMI YUV output Maxime Ripard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220113140720.1678907-1-maxime@cerno.tech \
--to=maxime@cerno.tech \
--cc=airlied@linux.ie \
--cc=daniel.vetter@intel.com \
--cc=dave.stevenson@raspberrypi.com \
--cc=dom@raspberrypi.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=phil@raspberrypi.com \
--cc=tim.gover@raspberrypi.com \
--cc=tzimmermann@suse.de \
--cc=wse@tuxedocomputers.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.