On Wed, Jan 31, 2024 at 08:49:16PM +0200, Imre Deak wrote: > On Wed, Jan 31, 2024 at 06:09:04PM +0200, Ville Syrjälä wrote: > > On Tue, Jan 23, 2024 at 12:28:33PM +0200, Imre Deak wrote: > > > +static void untrack_tunnel_ref(struct drm_dp_tunnel *tunnel, > > > + struct ref_tracker **tracker) > > > +{ > > > + ref_tracker_free(&tunnel->group->mgr->ref_tracker, > > > + tracker); > > > +} > > > + > > > +struct drm_dp_tunnel * > > > +drm_dp_tunnel_get_untracked(struct drm_dp_tunnel *tunnel) > > > +{ > > > + track_tunnel_ref(tunnel, NULL); > > > + > > > + return tunnel_get(tunnel); > > > +} > > > +EXPORT_SYMBOL(drm_dp_tunnel_get_untracked); > > > > Why do these exist? > > They implement drm_dp_tunnel_get()/put() if > CONFIG_DRM_DISPLAY_DEBUG_DP_TUNNEL_STATE=n. Why does that kind of irrelevant detail need to be visible in the exported api? -- Ville Syrjälä Intel