On Mon, May 26, 2025 at 08:26:47PM +0800, Yongxing Mou wrote: > > > On 2024/12/6 16:52, Dmitry Baryshkov wrote: > > On Thu, Dec 05, 2024 at 08:31:36PM -0800, Abhinav Kumar wrote: > > > Add a helper to check whether a dp_panel is mst capable. > > > > > > Signed-off-by: Abhinav Kumar <quic_abhin...@quicinc.com> > > > --- > > > drivers/gpu/drm/msm/dp/dp_aux.h | 1 + > > > drivers/gpu/drm/msm/dp/dp_panel.c | 14 ++++++++++++++ > > > drivers/gpu/drm/msm/dp/dp_panel.h | 1 + > > > 3 files changed, 16 insertions(+) > > > > > > diff --git a/drivers/gpu/drm/msm/dp/dp_aux.h > > > b/drivers/gpu/drm/msm/dp/dp_aux.h > > > index > > > 39c5b4c8596ab28d822493a6b4d479f5f786cdee..cb97a73cdd6ea74b612053bec578247a42214f23 > > > 100644 > > > --- a/drivers/gpu/drm/msm/dp/dp_aux.h > > > +++ b/drivers/gpu/drm/msm/dp/dp_aux.h > > > @@ -8,6 +8,7 @@ > > > #include "dp_catalog.h" > > > #include <drm/display/drm_dp_helper.h> > > > +#include <drm/display/drm_dp_mst_helper.h> > > > int msm_dp_aux_register(struct drm_dp_aux *msm_dp_aux); > > > void msm_dp_aux_unregister(struct drm_dp_aux *msm_dp_aux); > > > diff --git a/drivers/gpu/drm/msm/dp/dp_panel.c > > > b/drivers/gpu/drm/msm/dp/dp_panel.c > > > index > > > d277e9b2cbc03688976b6aa481ee724b186bab51..172de804dec445cb08ad8e3f058407f483cd6684 > > > 100644 > > > --- a/drivers/gpu/drm/msm/dp/dp_panel.c > > > +++ b/drivers/gpu/drm/msm/dp/dp_panel.c > > > @@ -108,6 +108,20 @@ static u32 msm_dp_panel_get_supported_bpp(struct > > > msm_dp_panel *msm_dp_panel, > > > return min_supported_bpp; > > > } > > > +bool msm_dp_panel_read_mst_cap(struct msm_dp_panel *msm_dp_panel) > > > +{ > > > + struct msm_dp_panel_private *panel; > > > + > > > + if (!msm_dp_panel) { > > > + DRM_ERROR("invalid input\n"); > > > + return 0; > > > + } > > > + > > > + panel = container_of(msm_dp_panel, struct msm_dp_panel_private, > > > msm_dp_panel); > > > + > > > + return drm_dp_read_mst_cap(panel->aux, msm_dp_panel->dpcd); > > > > So, it's a one-line wrapper. Do we actually need it? > It beacuse the point of aux is in msm_dp_panel_private, so if we want to > call drm_dp_read_mst_cap in other file, we need this wrapper.
It is being used from dp_display, which also ->aux pointer. > > > > > +} > > > + > > > int msm_dp_panel_read_link_caps(struct msm_dp_panel *msm_dp_panel, > > > struct drm_connector *connector) > > > { > > > diff --git a/drivers/gpu/drm/msm/dp/dp_panel.h > > > b/drivers/gpu/drm/msm/dp/dp_panel.h > > > index > > > 7a38655c443af597c84fb78c6702b2a3ef9822ed..363b416e4cbe290f9c0e6171d6c0c5170f9fea62 > > > 100644 > > > --- a/drivers/gpu/drm/msm/dp/dp_panel.h > > > +++ b/drivers/gpu/drm/msm/dp/dp_panel.h > > > @@ -67,6 +67,7 @@ int msm_dp_panel_get_modes(struct msm_dp_panel > > > *msm_dp_panel, > > > struct drm_connector *connector); > > > void msm_dp_panel_handle_sink_request(struct msm_dp_panel > > > *msm_dp_panel); > > > void msm_dp_panel_tpg_config(struct msm_dp_panel *msm_dp_panel, bool > > > enable); > > > +bool msm_dp_panel_read_mst_cap(struct msm_dp_panel *dp_panel); > > > /** > > > * is_link_rate_valid() - validates the link rate > > > > > > -- > > > 2.34.1 > > > > > > -- With best wishes Dmitry