lkml.org 
[lkml]   [2012]   [Jan]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH 1/4] pinctrl: Free debugfs entries when unloading a pinmux driver
    From
    Date
    Free debugfs entries when unloading a pinmux driver

    Signed-off-by: Tony Lindgren <tony@atomide.com>
    ---
    drivers/pinctrl/core.c | 14 +++++++++++++-
    drivers/pinctrl/core.h | 3 +++
    2 files changed, 16 insertions(+), 1 deletions(-)

    diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
    index 569bdb3..d9d35fc 100644
    --- a/drivers/pinctrl/core.c
    +++ b/drivers/pinctrl/core.c
    @@ -510,10 +510,12 @@ static struct dentry *debugfs_root;

    static void pinctrl_init_device_debugfs(struct pinctrl_dev *pctldev)
    {
    - static struct dentry *device_root;
    + struct dentry *device_root;

    device_root = debugfs_create_dir(dev_name(pctldev->dev),
    debugfs_root);
    + pctldev->device_root = device_root;
    +
    if (IS_ERR(device_root) || !device_root) {
    pr_warn("failed to create debugfs directory for %s\n",
    dev_name(pctldev->dev));
    @@ -529,6 +531,11 @@ static void pinctrl_init_device_debugfs(struct pinctrl_dev *pctldev)
    pinconf_init_device_debugfs(device_root, pctldev);
    }

    +static void pinctrl_remove_device_debugfs(struct pinctrl_dev *pctldev)
    +{
    + debugfs_remove_recursive(pctldev->device_root);
    +}
    +
    static void pinctrl_init_debugfs(void)
    {
    debugfs_root = debugfs_create_dir("pinctrl", NULL);
    @@ -553,6 +560,10 @@ static void pinctrl_init_debugfs(void)
    {
    }

    +static void pinctrl_remove_device_debugfs(struct pinctrl_dev *pctldev)
    +{
    +}
    +
    #endif

    /**
    @@ -641,6 +652,7 @@ void pinctrl_unregister(struct pinctrl_dev *pctldev)
    if (pctldev == NULL)
    return;

    + pinctrl_remove_device_debugfs(pctldev);
    pinmux_unhog_maps(pctldev);
    /* TODO: check that no pinmuxes are still active? */
    mutex_lock(&pinctrldev_list_mutex);
    diff --git a/drivers/pinctrl/core.h b/drivers/pinctrl/core.h
    index 177a331..cfa86da 100644
    --- a/drivers/pinctrl/core.h
    +++ b/drivers/pinctrl/core.h
    @@ -41,6 +41,9 @@ struct pinctrl_dev {
    struct device *dev;
    struct module *owner;
    void *driver_data;
    +#ifdef CONFIG_DEBUG_FS
    + struct dentry *device_root;
    +#endif
    #ifdef CONFIG_PINMUX
    struct mutex pinmux_hogs_lock;
    struct list_head pinmux_hogs;


    \
     
     \ /
      Last update: 2012-01-20 17:21    [W:0.038 / U:89.944 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site