summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlinyuny <linyuny@google.com>2023-08-01 03:36:40 +0000
committerlinyuny <linyuny@google.com>2023-11-29 22:48:00 +0000
commit01cb2f53792eeb68b8f28ac2efc60085893d717e (patch)
treed56898632aa5028ec68744fa15eee0a253ab8abc
parent1e5415d323a6f485a477f0296b5eb4e6463d4c87 (diff)
downloadlwis-01cb2f53792eeb68b8f28ac2efc60085893d717e.tar.gz
Add platform specific part for QOS update based on QOS family
Define QOS update via qos_family_name under platform directory. Cherry pick from other branch for qos interface cleanup purpose: https://b.corp.google.com/issues/308976572#comment2 Bug: 308976572 Change-Id: Ib3a926c9701fc14a0bd41bc99e19b54bc04a2fed Signed-off-by: linyuny <linyuny@google.com> (cherry picked from I4d912ab3d69c2291218b4c909ae06ae7eb56c8ae)
-rw-r--r--lwis_device_dpm.c8
-rw-r--r--lwis_platform.h7
-rw-r--r--platform/anchorage/lwis_platform_anchorage.c6
-rw-r--r--platform/busan/lwis_platform_busan.c6
-rw-r--r--platform/casablanca/lwis_platform_casablanca.c6
5 files changed, 30 insertions, 3 deletions
diff --git a/lwis_device_dpm.c b/lwis_device_dpm.c
index 982949d..cfcdafd 100644
--- a/lwis_device_dpm.c
+++ b/lwis_device_dpm.c
@@ -59,7 +59,9 @@ static int find_bts_block(struct lwis_device *lwis_dev, struct lwis_device *targ
/*
* lwis_dpm_update_qos_with_clock_family: update qos requirement for lwis device with
- * clock family (will deprecate soon).
+ * clock family.
+ * TODO(b/294268791) Function will be merged into platform code
+ * (lwis_dpm_update_qos_with_clock_family).
*/
static int lwis_dpm_update_qos_with_clock_family(struct lwis_device *lwis_dev,
struct lwis_device *target_dev,
@@ -150,8 +152,8 @@ int lwis_dpm_update_qos(struct lwis_device *lwis_dev, struct lwis_qos_setting_v3
// As for qos update, either of qos_family_name or clock_family need set.
if (strlen(qos_setting->qos_family_name) > 0) {
// (TODO: linyuny) Platform Related stuff will be separated into the following CL.
- ret = 0;
- } else if (qos_setting->clock_family != -1) {
+ ret = lwis_platform_dpm_update_qos(lwis_dev, target_dev, qos_setting);
+ } else if (qos_setting->clock_family != CLOCK_FAMILY_INVALID) {
ret = lwis_dpm_update_qos_with_clock_family(lwis_dev, target_dev, qos_setting);
} else {
dev_err(lwis_dev->dev, "Invalid clock family name and clock family %d\n",
diff --git a/lwis_platform.h b/lwis_platform.h
index ad4f75b..51e3021 100644
--- a/lwis_platform.h
+++ b/lwis_platform.h
@@ -57,4 +57,11 @@ int lwis_platform_update_bts(struct lwis_device *lwis_dev, int block, unsigned i
*/
int lwis_plaform_set_default_irq_affinity(unsigned int irq);
+/*
+ * lwis_platform_dpm_update_qos: handles platform-specific parts of
+ * updating qos requirements.
+ */
+int lwis_platform_dpm_update_qos(struct lwis_device *lwis_dev, struct lwis_device *target_dev,
+ struct lwis_qos_setting_v3 *qos_setting);
+
#endif /* LWIS_PLATFORM_H_ */
diff --git a/platform/anchorage/lwis_platform_anchorage.c b/platform/anchorage/lwis_platform_anchorage.c
index b84c98c..d945369 100644
--- a/platform/anchorage/lwis_platform_anchorage.c
+++ b/platform/anchorage/lwis_platform_anchorage.c
@@ -277,6 +277,12 @@ int lwis_platform_update_qos(struct lwis_device *lwis_dev, int value, int32_t cl
return 0;
}
+int lwis_platform_dpm_update_qos(struct lwis_device *lwis_dev, struct lwis_device *target_dev,
+ struct lwis_qos_setting_v3 *qos_setting)
+{
+ return 0;
+}
+
int lwis_platform_remove_qos(struct lwis_device *lwis_dev)
{
struct lwis_platform *platform;
diff --git a/platform/busan/lwis_platform_busan.c b/platform/busan/lwis_platform_busan.c
index 3eb317c..9dae59f 100644
--- a/platform/busan/lwis_platform_busan.c
+++ b/platform/busan/lwis_platform_busan.c
@@ -263,6 +263,12 @@ int lwis_platform_update_qos(struct lwis_device *lwis_dev, int value, int32_t cl
return 0;
}
+int lwis_platform_dpm_update_qos(struct lwis_device *lwis_dev, struct lwis_device *target_dev,
+ struct lwis_qos_setting_v3 *qos_setting)
+{
+ return 0;
+}
+
int lwis_platform_remove_qos(struct lwis_device *lwis_dev)
{
struct lwis_platform *platform;
diff --git a/platform/casablanca/lwis_platform_casablanca.c b/platform/casablanca/lwis_platform_casablanca.c
index 661854d..340d431 100644
--- a/platform/casablanca/lwis_platform_casablanca.c
+++ b/platform/casablanca/lwis_platform_casablanca.c
@@ -247,6 +247,12 @@ int lwis_platform_update_qos(struct lwis_device *lwis_dev, int value, int32_t cl
return 0;
}
+int lwis_platform_dpm_update_qos(struct lwis_device *lwis_dev, struct lwis_device *target_dev,
+ struct lwis_qos_setting_v3 *qos_setting)
+{
+ return 0;
+}
+
int lwis_platform_remove_qos(struct lwis_device *lwis_dev)
{
struct lwis_platform *platform;