diff mbox series

[v2,14/15] drm/mediatek: mtk_hdmi_common: Add OP_HDMI, vendor and product strings

Message ID 20241205114518.53527-15-angelogioacchino.delregno@collabora.com (mailing list archive)
State New
Headers show
Series Add support for MT8195/88 DPI, HDMIv2 and DDCv2 | expand

Commit Message

AngeloGioacchino Del Regno Dec. 5, 2024, 11:45 a.m. UTC
In preparation for adding the HDMI TX v2 driver, and to allow
a future modernization of the HDMI v1 one, perform changes
that enable the usage of the HDMI Helpers provided by DRM.

Check if the HDMI driver provides the function pointers to
hdmi_{clear,write}_infoframe used by the HDMI Helper API and,
if present, add DRM_BRIDGE_OP_HDMI to the drm_bridge ops,
enabling the drm API to register the bridge as HDMI and to use
the HDMI Helper functions.

Moreover, as part of data exclusively used (in the context of
HDMI bridges) by the helpers, assign the vendor "MediaTek" and
product "On-Chip HDMI" strings to the drm_bridge struct.

If the hdmi_{write,clear}_infoframe pointers are not assigned,
vendor and product strings and HDMI helpers will not be used,
hence this commit brings no functional changes to drivers that
have not been refactored to use the new helpers.

This also means that, in the current state, there is effectively
no functional change to mtk_hdmi and its other components.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
 drivers/gpu/drm/mediatek/mtk_hdmi_common.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

CK Hu (胡俊光) Dec. 9, 2024, 9:09 a.m. UTC | #1
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.
> 
> 
> In preparation for adding the HDMI TX v2 driver, and to allow
> a future modernization of the HDMI v1 one, perform changes
> that enable the usage of the HDMI Helpers provided by DRM.
> 
> Check if the HDMI driver provides the function pointers to
> hdmi_{clear,write}_infoframe used by the HDMI Helper API and,
> if present, add DRM_BRIDGE_OP_HDMI to the drm_bridge ops,
> enabling the drm API to register the bridge as HDMI and to use
> the HDMI Helper functions.
> 
> Moreover, as part of data exclusively used (in the context of
> HDMI bridges) by the helpers, assign the vendor "MediaTek" and
> product "On-Chip HDMI" strings to the drm_bridge struct.
> 
> If the hdmi_{write,clear}_infoframe pointers are not assigned,
> vendor and product strings and HDMI helpers will not be used,
> hence this commit brings no functional changes to drivers that
> have not been refactored to use the new helpers.
> 
> This also means that, in the current state, there is effectively
> no functional change to mtk_hdmi and its other components.

OP_HDMI is for v2.
vendor and product strings is for both v1 and v2.
So separate this patch to two patches.

Regards,
CK

