Hi Jose, On Wed, Apr 06, 2022 at 06:55:14PM +0200, José Expósito wrote: > Once EDID is parsed, the monitor HDMI support information is cached in > drm_display_info.is_hdmi by drm_parse_hdmi_vsdb_video(). > > This driver calls drm_detect_hdmi_monitor() to receive the same > information and stores its own cached value, which is less efficient. > > Avoid calling drm_detect_hdmi_monitor() and use drm_display_info.is_hdmi > instead. > > drm_detect_hdmi_monitor() is called in vc4_hdmi_connector_detect() and > vc4_hdmi_connector_get_modes(). In both cases it is safe to rely on > drm_display_info.is_hdmi as shown by ftrace: How do you use ftrace to generate that? > vc4_hdmi_connector_detect: > > vc4_hdmi_connector_detect() { > drm_get_edid() { > drm_connector_update_edid_property() { > drm_add_display_info() { > drm_reset_display_info(); > drm_for_each_detailed_block.part.0(); > drm_parse_cea_ext() { > drm_find_cea_extension(); > cea_db_offsets.part.0(); > cea_db_is_hdmi_vsdb.part.0(); > drm_parse_hdmi_vsdb_video(); > /* drm_display_info.is_hdmi is cached here */ > } > } > } > } > /* drm_display_info.is_hdmi is used here */ > } > > vc4_hdmi_connector_get_modes: > > vc4_hdmi_connector_get_modes() { > drm_get_edid() { > drm_connector_update_edid_property() { > drm_add_display_info() { > drm_reset_display_info(); > drm_for_each_detailed_block.part.0(); > drm_parse_cea_ext() { > drm_find_cea_extension(); > cea_db_offsets.part.0(); > cea_db_is_hdmi_vsdb.part.0(); > drm_parse_hdmi_vsdb_video(); > /* drm_display_info.is_hdmi is cached here */ > } > } > } > } > /* drm_display_info.is_hdmi is used here */ > drm_connector_update_edid_property(); > } > > Signed-off-by: José Expósito <jose.exposito89@xxxxxxxxx> I think what you're hinting at in the cover letter would be best though: we should just remove that caching entirely and use is_hdmi everywhere Maxime
Attachment:
signature.asc
Description: PGP signature