Re: [PATCH v2 08/12] intel-ipu3: params: compute and program ccs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Oct 11, 2017 at 10:29 AM, sakari.ailus@xxxxxxxxxxxxxxx
<sakari.ailus@xxxxxxxxxxxxxxx> wrote:
> On Wed, Oct 11, 2017 at 04:14:37AM +0000, Zhi, Yong wrote:

>> > > +static unsigned int ipu3_css_scaler_get_exp(unsigned int counter,
>> > > +                                           unsigned int divider) {
>> > > +       unsigned int i = 0;
>> > > +
>> > > +       while (counter <= divider / 2) {
>> > > +               divider /= 2;
>> > > +               i++;
>> > > +       }
>> > > +
>> > > +       return i;

>         return (!counter || divider < counter) ?
>                0 : fls(divider / counter) - 1;

Extra division is here (I dunno if counter is always power of 2 but it
doesn't matter for compiler).

Basically above calculates how much bits we need to shift divider to
get it less than counter.

I would consider to use something from log2.h.

Roughly like

if (!counter || divider < counter)
 return 0;
return order_base_2(divider) - order_base_2(counter);

-- 
With Best Regards,
Andy Shevchenko



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux