Commit 52d54819 authored by Douglas Anderson's avatar Douglas Anderson

drm/bridge: ti-sn65dsi86: Clean debugfs code

Let's cleanup the debugfs code to:
- Check for errors.
- Use devm to manage freeing, which also means we don't need to store
  a pointer in our structure.
Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20210423095743.v5.5.I5fe072753290c6a77eda736ebd5778e17b7cb0fb@changeid
parent dea2500a
......@@ -118,7 +118,6 @@
* @aux: Our aux channel.
* @bridge: Our bridge.
* @connector: Our connector.
* @debugfs: Used for managing our debugfs.
* @host_node: Remote DSI node.
* @dsi: Our MIPI DSI source.
* @edid: Detected EDID of eDP panel.
......@@ -146,7 +145,6 @@ struct ti_sn65dsi86 {
struct drm_dp_aux aux;
struct drm_bridge bridge;
struct drm_connector connector;
struct dentry *debugfs;
struct edid *edid;
struct device_node *host_node;
struct mipi_dsi_device *dsi;
......@@ -245,18 +243,31 @@ static int status_show(struct seq_file *s, void *data)
DEFINE_SHOW_ATTRIBUTE(status);
static void ti_sn65dsi86_debugfs_init(struct ti_sn65dsi86 *pdata)
static void ti_sn65dsi86_debugfs_remove(void *data)
{
pdata->debugfs = debugfs_create_dir(dev_name(pdata->dev), NULL);
debugfs_create_file("status", 0600, pdata->debugfs, pdata,
&status_fops);
debugfs_remove_recursive(data);
}
static void ti_sn65dsi86_debugfs_remove(struct ti_sn65dsi86 *pdata)
static void ti_sn65dsi86_debugfs_init(struct ti_sn65dsi86 *pdata)
{
debugfs_remove_recursive(pdata->debugfs);
pdata->debugfs = NULL;
struct device *dev = pdata->dev;
struct dentry *debugfs;
int ret;
debugfs = debugfs_create_dir(dev_name(dev), NULL);
/*
* We might get an error back if debugfs wasn't enabled in the kernel
* so let's just silently return upon failure.
*/
if (IS_ERR_OR_NULL(debugfs))
return;
ret = devm_add_action_or_reset(dev, ti_sn65dsi86_debugfs_remove, debugfs);
if (ret)
return;
debugfs_create_file("status", 0600, debugfs, pdata, &status_fops);
}
/* Connector funcs */
......@@ -1317,8 +1328,6 @@ static int ti_sn65dsi86_remove(struct i2c_client *client)
kfree(pdata->edid);
ti_sn65dsi86_debugfs_remove(pdata);
drm_bridge_remove(&pdata->bridge);
of_node_put(pdata->host_node);
......
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