Bladeren bron

drm/nouveau: use static vidshift of 2 on volt 0x30 tables

Explanation is in the commit.  If anyone has an example of where this is
*not* the case, please report it!

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs 14 jaren geleden
bovenliggende
commit
475feffabe
1 gewijzigde bestanden met toevoegingen van 9 en 1 verwijderingen
  1. 9 1
      drivers/gpu/drm/nouveau/nouveau_volt.c

+ 9 - 1
drivers/gpu/drm/nouveau/nouveau_volt.c

@@ -159,8 +159,16 @@ nouveau_volt_init(struct drm_device *dev)
 		headerlen = volt[1];
 		recordlen = volt[2];
 		entries   = volt[3];
-		vidshift  = hweight8(volt[5]);
 		vidmask   = volt[4];
+		/* no longer certain what volt[5] is, if it's related to
+		 * the vid shift then it's definitely not a function of
+		 * how many bits are set.
+		 *
+		 * after looking at a number of nva3+ vbios images, they
+		 * all seem likely to have a static shift of 2.. lets
+		 * go with that for now until proven otherwise.
+		 */
+		vidshift  = 2;
 		break;
 	default:
 		NV_WARN(dev, "voltage table 0x%02x unknown\n", volt[0]);