Re: [PATCH] pwm: Fix period and polarity in pwm_get() for non-perfect matches

From: Geert Uytterhoeven
Date: Mon Aug 18 2014 - 04:38:12 EST


Hi Thierry,

On Mon, Aug 18, 2014 at 10:20 AM, Thierry Reding
<thierry.reding@xxxxxxxxx> wrote:
> Could we achieve the same by storing a pointer to the best match and
> then use that instead of p? Perhaps something like this:
>
> struct pwm_lookup *entry;
>
> ...
>
> if (match > best) {
> chip = pwmchip_find_by_name(p->provider);
> entry = p;
>
> if (match != 3)
> best = match;
> else
> break;
> }
>
> ...
>
> if (chip)
> pwm = pwm_request_from_chip(chip, entry->index,
> con_id ?: dev_id);
> if (IS_ERR(pwm))
> return pwm;
>
> pwm_set_period(pwm, entry->period);
> pwm_set_polarity(pwm, entry->polarity);
>
> ?

That's possible. But that will add complexity, as you have to move the
"mutex_unlock(&pwm_lookup_lock);" after the last user of "entry" again,
and add a goto for the IS_ERR(pwm) case.
So I'm not sure it's worth the effort.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/