Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/mediatek: dp: drm_err => dev_err in HPD path to avoid NULL ptr

The function mtk_dp_wait_hpd_asserted() may be called before the
`mtk_dp->drm_dev` pointer is assigned in mtk_dp_bridge_attach().
Specifically it can be called via this callpath:
- mtk_edp_wait_hpd_asserted
- [panel probe]
- dp_aux_ep_probe

Using "drm" level prints anywhere in this callpath causes a NULL
pointer dereference. Change the error message directly in
mtk_dp_wait_hpd_asserted() to dev_err() to avoid this. Also change the
error messages in mtk_dp_parse_capabilities(), which is called by
mtk_dp_wait_hpd_asserted().

While touching these prints, also add the error code to them to make
future debugging easier.

Fixes: 7eacba9a083b ("drm/mediatek: dp: Add .wait_hpd_asserted() for AUX bus")
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: CK Hu <ck.hu@mediatek.com>
Link: https://patchwork.kernel.org/project/dri-devel/patch/20250116094249.1.I29b0b621abb613ddc70ab4996426a3909e1aa75f@changeid/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>

authored by

Douglas Anderson and committed by
Chun-Kuang Hu
106a6de4 4ba973c8

+3 -3
+3 -3
drivers/gpu/drm/mediatek/mtk_dp.c
··· 1766 1766 1767 1767 ret = drm_dp_dpcd_readb(&mtk_dp->aux, DP_MSTM_CAP, &val); 1768 1768 if (ret < 1) { 1769 - drm_err(mtk_dp->drm_dev, "Read mstm cap failed\n"); 1769 + dev_err(mtk_dp->dev, "Read mstm cap failed: %zd\n", ret); 1770 1770 return ret == 0 ? -EIO : ret; 1771 1771 } 1772 1772 ··· 1776 1776 DP_DEVICE_SERVICE_IRQ_VECTOR_ESI0, 1777 1777 &val); 1778 1778 if (ret < 1) { 1779 - drm_err(mtk_dp->drm_dev, "Read irq vector failed\n"); 1779 + dev_err(mtk_dp->dev, "Read irq vector failed: %zd\n", ret); 1780 1780 return ret == 0 ? -EIO : ret; 1781 1781 } 1782 1782 ··· 2059 2059 2060 2060 ret = mtk_dp_parse_capabilities(mtk_dp); 2061 2061 if (ret) { 2062 - drm_err(mtk_dp->drm_dev, "Can't parse capabilities\n"); 2062 + dev_err(mtk_dp->dev, "Can't parse capabilities: %d\n", ret); 2063 2063 return ret; 2064 2064 } 2065 2065