Message ID | 20190723122016.30279-3-a.swigon@partner.samsung.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | Simple QoS for exynos-bus driver using interconnect | expand |
On Tue, Jul 23, 2019 at 02:20:07PM +0200, Artur Świgoń wrote: > This patch adds a new static function, exynos_bus_profile_init_passive(), > extracted from exynos_bus_probe(). > > Signed-off-by: Artur Świgoń <a.swigon@partner.samsung.com> > --- > drivers/devfreq/exynos-bus.c | 70 +++++++++++++++++++++--------------- > 1 file changed, 42 insertions(+), 28 deletions(-) > > diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c > index d8f1efaf2d49..cf6f6cbd0f55 100644 > --- a/drivers/devfreq/exynos-bus.c > +++ b/drivers/devfreq/exynos-bus.c > @@ -430,13 +430,51 @@ static int exynos_bus_profile_init(struct exynos_bus *bus, > return ret; > } > > +static int exynos_bus_profile_init_passive(struct exynos_bus *bus, > + struct devfreq_dev_profile *profile) > +{ > + struct device *dev = bus->dev; > + struct devfreq *parent_devfreq; > + struct devfreq_passive_data *passive_data; > + int ret = 0; > + > + /* Initialize the struct profile and governor data for passive device */ > + profile->target = exynos_bus_passive_target; > + profile->exit = exynos_bus_passive_exit; > + > + /* Get the instance of parent devfreq device */ > + parent_devfreq = devfreq_get_devfreq_by_phandle(dev, 0); > + if (IS_ERR(parent_devfreq)) { > + ret = -EPROBE_DEFER; > + goto err; Same as in previous patch - no need for error goto. Best regards, Krzysztof
2019년 7월 24일 (수) 오전 8:07, Artur Świgoń <a.swigon@partner.samsung.com>님이 작성: > > This patch adds a new static function, exynos_bus_profile_init_passive(), > extracted from exynos_bus_probe(). > > Signed-off-by: Artur Świgoń <a.swigon@partner.samsung.com> > --- > drivers/devfreq/exynos-bus.c | 70 +++++++++++++++++++++--------------- > 1 file changed, 42 insertions(+), 28 deletions(-) > > diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c > index d8f1efaf2d49..cf6f6cbd0f55 100644 > --- a/drivers/devfreq/exynos-bus.c > +++ b/drivers/devfreq/exynos-bus.c > @@ -430,13 +430,51 @@ static int exynos_bus_profile_init(struct exynos_bus *bus, > return ret; > } > > +static int exynos_bus_profile_init_passive(struct exynos_bus *bus, > + struct devfreq_dev_profile *profile) > +{ > + struct device *dev = bus->dev; > + struct devfreq *parent_devfreq; > + struct devfreq_passive_data *passive_data; > + int ret = 0; > + > + /* Initialize the struct profile and governor data for passive device */ > + profile->target = exynos_bus_passive_target; > + profile->exit = exynos_bus_passive_exit; > + > + /* Get the instance of parent devfreq device */ > + parent_devfreq = devfreq_get_devfreq_by_phandle(dev, 0); > + if (IS_ERR(parent_devfreq)) { > + ret = -EPROBE_DEFER; > + goto err; > + } > + > + passive_data = devm_kzalloc(dev, sizeof(*passive_data), GFP_KERNEL); > + if (!passive_data) { > + ret = -ENOMEM; > + goto err; > + } > + passive_data->parent = parent_devfreq; > + > + /* Add devfreq device for exynos bus with passive governor */ > + bus->devfreq = devm_devfreq_add_device(dev, profile, DEVFREQ_GOV_PASSIVE, > + passive_data); > + if (IS_ERR(bus->devfreq)) { > + dev_err(dev, > + "failed to add devfreq dev with passive governor\n"); > + ret = PTR_ERR(bus->devfreq); > + goto err; > + } > + > +err: > + return ret; > +} > + > static int exynos_bus_probe(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > struct device_node *np = dev->of_node, *node; > struct devfreq_dev_profile *profile; > - struct devfreq_passive_data *passive_data; > - struct devfreq *parent_devfreq; > struct exynos_bus *bus; > int ret, max_state; > unsigned long min_freq, max_freq; > @@ -481,33 +519,9 @@ static int exynos_bus_probe(struct platform_device *pdev) > > goto out; > passive: > - /* Initialize the struct profile and governor data for passive device */ > - profile->target = exynos_bus_passive_target; > - profile->exit = exynos_bus_passive_exit; > - > - /* Get the instance of parent devfreq device */ > - parent_devfreq = devfreq_get_devfreq_by_phandle(dev, 0); > - if (IS_ERR(parent_devfreq)) { > - ret = -EPROBE_DEFER; > + ret = exynos_bus_profile_init_passive(bus, profile); > + if (ret < 0) > goto err; > - } > - > - passive_data = devm_kzalloc(dev, sizeof(*passive_data), GFP_KERNEL); > - if (!passive_data) { > - ret = -ENOMEM; > - goto err; > - } > - passive_data->parent = parent_devfreq; > - > - /* Add devfreq device for exynos bus with passive governor */ > - bus->devfreq = devm_devfreq_add_device(dev, profile, DEVFREQ_GOV_PASSIVE, > - passive_data); > - if (IS_ERR(bus->devfreq)) { > - dev_err(dev, > - "failed to add devfreq dev with passive governor\n"); > - ret = PTR_ERR(bus->devfreq); > - goto err; > - } > > out: > max_state = bus->devfreq->profile->max_state; > -- > 2.17.1 > Actually, it is not necessary. It has no any benefit. Please drop it as I commented on patch1. -- Best Regards, Chanwoo Choi
diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c index d8f1efaf2d49..cf6f6cbd0f55 100644 --- a/drivers/devfreq/exynos-bus.c +++ b/drivers/devfreq/exynos-bus.c @@ -430,13 +430,51 @@ static int exynos_bus_profile_init(struct exynos_bus *bus, return ret; } +static int exynos_bus_profile_init_passive(struct exynos_bus *bus, + struct devfreq_dev_profile *profile) +{ + struct device *dev = bus->dev; + struct devfreq *parent_devfreq; + struct devfreq_passive_data *passive_data; + int ret = 0; + + /* Initialize the struct profile and governor data for passive device */ + profile->target = exynos_bus_passive_target; + profile->exit = exynos_bus_passive_exit; + + /* Get the instance of parent devfreq device */ + parent_devfreq = devfreq_get_devfreq_by_phandle(dev, 0); + if (IS_ERR(parent_devfreq)) { + ret = -EPROBE_DEFER; + goto err; + } + + passive_data = devm_kzalloc(dev, sizeof(*passive_data), GFP_KERNEL); + if (!passive_data) { + ret = -ENOMEM; + goto err; + } + passive_data->parent = parent_devfreq; + + /* Add devfreq device for exynos bus with passive governor */ + bus->devfreq = devm_devfreq_add_device(dev, profile, DEVFREQ_GOV_PASSIVE, + passive_data); + if (IS_ERR(bus->devfreq)) { + dev_err(dev, + "failed to add devfreq dev with passive governor\n"); + ret = PTR_ERR(bus->devfreq); + goto err; + } + +err: + return ret; +} + static int exynos_bus_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct device_node *np = dev->of_node, *node; struct devfreq_dev_profile *profile; - struct devfreq_passive_data *passive_data; - struct devfreq *parent_devfreq; struct exynos_bus *bus; int ret, max_state; unsigned long min_freq, max_freq; @@ -481,33 +519,9 @@ static int exynos_bus_probe(struct platform_device *pdev) goto out; passive: - /* Initialize the struct profile and governor data for passive device */ - profile->target = exynos_bus_passive_target; - profile->exit = exynos_bus_passive_exit; - - /* Get the instance of parent devfreq device */ - parent_devfreq = devfreq_get_devfreq_by_phandle(dev, 0); - if (IS_ERR(parent_devfreq)) { - ret = -EPROBE_DEFER; + ret = exynos_bus_profile_init_passive(bus, profile); + if (ret < 0) goto err; - } - - passive_data = devm_kzalloc(dev, sizeof(*passive_data), GFP_KERNEL); - if (!passive_data) { - ret = -ENOMEM; - goto err; - } - passive_data->parent = parent_devfreq; - - /* Add devfreq device for exynos bus with passive governor */ - bus->devfreq = devm_devfreq_add_device(dev, profile, DEVFREQ_GOV_PASSIVE, - passive_data); - if (IS_ERR(bus->devfreq)) { - dev_err(dev, - "failed to add devfreq dev with passive governor\n"); - ret = PTR_ERR(bus->devfreq); - goto err; - } out: max_state = bus->devfreq->profile->max_state;
This patch adds a new static function, exynos_bus_profile_init_passive(), extracted from exynos_bus_probe(). Signed-off-by: Artur Świgoń <a.swigon@partner.samsung.com> --- drivers/devfreq/exynos-bus.c | 70 +++++++++++++++++++++--------------- 1 file changed, 42 insertions(+), 28 deletions(-)