Re: [PATCH v2 15/15] drm/mediatek: Introduce HDMI/DDC v2 for MT8195/MT8188

CK Hu (胡俊光)
2024-12-17T06:47:54Z

Hi, Angelo:

On Thu, 2024-12-05 at 12:45 +0100, AngeloGioacchino Del Regno wrote:
> External email : Please do not click links or open attachments until you have verified the sender or the content.
>
>
> Add support for the newer HDMI-TX (Encoder) v2 and DDC v2 IPs
> found in MediaTek's MT8195, MT8188 SoC and their variants, and
> including support for display modes up to 4k60 and for HDMI
> Audio, as per the HDMI 2.0 spec.
>
> HDCP and CEC functionalities are also supported by this hardware,
> but are not included in this commit and that also poses a slight
> difference between the V2 and V1 controllers in how they handle
> Hotplug Detection (HPD).
>
> While the v1 controller was using the CEC controller to check
> HDMI cable connection and disconnection, in this driver the v2
> one does not.
>
> This is due to the fact that on parts with v2 designs, like the
> MT8195 SoC, there is one CEC controller shared between the HDMI
> Transmitter (HDMI-TX) and Receiver (HDMI-RX): before eventually
> adding support to use the CEC HW to wake up the HDMI controllers
> it is necessary to have support for one TX, one RX *and* for both
> at the same time.
>
> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> ---

[snip]

> +static const struct drm_bridge_funcs mtk_v2_hdmi_bridge_funcs = {
> + .attach = mtk_hdmi_v2_bridge_attach,
> + .detach = mtk_hdmi_v2_bridge_detach,
> + .mode_fixup = mtk_hdmi_bridge_mode_fixup,
> + .mode_set = mtk_hdmi_bridge_mode_set,
> + .mode_valid = mtk_hdmi_v2_bridge_mode_valid,
> + .atomic_pre_enable = mtk_hdmi_v2_bridge_pre_enable,
> + .atomic_enable = mtk_hdmi_v2_bridge_enable,
> + .atomic_disable = mtk_hdmi_v2_bridge_disable,
> + .atomic_post_disable = mtk_hdmi_v2_bridge_post_disable,
> + .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,
> + .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state,
> + .atomic_check = mtk_hdmi_v2_bridge_atomic_check,
> + .atomic_reset = drm_atomic_helper_bridge_reset,
> + .detect = mtk_hdmi_v2_bridge_detect,
> + .edid_read = mtk_hdmi_v2_bridge_edid_read,
> + .hdmi_tmds_char_rate_valid = mtk_hdmi_v2_hdmi_tmds_char_rate_valid,
> + .hdmi_clear_infoframe = mtk_hdmi_v2_hdmi_clear_infoframe,
> + .hdmi_write_infoframe = mtk_hdmi_v2_hdmi_write_infoframe,
> + .debugfs_init = mtk_hdmi_v2_debugfs_init,

I would like this patch to be smaller, so separate debugfs to an independent patch.

Regards,
CK

> +};
> +