Commit f6afe4f0 authored by Dmitry Baryshkov's avatar Dmitry Baryshkov Committed by Rob Clark

drm/msm: don't create GPU-related debugfs files with no GPU present

If there is no GPU present, skip creation of the GPU-related debugfs
files, making the MSM's debugfs more usable.
Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/561742/Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
parent 12578c07
...@@ -304,36 +304,21 @@ int msm_debugfs_late_init(struct drm_device *dev) ...@@ -304,36 +304,21 @@ int msm_debugfs_late_init(struct drm_device *dev)
return ret; return ret;
} }
void msm_debugfs_init(struct drm_minor *minor) static void msm_debugfs_gpu_init(struct drm_minor *minor)
{ {
struct drm_device *dev = minor->dev; struct drm_device *dev = minor->dev;
struct msm_drm_private *priv = dev->dev_private; struct msm_drm_private *priv = dev->dev_private;
struct dentry *gpu_devfreq; struct dentry *gpu_devfreq;
drm_debugfs_create_files(msm_debugfs_list,
ARRAY_SIZE(msm_debugfs_list),
minor->debugfs_root, minor);
debugfs_create_file("gpu", S_IRUSR, minor->debugfs_root, debugfs_create_file("gpu", S_IRUSR, minor->debugfs_root,
dev, &msm_gpu_fops); dev, &msm_gpu_fops);
if (priv->kms) {
drm_debugfs_create_files(msm_kms_debugfs_list,
ARRAY_SIZE(msm_kms_debugfs_list),
minor->debugfs_root, minor);
debugfs_create_file("kms", S_IRUSR, minor->debugfs_root,
dev, &msm_kms_fops);
}
debugfs_create_u32("hangcheck_period_ms", 0600, minor->debugfs_root, debugfs_create_u32("hangcheck_period_ms", 0600, minor->debugfs_root,
&priv->hangcheck_period); &priv->hangcheck_period);
debugfs_create_bool("disable_err_irq", 0600, minor->debugfs_root, debugfs_create_bool("disable_err_irq", 0600, minor->debugfs_root,
&priv->disable_err_irq); &priv->disable_err_irq);
debugfs_create_file("shrink", S_IRWXU, minor->debugfs_root,
dev, &shrink_fops);
gpu_devfreq = debugfs_create_dir("devfreq", minor->debugfs_root); gpu_devfreq = debugfs_create_dir("devfreq", minor->debugfs_root);
debugfs_create_bool("idle_clamp",0600, gpu_devfreq, debugfs_create_bool("idle_clamp",0600, gpu_devfreq,
...@@ -344,6 +329,30 @@ void msm_debugfs_init(struct drm_minor *minor) ...@@ -344,6 +329,30 @@ void msm_debugfs_init(struct drm_minor *minor)
debugfs_create_u32("downdifferential",0600, gpu_devfreq, debugfs_create_u32("downdifferential",0600, gpu_devfreq,
&priv->gpu_devfreq_config.downdifferential); &priv->gpu_devfreq_config.downdifferential);
}
void msm_debugfs_init(struct drm_minor *minor)
{
struct drm_device *dev = minor->dev;
struct msm_drm_private *priv = dev->dev_private;
drm_debugfs_create_files(msm_debugfs_list,
ARRAY_SIZE(msm_debugfs_list),
minor->debugfs_root, minor);
if (priv->gpu_pdev)
msm_debugfs_gpu_init(minor);
if (priv->kms) {
drm_debugfs_create_files(msm_kms_debugfs_list,
ARRAY_SIZE(msm_kms_debugfs_list),
minor->debugfs_root, minor);
debugfs_create_file("kms", S_IRUSR, minor->debugfs_root,
dev, &msm_kms_fops);
}
debugfs_create_file("shrink", S_IRWXU, minor->debugfs_root,
dev, &shrink_fops);
if (priv->kms && priv->kms->funcs->debugfs_init) if (priv->kms && priv->kms->funcs->debugfs_init)
priv->kms->funcs->debugfs_init(priv->kms, minor); priv->kms->funcs->debugfs_init(priv->kms, minor);
......
...@@ -270,6 +270,9 @@ int msm_rd_debugfs_init(struct drm_minor *minor) ...@@ -270,6 +270,9 @@ int msm_rd_debugfs_init(struct drm_minor *minor)
struct msm_rd_state *rd; struct msm_rd_state *rd;
int ret; int ret;
if (!priv->gpu_pdev)
return 0;
/* only create on first minor: */ /* only create on first minor: */
if (priv->rd) if (priv->rd)
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment