All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V2 0/6] PM / devfreq: a few small fixes and improvements
@ 2021-03-23  2:59 ` Dong Aisheng
  0 siblings, 0 replies; 22+ messages in thread
From: Dong Aisheng @ 2021-03-23  2:59 UTC (permalink / raw)
  To: linux-pm, linux-arm-kernel
  Cc: dongas86, kernel, shawnguo, linux-imx, linux-kernel,
	myungjoo.ham, kyungmin.park, cw00.choi, abel.vesa, Dong Aisheng

A few small fixes and improvements

ChangeLog:
v1->v2:
 * squash a few patches
 * rebase to devfreq-testing
 * drop two patches which are already in devfreq-next

Dong Aisheng (6):
  PM / devfreq: fix build error when DEVFREQ_GOV_PASSIVE enabled
  PM / devfreq: Use more accurate returned new_freq as resume_freq
  PM / devfreq: Remove the invalid description for get_target_freq
  PM / devfreq: bail out early if no freq changes in devfreq_set_target
  PM / devfreq: governor: optimize simpleondemand get_target_freq
  PM / devfreq: imx8m-ddrc: remove imx8m_ddrc_get_dev_status

 Documentation/ABI/testing/sysfs-class-devfreq |  5 +--
 drivers/devfreq/devfreq.c                     | 37 +++++++------------
 drivers/devfreq/governor.h                    |  2 -
 drivers/devfreq/governor_simpleondemand.c     | 31 ++++++++++------
 drivers/devfreq/imx8m-ddrc.c                  | 14 -------
 5 files changed, 35 insertions(+), 54 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH V2 0/6] PM / devfreq: a few small fixes and improvements
@ 2021-03-23  2:59 ` Dong Aisheng
  0 siblings, 0 replies; 22+ messages in thread
From: Dong Aisheng @ 2021-03-23  2:59 UTC (permalink / raw)
  To: linux-pm, linux-arm-kernel
  Cc: dongas86, kernel, shawnguo, linux-imx, linux-kernel,
	myungjoo.ham, kyungmin.park, cw00.choi, abel.vesa, Dong Aisheng

A few small fixes and improvements

ChangeLog:
v1->v2:
 * squash a few patches
 * rebase to devfreq-testing
 * drop two patches which are already in devfreq-next

Dong Aisheng (6):
  PM / devfreq: fix build error when DEVFREQ_GOV_PASSIVE enabled
  PM / devfreq: Use more accurate returned new_freq as resume_freq
  PM / devfreq: Remove the invalid description for get_target_freq
  PM / devfreq: bail out early if no freq changes in devfreq_set_target
  PM / devfreq: governor: optimize simpleondemand get_target_freq
  PM / devfreq: imx8m-ddrc: remove imx8m_ddrc_get_dev_status

 Documentation/ABI/testing/sysfs-class-devfreq |  5 +--
 drivers/devfreq/devfreq.c                     | 37 +++++++------------
 drivers/devfreq/governor.h                    |  2 -
 drivers/devfreq/governor_simpleondemand.c     | 31 ++++++++++------
 drivers/devfreq/imx8m-ddrc.c                  | 14 -------
 5 files changed, 35 insertions(+), 54 deletions(-)

-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH V2 1/6] PM / devfreq: fix build error when DEVFREQ_GOV_PASSIVE enabled
  2021-03-23  2:59 ` Dong Aisheng
@ 2021-03-23  2:59   ` Dong Aisheng
  -1 siblings, 0 replies; 22+ messages in thread
From: Dong Aisheng @ 2021-03-23  2:59 UTC (permalink / raw)
  To: linux-pm, linux-arm-kernel
  Cc: dongas86, kernel, shawnguo, linux-imx, linux-kernel,
	myungjoo.ham, kyungmin.park, cw00.choi, abel.vesa, Dong Aisheng

