Message ID | 20231019104419.1032329-1-dmitry.baryshkov@linaro.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | drm/msm/dp: cleanup debugfs handling | expand |
On 10/19/2023 3:44 AM, Dmitry Baryshkov wrote: > Currently there are two subdirs for DP debugfs files, e.g. DP-1, created > by the drm core for the connector, and the msm_dp-DP-1, created by the > DP driver itself. Merge those two, so that there are no extraneous > connector-related subdirs. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- One concern with this is, we are migrating from one debugfs per dp_display to one debugfs per bridge. Today we create one bridge per dp_display so its fine. With MST, I am unsure if there will be changes needed. But, we will figure that out once we add that support, Hence, Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com> Overall, nice cleanup! > drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 8 --- > drivers/gpu/drm/msm/dp/dp_debug.c | 69 ++++++------------------- > drivers/gpu/drm/msm/dp/dp_debug.h | 23 +++------ > drivers/gpu/drm/msm/dp/dp_display.c | 5 +- > drivers/gpu/drm/msm/dp/dp_display.h | 1 + > drivers/gpu/drm/msm/dp/dp_drm.c | 16 ++++++ > drivers/gpu/drm/msm/msm_drv.h | 6 --- > 7 files changed, 42 insertions(+), 86 deletions(-) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c > index fe7267b3bff5..f15cf7592212 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c > @@ -275,8 +275,6 @@ static int dpu_kms_debugfs_init(struct msm_kms *kms, struct drm_minor *minor) > void *p = dpu_hw_util_get_log_mask_ptr(); > struct dentry *entry; > struct drm_device *dev; > - struct msm_drm_private *priv; > - int i; > > if (!p) > return -EINVAL; > @@ -286,7 +284,6 @@ static int dpu_kms_debugfs_init(struct msm_kms *kms, struct drm_minor *minor) > return 0; > > dev = dpu_kms->dev; > - priv = dev->dev_private; > > entry = debugfs_create_dir("debug", minor->debugfs_root); > > @@ -297,11 +294,6 @@ static int dpu_kms_debugfs_init(struct msm_kms *kms, struct drm_minor *minor) > dpu_debugfs_core_irq_init(dpu_kms, entry); > dpu_debugfs_sspp_init(dpu_kms, entry); > > - for (i = 0; i < ARRAY_SIZE(priv->dp); i++) { > - if (priv->dp[i]) > - msm_dp_debugfs_init(priv->dp[i], minor); > - } > - > return dpu_core_perf_debugfs_init(dpu_kms, entry); > } > #endif > diff --git a/drivers/gpu/drm/msm/dp/dp_debug.c b/drivers/gpu/drm/msm/dp/dp_debug.c > index 3bba901afe33..6c281dc095b9 100644 > --- a/drivers/gpu/drm/msm/dp/dp_debug.c > +++ b/drivers/gpu/drm/msm/dp/dp_debug.c > @@ -19,13 +19,9 @@ > #define DEBUG_NAME "msm_dp" > > struct dp_debug_private { > - struct dentry *root; > - > struct dp_link *link; > struct dp_panel *panel; > struct drm_connector *connector; > - struct device *dev; > - struct drm_device *drm_dev; > > struct dp_debug dp_debug; > }; > @@ -204,35 +200,33 @@ static const struct file_operations test_active_fops = { > .write = dp_test_active_write > }; > > -static void dp_debug_init(struct dp_debug *dp_debug, struct drm_minor *minor) > +static void dp_debug_init(struct dp_debug *dp_debug, struct dentry *root, bool is_edp) > { > - char path[64]; > struct dp_debug_private *debug = container_of(dp_debug, > struct dp_debug_private, dp_debug); > > - snprintf(path, sizeof(path), "msm_dp-%s", debug->connector->name); > - > - debug->root = debugfs_create_dir(path, minor->debugfs_root); > - > - debugfs_create_file("dp_debug", 0444, debug->root, > + debugfs_create_file("dp_debug", 0444, root, > debug, &dp_debug_fops); > > - debugfs_create_file("msm_dp_test_active", 0444, > - debug->root, > - debug, &test_active_fops); > + if (!is_edp) { > + debugfs_create_file("msm_dp_test_active", 0444, > + root, > + debug, &test_active_fops); > > - debugfs_create_file("msm_dp_test_data", 0444, > - debug->root, > - debug, &dp_test_data_fops); > + debugfs_create_file("msm_dp_test_data", 0444, > + root, > + debug, &dp_test_data_fops); > > - debugfs_create_file("msm_dp_test_type", 0444, > - debug->root, > - debug, &dp_test_type_fops); > + debugfs_create_file("msm_dp_test_type", 0444, > + root, > + debug, &dp_test_type_fops); > + } > } > > struct dp_debug *dp_debug_get(struct device *dev, struct dp_panel *panel, > struct dp_link *link, > - struct drm_connector *connector, struct drm_minor *minor) > + struct drm_connector *connector, > + struct dentry *root, bool is_edp) > { > struct dp_debug_private *debug; > struct dp_debug *dp_debug; > @@ -253,46 +247,15 @@ struct dp_debug *dp_debug_get(struct device *dev, struct dp_panel *panel, > debug->dp_debug.debug_en = false; > debug->link = link; > debug->panel = panel; > - debug->dev = dev; > - debug->drm_dev = minor->dev; > - debug->connector = connector; > > dp_debug = &debug->dp_debug; > dp_debug->vdisplay = 0; > dp_debug->hdisplay = 0; > dp_debug->vrefresh = 0; > > - dp_debug_init(dp_debug, minor); > + dp_debug_init(dp_debug, root, is_edp); > > return dp_debug; > error: > return ERR_PTR(rc); > } > - > -static int dp_debug_deinit(struct dp_debug *dp_debug) > -{ > - struct dp_debug_private *debug; > - > - if (!dp_debug) > - return -EINVAL; > - > - debug = container_of(dp_debug, struct dp_debug_private, dp_debug); > - > - debugfs_remove_recursive(debug->root); > - > - return 0; > -} > - > -void dp_debug_put(struct dp_debug *dp_debug) > -{ > - struct dp_debug_private *debug; > - > - if (!dp_debug) > - return; > - > - debug = container_of(dp_debug, struct dp_debug_private, dp_debug); > - > - dp_debug_deinit(dp_debug); > - > - devm_kfree(debug->dev, debug); > -} > diff --git a/drivers/gpu/drm/msm/dp/dp_debug.h b/drivers/gpu/drm/msm/dp/dp_debug.h > index 124227873d58..9b3b2e702f65 100644 > --- a/drivers/gpu/drm/msm/dp/dp_debug.h > +++ b/drivers/gpu/drm/msm/dp/dp_debug.h > @@ -34,7 +34,8 @@ struct dp_debug { > * @panel: instance of panel module > * @link: instance of link module > * @connector: double pointer to display connector > - * @minor: pointer to drm minor number after device registration > + * @root: connector's debugfs root > + * @is_edp: set for eDP connectors / panels > * return: pointer to allocated debug module data > * > * This function sets up the debug module and provides a way > @@ -43,31 +44,21 @@ struct dp_debug { > struct dp_debug *dp_debug_get(struct device *dev, struct dp_panel *panel, > struct dp_link *link, > struct drm_connector *connector, > - struct drm_minor *minor); > - > -/** > - * dp_debug_put() > - * > - * Cleans up dp_debug instance > - * > - * @dp_debug: instance of dp_debug > - */ > -void dp_debug_put(struct dp_debug *dp_debug); > + struct dentry *root, > + bool is_edp); > > #else > > static inline > struct dp_debug *dp_debug_get(struct device *dev, struct dp_panel *panel, > struct dp_link *link, > - struct drm_connector *connector, struct drm_minor *minor) > + struct drm_connector *connector, > + struct dentry *root, > + bool is_edp) > { > return ERR_PTR(-EINVAL); > } > > -static inline void dp_debug_put(struct dp_debug *dp_debug) > -{ > -} > - > #endif /* defined(CONFIG_DEBUG_FS) */ > > #endif /* _DP_DEBUG_H_ */ > diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c > index e329e03e068d..2ac9d61501c7 100644 > --- a/drivers/gpu/drm/msm/dp/dp_display.c > +++ b/drivers/gpu/drm/msm/dp/dp_display.c > @@ -715,7 +715,6 @@ static int dp_irq_hpd_handle(struct dp_display_private *dp, u32 data) > > static void dp_display_deinit_sub_modules(struct dp_display_private *dp) > { > - dp_debug_put(dp->debug); > dp_audio_put(dp->audio); > dp_panel_put(dp->panel); > dp_aux_put(dp->aux); > @@ -1451,7 +1450,7 @@ bool msm_dp_wide_bus_available(const struct msm_dp *dp_display) > return dp->wide_bus_en; > } > > -void msm_dp_debugfs_init(struct msm_dp *dp_display, struct drm_minor *minor) > +void dp_display_debugfs_init(struct msm_dp *dp_display, struct dentry *root, bool is_edp) > { > struct dp_display_private *dp; > struct device *dev; > @@ -1462,7 +1461,7 @@ void msm_dp_debugfs_init(struct msm_dp *dp_display, struct drm_minor *minor) > > dp->debug = dp_debug_get(dev, dp->panel, > dp->link, dp->dp_display.connector, > - minor); > + root, is_edp); > if (IS_ERR(dp->debug)) { > rc = PTR_ERR(dp->debug); > DRM_ERROR("failed to initialize debug, rc = %d\n", rc); > diff --git a/drivers/gpu/drm/msm/dp/dp_display.h b/drivers/gpu/drm/msm/dp/dp_display.h > index f66cdbc35785..5e2fbd8318e9 100644 > --- a/drivers/gpu/drm/msm/dp/dp_display.h > +++ b/drivers/gpu/drm/msm/dp/dp_display.h > @@ -42,5 +42,6 @@ int dp_display_get_test_bpp(struct msm_dp *dp_display); > void dp_display_signal_audio_start(struct msm_dp *dp_display); > void dp_display_signal_audio_complete(struct msm_dp *dp_display); > void dp_display_set_psr(struct msm_dp *dp, bool enter); > +void dp_display_debugfs_init(struct msm_dp *dp_display, struct dentry *dentry, bool is_edp); > > #endif /* _DP_DISPLAY_H_ */ > diff --git a/drivers/gpu/drm/msm/dp/dp_drm.c b/drivers/gpu/drm/msm/dp/dp_drm.c > index 284ff7df058a..7e34715bdd82 100644 > --- a/drivers/gpu/drm/msm/dp/dp_drm.c > +++ b/drivers/gpu/drm/msm/dp/dp_drm.c > @@ -90,6 +90,13 @@ static int dp_bridge_get_modes(struct drm_bridge *bridge, struct drm_connector * > return rc; > } > > +static void dp_bridge_debugfs_init(struct drm_bridge *bridge, struct dentry *root) > +{ > + struct msm_dp *dp = to_dp_bridge(bridge)->dp_display; > + > + dp_display_debugfs_init(dp, root, false); > +} > + > static const struct drm_bridge_funcs dp_bridge_ops = { > .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state, > .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state, > @@ -105,6 +112,7 @@ static const struct drm_bridge_funcs dp_bridge_ops = { > .hpd_enable = dp_bridge_hpd_enable, > .hpd_disable = dp_bridge_hpd_disable, > .hpd_notify = dp_bridge_hpd_notify, > + .debugfs_init = dp_bridge_debugfs_init, > }; > > static int edp_bridge_atomic_check(struct drm_bridge *drm_bridge, > @@ -260,6 +268,13 @@ static enum drm_mode_status edp_bridge_mode_valid(struct drm_bridge *bridge, > return MODE_OK; > } > > +static void edp_bridge_debugfs_init(struct drm_bridge *bridge, struct dentry *root) > +{ > + struct msm_dp *dp = to_dp_bridge(bridge)->dp_display; > + > + dp_display_debugfs_init(dp, root, true); > +} > + > static const struct drm_bridge_funcs edp_bridge_ops = { > .atomic_enable = edp_bridge_atomic_enable, > .atomic_disable = edp_bridge_atomic_disable, > @@ -270,6 +285,7 @@ static const struct drm_bridge_funcs edp_bridge_ops = { > .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state, > .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state, > .atomic_check = edp_bridge_atomic_check, > + .debugfs_init = edp_bridge_debugfs_init, > }; > > int dp_bridge_init(struct msm_dp *dp_display, struct drm_device *dev, > diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h > index cd5bf658df66..628ef3e663ea 100644 > --- a/drivers/gpu/drm/msm/msm_drv.h > +++ b/drivers/gpu/drm/msm/msm_drv.h > @@ -389,7 +389,6 @@ int msm_dp_modeset_init(struct msm_dp *dp_display, struct drm_device *dev, > void msm_dp_irq_postinstall(struct msm_dp *dp_display); > void msm_dp_snapshot(struct msm_disp_state *disp_state, struct msm_dp *dp_display); > > -void msm_dp_debugfs_init(struct msm_dp *dp_display, struct drm_minor *minor); > bool msm_dp_wide_bus_available(const struct msm_dp *dp_display); > > #else > @@ -415,11 +414,6 @@ static inline void msm_dp_snapshot(struct msm_disp_state *disp_state, struct msm > { > } > > -static inline void msm_dp_debugfs_init(struct msm_dp *dp_display, > - struct drm_minor *minor) > -{ > -} > - > static inline bool msm_dp_wide_bus_available(const struct msm_dp *dp_display) > { > return false;
On Thu, 19 Oct 2023 at 15:33, Abhinav Kumar <quic_abhinavk@quicinc.com> wrote: > > > > On 10/19/2023 3:44 AM, Dmitry Baryshkov wrote: > > Currently there are two subdirs for DP debugfs files, e.g. DP-1, created > > by the drm core for the connector, and the msm_dp-DP-1, created by the > > DP driver itself. Merge those two, so that there are no extraneous > > connector-related subdirs. > > > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > --- > > > One concern with this is, we are migrating from one debugfs per > dp_display to one debugfs per bridge. > > Today we create one bridge per dp_display so its fine. > > With MST, I am unsure if there will be changes needed. For MST the add_connector callback creates a new connector with its own implementation of drm_connector_funcs. So if necessary we can create debugfs files for this new connector. > But, we will figure that out once we add that support, > > Hence, > > Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
On Thu, 19 Oct 2023 13:44:19 +0300, Dmitry Baryshkov wrote: > Currently there are two subdirs for DP debugfs files, e.g. DP-1, created > by the drm core for the connector, and the msm_dp-DP-1, created by the > DP driver itself. Merge those two, so that there are no extraneous > connector-related subdirs. > > Applied, thanks! [1/1] drm/msm/dp: cleanup debugfs handling https://gitlab.freedesktop.org/lumag/msm/-/commit/ab8420418c2e Best regards,
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c index fe7267b3bff5..f15cf7592212 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c @@ -275,8 +275,6 @@ static int dpu_kms_debugfs_init(struct msm_kms *kms, struct drm_minor *minor) void *p = dpu_hw_util_get_log_mask_ptr(); struct dentry *entry; struct drm_device *dev; - struct msm_drm_private *priv; - int i; if (!p) return -EINVAL; @@ -286,7 +284,6 @@ static int dpu_kms_debugfs_init(struct msm_kms *kms, struct drm_minor *minor) return 0; dev = dpu_kms->dev; - priv = dev->dev_private; entry = debugfs_create_dir("debug", minor->debugfs_root); @@ -297,11 +294,6 @@ static int dpu_kms_debugfs_init(struct msm_kms *kms, struct drm_minor *minor) dpu_debugfs_core_irq_init(dpu_kms, entry); dpu_debugfs_sspp_init(dpu_kms, entry); - for (i = 0; i < ARRAY_SIZE(priv->dp); i++) { - if (priv->dp[i]) - msm_dp_debugfs_init(priv->dp[i], minor); - } - return dpu_core_perf_debugfs_init(dpu_kms, entry); } #endif diff --git a/drivers/gpu/drm/msm/dp/dp_debug.c b/drivers/gpu/drm/msm/dp/dp_debug.c index 3bba901afe33..6c281dc095b9 100644 --- a/drivers/gpu/drm/msm/dp/dp_debug.c +++ b/drivers/gpu/drm/msm/dp/dp_debug.c @@ -19,13 +19,9 @@ #define DEBUG_NAME "msm_dp" struct dp_debug_private { - struct dentry *root; - struct dp_link *link; struct dp_panel *panel; struct drm_connector *connector; - struct device *dev; - struct drm_device *drm_dev; struct dp_debug dp_debug; }; @@ -204,35 +200,33 @@ static const struct file_operations test_active_fops = { .write = dp_test_active_write }; -static void dp_debug_init(struct dp_debug *dp_debug, struct drm_minor *minor) +static void dp_debug_init(struct dp_debug *dp_debug, struct dentry *root, bool is_edp) { - char path[64]; struct dp_debug_private *debug = container_of(dp_debug, struct dp_debug_private, dp_debug); - snprintf(path, sizeof(path), "msm_dp-%s", debug->connector->name); - - debug->root = debugfs_create_dir(path, minor->debugfs_root); - - debugfs_create_file("dp_debug", 0444, debug->root, + debugfs_create_file("dp_debug", 0444, root, debug, &dp_debug_fops); - debugfs_create_file("msm_dp_test_active", 0444, - debug->root, - debug, &test_active_fops); + if (!is_edp) { + debugfs_create_file("msm_dp_test_active", 0444, + root, + debug, &test_active_fops); - debugfs_create_file("msm_dp_test_data", 0444, - debug->root, - debug, &dp_test_data_fops); + debugfs_create_file("msm_dp_test_data", 0444, + root, + debug, &dp_test_data_fops); - debugfs_create_file("msm_dp_test_type", 0444, - debug->root, - debug, &dp_test_type_fops); + debugfs_create_file("msm_dp_test_type", 0444, + root, + debug, &dp_test_type_fops); + } } struct dp_debug *dp_debug_get(struct device *dev, struct dp_panel *panel, struct dp_link *link, - struct drm_connector *connector, struct drm_minor *minor) + struct drm_connector *connector, + struct dentry *root, bool is_edp) { struct dp_debug_private *debug; struct dp_debug *dp_debug; @@ -253,46 +247,15 @@ struct dp_debug *dp_debug_get(struct device *dev, struct dp_panel *panel, debug->dp_debug.debug_en = false; debug->link = link; debug->panel = panel; - debug->dev = dev; - debug->drm_dev = minor->dev; - debug->connector = connector; dp_debug = &debug->dp_debug; dp_debug->vdisplay = 0; dp_debug->hdisplay = 0; dp_debug->vrefresh = 0; - dp_debug_init(dp_debug, minor); + dp_debug_init(dp_debug, root, is_edp); return dp_debug; error: return ERR_PTR(rc); } - -static int dp_debug_deinit(struct dp_debug *dp_debug) -{ - struct dp_debug_private *debug; - - if (!dp_debug) - return -EINVAL; - - debug = container_of(dp_debug, struct dp_debug_private, dp_debug); - - debugfs_remove_recursive(debug->root); - - return 0; -} - -void dp_debug_put(struct dp_debug *dp_debug) -{ - struct dp_debug_private *debug; - - if (!dp_debug) - return; - - debug = container_of(dp_debug, struct dp_debug_private, dp_debug); - - dp_debug_deinit(dp_debug); - - devm_kfree(debug->dev, debug); -} diff --git a/drivers/gpu/drm/msm/dp/dp_debug.h b/drivers/gpu/drm/msm/dp/dp_debug.h index 124227873d58..9b3b2e702f65 100644 --- a/drivers/gpu/drm/msm/dp/dp_debug.h +++ b/drivers/gpu/drm/msm/dp/dp_debug.h @@ -34,7 +34,8 @@ struct dp_debug { * @panel: instance of panel module * @link: instance of link module * @connector: double pointer to display connector - * @minor: pointer to drm minor number after device registration + * @root: connector's debugfs root + * @is_edp: set for eDP connectors / panels * return: pointer to allocated debug module data * * This function sets up the debug module and provides a way @@ -43,31 +44,21 @@ struct dp_debug { struct dp_debug *dp_debug_get(struct device *dev, struct dp_panel *panel, struct dp_link *link, struct drm_connector *connector, - struct drm_minor *minor); - -/** - * dp_debug_put() - * - * Cleans up dp_debug instance - * - * @dp_debug: instance of dp_debug - */ -void dp_debug_put(struct dp_debug *dp_debug); + struct dentry *root, + bool is_edp); #else static inline struct dp_debug *dp_debug_get(struct device *dev, struct dp_panel *panel, struct dp_link *link, - struct drm_connector *connector, struct drm_minor *minor) + struct drm_connector *connector, + struct dentry *root, + bool is_edp) { return ERR_PTR(-EINVAL); } -static inline void dp_debug_put(struct dp_debug *dp_debug) -{ -} - #endif /* defined(CONFIG_DEBUG_FS) */ #endif /* _DP_DEBUG_H_ */ diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c index e329e03e068d..2ac9d61501c7 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -715,7 +715,6 @@ static int dp_irq_hpd_handle(struct dp_display_private *dp, u32 data) static void dp_display_deinit_sub_modules(struct dp_display_private *dp) { - dp_debug_put(dp->debug); dp_audio_put(dp->audio); dp_panel_put(dp->panel); dp_aux_put(dp->aux); @@ -1451,7 +1450,7 @@ bool msm_dp_wide_bus_available(const struct msm_dp *dp_display) return dp->wide_bus_en; } -void msm_dp_debugfs_init(struct msm_dp *dp_display, struct drm_minor *minor) +void dp_display_debugfs_init(struct msm_dp *dp_display, struct dentry *root, bool is_edp) { struct dp_display_private *dp; struct device *dev; @@ -1462,7 +1461,7 @@ void msm_dp_debugfs_init(struct msm_dp *dp_display, struct drm_minor *minor) dp->debug = dp_debug_get(dev, dp->panel, dp->link, dp->dp_display.connector, - minor); + root, is_edp); if (IS_ERR(dp->debug)) { rc = PTR_ERR(dp->debug); DRM_ERROR("failed to initialize debug, rc = %d\n", rc); diff --git a/drivers/gpu/drm/msm/dp/dp_display.h b/drivers/gpu/drm/msm/dp/dp_display.h index f66cdbc35785..5e2fbd8318e9 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.h +++ b/drivers/gpu/drm/msm/dp/dp_display.h @@ -42,5 +42,6 @@ int dp_display_get_test_bpp(struct msm_dp *dp_display); void dp_display_signal_audio_start(struct msm_dp *dp_display); void dp_display_signal_audio_complete(struct msm_dp *dp_display); void dp_display_set_psr(struct msm_dp *dp, bool enter); +void dp_display_debugfs_init(struct msm_dp *dp_display, struct dentry *dentry, bool is_edp); #endif /* _DP_DISPLAY_H_ */ diff --git a/drivers/gpu/drm/msm/dp/dp_drm.c b/drivers/gpu/drm/msm/dp/dp_drm.c index 284ff7df058a..7e34715bdd82 100644 --- a/drivers/gpu/drm/msm/dp/dp_drm.c +++ b/drivers/gpu/drm/msm/dp/dp_drm.c @@ -90,6 +90,13 @@ static int dp_bridge_get_modes(struct drm_bridge *bridge, struct drm_connector * return rc; } +static void dp_bridge_debugfs_init(struct drm_bridge *bridge, struct dentry *root) +{ + struct msm_dp *dp = to_dp_bridge(bridge)->dp_display; + + dp_display_debugfs_init(dp, root, false); +} + static const struct drm_bridge_funcs dp_bridge_ops = { .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state, .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state, @@ -105,6 +112,7 @@ static const struct drm_bridge_funcs dp_bridge_ops = { .hpd_enable = dp_bridge_hpd_enable, .hpd_disable = dp_bridge_hpd_disable, .hpd_notify = dp_bridge_hpd_notify, + .debugfs_init = dp_bridge_debugfs_init, }; static int edp_bridge_atomic_check(struct drm_bridge *drm_bridge, @@ -260,6 +268,13 @@ static enum drm_mode_status edp_bridge_mode_valid(struct drm_bridge *bridge, return MODE_OK; } +static void edp_bridge_debugfs_init(struct drm_bridge *bridge, struct dentry *root) +{ + struct msm_dp *dp = to_dp_bridge(bridge)->dp_display; + + dp_display_debugfs_init(dp, root, true); +} + static const struct drm_bridge_funcs edp_bridge_ops = { .atomic_enable = edp_bridge_atomic_enable, .atomic_disable = edp_bridge_atomic_disable, @@ -270,6 +285,7 @@ static const struct drm_bridge_funcs edp_bridge_ops = { .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state, .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state, .atomic_check = edp_bridge_atomic_check, + .debugfs_init = edp_bridge_debugfs_init, }; int dp_bridge_init(struct msm_dp *dp_display, struct drm_device *dev, diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h index cd5bf658df66..628ef3e663ea 100644 --- a/drivers/gpu/drm/msm/msm_drv.h +++ b/drivers/gpu/drm/msm/msm_drv.h @@ -389,7 +389,6 @@ int msm_dp_modeset_init(struct msm_dp *dp_display, struct drm_device *dev, void msm_dp_irq_postinstall(struct msm_dp *dp_display); void msm_dp_snapshot(struct msm_disp_state *disp_state, struct msm_dp *dp_display); -void msm_dp_debugfs_init(struct msm_dp *dp_display, struct drm_minor *minor); bool msm_dp_wide_bus_available(const struct msm_dp *dp_display); #else @@ -415,11 +414,6 @@ static inline void msm_dp_snapshot(struct msm_disp_state *disp_state, struct msm { } -static inline void msm_dp_debugfs_init(struct msm_dp *dp_display, - struct drm_minor *minor) -{ -} - static inline bool msm_dp_wide_bus_available(const struct msm_dp *dp_display) { return false;
Currently there are two subdirs for DP debugfs files, e.g. DP-1, created by the drm core for the connector, and the msm_dp-DP-1, created by the DP driver itself. Merge those two, so that there are no extraneous connector-related subdirs. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 8 --- drivers/gpu/drm/msm/dp/dp_debug.c | 69 ++++++------------------- drivers/gpu/drm/msm/dp/dp_debug.h | 23 +++------ drivers/gpu/drm/msm/dp/dp_display.c | 5 +- drivers/gpu/drm/msm/dp/dp_display.h | 1 + drivers/gpu/drm/msm/dp/dp_drm.c | 16 ++++++ drivers/gpu/drm/msm/msm_drv.h | 6 --- 7 files changed, 42 insertions(+), 86 deletions(-)