Message ID | 20241212-fd-dp-audio-fixup-v3-0-0b1c65e7dba3@linaro.org |
---|---|
Headers | show |
Series | drm/msm/dp: perform misc cleanups | expand |
On 12/11/2024 3:41 PM, Dmitry Baryshkov wrote: > The msm_dp_panel_dump_regs() and msm_dp_catalog_dump_regs() are not > called anywhere. If there is a necessity to dump registers, the > snapshotting should be used instead. Drop these two functions. > > Reviewed-by: Stephen Boyd <swboyd@chromium.org> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > drivers/gpu/drm/msm/dp/dp_catalog.c | 37 ------------------------------------- > drivers/gpu/drm/msm/dp/dp_catalog.h | 1 - > drivers/gpu/drm/msm/dp/dp_panel.c | 11 ----------- > drivers/gpu/drm/msm/dp/dp_panel.h | 1 - > 4 files changed, 50 deletions(-) > Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
On 12/11/2024 3:41 PM, Dmitry Baryshkov wrote: > Rather than printing random garbage from stack and pretending that it is > the default safe_to_exit_level, set the variable beforehand. > > Fixes: d13e36d7d222 ("drm/msm/dp: add audio support for Display Port on MSM") > Reported-by: kernel test robot <lkp@intel.com> > Closes: https://lore.kernel.org/oe-kbuild-all/202411081748.0PPL9MIj-lkp@intel.com/ > Reviewed-by: Stephen Boyd <swboyd@chromium.org> > Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > drivers/gpu/drm/msm/dp/dp_audio.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/msm/dp/dp_audio.c b/drivers/gpu/drm/msm/dp/dp_audio.c > index 74e01a5dd4195d5e0e04250663886f1116f25711..5cbb11986460d1e4ed1890bdf66d0913e013083c 100644 > --- a/drivers/gpu/drm/msm/dp/dp_audio.c > +++ b/drivers/gpu/drm/msm/dp/dp_audio.c > @@ -329,10 +329,10 @@ static void msm_dp_audio_safe_to_exit_level(struct msm_dp_audio_private *audio) > safe_to_exit_level = 5; > break; > default: > + safe_to_exit_level = 14; > drm_dbg_dp(audio->drm_dev, > "setting the default safe_to_exit_level = %u\n", > safe_to_exit_level); > - safe_to_exit_level = 14; > break; > } > > This was already picked up in -fixes, so no need to include
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@chromium.org> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > 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. > struct msm_dp_panel_private *panel; > struct msm_dp_panel *msm_dp_panel; > int ret; > > - if (!in->dev || !in->catalog || !in->aux || !in->link) { > + if (!dev || !catalog || !aux || !link) { > DRM_ERROR("invalid input\n"); > return ERR_PTR(-EINVAL); > } > > - panel = devm_kzalloc(in->dev, sizeof(*panel), GFP_KERNEL); > + panel = devm_kzalloc(dev, sizeof(*panel), GFP_KERNEL); > if (!panel) > return ERR_PTR(-ENOMEM); > > - panel->dev = in->dev; > - panel->aux = in->aux; > - panel->catalog = in->catalog; > - panel->link = in->link; > + panel->dev = dev; > + panel->aux = aux; > + panel->catalog = catalog; > + panel->link = link; > > msm_dp_panel = &panel->msm_dp_panel; > msm_dp_panel->max_bw_code = DP_LINK_BW_8_1; > diff --git a/drivers/gpu/drm/msm/dp/dp_panel.h b/drivers/gpu/drm/msm/dp/dp_panel.h > index f305b1151118b53762368905b70d951a366ba1a8..a4719a3bbbddd18304227a006e82a5ce9ad7bbf3 100644 > --- a/drivers/gpu/drm/msm/dp/dp_panel.h > +++ b/drivers/gpu/drm/msm/dp/dp_panel.h > @@ -21,13 +21,6 @@ struct msm_dp_display_mode { > bool out_fmt_is_yuv_420; > }; > > -struct msm_dp_panel_in { > - struct device *dev; > - struct drm_dp_aux *aux; > - struct msm_dp_link *link; > - struct msm_dp_catalog *catalog; > -}; > - > struct msm_dp_panel_psr { > u8 version; > u8 capabilities; > @@ -94,6 +87,7 @@ static inline bool is_lane_count_valid(u32 lane_count) > lane_count == 4); > } > > -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); > void msm_dp_panel_put(struct msm_dp_panel *msm_dp_panel); > #endif /* _DP_PANEL_H_ */ >
On Thu, 12 Dec 2024 at 05:26, Abhinav Kumar <quic_abhinavk@quicinc.com> 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@chromium.org> > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > --- > > 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.
On Wed, Dec 11, 2024 at 05:14:18PM -0800, Abhinav Kumar wrote: > > > On 12/11/2024 3:41 PM, Dmitry Baryshkov wrote: > > Rather than printing random garbage from stack and pretending that it is > > the default safe_to_exit_level, set the variable beforehand. > > > > Fixes: d13e36d7d222 ("drm/msm/dp: add audio support for Display Port on MSM") > > Reported-by: kernel test robot <lkp@intel.com> > > Closes: https://lore.kernel.org/oe-kbuild-all/202411081748.0PPL9MIj-lkp@intel.com/ > > Reviewed-by: Stephen Boyd <swboyd@chromium.org> > > Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com> > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > --- > > drivers/gpu/drm/msm/dp/dp_audio.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/msm/dp/dp_audio.c b/drivers/gpu/drm/msm/dp/dp_audio.c > > index 74e01a5dd4195d5e0e04250663886f1116f25711..5cbb11986460d1e4ed1890bdf66d0913e013083c 100644 > > --- a/drivers/gpu/drm/msm/dp/dp_audio.c > > +++ b/drivers/gpu/drm/msm/dp/dp_audio.c > > @@ -329,10 +329,10 @@ static void msm_dp_audio_safe_to_exit_level(struct msm_dp_audio_private *audio) > > safe_to_exit_level = 5; > > break; > > default: > > + safe_to_exit_level = 14; > > drm_dbg_dp(audio->drm_dev, > > "setting the default safe_to_exit_level = %u\n", > > safe_to_exit_level); > > - safe_to_exit_level = 14; > > break; > > } > > > > This was already picked up in -fixes, so no need to include I have been rebasing on linux-next. Please make sure that your -fixes branch is a part of linux-next.
On 12/12/2024 12:58 AM, Dmitry Baryshkov wrote: > On Wed, Dec 11, 2024 at 05:14:18PM -0800, Abhinav Kumar wrote: >> >> >> On 12/11/2024 3:41 PM, Dmitry Baryshkov wrote: >>> Rather than printing random garbage from stack and pretending that it is >>> the default safe_to_exit_level, set the variable beforehand. >>> >>> Fixes: d13e36d7d222 ("drm/msm/dp: add audio support for Display Port on MSM") >>> Reported-by: kernel test robot <lkp@intel.com> >>> Closes: https://lore.kernel.org/oe-kbuild-all/202411081748.0PPL9MIj-lkp@intel.com/ >>> Reviewed-by: Stephen Boyd <swboyd@chromium.org> >>> Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com> >>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >>> --- >>> drivers/gpu/drm/msm/dp/dp_audio.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/drivers/gpu/drm/msm/dp/dp_audio.c b/drivers/gpu/drm/msm/dp/dp_audio.c >>> index 74e01a5dd4195d5e0e04250663886f1116f25711..5cbb11986460d1e4ed1890bdf66d0913e013083c 100644 >>> --- a/drivers/gpu/drm/msm/dp/dp_audio.c >>> +++ b/drivers/gpu/drm/msm/dp/dp_audio.c >>> @@ -329,10 +329,10 @@ static void msm_dp_audio_safe_to_exit_level(struct msm_dp_audio_private *audio) >>> safe_to_exit_level = 5; >>> break; >>> default: >>> + safe_to_exit_level = 14; >>> drm_dbg_dp(audio->drm_dev, >>> "setting the default safe_to_exit_level = %u\n", >>> safe_to_exit_level); >>> - safe_to_exit_level = 14; >>> break; >>> } >>> >> >> This was already picked up in -fixes, so no need to include > > I have been rebasing on linux-next. Please make sure that your -fixes > branch is a part of linux-next. > Its merged to msm-fixes not just my fixes branch. I am pretty sure msm-fixes is part of linux-next.
On 12/12/2024 10:31 AM, Abhinav Kumar wrote: > > > On 12/12/2024 12:58 AM, Dmitry Baryshkov wrote: >> On Wed, Dec 11, 2024 at 05:14:18PM -0800, Abhinav Kumar wrote: >>> >>> >>> On 12/11/2024 3:41 PM, Dmitry Baryshkov wrote: >>>> Rather than printing random garbage from stack and pretending that >>>> it is >>>> the default safe_to_exit_level, set the variable beforehand. >>>> >>>> Fixes: d13e36d7d222 ("drm/msm/dp: add audio support for Display Port >>>> on MSM") >>>> Reported-by: kernel test robot <lkp@intel.com> >>>> Closes: >>>> https://lore.kernel.org/oe-kbuild-all/202411081748.0PPL9MIj-lkp@intel.com/ >>>> Reviewed-by: Stephen Boyd <swboyd@chromium.org> >>>> Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com> >>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >>>> --- >>>> drivers/gpu/drm/msm/dp/dp_audio.c | 2 +- >>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>> >>>> diff --git a/drivers/gpu/drm/msm/dp/dp_audio.c >>>> b/drivers/gpu/drm/msm/dp/dp_audio.c >>>> index >>>> 74e01a5dd4195d5e0e04250663886f1116f25711..5cbb11986460d1e4ed1890bdf66d0913e013083c 100644 >>>> --- a/drivers/gpu/drm/msm/dp/dp_audio.c >>>> +++ b/drivers/gpu/drm/msm/dp/dp_audio.c >>>> @@ -329,10 +329,10 @@ static void >>>> msm_dp_audio_safe_to_exit_level(struct msm_dp_audio_private *audio) >>>> safe_to_exit_level = 5; >>>> break; >>>> default: >>>> + safe_to_exit_level = 14; >>>> drm_dbg_dp(audio->drm_dev, >>>> "setting the default safe_to_exit_level = %u\n", >>>> safe_to_exit_level); >>>> - safe_to_exit_level = 14; >>>> break; >>>> } >>>> >>> >>> This was already picked up in -fixes, so no need to include >> >> I have been rebasing on linux-next. Please make sure that your -fixes >> branch is a part of linux-next. >> > > Its merged to msm-fixes not just my fixes branch. I am pretty sure > msm-fixes is part of linux-next. Actually, I noticed just now that msm-fixes is not part of linux-next. So pls ignore my comment. drm-fixes is part of linux-next. We should be sending out our PR pretty soon. So you will be able to drop this after that.
On 12/12/2024 12:53 AM, Dmitry Baryshkov wrote: > On Thu, 12 Dec 2024 at 05:26, Abhinav Kumar <quic_abhinavk@quicinc.com> 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@chromium.org> >>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >>> --- >>> 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. > Point noted but a very long param list also makes it harder to manage. So we should really evaluate on a case-by-case basis and not generalize here. Here its only 4, so i would say its kindof okay. If it goes beyond it, then msm_dp_panel_in is probably going to come back. Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Quoting Dmitry Baryshkov (2024-12-11 15:41:40) > Move msm_dp_read()/msm_write_foo() functions to the dp_catalog.h, > allowing other modules to access the data directly. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Quoting Dmitry Baryshkov (2024-12-11 15:41:35) > - Fix register programming in the dp_audio module > - Rework most of the register programming functions to be local to the > calling module rather than accessing everything through huge > dp_catalog monster. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- For the series Tested-by: Stephen Boyd <swboyd@chromium.org> # sc7180-trogdor
On Thu, 12 Dec 2024 at 20:53, Abhinav Kumar <quic_abhinavk@quicinc.com> wrote: > > > > On 12/12/2024 10:31 AM, Abhinav Kumar wrote: > > > > > > On 12/12/2024 12:58 AM, Dmitry Baryshkov wrote: > >> On Wed, Dec 11, 2024 at 05:14:18PM -0800, Abhinav Kumar wrote: > >>> > >>> > >>> On 12/11/2024 3:41 PM, Dmitry Baryshkov wrote: > >>>> Rather than printing random garbage from stack and pretending that > >>>> it is > >>>> the default safe_to_exit_level, set the variable beforehand. > >>>> > >>>> Fixes: d13e36d7d222 ("drm/msm/dp: add audio support for Display Port > >>>> on MSM") > >>>> Reported-by: kernel test robot <lkp@intel.com> > >>>> Closes: > >>>> https://lore.kernel.org/oe-kbuild-all/202411081748.0PPL9MIj-lkp@intel.com/ > >>>> Reviewed-by: Stephen Boyd <swboyd@chromium.org> > >>>> Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com> > >>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > >>>> --- > >>>> drivers/gpu/drm/msm/dp/dp_audio.c | 2 +- > >>>> 1 file changed, 1 insertion(+), 1 deletion(-) > >>>> > >>>> diff --git a/drivers/gpu/drm/msm/dp/dp_audio.c > >>>> b/drivers/gpu/drm/msm/dp/dp_audio.c > >>>> index > >>>> 74e01a5dd4195d5e0e04250663886f1116f25711..5cbb11986460d1e4ed1890bdf66d0913e013083c 100644 > >>>> --- a/drivers/gpu/drm/msm/dp/dp_audio.c > >>>> +++ b/drivers/gpu/drm/msm/dp/dp_audio.c > >>>> @@ -329,10 +329,10 @@ static void > >>>> msm_dp_audio_safe_to_exit_level(struct msm_dp_audio_private *audio) > >>>> safe_to_exit_level = 5; > >>>> break; > >>>> default: > >>>> + safe_to_exit_level = 14; > >>>> drm_dbg_dp(audio->drm_dev, > >>>> "setting the default safe_to_exit_level = %u\n", > >>>> safe_to_exit_level); > >>>> - safe_to_exit_level = 14; > >>>> break; > >>>> } > >>>> > >>> > >>> This was already picked up in -fixes, so no need to include > >> > >> I have been rebasing on linux-next. Please make sure that your -fixes > >> branch is a part of linux-next. > >> > > > > Its merged to msm-fixes not just my fixes branch. I am pretty sure > > msm-fixes is part of linux-next. > > > Actually, I noticed just now that msm-fixes is not part of linux-next. > So pls ignore my comment. drm-fixes is part of linux-next. We should be > sending out our PR pretty soon. So you will be able to drop this after that. Ack. Let's get it to linux-next then.
- Fix register programming in the dp_audio module - Rework most of the register programming functions to be local to the calling module rather than accessing everything through huge dp_catalog monster. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- Changes in v3: - Fixed falce -> false typo (Abhinav) - Dropped wrong c&p comment from msm_dp_read_p0() (Stephen) - Changed msm_dp_aux_clear_hw_interrupts() to return void (Stephen) - Fixed most of line length warnings - Link to v2: https://lore.kernel.org/r/20241202-fd-dp-audio-fixup-v2-0-d9187ea96dad@linaro.org Changes in v2: - Set safe_to_exit_level before printing it (LKP) - Keep TPG-related functions (Abhinav) - Link to v1: https://lore.kernel.org/r/20241108-fd-dp-audio-fixup-v1-0-40c8eeb60cf5@linaro.org --- Dmitry Baryshkov (14): drm/msm/dp: set safe_to_exit_level before printing it drm/msm/dp: fix msm_dp_utils_pack_sdp_header interface drm/msm/dp: drop msm_dp_panel_dump_regs() and msm_dp_catalog_dump_regs() drm/msm/dp: pull I/O data out of msm_dp_catalog_private() drm/msm/dp: move I/O functions to global header drm/msm/dp: move/inline AUX register functions drm/msm/dp: move/inline ctrl register functions drm/msm/dp: move/inline panel related functions drm/msm/dp: use msm_dp_utils_pack_sdp_header() for audio packets drm/msm/dp: drop obsolete audio headers access through catalog drm/msm/dp: move/inline audio related functions drm/msm/dp: move more AUX functions to dp_aux.c drm/msm/dp: drop struct msm_dp_panel_in drm/msm/dp: move interrupt handling to dp_ctrl drivers/gpu/drm/msm/dp/dp_audio.c | 362 ++++------ drivers/gpu/drm/msm/dp/dp_aux.c | 199 +++++- drivers/gpu/drm/msm/dp/dp_aux.h | 9 +- drivers/gpu/drm/msm/dp/dp_catalog.c | 1271 +---------------------------------- drivers/gpu/drm/msm/dp/dp_catalog.h | 173 ++--- drivers/gpu/drm/msm/dp/dp_ctrl.c | 575 ++++++++++++++-- drivers/gpu/drm/msm/dp/dp_ctrl.h | 5 +- drivers/gpu/drm/msm/dp/dp_display.c | 36 +- drivers/gpu/drm/msm/dp/dp_panel.c | 234 ++++++- drivers/gpu/drm/msm/dp/dp_panel.h | 14 +- drivers/gpu/drm/msm/dp/dp_reg.h | 17 + drivers/gpu/drm/msm/dp/dp_utils.c | 10 +- drivers/gpu/drm/msm/dp/dp_utils.h | 2 +- 13 files changed, 1180 insertions(+), 1727 deletions(-) --- base-commit: 91e71d606356e50f238d7a87aacdee4abc427f07 change-id: 20240615-fd-dp-audio-fixup-a92883ea9e40 Best regards,