> 
> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> ---
>  drivers/gpu/drm/mediatek/mtk_hdmi_common.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
> index 4f708b04f5e8..0f60842462b0 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
> @@ -408,9 +408,16 @@ struct mtk_hdmi *mtk_hdmi_common_probe(struct platform_device *pdev)
> 
>         hdmi->bridge.funcs = ver_conf->bridge_funcs;
>         hdmi->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID | DRM_BRIDGE_OP_HPD;
> +
> +       if (ver_conf->bridge_funcs->hdmi_write_infoframe &&
> +           ver_conf->bridge_funcs->hdmi_clear_infoframe)
> +               hdmi->bridge.ops |= DRM_BRIDGE_OP_HDMI;
> +
>         hdmi->bridge.type = DRM_MODE_CONNECTOR_HDMIA;
>         hdmi->bridge.of_node = pdev->dev.of_node;
>         hdmi->bridge.ddc = hdmi->ddc_adpt;
> +       hdmi->bridge.vendor = "MediaTek";
> +       hdmi->bridge.product = "On-Chip HDMI";
> 
>         ret = devm_drm_bridge_add(dev, &hdmi->bridge);
>         if (ret)
> --
> 2.47.0
>
AngeloGioacchino Del Regno Dec. 9, 2024, 9:56 a.m. UTC | #2
Il 09/12/24 10:09, CK Hu (胡俊光) ha scritto:
> 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.
>>
>>
>> In preparation for adding the HDMI TX v2 driver, and to allow
>> a future modernization of the HDMI v1 one, perform changes
>> that enable the usage of the HDMI Helpers provided by DRM.
>>
>> Check if the HDMI driver provides the function pointers to
>> hdmi_{clear,write}_infoframe used by the HDMI Helper API and,
>> if present, add DRM_BRIDGE_OP_HDMI to the drm_bridge ops,
>> enabling the drm API to register the bridge as HDMI and to use
>> the HDMI Helper functions.
>>
>> Moreover, as part of data exclusively used (in the context of
>> HDMI bridges) by the helpers, assign the vendor "MediaTek" and
>> product "On-Chip HDMI" strings to the drm_bridge struct.
>>
>> If the hdmi_{write,clear}_infoframe pointers are not assigned,
>> vendor and product strings and HDMI helpers will not be used,
>> hence this commit brings no functional changes to drivers that
>> have not been refactored to use the new helpers.
>>
>> This also means that, in the current state, there is effectively
>> no functional change to mtk_hdmi and its other components.
> 
> OP_HDMI is for v2.
> vendor and product strings is for both v1 and v2.
> So separate this patch to two patches.
> 

They're both for v2, because only v2 uses the HDMI helpers, while v1 does not.

Cheers,
Angelo

> Regards,
> CK
> 
>>
>> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
>> ---
>>   drivers/gpu/drm/mediatek/mtk_hdmi_common.c | 7 +++++++
>>   1 file changed, 7 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
>> index 4f708b04f5e8..0f60842462b0 100644
>> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
>> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
>> @@ -408,9 +408,16 @@ struct mtk_hdmi *mtk_hdmi_common_probe(struct platform_device *pdev)
>>
>>          hdmi->bridge.funcs = ver_conf->bridge_funcs;
>>          hdmi->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID | DRM_BRIDGE_OP_HPD;
>> +
>> +       if (ver_conf->bridge_funcs->hdmi_write_infoframe &&
>> +           ver_conf->bridge_funcs->hdmi_clear_infoframe)
>> +               hdmi->bridge.ops |= DRM_BRIDGE_OP_HDMI;
>> +
>>          hdmi->bridge.type = DRM_MODE_CONNECTOR_HDMIA;
>>          hdmi->bridge.of_node = pdev->dev.of_node;
>>          hdmi->bridge.ddc = hdmi->ddc_adpt;
>> +       hdmi->bridge.vendor = "MediaTek";
>> +       hdmi->bridge.product = "On-Chip HDMI";
>>
>>          ret = devm_drm_bridge_add(dev, &hdmi->bridge);
>>          if (ret)
>> --
>> 2.47.0
>>
>
CK Hu (胡俊光) Dec. 10, 2024, 1:22 a.m. UTC | #3
On Mon, 2024-12-09 at 10:56 +0100, AngeloGioacchino Del Regno wrote:
> External email : Please do not click links or open attachments until you have verified the sender or the content.
> 
> 
> Il 09/12/24 10:09, CK Hu (胡俊光) ha scritto:
> > 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.
> > > 
> > > 
> > > In preparation for adding the HDMI TX v2 driver, and to allow
> > > a future modernization of the HDMI v1 one, perform changes
> > > that enable the usage of the HDMI Helpers provided by DRM.
> > > 
> > > Check if the HDMI driver provides the function pointers to
> > > hdmi_{clear,write}_infoframe used by the HDMI Helper API and,
> > > if present, add DRM_BRIDGE_OP_HDMI to the drm_bridge ops,
> > > enabling the drm API to register the bridge as HDMI and to use
> > > the HDMI Helper functions.
> > > 
> > > Moreover, as part of data exclusively used (in the context of
> > > HDMI bridges) by the helpers, assign the vendor "MediaTek" and
> > > product "On-Chip HDMI" strings to the drm_bridge struct.
> > > 
> > > If the hdmi_{write,clear}_infoframe pointers are not assigned,
> > > vendor and product strings and HDMI helpers will not be used,
> > > hence this commit brings no functional changes to drivers that
> > > have not been refactored to use the new helpers.
> > > 
> > > This also means that, in the current state, there is effectively
> > > no functional change to mtk_hdmi and its other components.
> > 
> > OP_HDMI is for v2.
> > vendor and product strings is for both v1 and v2.
> > So separate this patch to two patches.
> > 
> 
> They're both for v2, because only v2 uses the HDMI helpers, while v1 does not.

