From: Clemens Gruber <clemens.gruber@pqgruber.com>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
linux-pwm@vger.kernel.org, linux-kernel@vger.kernel.org,
Florian Vaussard <florian.vaussard@heig-vd.ch>,
Mika Westerberg <mika.westerberg@linux.intel.com>
Subject: Re: [PATCH 2/2] pwm: pca9685: fix prescaler initialization
Date: Wed, 25 Jan 2017 19:05:10 +0100 [thread overview]
Message-ID: <20170125180510.GA9566@archie.localdomain> (raw)
In-Reply-To: <20170120063907.GA4894@ulmo.ba.sec>
On Fri, Jan 20, 2017 at 07:39:07AM +0100, Thierry Reding wrote:
> On Thu, Jan 19, 2017 at 05:52:10PM +0100, Clemens Gruber wrote:
> > Let's go with this one. I'll spin up a v2 where I calculate the
> > period_ns value from the current prescaler value in the probe function.
>
> This effectively ends up duplicating much of what the atomic API is
> supposed to be doing.
>
> So generally before the atomic API there is no way for the PWM driver
> (and consequently the PWM users) to know what the current setting is.
> That implies that we either can't care about the settings that were
> programmed by some bootloader or that we force the PWM to a setting
> on ->probe().
>
> The result is inconsistent behaviour across drivers, and that's just
> fine for many cases. But for some cases it is really not something that
> we can work with.
>
> So perhaps another possibility would be for this driver to implement the
> atomic API. This should give you the necessary infrastructure to do
> exactly what you want.
Sounds good. I'll work on that.
One oddity remains though:
The chip has one prescaler, so changing the period of one channel
changes the period of all other channels as well.
If somebody configures different periods for each channel, the last one
wins, but the PWM core still stores the period values the user set
initially. Should we update the period in pwm_state of all pwms in the
chip if the period of one pwm is changed?
Then, when the user calls pwm_get_state, the pwm_state would contain the
correct period?
Thanks,
Clemens
next prev parent reply other threads:[~2017-01-25 18:05 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-13 15:52 [PATCH 1/2] pwm: pca9685: fix period change with same duty cycle Clemens Gruber
2016-12-13 15:52 ` [PATCH 2/2] pwm: pca9685: fix prescaler initialization Clemens Gruber
2017-01-18 10:57 ` Thierry Reding
2017-01-18 11:09 ` Andy Shevchenko
2017-01-18 13:53 ` Clemens Gruber
2017-01-18 14:01 ` Andy Shevchenko
2017-01-18 14:25 ` Clemens Gruber
2017-01-19 12:34 ` Andy Shevchenko
2017-01-19 14:49 ` Clemens Gruber
2017-01-19 16:10 ` Andy Shevchenko
2017-01-19 16:52 ` Clemens Gruber
2017-01-19 16:58 ` Andy Shevchenko
2017-01-20 6:39 ` Thierry Reding
2017-01-20 9:58 ` Andy Shevchenko
2017-01-25 18:05 ` Clemens Gruber [this message]
2017-01-13 12:43 ` [PATCH 1/2] pwm: pca9685: fix period change with same duty cycle Clemens Gruber
2017-01-18 10:56 ` Thierry Reding
2017-01-18 11:09 ` Mika Westerberg
2017-01-20 6:44 ` Thierry Reding
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170125180510.GA9566@archie.localdomain \
--to=clemens.gruber@pqgruber.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=florian.vaussard@heig-vd.ch \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pwm@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=thierry.reding@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox