Message ID | 20250414031439.1895-1-vulab@iscas.ac.cn (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [v3] drm/amd/display: Add error check for avi and vendor infoframe setup function | expand |
Reviewed-by: Alex Hung <alex.hung@amd.com> On 4/13/25 21:14, Wentao Liang wrote: > The function fill_stream_properties_from_drm_display_mode() calls the > function drm_hdmi_avi_infoframe_from_display_mode() and the > function drm_hdmi_vendor_infoframe_from_display_mode(), but does > not check its return value. Log the error messages to prevent silent > failure if either function fails. > > Signed-off-by: Wentao Liang <vulab@iscas.ac.cn> > --- > v3: Fix error-logging function error > v2: Fix code diff error > > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 13 +++++++++++-- > 1 file changed, 11 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > index 5f216d626cbb..cdf1a07aa8af 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > @@ -6104,6 +6104,7 @@ static void fill_stream_properties_from_drm_display_mode( > struct amdgpu_dm_connector *aconnector = NULL; > struct hdmi_vendor_infoframe hv_frame; > struct hdmi_avi_infoframe avi_frame; > + ssize_t err; > > if (connector->connector_type != DRM_MODE_CONNECTOR_WRITEBACK) > aconnector = to_amdgpu_dm_connector(connector); > @@ -6150,9 +6151,17 @@ static void fill_stream_properties_from_drm_display_mode( > } > > if (stream->signal == SIGNAL_TYPE_HDMI_TYPE_A) { > - drm_hdmi_avi_infoframe_from_display_mode(&avi_frame, (struct drm_connector *)connector, mode_in); > + err = drm_hdmi_avi_infoframe_from_display_mode(&avi_frame, > + (struct drm_connector *)connector, > + mode_in); > + if (err < 0) > + drm_err(connector->dev, "Failed to setup avi infoframe: %zd\n", err); > timing_out->vic = avi_frame.video_code; > - drm_hdmi_vendor_infoframe_from_display_mode(&hv_frame, (struct drm_connector *)connector, mode_in); > + err = drm_hdmi_vendor_infoframe_from_display_mode(&hv_frame, > + (struct drm_connector *)connector, > + mode_in); > + if (err < 0) > + drm_err(connector->dev, "Failed to setup vendor infoframe: %zd\n", err); > timing_out->hdmi_vic = hv_frame.vic; > } >
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 5f216d626cbb..cdf1a07aa8af 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -6104,6 +6104,7 @@ static void fill_stream_properties_from_drm_display_mode( struct amdgpu_dm_connector *aconnector = NULL; struct hdmi_vendor_infoframe hv_frame; struct hdmi_avi_infoframe avi_frame; + ssize_t err; if (connector->connector_type != DRM_MODE_CONNECTOR_WRITEBACK) aconnector = to_amdgpu_dm_connector(connector); @@ -6150,9 +6151,17 @@ static void fill_stream_properties_from_drm_display_mode( } if (stream->signal == SIGNAL_TYPE_HDMI_TYPE_A) { - drm_hdmi_avi_infoframe_from_display_mode(&avi_frame, (struct drm_connector *)connector, mode_in); + err = drm_hdmi_avi_infoframe_from_display_mode(&avi_frame, + (struct drm_connector *)connector, + mode_in); + if (err < 0) + drm_err(connector->dev, "Failed to setup avi infoframe: %zd\n", err); timing_out->vic = avi_frame.video_code; - drm_hdmi_vendor_infoframe_from_display_mode(&hv_frame, (struct drm_connector *)connector, mode_in); + err = drm_hdmi_vendor_infoframe_from_display_mode(&hv_frame, + (struct drm_connector *)connector, + mode_in); + if (err < 0) + drm_err(connector->dev, "Failed to setup vendor infoframe: %zd\n", err); timing_out->hdmi_vic = hv_frame.vic; }
The function fill_stream_properties_from_drm_display_mode() calls the function drm_hdmi_avi_infoframe_from_display_mode() and the function drm_hdmi_vendor_infoframe_from_display_mode(), but does not check its return value. Log the error messages to prevent silent failure if either function fails. Signed-off-by: Wentao Liang <vulab@iscas.ac.cn> --- v3: Fix error-logging function error v2: Fix code diff error drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-)