[lvc-project] [PATCH v2] drm/mgag200: Apply upper limit for clock variable

Fedor Pchelkin pchelkin at ispras.ru
Thu Nov 14 18:05:42 UTC 2024


On Thu, 14. Nov 17:47, Jocelyn Falempe wrote:
> On 11/11/2024 17:33, Murad Masimov wrote:
> > If the value of the clock variable is higher than 800000, the value of the
> > variable m, which is used as a divisor, will remain zero, because
> > (clock * testp) will be higher than vcomax in every loop iteration, which
> > leads to skipping every iteration and leaving variable m unmodified.
> > 
> > Clamp value of the clock variable between the lower and the upper limits.
> > It should be correct, since there is already a similar lower limit check.
> 
> I don't think it is correct.
> 
> If the clock asked is > 800000, then delta > premitteddelta, and it will
> return -EINVAL.

In many cases when clock is > 800000, the check won't be reached as the
division by "m" variable containing a zero value will have occured just
before.

> With your patch it will instead configure the clock to 800000 which is too
> low for the mode asked and will result in corrupted output.

Worth moving the check just after the loop or e.g. explicitly denying
clocks > 800000 at the beginning of the function?


More information about the dri-devel mailing list