All of lore.kernel.org
 help / color / mirror / Atom feed
From: Viresh Kumar <viresh.kumar@linaro.org>
To: Arnd Bergmann <arnd@arndb.de>
Cc: linaro-kernel@lists.linaro.org,
	Rafael Wysocki <rjw@rjwysocki.net>,
	arnd.bergmann@linaro.org, kgene.kim@samsung.com, heiko@sntech.de,
	xf@rock-chips.com, mmcclint@codeaurora.org,
	linux-pm@vger.kernel.org
Subject: Re: [PATCH 0/3] cpufreq: dt: Create platform device from generic code
Date: Thu, 24 Mar 2016 19:36:00 +0530	[thread overview]
Message-ID: <20160324140600.GM22062@vireshk-i7> (raw)
In-Reply-To: <5800397.rNERvs0XYE@wuerfel>

On 24-03-16, 14:36, Arnd Bergmann wrote:
> I've tried implementing something similar when we last discussed it,
> but didn't get far enough to test it our properly, and I had trouble
> integrating some of the more complex platforms (omap, imx, sunxi)
> that have lots of root compatible strings to fit in nicely.
> 
> I think having a lookup table as in your patch 2 makes sense here,
> but I still would prefer not having a device at all. See the patch

We don't have any other option really. The platform-device logic was
added to make -EPROBE-DEFER work :)

> Another idea I had was to make dt_cpufreq_init() a global function
> that can simply be called by platforms that pass non-NULL platform
> data today, avoiding the need for the pdata in a global location.

I think its high time that we kill platform data if we don't care
about old DT compatibility with new kernel for mvebu platform, if it
hasn't gone into product already. We can do everything with opp-v2
now, and pdata doesn't do anything special.

> diff --git a/drivers/cpufreq/cpufreq-dt.c b/drivers/cpufreq/cpufreq-dt.c
> index f951f911786e..b3817cc86597 100644
> --- a/drivers/cpufreq/cpufreq-dt.c
> +++ b/drivers/cpufreq/cpufreq-dt.c
> @@ -356,7 +356,7 @@ static struct cpufreq_driver dt_cpufreq_driver = {
>  	.suspend = cpufreq_generic_suspend,
>  };
>  
> -static int dt_cpufreq_probe(struct platform_device *pdev)
> +static int 	(void *data)

dt_cpufreq_init ? :)

>  {
>  	int ret;
>  
> @@ -371,15 +371,22 @@ static int dt_cpufreq_probe(struct platform_device *pdev)
>  	if (ret)
>  		return ret;
>  
> -	dt_cpufreq_driver.driver_data = dev_get_platdata(&pdev->dev);
> +	dt_cpufreq_driver.driver_data = data;
>  
>  	ret = cpufreq_register_driver(&dt_cpufreq_driver);
>  	if (ret)
> -		dev_err(&pdev->dev, "failed register driver: %d\n", ret);
> +		pr_err("failed register driver: %d\n", ret);
>  
>  	return ret;
>  }
>  
> +/* a minimal fake platform device for platforms that still call
> + * platform_device_create(). Don't use */
> +static int dt_cpufreq_probe(struct platform_device *pdev)
> +{
> +	return dt_cpufreq_init(dev_get_platdata(&pdev->dev));
> +}
> +
>  static int dt_cpufreq_remove(struct platform_device *pdev)
>  {
>  	cpufreq_unregister_driver(&dt_cpufreq_driver);
> @@ -393,7 +400,24 @@ static struct platform_driver dt_cpufreq_platdrv = {
>  	.probe		= dt_cpufreq_probe,
>  	.remove		= dt_cpufreq_remove,
>  };
> -module_platform_driver(dt_cpufreq_platdrv);
> +
> +static int __init cpufreq_dt_init(void)
> +{
> +	if (of_machine_is_compatible("marvell,berlin"))
> +		return dt_cpufreq_init(NULL);
> +
> +	return platform_driver_register(&dt_cpufreq_platdrv);
> +}
> +module_init(cpufreq_dt_init);
> +
> +static void cpufreq_dt_exit(void)
> +{
> +	if (dt_cpufreq_platdrv.driver.bus)

I didn't like this as well :(

-- 
viresh

  reply	other threads:[~2016-03-24 14:06 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-24  6:40 [PATCH 0/3] cpufreq: dt: Create platform device from generic code Viresh Kumar
2016-03-24  6:40 ` [PATCH 1/3] cpufreq: dt: Include types.h from cpufreq-dt.h Viresh Kumar
2016-03-24  6:40 ` [PATCH 2/3] cpufreq: dt: Add generic platform-device creation support Viresh Kumar
2016-03-29  4:03   ` Krzysztof Kozlowski
2016-03-24  6:40 ` [PATCH 3/3] cpufreq: exynos: Use generic platdev driver Viresh Kumar
2016-03-24  6:40   ` Viresh Kumar
2016-03-29  2:35   ` Krzysztof Kozlowski
2016-03-29  2:35     ` Krzysztof Kozlowski
2016-03-29  2:38     ` Viresh Kumar
2016-03-29  2:38       ` Viresh Kumar
2016-03-29  4:10   ` Krzysztof Kozlowski
2016-03-29  4:10     ` Krzysztof Kozlowski
2016-03-29  4:18     ` Viresh Kumar
2016-03-29  4:18       ` Viresh Kumar
2016-03-29  4:19       ` Viresh Kumar
2016-03-29  4:19         ` Viresh Kumar
2016-03-29  4:39         ` Krzysztof Kozlowski
2016-03-29  4:39           ` Krzysztof Kozlowski
2016-03-24 13:36 ` [PATCH 0/3] cpufreq: dt: Create platform device from generic code Arnd Bergmann
2016-03-24 14:06   ` Viresh Kumar [this message]
2016-03-24 14:16     ` Arnd Bergmann
2016-03-25  4:41       ` Viresh Kumar
2016-03-28 15:05         ` Viresh Kumar
2016-03-29 13:22         ` Arnd Bergmann
2016-03-29 14:02           ` Viresh Kumar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160324140600.GM22062@vireshk-i7 \
    --to=viresh.kumar@linaro.org \
    --cc=arnd.bergmann@linaro.org \
    --cc=arnd@arndb.de \
    --cc=heiko@sntech.de \
    --cc=kgene.kim@samsung.com \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mmcclint@codeaurora.org \
    --cc=rjw@rjwysocki.net \
    --cc=xf@rock-chips.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.