forked from luck/tmp_suning_uos_patched
pwm: Fixes for v3.17-rc2
Just one bugfix for the PWM lookup table code that would cause a PWM channel to be set to the wrong period and polarity for non-perfect matches. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAABAgAGBQJT8cLVAAoJEN0jrNd/PrOhRiQP/10av7t2Ahdn3Qi2imz5j3UO lA73tzU36MEchsNoDkYnLwZik6x/3GYk7QUkPoyMFYcay1Wu/USj5hTuZl2phOtF 9tdqkKosrV7APJfpzfuoj6W2FtKBIV4iaxez+ZrqXXKj4BdKXGFvv72w4xf/EWE9 aPabqg3lvorZY42adqbqH5kbATd61FJPZktwzKfmg7O01Wnp2GL3xCPApq9CsBEQ c7i9TR1ttEQZNM6RRs7auwgRNgbuxFZkXRSP5VFbFb1TB3OMCDcGY+PXab42SYLR ztlUao93jZP9Dz7abIGHcZDgRpj7i6veu09RAH6C1Lr0ovvcTor69LlsgvaWQKKb 8CMiKGpLVF3Sg3wLwrSRgUb7FMNVc/R1lR//BtMMTxFcVNTvxc18Tl41azx3kZEt UobQ3IzpalOlJTj1ADzUwws9alcgnD5hD6SEQJwwuqEzJTB4FeTepnrr4VgAA1oM HU8+TzSdZLV0lDIl43rKj0kZ93ds3i2lM/FU6e0Z4bZT1K53J9a4iQsKJIFy83An bcT0lr1kgBTHoBvSnCLsSB6ZmWZ3rmnQ6kIWv/nfzcQKQdNLMpyEbb1xComM/SOI VjaIf/OaTa9h1QswSS2kYZpOguNiQkzRQtDsH4Pr0UgG7g7A5kofjsaP1VZRjcCq FEFj0Zi+aHYX/UKDNa72 =SmTb -----END PGP SIGNATURE----- Merge tag 'pwm/for-3.17-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm Pull pwm fix from Thierry Reding: "Just one bugfix for the PWM lookup table code that would cause a PWM channel to be set to the wrong period and polarity for non-perfect matches" * tag 'pwm/for-3.17-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: pwm: Fix period and polarity in pwm_get() for non-perfect matches
This commit is contained in:
commit
451fd72219
@ -606,6 +606,8 @@ struct pwm_device *pwm_get(struct device *dev, const char *con_id)
|
||||
unsigned int best = 0;
|
||||
struct pwm_lookup *p;
|
||||
unsigned int match;
|
||||
unsigned int period;
|
||||
enum pwm_polarity polarity;
|
||||
|
||||
/* look up via DT first */
|
||||
if (IS_ENABLED(CONFIG_OF) && dev && dev->of_node)
|
||||
@ -653,6 +655,8 @@ struct pwm_device *pwm_get(struct device *dev, const char *con_id)
|
||||
if (match > best) {
|
||||
chip = pwmchip_find_by_name(p->provider);
|
||||
index = p->index;
|
||||
period = p->period;
|
||||
polarity = p->polarity;
|
||||
|
||||
if (match != 3)
|
||||
best = match;
|
||||
@ -668,8 +672,8 @@ struct pwm_device *pwm_get(struct device *dev, const char *con_id)
|
||||
if (IS_ERR(pwm))
|
||||
return pwm;
|
||||
|
||||
pwm_set_period(pwm, p->period);
|
||||
pwm_set_polarity(pwm, p->polarity);
|
||||
pwm_set_period(pwm, period);
|
||||
pwm_set_polarity(pwm, polarity);
|
||||
|
||||
|
||||
return pwm;
|
||||
|
Loading…
Reference in New Issue
Block a user