diff options
author | 2021-10-27 20:40:17 +0200 | |
---|---|---|
committer | 2021-10-27 20:40:17 +0200 | |
commit | 031eda1840ffd819acbf2c0c1ea7d541d5d647ca (patch) | |
tree | 9286f02a87eeca28f1b7e819125fa43b30e8f5ce | |
parent | Linux 5.15-rc7 (diff) | |
parent | PM / devfreq: Strengthen check for freq_table (diff) | |
download | wireguard-linux-031eda1840ffd819acbf2c0c1ea7d541d5d647ca.tar.xz wireguard-linux-031eda1840ffd819acbf2c0c1ea7d541d5d647ca.zip |
Merge tag 'devfreq-next-for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux
Pull devfreq updates for v5.16 from Chanwoo Choi:
"1. Minor update for exynos-ppmu devfreq-event driver
- Devicetree naming convention requires the device node names
to use hyphens instead of underlines. In order to support
this requirement, changes the code with hyphens.
- Simplify parsing event-type from devicetree without behavior
changes.
2. Strengthen check for freq_table in devfreq core
- Check whether both freq_table is not NULL and size of freq_table
is not zero in order to prevent the error by mistake of devfreq
driver developer.
* tag 'devfreq-next-for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux:
PM / devfreq: Strengthen check for freq_table
devfreq: exynos-ppmu: simplify parsing event-type from DT
devfreq: exynos-ppmu: use node names with hyphens
-rw-r--r-- | drivers/devfreq/devfreq.c | 2 | ||||
-rw-r--r-- | drivers/devfreq/event/exynos-ppmu.c | 12 |
2 files changed, 8 insertions, 6 deletions
diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c index 85faa7a5c7d1..06333d430382 100644 --- a/drivers/devfreq/devfreq.c +++ b/drivers/devfreq/devfreq.c @@ -827,7 +827,7 @@ struct devfreq *devfreq_add_device(struct device *dev, goto err_dev; } - if (!devfreq->profile->max_state && !devfreq->profile->freq_table) { + if (!devfreq->profile->max_state || !devfreq->profile->freq_table) { mutex_unlock(&devfreq->lock); err = set_freq_table(devfreq); if (err < 0) diff --git a/drivers/devfreq/event/exynos-ppmu.c b/drivers/devfreq/event/exynos-ppmu.c index 17ed980d9099..9b849d781116 100644 --- a/drivers/devfreq/event/exynos-ppmu.c +++ b/drivers/devfreq/event/exynos-ppmu.c @@ -94,11 +94,16 @@ static struct __exynos_ppmu_events { PPMU_EVENT(d1-general), PPMU_EVENT(d1-rt), - /* For Exynos5422 SoC */ + /* For Exynos5422 SoC, deprecated (backwards compatible) */ PPMU_EVENT(dmc0_0), PPMU_EVENT(dmc0_1), PPMU_EVENT(dmc1_0), PPMU_EVENT(dmc1_1), + /* For Exynos5422 SoC */ + PPMU_EVENT(dmc0-0), + PPMU_EVENT(dmc0-1), + PPMU_EVENT(dmc1-0), + PPMU_EVENT(dmc1-1), }; static int __exynos_ppmu_find_ppmu_id(const char *edev_name) @@ -561,13 +566,10 @@ static int of_get_devfreq_events(struct device_node *np, * use default if not. */ if (info->ppmu_type == EXYNOS_TYPE_PPMU_V2) { - int id; /* Not all registers take the same value for * read+write data count. */ - id = __exynos_ppmu_find_ppmu_id(desc[j].name); - - switch (id) { + switch (ppmu_events[i].id) { case PPMU_PMNCNT0: case PPMU_PMNCNT1: case PPMU_PMNCNT2: |