Hi, Louis: Louis-Alexis Eyraud <[email protected]> 於 2025年10月23日 週四 上午10:32寫道: > > From: AngeloGioacchino Del Regno <[email protected]> > > 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. > > Reviewed-by: CK Hu <[email protected]> > Signed-off-by: AngeloGioacchino Del Regno > <[email protected]> > Signed-off-by: Louis-Alexis Eyraud <[email protected]> > --- > 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 > f28e63716d7c2e2c6bdf5b28d24789bc926d2beb..989479fdfe40952762a1b63797bf602b520dcac5 > 100644 > --- a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c > +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c > @@ -253,12 +253,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");
The checkpatch show the warning: WARNING: ENOTSUPP is not a SUSV4 error code, prefer EOPNOTSUPP #40: FILE: drivers/gpu/drm/mediatek/mtk_hdmi_common.c:256: + return dev_err_probe(dev, -ENOTSUPP, "Failed to find CEC node\n"); I find many driver use ENOTSUPP, so I'm not sure which one is better. I really don't understand the description about these two error code [1]. If you choose ENOTSUPP, please give me some explain. [1] https://man7.org/linux/man-pages/man3/errno.3.html Regards, Chun-Kuang. > > 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; > } > @@ -319,7 +318,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; > > -- > 2.51.0 >
