diff options
Diffstat (limited to 'drivers/devfreq/exynos4_bus.c')
| -rw-r--r-- | drivers/devfreq/exynos4_bus.c | 23 | 
1 files changed, 10 insertions, 13 deletions
diff --git a/drivers/devfreq/exynos4_bus.c b/drivers/devfreq/exynos4_bus.c index cfaa98a00b9..88ddc77a9bb 100644 --- a/drivers/devfreq/exynos4_bus.c +++ b/drivers/devfreq/exynos4_bus.c @@ -619,15 +619,19 @@ static int exynos4_bus_setvolt(struct busfreq_data *data, struct opp *opp,  	return err;  } -static int exynos4_bus_target(struct device *dev, unsigned long *_freq) +static int exynos4_bus_target(struct device *dev, unsigned long *_freq, +			      u32 flags)  {  	int err = 0;  	struct platform_device *pdev = container_of(dev, struct platform_device,  						    dev);  	struct busfreq_data *data = platform_get_drvdata(pdev); -	struct opp *opp = devfreq_recommended_opp(dev, _freq); -	unsigned long old_freq = opp_get_freq(data->curr_opp); +	struct opp *opp = devfreq_recommended_opp(dev, _freq, flags);  	unsigned long freq = opp_get_freq(opp); +	unsigned long old_freq = opp_get_freq(data->curr_opp); + +	if (IS_ERR(opp)) +		return PTR_ERR(opp);  	if (old_freq == freq)  		return 0; @@ -689,9 +693,7 @@ static int exynos4_get_busier_dmc(struct busfreq_data *data)  static int exynos4_bus_get_dev_status(struct device *dev,  				      struct devfreq_dev_status *stat)  { -	struct platform_device *pdev = container_of(dev, struct platform_device, -						    dev); -	struct busfreq_data *data = platform_get_drvdata(pdev); +	struct busfreq_data *data = dev_get_drvdata(dev);  	int busier_dmc;  	int cycles_x2 = 2; /* 2 x cycles */  	void __iomem *addr; @@ -739,9 +741,7 @@ static int exynos4_bus_get_dev_status(struct device *dev,  static void exynos4_bus_exit(struct device *dev)  { -	struct platform_device *pdev = container_of(dev, struct platform_device, -						    dev); -	struct busfreq_data *data = platform_get_drvdata(pdev); +	struct busfreq_data *data = dev_get_drvdata(dev);  	devfreq_unregister_opp_notifier(dev, data->devfreq);  } @@ -1087,9 +1087,7 @@ static __devexit int exynos4_busfreq_remove(struct platform_device *pdev)  static int exynos4_busfreq_resume(struct device *dev)  { -	struct platform_device *pdev = container_of(dev, struct platform_device, -						    dev); -	struct busfreq_data *data = platform_get_drvdata(pdev); +	struct busfreq_data *data = dev_get_drvdata(dev);  	busfreq_mon_reset(data);  	return 0; @@ -1132,4 +1130,3 @@ module_exit(exynos4_busfreq_exit);  MODULE_LICENSE("GPL");  MODULE_DESCRIPTION("EXYNOS4 busfreq driver with devfreq framework");  MODULE_AUTHOR("MyungJoo Ham <myungjoo.ham@samsung.com>"); -MODULE_ALIAS("exynos4-busfreq");  |