[PATCH 1/2] soc/tegra: pmc: Simplify debugfs initialization
Jon Hunter
jonathanh at nvidia.com
Fri Jun 9 07:49:56 PDT 2023
On 09/06/2023 15:42, Thierry Reding wrote:
> From: Thierry Reding <treding at nvidia.com>
>
> debugfs calls should generally not be error-checked to simplify the case
> where debugfs is disabled. Since this driver is built-in and has the
> sysfs bind/unbind attributes disabled, it cannot be unloaded, so there
> is no need to hold onto a reference to the debugfs files that are
> created.
>
> We can further simplify this by moving the debugfs file creation to a
> later stage to avoid any cleanup we might have to do during error unwind
> operations. This is also a little cleaner because the debugfs file
> relies on data structures that are created at a later point than when
> the file was previously created.
>
> Suggested-by: Jon Hunter <jonathanh at nvidia.com>
> Signed-off-by: Thierry Reding <treding at nvidia.com>
> ---
> drivers/soc/tegra/pmc.c | 26 ++++----------------------
> 1 file changed, 4 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/soc/tegra/pmc.c b/drivers/soc/tegra/pmc.c
> index b562b005744d..438c30c5d473 100644
> --- a/drivers/soc/tegra/pmc.c
> +++ b/drivers/soc/tegra/pmc.c
> @@ -396,7 +396,6 @@ struct tegra_pmc_soc {
> * @clk: pointer to pclk clock
> * @soc: pointer to SoC data structure
> * @tz_only: flag specifying if the PMC can only be accessed via TrustZone
> - * @debugfs: pointer to debugfs entry
> * @rate: currently configured rate of pclk
> * @suspend_mode: lowest suspend mode available
> * @cpu_good_time: CPU power good time (in microseconds)
> @@ -431,7 +430,6 @@ struct tegra_pmc {
> void __iomem *aotag;
> void __iomem *scratch;
> struct clk *clk;
> - struct dentry *debugfs;
>
> const struct tegra_pmc_soc *soc;
> bool tz_only;
> @@ -1190,16 +1188,6 @@ static int powergate_show(struct seq_file *s, void *data)
>
> DEFINE_SHOW_ATTRIBUTE(powergate);
>
> -static int tegra_powergate_debugfs_init(void)
> -{
> - pmc->debugfs = debugfs_create_file("powergate", S_IRUGO, NULL, NULL,
> - &powergate_fops);
> - if (!pmc->debugfs)
> - return -ENOMEM;
> -
> - return 0;
> -}
> -
> static int tegra_powergate_of_get_clks(struct tegra_powergate *pg,
> struct device_node *np)
> {
> @@ -3026,19 +3014,13 @@ static int tegra_pmc_probe(struct platform_device *pdev)
>
> tegra_pmc_reset_sysfs_init(pmc);
>
> - if (IS_ENABLED(CONFIG_DEBUG_FS)) {
> - err = tegra_powergate_debugfs_init();
> - if (err < 0)
> - goto cleanup_sysfs;
> - }
> -
> err = tegra_pmc_pinctrl_init(pmc);
> if (err)
> - goto cleanup_debugfs;
> + goto cleanup_sysfs;
>
> err = tegra_pmc_regmap_init(pmc);
> if (err < 0)
> - goto cleanup_debugfs;
> + goto cleanup_sysfs;
>
> err = tegra_powergate_init(pmc, pdev->dev.of_node);
> if (err < 0)
> @@ -3061,12 +3043,12 @@ static int tegra_pmc_probe(struct platform_device *pdev)
> if (pmc->soc->set_wake_filters)
> pmc->soc->set_wake_filters(pmc);
>
> + debugfs_create_file("powergate", 0444, NULL, NULL, &powergate_fops);
> +
> return 0;
>
> cleanup_powergates:
> tegra_powergate_remove_all(pdev->dev.of_node);
> -cleanup_debugfs:
> - debugfs_remove(pmc->debugfs);
> cleanup_sysfs:
> device_remove_file(&pdev->dev, &dev_attr_reset_reason);
> device_remove_file(&pdev->dev, &dev_attr_reset_level);
Great!
Reviewed-by: Jon Hunter <jonathanh at nvidia.com>
Thanks
Jon
--
nvpublic
More information about the linux-arm-kernel
mailing list