On Thu, June 25, 2020 1:28 AM, Uwe Kleine-König
> On Wed, Jun 24, 2020 at 03:39:52PM +0000, Roy Im wrote:
> > On Wed, Jun 24, 2020 at 10:37 PM, Uwe Kleine-König wrote:
> > > On Wed, Jun 24, 2020 at 12:04:24PM +0900, Roy Im wrote:
> > > >                 period2freq = 1000000 / state.period;
> > > >                 if (period2freq < DA7280_MIN_PWM_FREQ_KHZ ||
> > > >                     period2freq > DA7280_MAX_PWM_FREQ_KHZ) {
> > > >                         dev_err(dev, "Unsupported PWM frequency (%u)\n",
> > > >                                 period2freq);
> > > >                         return -EINVAL;
> > > >                 }
> > > > If you look ok, let me update this so.
> > >
> > > looks fine.
> > >
> > > Note that you don't need the division if you check for:
> > >
> > >   if (state.period > 100000 || state.period < 4000) {
> > >           ...
> > >
> > > (maybe the compiler is already clever enough to get rid of the division 
> > > for you, but then the check is:
> > >
> > >   if (state.period > 100000 || state.period < 3985) {
> > >
> > > because of rounding errors.)
> >
> > OK, you are right, that will be better. So let me change that as below
> > if you look fine.
> 
> I look fine, the code however is wrong. :-)
> 
> >     /* Check PWM period, PWM freq = 1000000 / state.period.
> >      * The valid PWM freq range: 10k ~ 250kHz.
> >      */
> >     if (state.period > 100000 || state.period < 3985) {
> 
> You want 4000 here ---------------------------------^^^^, don't you?

Yes, it is now based on period, not frequency. You are right.
4000 is correct now. Thanks.

> 
> >             dev_err(dev, "Unsupported PWM period (%u)\n",
> >                     state.period);
> >             return -EINVAL;
> >     }
> 
> Best regards
> Uwe
> 
> --
> Pengutronix e.K.                           | Uwe Kleine-König            |
> Industrial Linux Solutions                 | https://www.pengutronix.de/ |

Reply via email to