summaryrefslogtreecommitdiffstats
path: root/drivers/pwm/core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pwm/core.c')
-rw-r--r--drivers/pwm/core.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c
index 3a0967209853..61d15510fdd7 100644
--- a/drivers/pwm/core.c
+++ b/drivers/pwm/core.c
@@ -115,8 +115,8 @@ static int pwm_device_request(struct pwm_device *pwm, const char *label)
}
if (pwm->chip->ops->get_state) {
- pwm->chip->ops->get_state(pwm->chip, pwm, &pwm->state);
- trace_pwm_get(pwm, &pwm->state);
+ err = pwm->chip->ops->get_state(pwm->chip, pwm, &pwm->state);
+ trace_pwm_get(pwm, &pwm->state, err);
if (IS_ENABLED(CONFIG_PWM_DEBUG))
pwm->last = pwm->state;
@@ -458,8 +458,8 @@ static void pwm_apply_state_debug(struct pwm_device *pwm,
* checks.
*/
- chip->ops->get_state(chip, pwm, &s1);
- trace_pwm_get(pwm, &s1);
+ err = chip->ops->get_state(chip, pwm, &s1);
+ trace_pwm_get(pwm, &s1, err);
/*
* The lowlevel driver either ignored .polarity (which is a bug) or as
@@ -515,16 +515,15 @@ static void pwm_apply_state_debug(struct pwm_device *pwm,
/* reapply the state that the driver reported being configured. */
err = chip->ops->apply(chip, pwm, &s1);
+ trace_pwm_apply(pwm, &s1, err);
if (err) {
*last = s1;
dev_err(chip->dev, "failed to reapply current setting\n");
return;
}
- trace_pwm_apply(pwm, &s1);
-
- chip->ops->get_state(chip, pwm, last);
- trace_pwm_get(pwm, last);
+ err = chip->ops->get_state(chip, pwm, last);
+ trace_pwm_get(pwm, last, err);
/* reapplication of the current state should give an exact match */
if (s1.enabled != last->enabled ||
@@ -572,11 +571,10 @@ int pwm_apply_state(struct pwm_device *pwm, const struct pwm_state *state)
return 0;
err = chip->ops->apply(chip, pwm, state);
+ trace_pwm_apply(pwm, state, err);
if (err)
return err;
- trace_pwm_apply(pwm, state);
-
pwm->state = *state;
/*