On Thu, 12 Dec 2024 at 05:26, Abhinav Kumar <quic_abhinavk@xxxxxxxxxxx> wrote: > > > > On 12/11/2024 3:41 PM, Dmitry Baryshkov wrote: > > All other submodules pass arguments directly. Drop struct > > msm_dp_panel_in that is used to wrap dp_panel's submodule args and pass > > all data to msm_dp_panel_get() directly. > > > > Reviewed-by: Stephen Boyd <swboyd@xxxxxxxxxxxx> > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> > > --- > > drivers/gpu/drm/msm/dp/dp_display.c | 9 +-------- > > drivers/gpu/drm/msm/dp/dp_panel.c | 15 ++++++++------- > > drivers/gpu/drm/msm/dp/dp_panel.h | 10 ++-------- > > 3 files changed, 11 insertions(+), 23 deletions(-) > > > > Change not necessarily tied to catalog cleanup, and can be sent > independently IMO. > > > diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c > > index cb02d5d5b404925707c737ed75e9e83fbec34f83..a2cdcdac042d63a59ff71aefcecb7f8b22f01167 100644 > > --- a/drivers/gpu/drm/msm/dp/dp_display.c > > +++ b/drivers/gpu/drm/msm/dp/dp_display.c > > @@ -722,9 +722,6 @@ static int msm_dp_init_sub_modules(struct msm_dp_display_private *dp) > > { > > int rc = 0; > > struct device *dev = &dp->msm_dp_display.pdev->dev; > > - struct msm_dp_panel_in panel_in = { > > - .dev = dev, > > - }; > > struct phy *phy; > > > > phy = devm_phy_get(dev, "dp"); > > @@ -765,11 +762,7 @@ static int msm_dp_init_sub_modules(struct msm_dp_display_private *dp) > > goto error_link; > > } > > > > - panel_in.aux = dp->aux; > > - panel_in.catalog = dp->catalog; > > - panel_in.link = dp->link; > > - > > - dp->panel = msm_dp_panel_get(&panel_in); > > + dp->panel = msm_dp_panel_get(dev, dp->aux, dp->link, dp->catalog); > > if (IS_ERR(dp->panel)) { > > rc = PTR_ERR(dp->panel); > > DRM_ERROR("failed to initialize panel, rc = %d\n", rc); > > diff --git a/drivers/gpu/drm/msm/dp/dp_panel.c b/drivers/gpu/drm/msm/dp/dp_panel.c > > index 25869e2ac93aba0bffeddae9f95917d81870d8cb..49bbcde8cf60ac1b297310a50191135d79b092fb 100644 > > --- a/drivers/gpu/drm/msm/dp/dp_panel.c > > +++ b/drivers/gpu/drm/msm/dp/dp_panel.c > > @@ -659,25 +659,26 @@ static int msm_dp_panel_parse_dt(struct msm_dp_panel *msm_dp_panel) > > return 0; > > } > > > > -struct msm_dp_panel *msm_dp_panel_get(struct msm_dp_panel_in *in) > > +struct msm_dp_panel *msm_dp_panel_get(struct device *dev, struct drm_dp_aux *aux, > > + struct msm_dp_link *link, struct msm_dp_catalog *catalog) > > { > > so this API, takes a filled input panel, makes a msm_dp_panel out of it > by filling out more information on top of what was already passed in and > returns a msm_dp_panel. > > So IOW, converts a msm_dp_panel_in to msm_dp_panel. > > What is the gain by passing individual params rather than passing them > as a struct instead? Isnt it better to have it within that struct to > show the conversion and moreover we dont have to pass in 4 arguments > instead of 1. We gain uniformity. All other modules use params. And, as pointed out by Maxime during HDMI Codec reviews, it's easier to handle function params - it makes it more obvious that one of the params got missing. -- With best wishes Dmitry