Message ID | 20250211113409.1517534-37-angelogioacchino.delregno@collabora.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Add support for MT8195/88 DPI, HDMIv2 and DDCv2 | expand |
On Tue, 2025-02-11 at 12:34 +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 a new driver for HDMIv2, for which CEC > is not strictly required, change the of_get_compatible_child() > failure error to -ENOTSUPP to be able to differentiate between > error conditions in mtk_hdmi_dt_parse_pdata(). > > In that case, if -ENOTSUPP is returned, this driver will print > an informative message saying that CEC support is unavailable, > as the devicetree node for that was not found, but after that, > function mtk_hdmi_dt_parse_pdata() will not return error to > the caller. > > This will not change functionality of the mtk_hdmi (v1) driver > as that is still checking whether CEC is present and, if not, > will fail probing with an error saying that CEC is required > by HDMIv1. > > Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> > --- > drivers/gpu/drm/mediatek/mtk_hdmi_common.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c > index 3dfde63198e5..5ea45608921c 100644 > --- a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c > +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c > @@ -254,12 +254,11 @@ static int mtk_hdmi_get_cec_dev(struct mtk_hdmi *hdmi, struct device *dev, struc > /* The CEC module handles HDMI hotplug detection */ > cec_np = of_get_compatible_child(np->parent, "mediatek,mt8173-cec"); > if (!cec_np) > - return dev_err_probe(dev, -EINVAL, "Failed to find CEC node\n"); > + return dev_err_probe(dev, -ENOTSUPP, "Failed to find CEC node\n"); > > cec_pdev = of_find_device_by_node(cec_np); > if (!cec_pdev) { > - dev_err(hdmi->dev, "Waiting for CEC device %pOF\n", > - cec_np); > + dev_err(hdmi->dev, "Waiting for CEC device %pOF\n", cec_np); > of_node_put(cec_np); > return -EPROBE_DEFER; > } > @@ -323,7 +322,9 @@ static int mtk_hdmi_dt_parse_pdata(struct mtk_hdmi *hdmi, struct platform_device > return dev_err_probe(dev, -EINVAL, "Failed to get ddc i2c adapter by node\n"); > > ret = mtk_hdmi_get_cec_dev(hdmi, dev, np); > - if (ret) > + if (ret == -ENOTSUPP) > + dev_info(dev, "CEC support unavailable: node not found\n"); You change v1 behavior here. When there is no CEC in device tree, original v1 would return -EINVAL. But now, v1 return 0. In mtk_hdmi_probe() of previous patch, you add checking of hdmi->cec_dev. I think that checking is related to this, so I would like that checking to be in this patch because that checking is strongly related to this patch. After this modification, Reviewed-by: CK Hu <ck.hu@mediatek.com> > + else if (ret) > return ret; > > return 0; > -- > 2.48.1 >
diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c index 3dfde63198e5..5ea45608921c 100644 --- a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c @@ -254,12 +254,11 @@ static int mtk_hdmi_get_cec_dev(struct mtk_hdmi *hdmi, struct device *dev, struc /* The CEC module handles HDMI hotplug detection */ cec_np = of_get_compatible_child(np->parent, "mediatek,mt8173-cec"); if (!cec_np) - return dev_err_probe(dev, -EINVAL, "Failed to find CEC node\n"); + return dev_err_probe(dev, -ENOTSUPP, "Failed to find CEC node\n"); cec_pdev = of_find_device_by_node(cec_np); if (!cec_pdev) { - dev_err(hdmi->dev, "Waiting for CEC device %pOF\n", - cec_np); + dev_err(hdmi->dev, "Waiting for CEC device %pOF\n", cec_np); of_node_put(cec_np); return -EPROBE_DEFER; } @@ -323,7 +322,9 @@ static int mtk_hdmi_dt_parse_pdata(struct mtk_hdmi *hdmi, struct platform_device return dev_err_probe(dev, -EINVAL, "Failed to get ddc i2c adapter by node\n"); ret = mtk_hdmi_get_cec_dev(hdmi, dev, np); - if (ret) + if (ret == -ENOTSUPP) + dev_info(dev, "CEC support unavailable: node not found\n"); + else if (ret) return ret; return 0;
In preparation for adding a new driver for HDMIv2, for which CEC is not strictly required, change the of_get_compatible_child() failure error to -ENOTSUPP to be able to differentiate between error conditions in mtk_hdmi_dt_parse_pdata(). In that case, if -ENOTSUPP is returned, this driver will print an informative message saying that CEC support is unavailable, as the devicetree node for that was not found, but after that, function mtk_hdmi_dt_parse_pdata() will not return error to the caller. This will not change functionality of the mtk_hdmi (v1) driver as that is still checking whether CEC is present and, if not, will fail probing with an error saying that CEC is required by HDMIv1. Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> --- drivers/gpu/drm/mediatek/mtk_hdmi_common.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)