Re: [PATCH] drm/mgag200: Initialize delta variable in PLL compute function

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

 



Hi

Am 17.08.21 um 21:50 schrieb Daniel Vetter:
On Tue, Aug 17, 2021 at 8:16 PM Thomas Zimmermann <tzimmermann@xxxxxxx> wrote:

Initialize delta variable in PLL compute function for G200SE, rev 00 to
the maximum value. Fixes uninitialized usage.

   smatch warnings:
   drivers/gpu/drm/mgag200/mgag200_pll.c:142 mgag200_pixpll_compute_g200se_00() \
   error: uninitialized symbol 'delta'.

Signed-off-by: Thomas Zimmermann <tzimmermann@xxxxxxx>
Fixes: 2545ac960364 ("drm/mgag200: Abstract pixel PLL via struct mgag200_pll")
Reported-by: kernel test robot <lkp@xxxxxxxxx>
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Cc: Thomas Zimmermann <tzimmermann@xxxxxxx>
Cc: Sam Ravnborg <sam@xxxxxxxxxxxx>
Cc: Dave Airlie <airlied@xxxxxxxxxx>
Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx

Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>

I checked a bit your integer types, and there's a fair bit of
inconsistency for what you're using for clock. unsigned int, long, int
can all be found somewhere. But that's  different story.

Better not look at the PLL code if you value your eyesight. I untangled the computation of the values from the register setup, but I don't dare to change the algorithms.

In principle, most devices should be able to share a single algorithm for computing the values and writing them out. But somehow they all differ. Maybe some minimal cleanup can be done. Without actual HW for testing, I'd rather not touch the logic.

Best regards
Thomas

-Daniel

---
  drivers/gpu/drm/mgag200/mgag200_pll.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/mgag200/mgag200_pll.c b/drivers/gpu/drm/mgag200/mgag200_pll.c
index 7c903cf19c0d..e9ae22b4f813 100644
--- a/drivers/gpu/drm/mgag200/mgag200_pll.c
+++ b/drivers/gpu/drm/mgag200/mgag200_pll.c
@@ -124,6 +124,7 @@ static int mgag200_pixpll_compute_g200se_00(struct mgag200_pll *pixpll, long clo
         unsigned int computed;

         m = n = p = s = 0;
+       delta = 0xffffffff;
         permitteddelta = clock * 5 / 1000;

         for (testp = 8; testp > 0; testp /= 2) {
--
2.32.0




--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux