lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1484842208.2133.245.camel@linux.intel.com>
Date:   Thu, 19 Jan 2017 18:10:08 +0200
From:   Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
To:     Clemens Gruber <clemens.gruber@...ruber.com>,
        Thierry Reding <thierry.reding@...il.com>
Cc:     linux-pwm@...r.kernel.org, linux-kernel@...r.kernel.org,
        Florian Vaussard <florian.vaussard@...g-vd.ch>,
        Mika Westerberg <mika.westerberg@...ux.intel.com>
Subject: Re: [PATCH 2/2] pwm: pca9685: fix prescaler initialization

On Thu, 2017-01-19 at 15:49 +0100, Clemens Gruber wrote:
> On Thu, Jan 19, 2017 at 02:34:39PM +0200, Andy Shevchenko wrote:
> > On Wed, 2017-01-18 at 15:25 +0100, Clemens Gruber wrote:
> > > Yes, that's what this patch tries to solve by verifying that the
> > > external setting (the prescale register) is set to its hardware
> > > default
> > > value of 0x1E (corresponding to a period of 1/200 Hz).
> > > If it is not 0x1E, the driver will reconfigure the prescaler
> > > according
> > > to the desired period at the time of the next configuration.
> > 
> > Yes, and my question is what is possible go wrong if you just
> > enforce
> > prescaler to be 1/200Hz?
> 
> If we enforce a default of 1 / 200 Hz, we have to go through the SLEEP
> mode and udelay for 0.5ms once for our default and then again for the
> user, if he does not want a period of 1 / 200 Hz.
> -> Number of prescaler changes: 1 or 2
> 
> I think it is better as it is now + my patch applied: We verify if the
> prescaler is already set to 1 / 200 Hz.
> Then, as soon as the user configures his PWM channels, we either do
> not
> have to change the prescaler at all (if he wants 1 / 200 Hz) or do it
> once at the time of configuration.
> -> Number of prescaler changes: 0 or 1
> 
> What's the advantage of enforcing the prescaler to 1 / 200 Hz in the
> probe function when we do not know yet if 1 / 200 Hz is the period the
> user is going to configure?

Advantage of this proposal is to get to known state.
Combining with your proposal I would see the best approach is to set
pca->period_ns accordingly to current prescaler value if you want to.

In your patch I see no benefit, since it's quite unlikely user will want
to have 5ms period among all possibilities.

The 500us delay at the _first_ configuration is not a big deal.

So, summarize, I prefer (in order of preference from high to low):
- enforce default prescaler value based on default period (it's just one
line to write a register)
- calculate default period based on actual prescaler value
- your or similar solution

If you still disagree with that, I rest my case.

-- 
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
Intel Finland Oy

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