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

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
Loading
Loading
Loading
Loading
+21 −12
Original line number Diff line number Diff line
@@ -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);