Re: [RFC PATCH 01/11] devfreq: exynos-bus: Extract exynos_bus_profile_init()

2019-08-05 Thread Krzysztof Kozlowski
On Wed, 31 Jul 2019 at 15:00, Artur Świgoń  wrote:
>
> Hi,
>
> On Wed, 2019-07-24 at 21:07 +0200, Krzysztof Kozlowski wrote:
> > On Tue, Jul 23, 2019 at 02:20:06PM +0200, Artur Świgoń wrote:
> > > This patch adds a new static function, exynos_bus_profile_init(), 
> > > extracted
> > > from exynos_bus_probe().
> > >
> > > Signed-off-by: Artur Świgoń 
> > > ---
> > >  drivers/devfreq/exynos-bus.c | 106 ---
> > >  1 file changed, 60 insertions(+), 46 deletions(-)
> > >
> > > diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c
> > > index d9f377912c10..d8f1efaf2d49 100644
> > > --- a/drivers/devfreq/exynos-bus.c
> > > +++ b/drivers/devfreq/exynos-bus.c
> > > @@ -372,12 +372,69 @@ static int exynos_bus_parse_of(struct device_node 
> > > *np,
> > > return ret;
> > >  }
> > >
> > > +static int exynos_bus_profile_init(struct exynos_bus *bus,
> > > +  struct devfreq_dev_profile *profile)
> > > +{
> > > +   struct device *dev = bus->dev;
> > > +   struct devfreq_simple_ondemand_data *ondemand_data;
> > > +   int ret;
> > > +
> > > +   /* Initialize the struct profile and governor data for parent device 
> > > */
> > > +   profile->polling_ms = 50;
> > > +   profile->target = exynos_bus_target;
> > > +   profile->get_dev_status = exynos_bus_get_dev_status;
> > > +   profile->exit = exynos_bus_exit;
> > > +
> > > +   ondemand_data = devm_kzalloc(dev, sizeof(*ondemand_data), GFP_KERNEL);
> > > +   if (!ondemand_data) {
> > > +   ret = -ENOMEM;
> > > +   goto err;
> >
> > Just return proper error code. Less lines, obvious code since you do not
> > have any cleanup in error path.
>
> I was advised to avoid modifying code being moved (in one patch). I do make
> changes in these places in patch 04/11, i.e. change the original label 'err' 
> to
> 'out'. What's your opinion on making the proposed changes to patches 01 and 02
> (s/goto err/return ret/) in patch 04 instead?

Yes, you're right. I also prefer not to touch moved code.

Best regards,
Krzysztof


Re: [RFC PATCH 01/11] devfreq: exynos-bus: Extract exynos_bus_profile_init()

2019-08-02 Thread Artur Świgoń
Hi,

On Wed, 2019-07-24 at 21:07 +0200, Krzysztof Kozlowski wrote:
> On Tue, Jul 23, 2019 at 02:20:06PM +0200, Artur Świgoń wrote:
> > This patch adds a new static function, exynos_bus_profile_init(), extracted
> > from exynos_bus_probe().
> > 
> > Signed-off-by: Artur Świgoń 
> > ---
> >  drivers/devfreq/exynos-bus.c | 106 ---
> >  1 file changed, 60 insertions(+), 46 deletions(-)
> > 
> > diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c
> > index d9f377912c10..d8f1efaf2d49 100644
> > --- a/drivers/devfreq/exynos-bus.c
> > +++ b/drivers/devfreq/exynos-bus.c
> > @@ -372,12 +372,69 @@ static int exynos_bus_parse_of(struct device_node *np,
> > return ret;
> >  }
> >  
> > +static int exynos_bus_profile_init(struct exynos_bus *bus,
> > +  struct devfreq_dev_profile *profile)
> > +{
> > +   struct device *dev = bus->dev;
> > +   struct devfreq_simple_ondemand_data *ondemand_data;
> > +   int ret;
> > +
> > +   /* Initialize the struct profile and governor data for parent device */
> > +   profile->polling_ms = 50;
> > +   profile->target = exynos_bus_target;
> > +   profile->get_dev_status = exynos_bus_get_dev_status;
> > +   profile->exit = exynos_bus_exit;
> > +
> > +   ondemand_data = devm_kzalloc(dev, sizeof(*ondemand_data), GFP_KERNEL);
> > +   if (!ondemand_data) {
> > +   ret = -ENOMEM;
> > +   goto err;
> 
> Just return proper error code. Less lines, obvious code since you do not
> have any cleanup in error path.

I was advised to avoid modifying code being moved (in one patch). I do make
changes in these places in patch 04/11, i.e. change the original label 'err' to
'out'. What's your opinion on making the proposed changes to patches 01 and 02
(s/goto err/return ret/) in patch 04 instead?

> > +
> > +   /* Register opp_notifier to catch the change of OPP  */
> > +   ret = devm_devfreq_register_opp_notifier(dev, bus->devfreq);
> > +   if (ret < 0) {
> > +   dev_err(dev, "failed to register opp notifier\n");
> > +   goto err;
> 
> The same - return err.
> 
> Best regards,
> Krzysztof

Best regards,
-- 
Artur Świgoń
Samsung R Institute Poland
Samsung Electronics


___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Re: [RFC PATCH 01/11] devfreq: exynos-bus: Extract exynos_bus_profile_init()

2019-07-26 Thread Chanwoo Choi
On 19. 7. 26. 오후 7:42, Krzysztof Kozlowski wrote:
> On Thu, 25 Jul 2019 at 14:44, Chanwoo Choi  wrote:
>>
>> 2019년 7월 24일 (수) 오전 8:09, Artur Świgoń 님이 작성:
>>>
>>> This patch adds a new static function, exynos_bus_profile_init(), extracted
>>> from exynos_bus_probe().
>>>
>>> Signed-off-by: Artur Świgoń 
>>> ---
>>>  drivers/devfreq/exynos-bus.c | 106 ---
>>>  1 file changed, 60 insertions(+), 46 deletions(-)
>>>
>>> diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c
>>> index d9f377912c10..d8f1efaf2d49 100644
>>> --- a/drivers/devfreq/exynos-bus.c
>>> +++ b/drivers/devfreq/exynos-bus.c
>>> @@ -372,12 +372,69 @@ static int exynos_bus_parse_of(struct device_node *np,
>>> return ret;
>>>  }
>>>
>>> +static int exynos_bus_profile_init(struct exynos_bus *bus,
>>> +  struct devfreq_dev_profile *profile)
>>> +{
>>> +   struct device *dev = bus->dev;
>>> +   struct devfreq_simple_ondemand_data *ondemand_data;
>>> +   int ret;
>>> +
>>> +   /* Initialize the struct profile and governor data for parent 
>>> device */
>>> +   profile->polling_ms = 50;
>>> +   profile->target = exynos_bus_target;
>>> +   profile->get_dev_status = exynos_bus_get_dev_status;
>>> +   profile->exit = exynos_bus_exit;
>>> +
>>> +   ondemand_data = devm_kzalloc(dev, sizeof(*ondemand_data), 
>>> GFP_KERNEL);
>>> +   if (!ondemand_data) {
>>> +   ret = -ENOMEM;
>>> +   goto err;
>>> +   }
>>> +   ondemand_data->upthreshold = 40;
>>> +   ondemand_data->downdifferential = 5;
>>> +
>>> +   /* Add devfreq device to monitor and handle the exynos bus */
>>> +   bus->devfreq = devm_devfreq_add_device(dev, profile,
>>> +   DEVFREQ_GOV_SIMPLE_ONDEMAND,
>>> +   ondemand_data);
>>> +   if (IS_ERR(bus->devfreq)) {
>>> +   dev_err(dev, "failed to add devfreq device\n");
>>> +   ret = PTR_ERR(bus->devfreq);
>>> +   goto err;
>>> +   }
>>> +
>>> +   /* Register opp_notifier to catch the change of OPP  */
>>> +   ret = devm_devfreq_register_opp_notifier(dev, bus->devfreq);
>>> +   if (ret < 0) {
>>> +   dev_err(dev, "failed to register opp notifier\n");
>>> +   goto err;
>>> +   }
>>> +
>>> +   /*
>>> +* Enable devfreq-event to get raw data which is used to determine
>>> +* current bus load.
>>> +*/
>>> +   ret = exynos_bus_enable_edev(bus);
>>> +   if (ret < 0) {
>>> +   dev_err(dev, "failed to enable devfreq-event devices\n");
>>> +   goto err;
>>> +   }
>>> +
>>> +   ret = exynos_bus_set_event(bus);
>>> +   if (ret < 0) {
>>> +   dev_err(dev, "failed to set event to devfreq-event 
>>> devices\n");
>>> +   goto err;
>>> +   }
>>> +
>>> +err:
>>> +   return ret;
>>> +}
>>> +
>>>  static int exynos_bus_probe(struct platform_device *pdev)
>>>  {
>>> struct device *dev = >dev;
>>> struct device_node *np = dev->of_node, *node;
>>> struct devfreq_dev_profile *profile;
>>> -   struct devfreq_simple_ondemand_data *ondemand_data;
>>> struct devfreq_passive_data *passive_data;
>>> struct devfreq *parent_devfreq;
>>> struct exynos_bus *bus;
>>> @@ -418,52 +475,9 @@ static int exynos_bus_probe(struct platform_device 
>>> *pdev)
>>> if (ret < 0)
>>> goto err;
>>>
>>> -   /* Initialize the struct profile and governor data for parent 
>>> device */
>>> -   profile->polling_ms = 50;
>>> -   profile->target = exynos_bus_target;
>>> -   profile->get_dev_status = exynos_bus_get_dev_status;
>>> -   profile->exit = exynos_bus_exit;
>>> -
>>> -   ondemand_data = devm_kzalloc(dev, sizeof(*ondemand_data), 
>>> GFP_KERNEL);
>>> -   if (!ondemand_data) {
>>> -   ret = -ENOMEM;
>>> +   ret = exynos_bus_profile_init(bus, profile);
>>> +   if (ret < 0)
>>> goto err;
>>> -   }
>>> -   ondemand_data->upthreshold = 40;
>>> -   ondemand_data->downdifferential = 5;
>>> -
>>> -   /* Add devfreq device to monitor and handle the exynos bus */
>>> -   bus->devfreq = devm_devfreq_add_device(dev, profile,
>>> -   DEVFREQ_GOV_SIMPLE_ONDEMAND,
>>> -   ondemand_data);
>>> -   if (IS_ERR(bus->devfreq)) {
>>> -   dev_err(dev, "failed to add devfreq device\n");
>>> -   ret = PTR_ERR(bus->devfreq);
>>> -   goto err;
>>> -   }
>>> -
>>> -   /* Register opp_notifier to catch the change of OPP  */
>>> -   ret = devm_devfreq_register_opp_notifier(dev, bus->devfreq);
>>> -   if (ret < 0) {
>>> -   dev_err(dev, "failed to register opp notifier\n");
>>> 

Re: [RFC PATCH 01/11] devfreq: exynos-bus: Extract exynos_bus_profile_init()

2019-07-26 Thread Krzysztof Kozlowski
On Thu, 25 Jul 2019 at 14:44, Chanwoo Choi  wrote:
>
> 2019년 7월 24일 (수) 오전 8:09, Artur Świgoń 님이 작성:
> >
> > This patch adds a new static function, exynos_bus_profile_init(), extracted
> > from exynos_bus_probe().
> >
> > Signed-off-by: Artur Świgoń 
> > ---
> >  drivers/devfreq/exynos-bus.c | 106 ---
> >  1 file changed, 60 insertions(+), 46 deletions(-)
> >
> > diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c
> > index d9f377912c10..d8f1efaf2d49 100644
> > --- a/drivers/devfreq/exynos-bus.c
> > +++ b/drivers/devfreq/exynos-bus.c
> > @@ -372,12 +372,69 @@ static int exynos_bus_parse_of(struct device_node *np,
> > return ret;
> >  }
> >
> > +static int exynos_bus_profile_init(struct exynos_bus *bus,
> > +  struct devfreq_dev_profile *profile)
> > +{
> > +   struct device *dev = bus->dev;
> > +   struct devfreq_simple_ondemand_data *ondemand_data;
> > +   int ret;
> > +
> > +   /* Initialize the struct profile and governor data for parent 
> > device */
> > +   profile->polling_ms = 50;
> > +   profile->target = exynos_bus_target;
> > +   profile->get_dev_status = exynos_bus_get_dev_status;
> > +   profile->exit = exynos_bus_exit;
> > +
> > +   ondemand_data = devm_kzalloc(dev, sizeof(*ondemand_data), 
> > GFP_KERNEL);
> > +   if (!ondemand_data) {
> > +   ret = -ENOMEM;
> > +   goto err;
> > +   }
> > +   ondemand_data->upthreshold = 40;
> > +   ondemand_data->downdifferential = 5;
> > +
> > +   /* Add devfreq device to monitor and handle the exynos bus */
> > +   bus->devfreq = devm_devfreq_add_device(dev, profile,
> > +   DEVFREQ_GOV_SIMPLE_ONDEMAND,
> > +   ondemand_data);
> > +   if (IS_ERR(bus->devfreq)) {
> > +   dev_err(dev, "failed to add devfreq device\n");
> > +   ret = PTR_ERR(bus->devfreq);
> > +   goto err;
> > +   }
> > +
> > +   /* Register opp_notifier to catch the change of OPP  */
> > +   ret = devm_devfreq_register_opp_notifier(dev, bus->devfreq);
> > +   if (ret < 0) {
> > +   dev_err(dev, "failed to register opp notifier\n");
> > +   goto err;
> > +   }
> > +
> > +   /*
> > +* Enable devfreq-event to get raw data which is used to determine
> > +* current bus load.
> > +*/
> > +   ret = exynos_bus_enable_edev(bus);
> > +   if (ret < 0) {
> > +   dev_err(dev, "failed to enable devfreq-event devices\n");
> > +   goto err;
> > +   }
> > +
> > +   ret = exynos_bus_set_event(bus);
> > +   if (ret < 0) {
> > +   dev_err(dev, "failed to set event to devfreq-event 
> > devices\n");
> > +   goto err;
> > +   }
> > +
> > +err:
> > +   return ret;
> > +}
> > +
> >  static int exynos_bus_probe(struct platform_device *pdev)
> >  {
> > struct device *dev = >dev;
> > struct device_node *np = dev->of_node, *node;
> > struct devfreq_dev_profile *profile;
> > -   struct devfreq_simple_ondemand_data *ondemand_data;
> > struct devfreq_passive_data *passive_data;
> > struct devfreq *parent_devfreq;
> > struct exynos_bus *bus;
> > @@ -418,52 +475,9 @@ static int exynos_bus_probe(struct platform_device 
> > *pdev)
> > if (ret < 0)
> > goto err;
> >
> > -   /* Initialize the struct profile and governor data for parent 
> > device */
> > -   profile->polling_ms = 50;
> > -   profile->target = exynos_bus_target;
> > -   profile->get_dev_status = exynos_bus_get_dev_status;
> > -   profile->exit = exynos_bus_exit;
> > -
> > -   ondemand_data = devm_kzalloc(dev, sizeof(*ondemand_data), 
> > GFP_KERNEL);
> > -   if (!ondemand_data) {
> > -   ret = -ENOMEM;
> > +   ret = exynos_bus_profile_init(bus, profile);
> > +   if (ret < 0)
> > goto err;
> > -   }
> > -   ondemand_data->upthreshold = 40;
> > -   ondemand_data->downdifferential = 5;
> > -
> > -   /* Add devfreq device to monitor and handle the exynos bus */
> > -   bus->devfreq = devm_devfreq_add_device(dev, profile,
> > -   DEVFREQ_GOV_SIMPLE_ONDEMAND,
> > -   ondemand_data);
> > -   if (IS_ERR(bus->devfreq)) {
> > -   dev_err(dev, "failed to add devfreq device\n");
> > -   ret = PTR_ERR(bus->devfreq);
> > -   goto err;
> > -   }
> > -
> > -   /* Register opp_notifier to catch the change of OPP  */
> > -   ret = devm_devfreq_register_opp_notifier(dev, bus->devfreq);
> > -   if (ret < 0) {
> > -   dev_err(dev, "failed to register opp notifier\n");
> > -   goto err;
> > -   }
> > -
> > -   

Re: [RFC PATCH 01/11] devfreq: exynos-bus: Extract exynos_bus_profile_init()

2019-07-25 Thread Chanwoo Choi
2019년 7월 24일 (수) 오전 8:09, Artur Świgoń 님이 작성:
>
> This patch adds a new static function, exynos_bus_profile_init(), extracted
> from exynos_bus_probe().
>
> Signed-off-by: Artur Świgoń 
> ---
>  drivers/devfreq/exynos-bus.c | 106 ---
>  1 file changed, 60 insertions(+), 46 deletions(-)
>
> diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c
> index d9f377912c10..d8f1efaf2d49 100644
> --- a/drivers/devfreq/exynos-bus.c
> +++ b/drivers/devfreq/exynos-bus.c
> @@ -372,12 +372,69 @@ static int exynos_bus_parse_of(struct device_node *np,
> return ret;
>  }
>
> +static int exynos_bus_profile_init(struct exynos_bus *bus,
> +  struct devfreq_dev_profile *profile)
> +{
> +   struct device *dev = bus->dev;
> +   struct devfreq_simple_ondemand_data *ondemand_data;
> +   int ret;
> +
> +   /* Initialize the struct profile and governor data for parent device 
> */
> +   profile->polling_ms = 50;
> +   profile->target = exynos_bus_target;
> +   profile->get_dev_status = exynos_bus_get_dev_status;
> +   profile->exit = exynos_bus_exit;
> +
> +   ondemand_data = devm_kzalloc(dev, sizeof(*ondemand_data), GFP_KERNEL);
> +   if (!ondemand_data) {
> +   ret = -ENOMEM;
> +   goto err;
> +   }
> +   ondemand_data->upthreshold = 40;
> +   ondemand_data->downdifferential = 5;
> +
> +   /* Add devfreq device to monitor and handle the exynos bus */
> +   bus->devfreq = devm_devfreq_add_device(dev, profile,
> +   DEVFREQ_GOV_SIMPLE_ONDEMAND,
> +   ondemand_data);
> +   if (IS_ERR(bus->devfreq)) {
> +   dev_err(dev, "failed to add devfreq device\n");
> +   ret = PTR_ERR(bus->devfreq);
> +   goto err;
> +   }
> +
> +   /* Register opp_notifier to catch the change of OPP  */
> +   ret = devm_devfreq_register_opp_notifier(dev, bus->devfreq);
> +   if (ret < 0) {
> +   dev_err(dev, "failed to register opp notifier\n");
> +   goto err;
> +   }
> +
> +   /*
> +* Enable devfreq-event to get raw data which is used to determine
> +* current bus load.
> +*/
> +   ret = exynos_bus_enable_edev(bus);
> +   if (ret < 0) {
> +   dev_err(dev, "failed to enable devfreq-event devices\n");
> +   goto err;
> +   }
> +
> +   ret = exynos_bus_set_event(bus);
> +   if (ret < 0) {
> +   dev_err(dev, "failed to set event to devfreq-event 
> devices\n");
> +   goto err;
> +   }
> +
> +err:
> +   return ret;
> +}
> +
>  static int exynos_bus_probe(struct platform_device *pdev)
>  {
> struct device *dev = >dev;
> struct device_node *np = dev->of_node, *node;
> struct devfreq_dev_profile *profile;
> -   struct devfreq_simple_ondemand_data *ondemand_data;
> struct devfreq_passive_data *passive_data;
> struct devfreq *parent_devfreq;
> struct exynos_bus *bus;
> @@ -418,52 +475,9 @@ static int exynos_bus_probe(struct platform_device *pdev)
> if (ret < 0)
> goto err;
>
> -   /* Initialize the struct profile and governor data for parent device 
> */
> -   profile->polling_ms = 50;
> -   profile->target = exynos_bus_target;
> -   profile->get_dev_status = exynos_bus_get_dev_status;
> -   profile->exit = exynos_bus_exit;
> -
> -   ondemand_data = devm_kzalloc(dev, sizeof(*ondemand_data), GFP_KERNEL);
> -   if (!ondemand_data) {
> -   ret = -ENOMEM;
> +   ret = exynos_bus_profile_init(bus, profile);
> +   if (ret < 0)
> goto err;
> -   }
> -   ondemand_data->upthreshold = 40;
> -   ondemand_data->downdifferential = 5;
> -
> -   /* Add devfreq device to monitor and handle the exynos bus */
> -   bus->devfreq = devm_devfreq_add_device(dev, profile,
> -   DEVFREQ_GOV_SIMPLE_ONDEMAND,
> -   ondemand_data);
> -   if (IS_ERR(bus->devfreq)) {
> -   dev_err(dev, "failed to add devfreq device\n");
> -   ret = PTR_ERR(bus->devfreq);
> -   goto err;
> -   }
> -
> -   /* Register opp_notifier to catch the change of OPP  */
> -   ret = devm_devfreq_register_opp_notifier(dev, bus->devfreq);
> -   if (ret < 0) {
> -   dev_err(dev, "failed to register opp notifier\n");
> -   goto err;
> -   }
> -
> -   /*
> -* Enable devfreq-event to get raw data which is used to determine
> -* current bus load.
> -*/
> -   ret = exynos_bus_enable_edev(bus);
> -   if (ret < 0) {
> -   dev_err(dev, "failed to enable devfreq-event devices\n");
> -   goto err;
> -   }
> -

Re: [RFC PATCH 01/11] devfreq: exynos-bus: Extract exynos_bus_profile_init()

2019-07-24 Thread Krzysztof Kozlowski
On Tue, Jul 23, 2019 at 02:20:06PM +0200, Artur Świgoń wrote:
> This patch adds a new static function, exynos_bus_profile_init(), extracted
> from exynos_bus_probe().
> 
> Signed-off-by: Artur Świgoń 
> ---
>  drivers/devfreq/exynos-bus.c | 106 ---
>  1 file changed, 60 insertions(+), 46 deletions(-)
> 
> diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c
> index d9f377912c10..d8f1efaf2d49 100644
> --- a/drivers/devfreq/exynos-bus.c
> +++ b/drivers/devfreq/exynos-bus.c
> @@ -372,12 +372,69 @@ static int exynos_bus_parse_of(struct device_node *np,
>   return ret;
>  }
>  
> +static int exynos_bus_profile_init(struct exynos_bus *bus,
> +struct devfreq_dev_profile *profile)
> +{
> + struct device *dev = bus->dev;
> + struct devfreq_simple_ondemand_data *ondemand_data;
> + int ret;
> +
> + /* Initialize the struct profile and governor data for parent device */
> + profile->polling_ms = 50;
> + profile->target = exynos_bus_target;
> + profile->get_dev_status = exynos_bus_get_dev_status;
> + profile->exit = exynos_bus_exit;
> +
> + ondemand_data = devm_kzalloc(dev, sizeof(*ondemand_data), GFP_KERNEL);
> + if (!ondemand_data) {
> + ret = -ENOMEM;
> + goto err;

Just return proper error code. Less lines, obvious code since you do not
have any cleanup in error path.

> + }
> + ondemand_data->upthreshold = 40;
> + ondemand_data->downdifferential = 5;
> +
> + /* Add devfreq device to monitor and handle the exynos bus */
> + bus->devfreq = devm_devfreq_add_device(dev, profile,
> + DEVFREQ_GOV_SIMPLE_ONDEMAND,
> + ondemand_data);
> + if (IS_ERR(bus->devfreq)) {
> + dev_err(dev, "failed to add devfreq device\n");
> + ret = PTR_ERR(bus->devfreq);
> + goto err;
> + }
> +
> + /* Register opp_notifier to catch the change of OPP  */
> + ret = devm_devfreq_register_opp_notifier(dev, bus->devfreq);
> + if (ret < 0) {
> + dev_err(dev, "failed to register opp notifier\n");
> + goto err;

The same - return err.

Best regards,
Krzysztof

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[RFC PATCH 01/11] devfreq: exynos-bus: Extract exynos_bus_profile_init()

2019-07-23 Thread Artur Świgoń
This patch adds a new static function, exynos_bus_profile_init(), extracted
from exynos_bus_probe().

Signed-off-by: Artur Świgoń 
---
 drivers/devfreq/exynos-bus.c | 106 ---
 1 file changed, 60 insertions(+), 46 deletions(-)

diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c
index d9f377912c10..d8f1efaf2d49 100644
--- a/drivers/devfreq/exynos-bus.c
+++ b/drivers/devfreq/exynos-bus.c
@@ -372,12 +372,69 @@ static int exynos_bus_parse_of(struct device_node *np,
return ret;
 }
 
+static int exynos_bus_profile_init(struct exynos_bus *bus,
+  struct devfreq_dev_profile *profile)
+{
+   struct device *dev = bus->dev;
+   struct devfreq_simple_ondemand_data *ondemand_data;
+   int ret;
+
+   /* Initialize the struct profile and governor data for parent device */
+   profile->polling_ms = 50;
+   profile->target = exynos_bus_target;
+   profile->get_dev_status = exynos_bus_get_dev_status;
+   profile->exit = exynos_bus_exit;
+
+   ondemand_data = devm_kzalloc(dev, sizeof(*ondemand_data), GFP_KERNEL);
+   if (!ondemand_data) {
+   ret = -ENOMEM;
+   goto err;
+   }
+   ondemand_data->upthreshold = 40;
+   ondemand_data->downdifferential = 5;
+
+   /* Add devfreq device to monitor and handle the exynos bus */
+   bus->devfreq = devm_devfreq_add_device(dev, profile,
+   DEVFREQ_GOV_SIMPLE_ONDEMAND,
+   ondemand_data);
+   if (IS_ERR(bus->devfreq)) {
+   dev_err(dev, "failed to add devfreq device\n");
+   ret = PTR_ERR(bus->devfreq);
+   goto err;
+   }
+
+   /* Register opp_notifier to catch the change of OPP  */
+   ret = devm_devfreq_register_opp_notifier(dev, bus->devfreq);
+   if (ret < 0) {
+   dev_err(dev, "failed to register opp notifier\n");
+   goto err;
+   }
+
+   /*
+* Enable devfreq-event to get raw data which is used to determine
+* current bus load.
+*/
+   ret = exynos_bus_enable_edev(bus);
+   if (ret < 0) {
+   dev_err(dev, "failed to enable devfreq-event devices\n");
+   goto err;
+   }
+
+   ret = exynos_bus_set_event(bus);
+   if (ret < 0) {
+   dev_err(dev, "failed to set event to devfreq-event devices\n");
+   goto err;
+   }
+
+err:
+   return ret;
+}
+
 static int exynos_bus_probe(struct platform_device *pdev)
 {
struct device *dev = >dev;
struct device_node *np = dev->of_node, *node;
struct devfreq_dev_profile *profile;
-   struct devfreq_simple_ondemand_data *ondemand_data;
struct devfreq_passive_data *passive_data;
struct devfreq *parent_devfreq;
struct exynos_bus *bus;
@@ -418,52 +475,9 @@ static int exynos_bus_probe(struct platform_device *pdev)
if (ret < 0)
goto err;
 
-   /* Initialize the struct profile and governor data for parent device */
-   profile->polling_ms = 50;
-   profile->target = exynos_bus_target;
-   profile->get_dev_status = exynos_bus_get_dev_status;
-   profile->exit = exynos_bus_exit;
-
-   ondemand_data = devm_kzalloc(dev, sizeof(*ondemand_data), GFP_KERNEL);
-   if (!ondemand_data) {
-   ret = -ENOMEM;
+   ret = exynos_bus_profile_init(bus, profile);
+   if (ret < 0)
goto err;
-   }
-   ondemand_data->upthreshold = 40;
-   ondemand_data->downdifferential = 5;
-
-   /* Add devfreq device to monitor and handle the exynos bus */
-   bus->devfreq = devm_devfreq_add_device(dev, profile,
-   DEVFREQ_GOV_SIMPLE_ONDEMAND,
-   ondemand_data);
-   if (IS_ERR(bus->devfreq)) {
-   dev_err(dev, "failed to add devfreq device\n");
-   ret = PTR_ERR(bus->devfreq);
-   goto err;
-   }
-
-   /* Register opp_notifier to catch the change of OPP  */
-   ret = devm_devfreq_register_opp_notifier(dev, bus->devfreq);
-   if (ret < 0) {
-   dev_err(dev, "failed to register opp notifier\n");
-   goto err;
-   }
-
-   /*
-* Enable devfreq-event to get raw data which is used to determine
-* current bus load.
-*/
-   ret = exynos_bus_enable_edev(bus);
-   if (ret < 0) {
-   dev_err(dev, "failed to enable devfreq-event devices\n");
-   goto err;
-   }
-
-   ret = exynos_bus_set_event(bus);
-   if (ret < 0) {
-   dev_err(dev, "failed to set event to devfreq-event devices\n");
-   goto err;
-   }
 
goto out;
 passive:
-- 
2.17.1