"Sawant, Anand" <sawant@xxxxxx> writes: > Kevin, > > On Sat, Feb 12, 2011 at 5:20 AM, Kevin Hilman <khilman@xxxxxx> wrote: >> Hi Anand, >> >> Anand S Sawant <sawant@xxxxxx> writes: >> >>> omap_sr_probe() creates the smartreflex debug directory and its >>> underlying nvalue debug directory. These directories are removed in >>> omap_sr_remove(). >>> >>> Basic smartreflex functionality tested on OMAP3630 Zoom3 & OMAP4430 SDP >>> >>> Signed-off-by: Anand S Sawant <sawant@xxxxxx> >> >> Looks good. >> >> Please repost with the linux-arm-kernel list in CC: >> linux-arm-kernel@xxxxxxxxxxxxxxxxxxxx ÂThend, unless there are other >> comments/objections, I'll queue this for 2.6.39. >> > > Thanks, will repost. > >> Also, can summarize on which platforms this was tested. > > I tested SR functionality at the default OPP on 3630 Zoom3 & > OMAP4430 SDP. What I was wondering is how you tested the functionality of the changes you made, namely the sr-remove path. Kevin >> Just curious: >> Were you able to build SR as a module to test this? >> > > No. > > Best Regards, > > Anand S Sawant >> Kevin >> >>> --- >>> Âarch/arm/mach-omap2/smartreflex.c |  24 ++++++++++++++---------- >>> Â1 files changed, 14 insertions(+), 10 deletions(-) >>> >>> diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c >>> index d7deadf..57df5cf 100644 >>> --- a/arch/arm/mach-omap2/smartreflex.c >>> +++ b/arch/arm/mach-omap2/smartreflex.c >>> @@ -54,6 +54,7 @@ struct omap_sr { >>>    struct list_head        Ânode; >>>    struct omap_sr_nvalue_table   *nvalue_table; >>>    struct voltagedomain      Â*voltdm; >>> +   struct dentry          *dbg_dir; >>> Â}; >>> >>> Â/* sr_list contains all the instances of smartreflex module */ >>> @@ -822,7 +823,7 @@ static int __init omap_sr_probe(struct platform_device *pdev) >>>    struct omap_sr *sr_info = kzalloc(sizeof(struct omap_sr), GFP_KERNEL); >>>    struct omap_sr_data *pdata = pdev->dev.platform_data; >>>    struct resource *mem, *irq; >>> -   struct dentry *vdd_dbg_dir, *dbg_dir, *nvalue_dir; >>> +   struct dentry *vdd_dbg_dir, *nvalue_dir; >>>    struct omap_volt_data *volt_data; >>>    int i, ret = 0; >>> >>> @@ -894,23 +895,24 @@ static int __init omap_sr_probe(struct platform_device *pdev) >>>    if (!vdd_dbg_dir) >>>        return -EINVAL; >>> >>> -   dbg_dir = debugfs_create_dir("smartreflex", vdd_dbg_dir); >>> -   if (IS_ERR(dbg_dir)) { >>> +   sr_info->dbg_dir = debugfs_create_dir("smartreflex", vdd_dbg_dir); >>> +   if (IS_ERR(sr_info->dbg_dir)) { >>>        dev_err(&pdev->dev, "%s: Unable to create debugfs directory\n", >>>            __func__); >>> -       return PTR_ERR(dbg_dir); >>> +       return PTR_ERR(sr_info->dbg_dir); >>>    } >>> >>> -   (void) debugfs_create_file("autocomp", S_IRUGO | S_IWUGO, dbg_dir, >>> -               (void *)sr_info, &pm_sr_fops); >>> -   (void) debugfs_create_x32("errweight", S_IRUGO, dbg_dir, >>> +   /* Using S_IWUSR to fix checkpatch warning */ >>> +   (void) debugfs_create_file("autocomp", S_IRUGO | S_IWUSR, >>> +           sr_info->dbg_dir, (void *)sr_info, &pm_sr_fops); >>> +   (void) debugfs_create_x32("errweight", S_IRUGO, sr_info->dbg_dir, >>>            &sr_info->err_weight); >>> -   (void) debugfs_create_x32("errmaxlimit", S_IRUGO, dbg_dir, >>> +   (void) debugfs_create_x32("errmaxlimit", S_IRUGO, sr_info->dbg_dir, >>>            &sr_info->err_maxlimit); >>> -   (void) debugfs_create_x32("errminlimit", S_IRUGO, dbg_dir, >>> +   (void) debugfs_create_x32("errminlimit", S_IRUGO, sr_info->dbg_dir, >>>            &sr_info->err_minlimit); >>> >>> -   nvalue_dir = debugfs_create_dir("nvalue", dbg_dir); >>> +   nvalue_dir = debugfs_create_dir("nvalue", sr_info->dbg_dir); >>>    if (IS_ERR(nvalue_dir)) { >>>        dev_err(&pdev->dev, "%s: Unable to create debugfs directory" >>>            "for n-values\n", __func__); >>> @@ -974,6 +976,8 @@ static int __devexit omap_sr_remove(struct platform_device *pdev) >>> >>>    if (sr_info->autocomp_active) >>>        sr_stop_vddautocomp(sr_info); >>> +   if (sr_info->dbg_dir) >>> +       debugfs_remove_recursive(sr_info->dbg_dir); >>> >>>    list_del(&sr_info->node); >>>    iounmap(sr_info->base); >> -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html