mirror of
https://github.com/armbian/build.git
synced 2025-08-10 13:16:58 +02:00
184 lines
6.4 KiB
Diff
184 lines
6.4 KiB
Diff
From 16be516cd74d7653bbc323aa263de191487519c4 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
|
|
Date: Sat, 27 Nov 2021 07:29:18 +0000
|
|
Subject: [PATCH 29/90] FROMLIST(v1): pwm: meson: Drop always false check from
|
|
.request()
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
In .request() pwm_get_chip_data() returns NULL always since commit
|
|
e926b12c611c ("pwm: Clear chip_data in pwm_put()"). (And if it didn't
|
|
returning 0 would be wrong because then .request() wouldn't reenable
|
|
the clk which the other driver code depends on.)
|
|
|
|
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
|
|
---
|
|
drivers/pwm/pwm-meson.c | 8 +-------
|
|
1 file changed, 1 insertion(+), 7 deletions(-)
|
|
|
|
diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c
|
|
index 3cf3bcf5ddfc..be3c806b57e4 100644
|
|
--- a/drivers/pwm/pwm-meson.c
|
|
+++ b/drivers/pwm/pwm-meson.c
|
|
@@ -120,16 +120,10 @@ static inline struct meson_pwm *to_meson_pwm(struct pwm_chip *chip)
|
|
static int meson_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm)
|
|
{
|
|
struct meson_pwm *meson = to_meson_pwm(chip);
|
|
- struct meson_pwm_channel *channel;
|
|
+ struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm];
|
|
struct device *dev = chip->dev;
|
|
int err;
|
|
|
|
- channel = pwm_get_chip_data(pwm);
|
|
- if (channel)
|
|
- return 0;
|
|
-
|
|
- channel = &meson->channels[pwm->hwpwm];
|
|
-
|
|
if (channel->clk_parent) {
|
|
err = clk_set_parent(channel->clk, channel->clk_parent);
|
|
if (err < 0) {
|
|
--
|
|
2.35.1
|
|
|
|
From 3abd335c1765a2aa6ecfc504574a27d02fc66d07 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
|
|
Date: Sat, 27 Nov 2021 07:30:03 +0000
|
|
Subject: [PATCH 30/90] FROMLIST(v1): pwm: meson: Drop useless check for
|
|
channel data being NULL
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
In meson_pwm_free() the function pwm_get_chip_data() always returns a
|
|
non-NULL pointer because it's only called when the request callback
|
|
succeeded and this callback calls pwm_set_chip_data() in this case.
|
|
|
|
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
|
|
---
|
|
drivers/pwm/pwm-meson.c | 3 +--
|
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
|
|
diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c
|
|
index be3c806b57e4..1fbe54a2abfe 100644
|
|
--- a/drivers/pwm/pwm-meson.c
|
|
+++ b/drivers/pwm/pwm-meson.c
|
|
@@ -148,8 +148,7 @@ static void meson_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm)
|
|
{
|
|
struct meson_pwm_channel *channel = pwm_get_chip_data(pwm);
|
|
|
|
- if (channel)
|
|
- clk_disable_unprepare(channel->clk);
|
|
+ clk_disable_unprepare(channel->clk);
|
|
}
|
|
|
|
static int meson_pwm_calc(struct meson_pwm *meson, struct pwm_device *pwm,
|
|
--
|
|
2.35.1
|
|
|
|
From af595b31dff2af751a53aae0b83de9569c75b238 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
|
|
Date: Sat, 27 Nov 2021 07:31:03 +0000
|
|
Subject: [PATCH 31/90] FROMLIST(v1): pwm: meson: Simplify duplicated
|
|
per-channel tracking
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
The driver tracks per-channel data via struct pwm_device::chip_data and
|
|
struct meson_pwm::channels[]. The latter holds the actual data, the former
|
|
is only a pointer to the latter. So simplify by using struct
|
|
meson_pwm::channels[] consistently.
|
|
|
|
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
|
|
---
|
|
drivers/pwm/pwm-meson.c | 11 ++++++-----
|
|
1 file changed, 6 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c
|
|
index 1fbe54a2abfe..908e314c7c00 100644
|
|
--- a/drivers/pwm/pwm-meson.c
|
|
+++ b/drivers/pwm/pwm-meson.c
|
|
@@ -141,12 +141,13 @@ static int meson_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm)
|
|
return err;
|
|
}
|
|
|
|
- return pwm_set_chip_data(pwm, channel);
|
|
+ return 0;
|
|
}
|
|
|
|
static void meson_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm)
|
|
{
|
|
- struct meson_pwm_channel *channel = pwm_get_chip_data(pwm);
|
|
+ struct meson_pwm *meson = to_meson_pwm(chip);
|
|
+ struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm];
|
|
|
|
clk_disable_unprepare(channel->clk);
|
|
}
|
|
@@ -154,7 +155,7 @@ static void meson_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm)
|
|
static int meson_pwm_calc(struct meson_pwm *meson, struct pwm_device *pwm,
|
|
const struct pwm_state *state)
|
|
{
|
|
- struct meson_pwm_channel *channel = pwm_get_chip_data(pwm);
|
|
+ struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm];
|
|
unsigned int duty, period, pre_div, cnt, duty_cnt;
|
|
unsigned long fin_freq;
|
|
|
|
@@ -217,7 +218,7 @@ static int meson_pwm_calc(struct meson_pwm *meson, struct pwm_device *pwm,
|
|
|
|
static void meson_pwm_enable(struct meson_pwm *meson, struct pwm_device *pwm)
|
|
{
|
|
- struct meson_pwm_channel *channel = pwm_get_chip_data(pwm);
|
|
+ struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm];
|
|
struct meson_pwm_channel_data *channel_data;
|
|
unsigned long flags;
|
|
u32 value;
|
|
@@ -260,8 +261,8 @@ static void meson_pwm_disable(struct meson_pwm *meson, struct pwm_device *pwm)
|
|
static int meson_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
|
|
const struct pwm_state *state)
|
|
{
|
|
- struct meson_pwm_channel *channel = pwm_get_chip_data(pwm);
|
|
struct meson_pwm *meson = to_meson_pwm(chip);
|
|
+ struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm];
|
|
int err = 0;
|
|
|
|
if (!state)
|
|
--
|
|
2.35.1
|
|
|
|
From 5d2b0c8f838a3a7dbf761e5b7fb1fb08f4df5160 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
|
|
Date: Sat, 27 Nov 2021 07:32:18 +0000
|
|
Subject: [PATCH 32/90] FROMLIST(v1): pwm: meson: Drop always false check from
|
|
.apply()
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
The pwm core only calls the apply callback with a valid state pointer,
|
|
so don't repeat this check already done in the core.
|
|
|
|
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
|
|
---
|
|
drivers/pwm/pwm-meson.c | 3 ---
|
|
1 file changed, 3 deletions(-)
|
|
|
|
diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c
|
|
index 908e314c7c00..57112f438c6d 100644
|
|
--- a/drivers/pwm/pwm-meson.c
|
|
+++ b/drivers/pwm/pwm-meson.c
|
|
@@ -265,9 +265,6 @@ static int meson_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
|
|
struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm];
|
|
int err = 0;
|
|
|
|
- if (!state)
|
|
- return -EINVAL;
|
|
-
|
|
if (!state->enabled) {
|
|
if (state->polarity == PWM_POLARITY_INVERSED) {
|
|
/*
|
|
--
|
|
2.35.1
|
|
|