Messages in this thread |  | | Date | Sun, 10 Apr 2022 12:21:22 +0200 | From | José Expósito <> | Subject | Re: [PATCH 1/1] drm/vc4: hdmi: Replace drm_detect_hdmi_monitor() with is_hdmi |
| |
Hi Maxime,
Thanks for your comments.
On Fri, Apr 08, 2022 at 09:41:10AM +0200, Maxime Ripard wrote: > 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?
I had to add noinline to a couple of relevant functions and run the usual:
$ sudo trace-cmd record -p function_graph -l "vc4_hdmi_*" [...]
I'll add the command to v2.
> > 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@gmail.com> > > 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
Cool, I'll work on a follow up patch to remove vc4_encoder.hdmi_monitor and add it to v2.
Thanks, Jose
|  |