lkml.org 
[lkml]   [2022]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.17 574/772] cpufreq: mediatek: Unregister platform device on exit
    Date
    From: Rex-BC Chen <rex-bc.chen@mediatek.com>

    [ Upstream commit f126fbadce92b92c3a7be41e4abc1fbae93ae2ef ]

    We register the platform device when driver inits. However, we do not
    unregister it when driver exits.

    To resolve this, we declare the platform data to be a global static
    variable and rename it to be "cpufreq_pdev". With this global variable,
    we can do platform_device_unregister() when driver exits.

    Fixes: 501c574f4e3a ("cpufreq: mediatek: Add support of cpufreq to MT2701/MT7623 SoC")
    Signed-off-by: Rex-BC Chen <rex-bc.chen@mediatek.com>
    [ Viresh: Commit log and Subject ]
    Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/cpufreq/mediatek-cpufreq.c | 10 ++++++----
    1 file changed, 6 insertions(+), 4 deletions(-)

    diff --git a/drivers/cpufreq/mediatek-cpufreq.c b/drivers/cpufreq/mediatek-cpufreq.c
    index 9d7d9c8dc184..bfe240c726e3 100644
    --- a/drivers/cpufreq/mediatek-cpufreq.c
    +++ b/drivers/cpufreq/mediatek-cpufreq.c
    @@ -44,6 +44,8 @@ struct mtk_cpu_dvfs_info {
    bool need_voltage_tracking;
    };

    +static struct platform_device *cpufreq_pdev;
    +
    static LIST_HEAD(dvfs_info_list);

    static struct mtk_cpu_dvfs_info *mtk_cpu_dvfs_info_lookup(int cpu)
    @@ -547,7 +549,6 @@ static int __init mtk_cpufreq_driver_init(void)
    {
    struct device_node *np;
    const struct of_device_id *match;
    - struct platform_device *pdev;
    int err;

    np = of_find_node_by_path("/");
    @@ -571,11 +572,11 @@ static int __init mtk_cpufreq_driver_init(void)
    * and the device registration codes are put here to handle defer
    * probing.
    */
    - pdev = platform_device_register_simple("mtk-cpufreq", -1, NULL, 0);
    - if (IS_ERR(pdev)) {
    + cpufreq_pdev = platform_device_register_simple("mtk-cpufreq", -1, NULL, 0);
    + if (IS_ERR(cpufreq_pdev)) {
    pr_err("failed to register mtk-cpufreq platform device\n");
    platform_driver_unregister(&mtk_cpufreq_platdrv);
    - return PTR_ERR(pdev);
    + return PTR_ERR(cpufreq_pdev);
    }

    return 0;
    @@ -584,6 +585,7 @@ module_init(mtk_cpufreq_driver_init)

    static void __exit mtk_cpufreq_driver_exit(void)
    {
    + platform_device_unregister(cpufreq_pdev);
    platform_driver_unregister(&mtk_cpufreq_platdrv);
    }
    module_exit(mtk_cpufreq_driver_exit)
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-07 23:30    [W:3.815 / U:0.532 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site