On Wed, 27 Feb 2019, Ricardo Neri wrote:
>  int hpet_alloc(struct hpet_data *hdp)
>  {
>       u64 cap, mcfg;
> @@ -845,7 +868,6 @@ int hpet_alloc(struct hpet_data *hdp)
>       size_t siz;
>       struct hpet __iomem *hpet;
>       static struct hpets *last;
> -     unsigned long period;
>       unsigned long long temp;
>       u32 remainder;
>  
> @@ -881,6 +903,8 @@ int hpet_alloc(struct hpet_data *hdp)
>  
>       cap = readq(&hpet->hpet_cap);
>  
> +     temp = hpet_get_ticks_per_sec(cap);

Just putting stuff to random places does not make the code any better.

>       ntimer = ((cap & HPET_NUM_TIM_CAP_MASK) >> HPET_NUM_TIM_CAP_SHIFT) + 1;
>  
>       if (hpetp->hp_ntimer != ntimer) {
> @@ -897,11 +921,6 @@ int hpet_alloc(struct hpet_data *hdp)
>  
>       last = hpetp;
>  
> -     period = (cap & HPET_COUNTER_CLK_PERIOD_MASK) >>
> -             HPET_COUNTER_CLK_PERIOD_SHIFT; /* fs, 10^-15 */
> -     temp = 1000000000000000uLL; /* 10^15 femtoseconds per second */
> -     temp += period >> 1; /* round */
> -     do_div(temp, period);
>       hpetp->hp_tick_freq = temp; /* ticks per second */

What's wrong with the obvious:

       hpetp->hp_tick_freq = hpet_get_ticks_per_sec(cap);

Hmm?

Thanks,

        tglx

Reply via email to