drivers/devfreq/devfreq.c: In function ‘devfreq_transitions_show’:
drivers/devfreq/devfreq.c:2188:25: error: ‘struct devfreq’ has no member named ‘governor_name’; did you mean ‘governor’?
 2188 |   if (!strncmp(devfreq->governor_name,
      |                         ^~~~~~~~~~~~~
      |                         governor

Fixes: 5cc75e9252e9 ("PM / devfreq: Add devfreq_transitions debugfs file")
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
---
 drivers/devfreq/devfreq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index d625b268adf2..107badfc6b2b 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -2185,7 +2185,7 @@ static int devfreq_transitions_show(struct seq_file *s, void *data)
 			continue;
 
 #if IS_ENABLED(CONFIG_DEVFREQ_GOV_PASSIVE)
-		if (!strncmp(devfreq->governor_name,
+		if (!strncmp(devfreq->governor->name,
 				DEVFREQ_GOV_PASSIVE, DEVFREQ_NAME_LEN)) {
 			struct devfreq_passive_data *data = devfreq->data;
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH V2 1/6] PM / devfreq: fix build error when DEVFREQ_GOV_PASSIVE enabled
@ 2021-03-23  2:59   ` Dong Aisheng
  0 siblings, 0 replies; 22+ messages in thread
From: Dong Aisheng @ 2021-03-23  2:59 UTC (permalink / raw)
  To: linux-pm, linux-arm-kernel
  Cc: dongas86, kernel, shawnguo, linux-imx, linux-kernel,
	myungjoo.ham, kyungmin.park, cw00.choi, abel.vesa, Dong Aisheng

drivers/devfreq/devfreq.c: In function ‘devfreq_transitions_show’:
drivers/devfreq/devfreq.c:2188:25: error: ‘struct devfreq’ has no member named ‘governor_name’; did you mean ‘governor’?
 2188 |   if (!strncmp(devfreq->governor_name,
      |                         ^~~~~~~~~~~~~
      |                         governor

Fixes: 5cc75e9252e9 ("PM / devfreq: Add devfreq_transitions debugfs file")
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
---
 drivers/devfreq/devfreq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index d625b268adf2..107badfc6b2b 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -2185,7 +2185,7 @@ static int devfreq_transitions_show(struct seq_file *s, void *data)
 			continue;
 
 #if IS_ENABLED(CONFIG_DEVFREQ_GOV_PASSIVE)
-		if (!strncmp(devfreq->governor_name,
+		if (!strncmp(devfreq->governor->name,
 				DEVFREQ_GOV_PASSIVE, DEVFREQ_NAME_LEN)) {
 			struct devfreq_passive_data *data = devfreq->data;
 
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH V2 2/6] PM / devfreq: Use more accurate returned new_freq as resume_freq
  2021-03-23  2:59 ` Dong Aisheng
@ 2021-03-23  2:59   ` Dong Aisheng
  -1 siblings, 0 replies; 22+ messages in thread
From: Dong Aisheng @ 2021-03-23  2:59 UTC (permalink / raw)
  To: linux-pm, linux-arm-kernel
  Cc: dongas86, kernel, shawnguo, linux-imx, linux-kernel,
	myungjoo.ham, kyungmin.park, cw00.choi, abel.vesa, Dong Aisheng

Use the more accurate returned new_freq as resume_freq.
It's the same as how devfreq->previous_freq was updated.

Fixes: 83f8ca45afbf0 ("PM / devfreq: add support for suspend/resume of a
devfreq device")
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
---
 drivers/devfreq/devfreq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index 107badfc6b2b..b537fd9602cd 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -443,7 +443,7 @@ static int devfreq_set_target(struct devfreq *devfreq, unsigned long new_freq,
 	devfreq->previous_freq = new_freq;
 
 	if (devfreq->suspend_freq)
-		devfreq->resume_freq = cur_freq;
+		devfreq->resume_freq = new_freq;
 
 	return err;
 }
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH V2 2/6] PM / devfreq: Use more accurate returned new_freq as resume_freq
@ 2021-03-23  2:59   ` Dong Aisheng
  0 siblings, 0 replies; 22+ messages in thread
From: Dong Aisheng @ 2021-03-23  2:59 UTC (permalink / raw)
  To: linux-pm, linux-arm-kernel
  Cc: dongas86, kernel, shawnguo, linux-imx, linux-kernel,
	myungjoo.ham, kyungmin.park, cw00.choi, abel.vesa, Dong Aisheng

Use the more accurate returned new_freq as resume_freq.
It's the same as how devfreq->previous_freq was updated.

Fixes: 83f8ca45afbf0 ("PM / devfreq: add support for suspend/resume of a
devfreq device")
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
---
 drivers/devfreq/devfreq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index 107badfc6b2b..b537fd9602cd 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -443,7 +443,7 @@ static int devfreq_set_target(struct devfreq *devfreq, unsigned long new_freq,
 	devfreq->previous_freq = new_freq;
 
 	if (devfreq->suspend_freq)
-		devfreq->resume_freq = cur_freq;
+		devfreq->resume_freq = new_freq;
 
 	return err;
 }
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH V2 3/6] PM / devfreq: Remove the invalid description for get_target_freq
  2021-03-23  2:59 ` Dong Aisheng
@ 2021-03-23  2:59   ` Dong Aisheng
  -1 siblings, 0 replies; 22+ messages in thread
From: Dong Aisheng @ 2021-03-23  2:59 UTC (permalink / raw)
  To: linux-pm, linux-arm-kernel
  Cc: dongas86, kernel, shawnguo, linux-imx, linux-kernel,
	myungjoo.ham, kyungmin.park, cw00.choi, abel.vesa, Dong Aisheng

First of all, no_central_polling was removed since
commit 7e6fdd4bad03 ("PM / devfreq: Core updates to support devices
which can idle")
Secondly, get_target_freq() is not only called only with update_devfreq()
notified by OPP now, but also min/max freq qos notifier.

So remove this invalid description now to avoid confusing.

Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
---
 Documentation/ABI/testing/sysfs-class-devfreq | 5 +----
 drivers/devfreq/governor.h                    | 2 --
 2 files changed, 1 insertion(+), 6 deletions(-)

diff --git a/Documentation/ABI/testing/sysfs-class-devfreq b/Documentation/ABI/testing/sysfs-class-devfreq
index 22408cfa7ed2..e71595c84f22 100644
--- a/Documentation/ABI/testing/sysfs-class-devfreq
+++ b/Documentation/ABI/testing/sysfs-class-devfreq
@@ -97,10 +97,7 @@ Description:
 		object. The values are represented in ms. If the value is
 		less than 1 jiffy, it is considered to be 0, which means
 		no polling. This value is meaningless if the governor is
-		not polling; thus. If the governor is not using
-		devfreq-provided central polling
-		(/sys/class/devfreq/.../central_polling is 0), this value
-		may be useless.
+		not polling.
 
 		A list of governors that support the node:
 		- simple_ondmenad
diff --git a/drivers/devfreq/governor.h b/drivers/devfreq/governor.h
index 48736a2ae970..9d72f5b66bfa 100644
--- a/drivers/devfreq/governor.h
+++ b/drivers/devfreq/governor.h
@@ -67,8 +67,6 @@
  *			Basically, get_target_freq will run
  *			devfreq_dev_profile.get_dev_status() to get the
  *			status of the device (load = busy_time / total_time).
- *			If no_central_polling is set, this callback is called
- *			only with update_devfreq() notified by OPP.
  * @event_handler:      Callback for devfreq core framework to notify events
  *                      to governors. Events include per device governor
  *                      init and exit, opp changes out of devfreq, suspend
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH V2 3/6] PM / devfreq: Remove the invalid description for get_target_freq
@ 2021-03-23  2:59   ` Dong Aisheng
  0 siblings, 0 replies; 22+ messages in thread
From: Dong Aisheng @ 2021-03-23  2:59 UTC (permalink / raw)
  To: linux-pm, linux-arm-kernel
  Cc: dongas86, kernel, shawnguo, linux-imx, linux-kernel,
	myungjoo.ham, kyungmin.park, cw00.choi, abel.vesa, Dong Aisheng

First of all, no_central_polling was removed since
commit 7e6fdd4bad03 ("PM / devfreq: Core updates to support devices
which can idle")
Secondly, get_target_freq() is not only called only with update_devfreq()
notified by OPP now, but also min/max freq qos notifier.

So remove this invalid description now to avoid confusing.

Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
---
 Documentation/ABI/testing/sysfs-class-devfreq | 5 +----
 drivers/devfreq/governor.h                    | 2 --
 2 files changed, 1 insertion(+), 6 deletions(-)

diff --git a/Documentation/ABI/testing/sysfs-class-devfreq b/Documentation/ABI/testing/sysfs-class-devfreq
index 22408cfa7ed2..e71595c84f22 100644
--- a/Documentation/ABI/testing/sysfs-class-devfreq
+++ b/Documentation/ABI/testing/sysfs-class-devfreq
@@ -97,10 +97,7 @@ Description:
 		object. The values are represented in ms. If the value is
 		less than 1 jiffy, it is considered to be 0, which means
 		no polling. This value is meaningless if the governor is
-		not polling; thus. If the governor is not using
-		devfreq-provided central polling
-		(/sys/class/devfreq/.../central_polling is 0), this value
-		may be useless.
+		not polling.
 
 		A list of governors that support the node:
 		- simple_ondmenad
diff --git a/drivers/devfreq/governor.h b/drivers/devfreq/governor.h
index 48736a2ae970..9d72f5b66bfa 100644
--- a/drivers/devfreq/governor.h
+++ b/drivers/devfreq/governor.h
@@ -67,8 +67,6 @@
  *			Basically, get_target_freq will run
  *			devfreq_dev_profile.get_dev_status() to get the
  *			status of the device (load = busy_time / total_time).
- *			If no_central_polling is set, this callback is called
- *			only with update_devfreq() notified by OPP.
  * @event_handler:      Callback for devfreq core framework to notify events
  *                      to governors. Events include per device governor
  *                      init and exit, opp changes out of devfreq, suspend
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH V2 4/6] PM / devfreq: bail out early if no freq changes in devfreq_set_target
  2021-03-23  2:59 ` Dong Aisheng
@ 2021-03-23  2:59   ` Dong Aisheng
  -1 siblings, 0 replies; 22+ messages in thread
From: Dong Aisheng @ 2021-03-23  2:59 UTC (permalink / raw)
  To: linux-pm, linux-arm-kernel
  Cc: dongas86, kernel, shawnguo, linux-imx, linux-kernel,
	myungjoo.ham, kyungmin.park, cw00.choi, abel.vesa, Dong Aisheng

It's unnecessary to set the same freq again and run notifier calls.

Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
---
 drivers/devfreq/devfreq.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index b537fd9602cd..cacda7d1f858 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -403,13 +403,16 @@ static int devfreq_set_target(struct devfreq *devfreq, unsigned long new_freq,
 {
 	struct devfreq_freqs freqs;
 	unsigned long cur_freq;
-	int err = 0;
+	int err;
 
 	if (devfreq->profile->get_cur_freq)
 		devfreq->profile->get_cur_freq(devfreq->dev.parent, &cur_freq);
 	else
 		cur_freq = devfreq->previous_freq;
 
+	if (new_freq == cur_freq)
+		return 0;
+
 	freqs.old = cur_freq;
 	freqs.new = new_freq;
 	devfreq_notify_transition(devfreq, &freqs, DEVFREQ_PRECHANGE);
@@ -426,7 +429,7 @@ static int devfreq_set_target(struct devfreq *devfreq, unsigned long new_freq,
 	 * and DEVFREQ_POSTCHANGE because for showing the correct frequency
 	 * change order of between devfreq device and passive devfreq device.
 	 */
-	if (trace_devfreq_frequency_enabled() && new_freq != cur_freq)
+	if (trace_devfreq_frequency_enabled())
 		trace_devfreq_frequency(devfreq, new_freq, cur_freq);
 
 	devfreq_update_transitions(devfreq, cur_freq, new_freq,
@@ -445,7 +448,7 @@ static int devfreq_set_target(struct devfreq *devfreq, unsigned long new_freq,
 	if (devfreq->suspend_freq)
 		devfreq->resume_freq = new_freq;
 
-	return err;
+	return 0;
 }
 
 /**
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH V2 4/6] PM / devfreq: bail out early if no freq changes in devfreq_set_target
@ 2021-03-23  2:59   ` Dong Aisheng
  0 siblings, 0 replies; 22+ messages in thread
From: Dong Aisheng @ 2021-03-23  2:59 UTC (permalink / raw)
  To: linux-pm, linux-arm-kernel
  Cc: dongas86, kernel, shawnguo, linux-imx, linux-kernel,
	myungjoo.ham, kyungmin.park, cw00.choi, abel.vesa, Dong Aisheng

It's unnecessary to set the same freq again and run notifier calls.

Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
---
 drivers/devfreq/devfreq.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index b537fd9602cd..cacda7d1f858 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -403,13 +403,16 @@ static int devfreq_set_target(struct devfreq *devfreq, unsigned long new_freq,
 {
 	struct devfreq_freqs freqs;
 	unsigned long cur_freq;
-	int err = 0;
+	int err;
 
 	if (devfreq->profile->get_cur_freq)
 		devfreq->profile->get_cur_freq(devfreq->dev.parent, &cur_freq);
 	else
 		cur_freq = devfreq->previous_freq;
 
+	if (new_freq == cur_freq)
+		return 0;
+
 	freqs.old = cur_freq;
 	freqs.new = new_freq;
 	devfreq_notify_transition(devfreq, &freqs, DEVFREQ_PRECHANGE);
@@ -426,7 +429,7 @@ static int devfreq_set_target(struct devfreq *devfreq, unsigned long new_freq,
 	 * and DEVFREQ_POSTCHANGE because for showing the correct frequency
 	 * change order of between devfreq device and passive devfreq device.
 	 */
-	if (trace_devfreq_frequency_enabled() && new_freq != cur_freq)
+	if (trace_devfreq_frequency_enabled())
 		trace_devfreq_frequency(devfreq, new_freq, cur_freq);
 
 	devfreq_update_transitions(devfreq, cur_freq, new_freq,
@@ -445,7 +448,7 @@ static int devfreq_set_target(struct devfreq *devfreq, unsigned long new_freq,
 	if (devfreq->suspend_freq)
 		devfreq->resume_freq = new_freq;
 
-	return err;
+	return 0;
 }
 
 /**
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH V2 5/6] PM / devfreq: governor: optimize simpleondemand get_target_freq
  2021-03-23  2:59 ` Dong Aisheng
@ 2021-03-23  2:59   ` Dong Aisheng
  -1 siblings, 0 replies; 22+ messages in thread
From: Dong Aisheng @ 2021-03-23  2:59 UTC (permalink / raw)
  To: linux-pm, linux-arm-kernel
  Cc: dongas86, kernel, shawnguo, linux-imx, linux-kernel,
	myungjoo.ham, kyungmin.park, cw00.choi, abel.vesa, Dong Aisheng

The device profile up_threshold/down_differential only needs to be
initialized once when calling devm_devfreq_add_device. It's unnecessary
to put the data check logic in the hot path (.get_target_freq()) where it
will be called all the time during polling. Instead, we only check and
initialize it one time during DEVFREQ_GOV_START.

This also helps check data validability in advance during DEVFREQ_GOV_START
rather than checking it later when running .get_target_freq().

Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
---
Change Log:
v1->v2:
 * rebase to devfreq-testing
---
 drivers/devfreq/devfreq.c                 | 24 +++++-------------
 drivers/devfreq/governor_simpleondemand.c | 31 +++++++++++++++--------
 2 files changed, 26 insertions(+), 29 deletions(-)

diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index cacda7d1f858..270e51f5318f 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -1908,9 +1908,7 @@ static ssize_t up_threshold_show(struct device *dev,
 	if (!df->profile)
 		return -EINVAL;
 
-	return sprintf(buf, "%d\n", df->profile->up_threshold
-					? df->profile->up_threshold
-					: DEVFREQ_UP_THRESHOLD);
+	return sprintf(buf, "%d\n", df->profile->up_threshold);
 }
 
 static ssize_t up_threshold_store(struct device *dev,
@@ -1934,9 +1932,7 @@ static ssize_t up_threshold_store(struct device *dev,
 	if (value > 100)
 		value = 100;
 
-	down_differential = df->profile->down_differential
-				? df->profile->down_differential
-				: DEVFREQ_DOWN_DIFFERENCTIAL;
+	down_differential = df->profile->down_differential;
 	if (value < down_differential)
 		value = down_differential;
 
@@ -1961,9 +1957,7 @@ static ssize_t down_differential_show(struct device *dev,
 	if (!df->profile)
 		return -EINVAL;
 
-	return sprintf(buf, "%d\n", df->profile->down_differential
-					? df->profile->down_differential
-					: DEVFREQ_DOWN_DIFFERENCTIAL);
+	return sprintf(buf, "%d\n", df->profile->down_differential);
 }
 
 static ssize_t down_differential_store(struct device *dev,
@@ -1984,9 +1978,7 @@ static ssize_t down_differential_store(struct device *dev,
 	if (ret != 1)
 		return -EINVAL;
 
-	up_threshold = df->profile->up_threshold
-				? df->profile->up_threshold
-				: DEVFREQ_UP_THRESHOLD;
+	up_threshold = df->profile->up_threshold;
 	if (value > up_threshold)
 		value = up_threshold;
 
@@ -2113,16 +2105,12 @@ static int devfreq_summary_show(struct seq_file *s, void *data)
 			polling_ms = 0;
 
 		if (IS_SUPPORTED_ATTR(devfreq->governor->attrs, UP_THRESHOLD))
-			up_threshold = devfreq->profile->up_threshold
-					? devfreq->profile->up_threshold
-					: DEVFREQ_UP_THRESHOLD;
+			up_threshold = devfreq->profile->up_threshold;
 		else
 			up_threshold = 0;
 
 		if (IS_SUPPORTED_ATTR(devfreq->governor->attrs, DOWN_DIFF))
-			down_differential = devfreq->profile->down_differential
-					? devfreq->profile->down_differential
-					: DEVFREQ_DOWN_DIFFERENCTIAL;
+			down_differential = devfreq->profile->down_differential;
 		else
 			down_differential = 0;
 		mutex_unlock(&devfreq->lock);
diff --git a/drivers/devfreq/governor_simpleondemand.c b/drivers/devfreq/governor_simpleondemand.c
index 93f6061667d9..3e195b46554a 100644
--- a/drivers/devfreq/governor_simpleondemand.c
+++ b/drivers/devfreq/governor_simpleondemand.c
@@ -18,8 +18,8 @@ static int devfreq_simple_ondemand_func(struct devfreq *df,
 	int err;
 	struct devfreq_dev_status *stat;
 	unsigned long long a, b;
-	unsigned int dfso_upthreshold = DEVFREQ_UP_THRESHOLD;
-	unsigned int dfso_downdifferential = DEVFREQ_DOWN_DIFFERENCTIAL;
+	unsigned int dfso_upthreshold = df->profile->up_threshold;
+	unsigned int dfso_downdifferential = df->profile->down_differential;
 
 	err = devfreq_update_stats(df);
 	if (err)
@@ -27,15 +27,6 @@ static int devfreq_simple_ondemand_func(struct devfreq *df,
 
 	stat = &df->last_status;
 
-	if (df->profile->up_threshold)
-		dfso_upthreshold = df->profile->up_threshold;
-	if (df->profile->down_differential)
-		dfso_downdifferential = df->profile->down_differential;
-
-	if (dfso_upthreshold > 100 ||
-	    dfso_upthreshold < dfso_downdifferential)
-		return -EINVAL;
-
 	/* Assume MAX if it is going to be divided by zero */
 	if (stat->total_time == 0) {
 		*freq = DEVFREQ_MAX_FREQ;
@@ -79,11 +70,29 @@ static int devfreq_simple_ondemand_func(struct devfreq *df,
 	return 0;
 }
 
+static int devfreq_simple_ondemand_check_od(struct devfreq *df)
+{
+	if (!df->profile->up_threshold)
+		df->profile->up_threshold = DEVFREQ_UP_THRESHOLD;
+
+	if (!df->profile->down_differential)
+		df->profile->down_differential = DEVFREQ_DOWN_DIFFERENCTIAL;
+
+	if (df->profile->up_threshold > 100 ||
+	    df->profile->up_threshold < df->profile->down_differential)
+		return -EINVAL;
+
+	return 0;
+}
+
 static int devfreq_simple_ondemand_handler(struct devfreq *devfreq,
 				unsigned int event, void *data)
 {
 	switch (event) {
 	case DEVFREQ_GOV_START:
+		if (devfreq_simple_ondemand_check_od(devfreq))
+			return -EINVAL;
+
 		devfreq_monitor_start(devfreq);
 		break;
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH V2 5/6] PM / devfreq: governor: optimize simpleondemand get_target_freq
@ 2021-03-23  2:59   ` Dong Aisheng
  0 siblings, 0 replies; 22+ messages in thread
From: Dong Aisheng @ 2021-03-23  2:59 UTC (permalink / raw)
  To: linux-pm, linux-arm-kernel
  Cc: dongas86, kernel, shawnguo, linux-imx, linux-kernel,
	myungjoo.ham, kyungmin.park, cw00.choi, abel.vesa, Dong Aisheng

The device profile up_threshold/down_differential only needs to be
initialized once when calling devm_devfreq_add_device. It's unnecessary
to put the data check logic in the hot path (.get_target_freq()) where it
will be called all the time during polling. Instead, we only check and
initialize it one time during DEVFREQ_GOV_START.

This also helps check data validability in advance during DEVFREQ_GOV_START
rather than checking it later when running .get_target_freq().

Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
---
Change Log:
v1->v2:
 * rebase to devfreq-testing
---
 drivers/devfreq/devfreq.c                 | 24 +++++-------------
 drivers/devfreq/governor_simpleondemand.c | 31 +++++++++++++++--------
 2 files changed, 26 insertions(+), 29 deletions(-)

diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index cacda7d1f858..270e51f5318f 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -1908,9 +1908,7 @@ static ssize_t up_threshold_show(struct device *dev,
 	if (!df->profile)
 		return -EINVAL;
 
-	return sprintf(buf, "%d\n", df->profile->up_threshold
-					? df->profile->up_threshold
-					: DEVFREQ_UP_THRESHOLD);
+	return sprintf(buf, "%d\n", df->profile->up_threshold);
 }
 
 static ssize_t up_threshold_store(struct device *dev,
@@ -1934,9 +1932,7 @@ static ssize_t up_threshold_store(struct device *dev,
 	if (value > 100)
 		value = 100;
 
-	down_differential = df->profile->down_differential
-				? df->profile->down_differential
-				: DEVFREQ_DOWN_DIFFERENCTIAL;
+	down_differential = df->profile->down_differential;
 	if (value < down_differential)
 		value = down_differential;
 
@@ -1961,9 +1957,7 @@ static ssize_t down_differential_show(struct device *dev,
 	if (!df->profile)
 		return -EINVAL;
 
-	return sprintf(buf, "%d\n", df->profile->down_differential
-					? df->profile->down_differential
-					: DEVFREQ_DOWN_DIFFERENCTIAL);
+	return sprintf(buf, "%d\n", df->profile->down_differential);
 }
 
 static ssize_t down_differential_store(struct device *dev,
@@ -1984,9 +1978,7 @@ static ssize_t down_differential_store(struct device *dev,
 	if (ret != 1)
 		return -EINVAL;
 
-	up_threshold = df->profile->up_threshold
-				? df->profile->up_threshold
-				: DEVFREQ_UP_THRESHOLD;
+	up_threshold = df->profile->up_threshold;
 	if (value > up_threshold)
 		value = up_threshold;
 
@@ -2113,16 +2105,12 @@ static int devfreq_summary_show(struct seq_file *s, void *data)
 			polling_ms = 0;
 
 		if (IS_SUPPORTED_ATTR(devfreq->governor->attrs, UP_THRESHOLD))
-			up_threshold = devfreq->profile->up_threshold
-					? devfreq->profile->up_threshold
-					: DEVFREQ_UP_THRESHOLD;
+			up_threshold = devfreq->profile->up_threshold;
 		else
 			up_threshold = 0;
 
 		if (IS_SUPPORTED_ATTR(devfreq->governor->attrs, DOWN_DIFF))
-			down_differential = devfreq->profile->down_differential
-					? devfreq->profile->down_differential
-					: DEVFREQ_DOWN_DIFFERENCTIAL;
+			down_differential = devfreq->profile->down_differential;
 		else
 			down_differential = 0;
 		mutex_unlock(&devfreq->lock);
diff --git a/drivers/devfreq/governor_simpleondemand.c b/drivers/devfreq/governor_simpleondemand.c
index 93f6061667d9..3e195b46554a 100644
--- a/drivers/devfreq/governor_simpleondemand.c
+++ b/drivers/devfreq/governor_simpleondemand.c
@@ -18,8 +18,8 @@ static int devfreq_simple_ondemand_func(struct devfreq *df,
 	int err;
 	struct devfreq_dev_status *stat;
 	unsigned long long a, b;
-	unsigned int dfso_upthreshold = DEVFREQ_UP_THRESHOLD;
-	unsigned int dfso_downdifferential = DEVFREQ_DOWN_DIFFERENCTIAL;
+	unsigned int dfso_upthreshold = df->profile->up_threshold;
+	unsigned int dfso_downdifferential = df->profile->down_differential;
 
 	err = devfreq_update_stats(df);
 	if (err)
@@ -27,15 +27,6 @@ static int devfreq_simple_ondemand_func(struct devfreq *df,
 
 	stat = &df->last_status;
 
-	if (df->profile->up_threshold)
-		dfso_upthreshold = df->profile->up_threshold;
-	if (df->profile->down_differential)
-		dfso_downdifferential = df->profile->down_differential;
-
-	if (dfso_upthreshold > 100 ||
-	    dfso_upthreshold < dfso_downdifferential)
-		return -EINVAL;
-
 	/* Assume MAX if it is going to be divided by zero */
 	if (stat->total_time == 0) {
 		*freq = DEVFREQ_MAX_FREQ;
@@ -79,11 +70,29 @@ static int devfreq_simple_ondemand_func(struct devfreq *df,
 	return 0;
 }
 
+static int devfreq_simple_ondemand_check_od(struct devfreq *df)
+{
+	if (!df->profile->up_threshold)
+		df->profile->up_threshold = DEVFREQ_UP_THRESHOLD;
+
+	if (!df->profile->down_differential)
+		df->profile->down_differential = DEVFREQ_DOWN_DIFFERENCTIAL;
+
+	if (df->profile->up_threshold > 100 ||
+	    df->profile->up_threshold < df->profile->down_differential)
+		return -EINVAL;
+
+	return 0;
+}
+
 static int devfreq_simple_ondemand_handler(struct devfreq *devfreq,
 				unsigned int event, void *data)
 {
 	switch (event) {
 	case DEVFREQ_GOV_START:
+		if (devfreq_simple_ondemand_check_od(devfreq))
+			return -EINVAL;
+
 		devfreq_monitor_start(devfreq);
 		break;
 
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH V2 6/6] PM / devfreq: imx8m-ddrc: remove imx8m_ddrc_get_dev_status
  2021-03-23  2:59 ` Dong Aisheng
@ 2021-03-23  2:59   ` Dong Aisheng
  -1 siblings, 0 replies; 22+ messages in thread
From: Dong Aisheng @ 2021-03-23  2:59 UTC (permalink / raw)
  To: linux-pm, linux-arm-kernel
  Cc: dongas86, kernel, shawnguo, linux-imx, linux-kernel,
	myungjoo.ham, kyungmin.park, cw00.choi, abel.vesa, Dong Aisheng

Current driver actually does not support simple ondemand governor
as it's unable to provide device load information. So removing
the unnecessary callback to avoid confusing.
Right now the driver is using userspace governor by default.

polling_ms was also dropped as it's not needed for non-ondemand
governor.

Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
---
 drivers/devfreq/imx8m-ddrc.c | 14 --------------
 1 file changed, 14 deletions(-)

diff --git a/drivers/devfreq/imx8m-ddrc.c b/drivers/devfreq/imx8m-ddrc.c
index bc82d3653bff..ecb9375aa877 100644
--- a/drivers/devfreq/imx8m-ddrc.c
+++ b/drivers/devfreq/imx8m-ddrc.c
@@ -280,18 +280,6 @@ static int imx8m_ddrc_get_cur_freq(struct device *dev, unsigned long *freq)
 	return 0;
 }
 
-static int imx8m_ddrc_get_dev_status(struct device *dev,
-				     struct devfreq_dev_status *stat)
-{
-	struct imx8m_ddrc *priv = dev_get_drvdata(dev);
-
-	stat->busy_time = 0;
-	stat->total_time = 0;
-	stat->current_frequency = clk_get_rate(priv->dram_core);
-
-	return 0;
-}
-
 static int imx8m_ddrc_init_freq_info(struct device *dev)
 {
 	struct imx8m_ddrc *priv = dev_get_drvdata(dev);
@@ -429,9 +417,7 @@ static int imx8m_ddrc_probe(struct platform_device *pdev)
 	if (ret < 0)
 		goto err;
 
-	priv->profile.polling_ms = 1000;
 	priv->profile.target = imx8m_ddrc_target;
-	priv->profile.get_dev_status = imx8m_ddrc_get_dev_status;
 	priv->profile.exit = imx8m_ddrc_exit;
 	priv->profile.get_cur_freq = imx8m_ddrc_get_cur_freq;
 	priv->profile.initial_freq = clk_get_rate(priv->dram_core);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH V2 6/6] PM / devfreq: imx8m-ddrc: remove imx8m_ddrc_get_dev_status
@ 2021-03-23  2:59   ` Dong Aisheng
  0 siblings, 0 replies; 22+ messages in thread
From: Dong Aisheng @ 2021-03-23  2:59 UTC (permalink / raw)
  To: linux-pm, linux-arm-kernel
  Cc: dongas86, kernel, shawnguo, linux-imx, linux-kernel,
	myungjoo.ham, kyungmin.park, cw00.choi, abel.vesa, Dong Aisheng

Current driver actually does not support simple ondemand governor
as it's unable to provide device load information. So removing
the unnecessary callback to avoid confusing.
Right now the driver is using userspace governor by default.

polling_ms was also dropped as it's not needed for non-ondemand
governor.

Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
---
 drivers/devfreq/imx8m-ddrc.c | 14 --------------
 1 file changed, 14 deletions(-)

diff --git a/drivers/devfreq/imx8m-ddrc.c b/drivers/devfreq/imx8m-ddrc.c
index bc82d3653bff..ecb9375aa877 100644
--- a/drivers/devfreq/imx8m-ddrc.c
+++ b/drivers/devfreq/imx8m-ddrc.c
@@ -280,18 +280,6 @@ static int imx8m_ddrc_get_cur_freq(struct device *dev, unsigned long *freq)
 	return 0;
 }
 
-static int imx8m_ddrc_get_dev_status(struct device *dev,
-				     struct devfreq_dev_status *stat)
-{
-	struct imx8m_ddrc *priv = dev_get_drvdata(dev);
-
-	stat->busy_time = 0;
-	stat->total_time = 0;
-	stat->current_frequency = clk_get_rate(priv->dram_core);
-
-	return 0;
-}
-
 static int imx8m_ddrc_init_freq_info(struct device *dev)
 {
 	struct imx8m_ddrc *priv = dev_get_drvdata(dev);
@@ -429,9 +417,7 @@ static int imx8m_ddrc_probe(struct platform_device *pdev)
 	if (ret < 0)
 		goto err;
 
-	priv->profile.polling_ms = 1000;
 	priv->profile.target = imx8m_ddrc_target;
-	priv->profile.get_dev_status = imx8m_ddrc_get_dev_status;
 	priv->profile.exit = imx8m_ddrc_exit;
 	priv->profile.get_cur_freq = imx8m_ddrc_get_cur_freq;
 	priv->profile.initial_freq = clk_get_rate(priv->dram_core);
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH V2 0/6] PM / devfreq: a few small fixes and improvements
  2021-03-23  2:59 ` Dong Aisheng
@ 2021-03-23  3:25   ` Dong Aisheng
  -1 siblings, 0 replies; 22+ messages in thread
From: Dong Aisheng @ 2021-03-23  3:25 UTC (permalink / raw)
  To: Dong Aisheng
  Cc: Linux PM,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
	Sascha Hauer, Shawn Guo, dl-linux-imx, open list, myungjoo.ham,
	kyungmin.park, Chanwoo Choi, Abel Vesa

Hi Chanwoo,

On Tue, Mar 23, 2021 at 11:13 AM Dong Aisheng <aisheng.dong@nxp.com> wrote:
>
> A few small fixes and improvements
>
> ChangeLog:
> v1->v2:
>  * squash a few patches
>  * rebase to devfreq-testing

I have to rebase to devfreq-testing instead of devfreq-next because
below two patches
only exist in devfreq-testing.
5cc75e9252e9 (devfreq/devfreq-testing) PM / devfreq: Add
devfreq_transitions debugfs file
dc9e557845c1 PM / devfreq: Add new up_threshold and down_differential
sysfs attrs
My patch 5 needs change based on it according to your suggestion. So i have to
rebase to that branch.

However, i found devfreq-testing can't build with GOV_PASSVIE enabled.
Patch 1 fixed it. You can squash to the original one when apply.

Please help take a look at this new series.
Thanks

Regards
Aisheng

>  * drop two patches which are already in devfreq-next
>
> Dong Aisheng (6):
>   PM / devfreq: fix build error when DEVFREQ_GOV_PASSIVE enabled
>   PM / devfreq: Use more accurate returned new_freq as resume_freq
>   PM / devfreq: Remove the invalid description for get_target_freq
>   PM / devfreq: bail out early if no freq changes in devfreq_set_target
>   PM / devfreq: governor: optimize simpleondemand get_target_freq
>   PM / devfreq: imx8m-ddrc: remove imx8m_ddrc_get_dev_status
>
>  Documentation/ABI/testing/sysfs-class-devfreq |  5 +--
>  drivers/devfreq/devfreq.c                     | 37 +++++++------------
>  drivers/devfreq/governor.h                    |  2 -
>  drivers/devfreq/governor_simpleondemand.c     | 31 ++++++++++------
>  drivers/devfreq/imx8m-ddrc.c                  | 14 -------
>  5 files changed, 35 insertions(+), 54 deletions(-)
>
> --
> 2.25.1
>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH V2 0/6] PM / devfreq: a few small fixes and improvements
@ 2021-03-23  3:25   ` Dong Aisheng
  0 siblings, 0 replies; 22+ messages in thread
From: Dong Aisheng @ 2021-03-23  3:25 UTC (permalink / raw)
  To: Dong Aisheng
  Cc: Linux PM,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
	Sascha Hauer, Shawn Guo, dl-linux-imx, open list, myungjoo.ham,
	kyungmin.park, Chanwoo Choi, Abel Vesa

Hi Chanwoo,

On Tue, Mar 23, 2021 at 11:13 AM Dong Aisheng <aisheng.dong@nxp.com> wrote:
>
> A few small fixes and improvements
>
> ChangeLog:
> v1->v2:
>  * squash a few patches
>  * rebase to devfreq-testing

I have to rebase to devfreq-testing instead of devfreq-next because
below two patches
only exist in devfreq-testing.
5cc75e9252e9 (devfreq/devfreq-testing) PM / devfreq: Add
devfreq_transitions debugfs file
dc9e557845c1 PM / devfreq: Add new up_threshold and down_differential
sysfs attrs
My patch 5 needs change based on it according to your suggestion. So i have to
rebase to that branch.

However, i found devfreq-testing can't build with GOV_PASSVIE enabled.
Patch 1 fixed it. You can squash to the original one when apply.

Please help take a look at this new series.
Thanks

Regards
Aisheng

>  * drop two patches which are already in devfreq-next
>
> Dong Aisheng (6):
>   PM / devfreq: fix build error when DEVFREQ_GOV_PASSIVE enabled
>   PM / devfreq: Use more accurate returned new_freq as resume_freq
>   PM / devfreq: Remove the invalid description for get_target_freq
>   PM / devfreq: bail out early if no freq changes in devfreq_set_target
>   PM / devfreq: governor: optimize simpleondemand get_target_freq
>   PM / devfreq: imx8m-ddrc: remove imx8m_ddrc_get_dev_status
>
>  Documentation/ABI/testing/sysfs-class-devfreq |  5 +--
>  drivers/devfreq/devfreq.c                     | 37 +++++++------------
>  drivers/devfreq/governor.h                    |  2 -
>  drivers/devfreq/governor_simpleondemand.c     | 31 ++++++++++------
>  drivers/devfreq/imx8m-ddrc.c                  | 14 -------
>  5 files changed, 35 insertions(+), 54 deletions(-)
>
> --
> 2.25.1
>

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH V2 0/6] PM / devfreq: a few small fixes and improvements
  2021-03-23  3:25   ` Dong Aisheng
@ 2021-03-23  4:11     ` Chanwoo Choi
  -1 siblings, 0 replies; 22+ messages in thread
From: Chanwoo Choi @ 2021-03-23  4:11 UTC (permalink / raw)
  To: Dong Aisheng, Dong Aisheng
  Cc: Linux PM,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
	Sascha Hauer, Shawn Guo, dl-linux-imx, open list, myungjoo.ham,
	kyungmin.park, Abel Vesa

Hi,

On 3/23/21 12:25 PM, Dong Aisheng wrote:
> Hi Chanwoo,
> 
> On Tue, Mar 23, 2021 at 11:13 AM Dong Aisheng <aisheng.dong@nxp.com> wrote:
>>
>> A few small fixes and improvements
>>
>> ChangeLog:
>> v1->v2:
>>  * squash a few patches
>>  * rebase to devfreq-testing
> 
> I have to rebase to devfreq-testing instead of devfreq-next because
> below two patches
> only exist in devfreq-testing.
> 5cc75e9252e9 (devfreq/devfreq-testing) PM / devfreq: Add
> devfreq_transitions debugfs file
> dc9e557845c1 PM / devfreq: Add new up_threshold and down_differential
> sysfs attrs
> My patch 5 needs change based on it according to your suggestion. So i have to
> rebase to that branch.
> 
> However, i found devfreq-testing can't build with GOV_PASSVIE enabled.
> Patch 1 fixed it. You can squash to the original one when apply.
> 
> Please help take a look at this new series.

Please rebase your patches either devfreq-next or linux-next.git
Because devfreq-testing branch is not official. 

> Thanks
> 
> Regards
> Aisheng
> 
>>  * drop two patches which are already in devfreq-next
>>
>> Dong Aisheng (6):
>>   PM / devfreq: fix build error when DEVFREQ_GOV_PASSIVE enabled
>>   PM / devfreq: Use more accurate returned new_freq as resume_freq
>>   PM / devfreq: Remove the invalid description for get_target_freq
>>   PM / devfreq: bail out early if no freq changes in devfreq_set_target
>>   PM / devfreq: governor: optimize simpleondemand get_target_freq
>>   PM / devfreq: imx8m-ddrc: remove imx8m_ddrc_get_dev_status
>>
>>  Documentation/ABI/testing/sysfs-class-devfreq |  5 +--
>>  drivers/devfreq/devfreq.c                     | 37 +++++++------------
>>  drivers/devfreq/governor.h                    |  2 -
>>  drivers/devfreq/governor_simpleondemand.c     | 31 ++++++++++------
>>  drivers/devfreq/imx8m-ddrc.c                  | 14 -------
>>  5 files changed, 35 insertions(+), 54 deletions(-)
>>
>> --
>> 2.25.1
>>
> 
> 


-- 
Best Regards,
Chanwoo Choi
Samsung Electronics

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH V2 0/6] PM / devfreq: a few small fixes and improvements
@ 2021-03-23  4:11     ` Chanwoo Choi
  0 siblings, 0 replies; 22+ messages in thread
From: Chanwoo Choi @ 2021-03-23  4:11 UTC (permalink / raw)
  To: Dong Aisheng, Dong Aisheng
  Cc: Linux PM,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
	Sascha Hauer, Shawn Guo, dl-linux-imx, open list, myungjoo.ham,
	kyungmin.park, Abel Vesa

Hi,

On 3/23/21 12:25 PM, Dong Aisheng wrote:
> Hi Chanwoo,
> 
> On Tue, Mar 23, 2021 at 11:13 AM Dong Aisheng <aisheng.dong@nxp.com> wrote:
>>
>> A few small fixes and improvements
>>
>> ChangeLog:
>> v1->v2:
>>  * squash a few patches
>>  * rebase to devfreq-testing
> 
> I have to rebase to devfreq-testing instead of devfreq-next because
> below two patches
> only exist in devfreq-testing.
> 5cc75e9252e9 (devfreq/devfreq-testing) PM / devfreq: Add
> devfreq_transitions debugfs file
> dc9e557845c1 PM / devfreq: Add new up_threshold and down_differential
> sysfs attrs
> My patch 5 needs change based on it according to your suggestion. So i have to
> rebase to that branch.
> 
> However, i found devfreq-testing can't build with GOV_PASSVIE enabled.
> Patch 1 fixed it. You can squash to the original one when apply.
> 
> Please help take a look at this new series.

Please rebase your patches either devfreq-next or linux-next.git
Because devfreq-testing branch is not official. 

> Thanks
> 
> Regards
> Aisheng
> 
>>  * drop two patches which are already in devfreq-next
>>
>> Dong Aisheng (6):
>>   PM / devfreq: fix build error when DEVFREQ_GOV_PASSIVE enabled
>>   PM / devfreq: Use more accurate returned new_freq as resume_freq
>>   PM / devfreq: Remove the invalid description for get_target_freq
>>   PM / devfreq: bail out early if no freq changes in devfreq_set_target
>>   PM / devfreq: governor: optimize simpleondemand get_target_freq
>>   PM / devfreq: imx8m-ddrc: remove imx8m_ddrc_get_dev_status
>>
>>  Documentation/ABI/testing/sysfs-class-devfreq |  5 +--
>>  drivers/devfreq/devfreq.c                     | 37 +++++++------------
>>  drivers/devfreq/governor.h                    |  2 -
>>  drivers/devfreq/governor_simpleondemand.c     | 31 ++++++++++------
>>  drivers/devfreq/imx8m-ddrc.c                  | 14 -------
>>  5 files changed, 35 insertions(+), 54 deletions(-)
>>
>> --
>> 2.25.1
>>
> 
> 


-- 
Best Regards,
Chanwoo Choi
Samsung Electronics

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* RE: [PATCH V2 0/6] PM / devfreq: a few small fixes and improvements
  2021-03-23  4:11     ` Chanwoo Choi
@ 2021-03-23  6:11       ` Aisheng Dong
  -1 siblings, 0 replies; 22+ messages in thread
From: Aisheng Dong @ 2021-03-23  6:11 UTC (permalink / raw)
  To: Chanwoo Choi, Dong Aisheng
  Cc: Linux PM,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
	Sascha Hauer, Shawn Guo, dl-linux-imx, open list, myungjoo.ham,
	kyungmin.park, Abel Vesa

> From: Chanwoo Choi <cw00.choi@samsung.com>
> Sent: Tuesday, March 23, 2021 12:11 PM
> 
> Hi,
> 
> On 3/23/21 12:25 PM, Dong Aisheng wrote:
> > Hi Chanwoo,
> >
> > On Tue, Mar 23, 2021 at 11:13 AM Dong Aisheng <aisheng.dong@nxp.com>
> wrote:
> >>
> >> A few small fixes and improvements
> >>
> >> ChangeLog:
> >> v1->v2:
> >>  * squash a few patches
> >>  * rebase to devfreq-testing
> >
> > I have to rebase to devfreq-testing instead of devfreq-next because
> > below two patches only exist in devfreq-testing.
> > 5cc75e9252e9 (devfreq/devfreq-testing) PM / devfreq: Add
> > devfreq_transitions debugfs file
> > dc9e557845c1 PM / devfreq: Add new up_threshold and down_differential
> > sysfs attrs My patch 5 needs change based on it according to your
> > suggestion. So i have to rebase to that branch.
> >
> > However, i found devfreq-testing can't build with GOV_PASSVIE enabled.
> > Patch 1 fixed it. You can squash to the original one when apply.
> >
> > Please help take a look at this new series.
> 
> Please rebase your patches either devfreq-next or linux-next.git Because
> devfreq-testing branch is not official.

Okay, then how about the patch 5 below?
[PATCH V2 5/6] PM / devfreq: governor: optimize simpleondemand get_target_freq

Should I also rebase it to devfreq-next or drop it first and then resend when your patch
merged into mainline?
https://patchwork.kernel.org/project/linux-arm-kernel/patch/1615294733-22761-10-git-send-email-aisheng.dong@nxp.com/

Regards
Aisheng

> 
> > Thanks
> >
> > Regards
> > Aisheng
> >
> >>  * drop two patches which are already in devfreq-next
> >>
> >> Dong Aisheng (6):
> >>   PM / devfreq: fix build error when DEVFREQ_GOV_PASSIVE enabled
> >>   PM / devfreq: Use more accurate returned new_freq as resume_freq
> >>   PM / devfreq: Remove the invalid description for get_target_freq
> >>   PM / devfreq: bail out early if no freq changes in devfreq_set_target
> >>   PM / devfreq: governor: optimize simpleondemand get_target_freq
> >>   PM / devfreq: imx8m-ddrc: remove imx8m_ddrc_get_dev_status
> >>
> >>  Documentation/ABI/testing/sysfs-class-devfreq |  5 +--
> >>  drivers/devfreq/devfreq.c                     | 37 +++++++------------
> >>  drivers/devfreq/governor.h                    |  2 -
> >>  drivers/devfreq/governor_simpleondemand.c     | 31 ++++++++++------
> >>  drivers/devfreq/imx8m-ddrc.c                  | 14 -------
> >>  5 files changed, 35 insertions(+), 54 deletions(-)
> >>
> >> --
> >> 2.25.1
> >>
> >
> >
> 
> 
> --
> Best Regards,
> Chanwoo Choi
> Samsung Electronics

^ permalink raw reply	[flat|nested] 22+ messages in thread

* RE: [PATCH V2 0/6] PM / devfreq: a few small fixes and improvements
@ 2021-03-23  6:11       ` Aisheng Dong
  0 siblings, 0 replies; 22+ messages in thread
From: Aisheng Dong @ 2021-03-23  6:11 UTC (permalink / raw)
  To: Chanwoo Choi, Dong Aisheng
  Cc: Linux PM,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
	Sascha Hauer, Shawn Guo, dl-linux-imx, open list, myungjoo.ham,
	kyungmin.park, Abel Vesa

> From: Chanwoo Choi <cw00.choi@samsung.com>
> Sent: Tuesday, March 23, 2021 12:11 PM
> 
> Hi,
> 
> On 3/23/21 12:25 PM, Dong Aisheng wrote:
> > Hi Chanwoo,
> >
> > On Tue, Mar 23, 2021 at 11:13 AM Dong Aisheng <aisheng.dong@nxp.com>
> wrote:
> >>
> >> A few small fixes and improvements
> >>
> >> ChangeLog:
> >> v1->v2:
> >>  * squash a few patches
> >>  * rebase to devfreq-testing
> >
> > I have to rebase to devfreq-testing instead of devfreq-next because
> > below two patches only exist in devfreq-testing.
> > 5cc75e9252e9 (devfreq/devfreq-testing) PM / devfreq: Add
> > devfreq_transitions debugfs file
> > dc9e557845c1 PM / devfreq: Add new up_threshold and down_differential
> > sysfs attrs My patch 5 needs change based on it according to your
> > suggestion. So i have to rebase to that branch.
> >
> > However, i found devfreq-testing can't build with GOV_PASSVIE enabled.
> > Patch 1 fixed it. You can squash to the original one when apply.
> >
> > Please help take a look at this new series.
> 
> Please rebase your patches either devfreq-next or linux-next.git Because
> devfreq-testing branch is not official.

Okay, then how about the patch 5 below?
[PATCH V2 5/6] PM / devfreq: governor: optimize simpleondemand get_target_freq

Should I also rebase it to devfreq-next or drop it first and then resend when your patch
merged into mainline?
https://patchwork.kernel.org/project/linux-arm-kernel/patch/1615294733-22761-10-git-send-email-aisheng.dong@nxp.com/

Regards
Aisheng

> 
> > Thanks
> >
> > Regards
> > Aisheng
> >
> >>  * drop two patches which are already in devfreq-next
> >>
> >> Dong Aisheng (6):
> >>   PM / devfreq: fix build error when DEVFREQ_GOV_PASSIVE enabled
> >>   PM / devfreq: Use more accurate returned new_freq as resume_freq
> >>   PM / devfreq: Remove the invalid description for get_target_freq
> >>   PM / devfreq: bail out early if no freq changes in devfreq_set_target
> >>   PM / devfreq: governor: optimize simpleondemand get_target_freq
> >>   PM / devfreq: imx8m-ddrc: remove imx8m_ddrc_get_dev_status
> >>
> >>  Documentation/ABI/testing/sysfs-class-devfreq |  5 +--
> >>  drivers/devfreq/devfreq.c                     | 37 +++++++------------
> >>  drivers/devfreq/governor.h                    |  2 -
> >>  drivers/devfreq/governor_simpleondemand.c     | 31 ++++++++++------
> >>  drivers/devfreq/imx8m-ddrc.c                  | 14 -------
> >>  5 files changed, 35 insertions(+), 54 deletions(-)
> >>
> >> --
> >> 2.25.1
> >>
> >
> >
> 
> 
> --
> Best Regards,
> Chanwoo Choi
> Samsung Electronics
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH V2 0/6] PM / devfreq: a few small fixes and improvements
  2021-03-23  6:11       ` Aisheng Dong
@ 2021-03-23  7:26         ` Chanwoo Choi
  -1 siblings, 0 replies; 22+ messages in thread
From: Chanwoo Choi @ 2021-03-23  7:26 UTC (permalink / raw)
  To: Aisheng Dong, Dong Aisheng
  Cc: Linux PM,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
	Sascha Hauer, Shawn Guo, dl-linux-imx, open list, myungjoo.ham,
	kyungmin.park, Abel Vesa

Hi,

On 3/23/21 3:11 PM, Aisheng Dong wrote:
>> From: Chanwoo Choi <cw00.choi@samsung.com>
>> Sent: Tuesday, March 23, 2021 12:11 PM
>>
>> Hi,
>>
>> On 3/23/21 12:25 PM, Dong Aisheng wrote:
>>> Hi Chanwoo,
>>>
>>> On Tue, Mar 23, 2021 at 11:13 AM Dong Aisheng <aisheng.dong@nxp.com>
>> wrote:
>>>>
>>>> A few small fixes and improvements
>>>>
>>>> ChangeLog:
>>>> v1->v2:
>>>>  * squash a few patches
>>>>  * rebase to devfreq-testing
>>>
>>> I have to rebase to devfreq-testing instead of devfreq-next because
>>> below two patches only exist in devfreq-testing.
>>> 5cc75e9252e9 (devfreq/devfreq-testing) PM / devfreq: Add
>>> devfreq_transitions debugfs file
>>> dc9e557845c1 PM / devfreq: Add new up_threshold and down_differential
>>> sysfs attrs My patch 5 needs change based on it according to your
>>> suggestion. So i have to rebase to that branch.
>>>
>>> However, i found devfreq-testing can't build with GOV_PASSVIE enabled.
>>> Patch 1 fixed it. You can squash to the original one when apply.
>>>
>>> Please help take a look at this new series.
>>
>> Please rebase your patches either devfreq-next or linux-next.git Because
>> devfreq-testing branch is not official.
> 
> Okay, then how about the patch 5 below?
> [PATCH V2 5/6] PM / devfreq: governor: optimize simpleondemand get_target_freq
> 
> Should I also rebase it to devfreq-next or drop it first and then resend when your patch
> merged into mainline?

Yes. Thanks.

[snip]

-- 
Best Regards,
Chanwoo Choi
Samsung Electronics

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH V2 0/6] PM / devfreq: a few small fixes and improvements
@ 2021-03-23  7:26         ` Chanwoo Choi
  0 siblings, 0 replies; 22+ messages in thread
From: Chanwoo Choi @ 2021-03-23  7:26 UTC (permalink / raw)
  To: Aisheng Dong, Dong Aisheng
  Cc: Linux PM,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
	Sascha Hauer, Shawn Guo, dl-linux-imx, open list, myungjoo.ham,
	kyungmin.park, Abel Vesa

Hi,

On 3/23/21 3:11 PM, Aisheng Dong wrote:
>> From: Chanwoo Choi <cw00.choi@samsung.com>
>> Sent: Tuesday, March 23, 2021 12:11 PM
>>
>> Hi,
>>
>> On 3/23/21 12:25 PM, Dong Aisheng wrote:
>>> Hi Chanwoo,
>>>
>>> On Tue, Mar 23, 2021 at 11:13 AM Dong Aisheng <aisheng.dong@nxp.com>
>> wrote:
>>>>
>>>> A few small fixes and improvements
>>>>
>>>> ChangeLog:
>>>> v1->v2:
>>>>  * squash a few patches
>>>>  * rebase to devfreq-testing
>>>
>>> I have to rebase to devfreq-testing instead of devfreq-next because
>>> below two patches only exist in devfreq-testing.
>>> 5cc75e9252e9 (devfreq/devfreq-testing) PM / devfreq: Add
>>> devfreq_transitions debugfs file
>>> dc9e557845c1 PM / devfreq: Add new up_threshold and down_differential
>>> sysfs attrs My patch 5 needs change based on it according to your
>>> suggestion. So i have to rebase to that branch.
>>>
>>> However, i found devfreq-testing can't build with GOV_PASSVIE enabled.
>>> Patch 1 fixed it. You can squash to the original one when apply.
>>>
>>> Please help take a look at this new series.
>>
>> Please rebase your patches either devfreq-next or linux-next.git Because
>> devfreq-testing branch is not official.
> 
> Okay, then how about the patch 5 below?
> [PATCH V2 5/6] PM / devfreq: governor: optimize simpleondemand get_target_freq
> 
> Should I also rebase it to devfreq-next or drop it first and then resend when your patch
> merged into mainline?

Yes. Thanks.

[snip]

-- 
Best Regards,
Chanwoo Choi
Samsung Electronics

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2021-03-23  7:11 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-23  2:59 [PATCH V2 0/6] PM / devfreq: a few small fixes and improvements Dong Aisheng
2021-03-23  2:59 ` Dong Aisheng
2021-03-23  2:59 ` [PATCH V2 1/6] PM / devfreq: fix build error when DEVFREQ_GOV_PASSIVE enabled Dong Aisheng
2021-03-23  2:59   ` Dong Aisheng
2021-03-23  2:59 ` [PATCH V2 2/6] PM / devfreq: Use more accurate returned new_freq as resume_freq Dong Aisheng
2021-03-23  2:59   ` Dong Aisheng
2021-03-23  2:59 ` [PATCH V2 3/6] PM / devfreq: Remove the invalid description for get_target_freq Dong Aisheng
2021-03-23  2:59   ` Dong Aisheng
2021-03-23  2:59 ` [PATCH V2 4/6] PM / devfreq: bail out early if no freq changes in devfreq_set_target Dong Aisheng
2021-03-23  2:59   ` Dong Aisheng
2021-03-23  2:59 ` [PATCH V2 5/6] PM / devfreq: governor: optimize simpleondemand get_target_freq Dong Aisheng
2021-03-23  2:59   ` Dong Aisheng
2021-03-23  2:59 ` [PATCH V2 6/6] PM / devfreq: imx8m-ddrc: remove imx8m_ddrc_get_dev_status Dong Aisheng
2021-03-23  2:59   ` Dong Aisheng
2021-03-23  3:25 ` [PATCH V2 0/6] PM / devfreq: a few small fixes and improvements Dong Aisheng
2021-03-23  3:25   ` Dong Aisheng
2021-03-23  4:11   ` Chanwoo Choi
2021-03-23  4:11     ` Chanwoo Choi
2021-03-23  6:11     ` Aisheng Dong
2021-03-23  6:11       ` Aisheng Dong
2021-03-23  7:26       ` Chanwoo Choi
2021-03-23  7:26         ` Chanwoo Choi

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.