Sorry, these two is required by DRM_BRIDGE_OP_HDMI.

  /**
         * @vendor: Vendor of the product to be used for the SPD InfoFrame
         * generation. This is required if @DRM_BRIDGE_OP_HDMI is set.
         */
        const char *vendor;
 
        /**
         * @product: Name of the product to be used for the SPD InfoFrame
         * generation. This is required if @DRM_BRIDGE_OP_HDMI is set.
         */
        const char *product;

So,

Reviewed-by: CK Hu <ck.hu@mediatek.com>

> 
> Cheers,
> Angelo
> 
> > Regards,
> > CK
> > 
> > > 
> > > Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> > > ---
> > >   drivers/gpu/drm/mediatek/mtk_hdmi_common.c | 7 +++++++
> > >   1 file changed, 7 insertions(+)
> > > 
> > > diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
> > > index 4f708b04f5e8..0f60842462b0 100644
> > > --- a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
> > > +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
> > > @@ -408,9 +408,16 @@ struct mtk_hdmi *mtk_hdmi_common_probe(struct platform_device *pdev)
> > > 
> > >          hdmi->bridge.funcs = ver_conf->bridge_funcs;
> > >          hdmi->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID | DRM_BRIDGE_OP_HPD;
> > > +
> > > +       if (ver_conf->bridge_funcs->hdmi_write_infoframe &&
> > > +           ver_conf->bridge_funcs->hdmi_clear_infoframe)
> > > +               hdmi->bridge.ops |= DRM_BRIDGE_OP_HDMI;
> > > +
> > >          hdmi->bridge.type = DRM_MODE_CONNECTOR_HDMIA;
> > >          hdmi->bridge.of_node = pdev->dev.of_node;
> > >          hdmi->bridge.ddc = hdmi->ddc_adpt;
> > > +       hdmi->bridge.vendor = "MediaTek";
> > > +       hdmi->bridge.product = "On-Chip HDMI";
> > > 
> > >          ret = devm_drm_bridge_add(dev, &hdmi->bridge);
> > >          if (ret)
> > > --
> > > 2.47.0
> > > 
> > 
> 
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
index 4f708b04f5e8..0f60842462b0 100644
--- a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
+++ b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
@@ -408,9 +408,16 @@  struct mtk_hdmi *mtk_hdmi_common_probe(struct platform_device *pdev)
 
 	hdmi->bridge.funcs = ver_conf->bridge_funcs;
 	hdmi->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID | DRM_BRIDGE_OP_HPD;
+
+	if (ver_conf->bridge_funcs->hdmi_write_infoframe &&
+	    ver_conf->bridge_funcs->hdmi_clear_infoframe)
+		hdmi->bridge.ops |= DRM_BRIDGE_OP_HDMI;
+
 	hdmi->bridge.type = DRM_MODE_CONNECTOR_HDMIA;
 	hdmi->bridge.of_node = pdev->dev.of_node;
 	hdmi->bridge.ddc = hdmi->ddc_adpt;
+	hdmi->bridge.vendor = "MediaTek";
+	hdmi->bridge.product = "On-Chip HDMI";
 
 	ret = devm_drm_bridge_add(dev, &hdmi->bridge);
 	if (ret)