[1/9] bios/volt: handle voltage table version 0x50 with 0ed header

Submitted by Karol Herbst on Feb. 29, 2016, 12:42 p.m.


Message ID 1456749738-5145-2-git-send-email-nouveau@karolherbst.de
State New
Headers show
Series "Groundwork for clocking fixes" ( rev: 1 ) in Nouveau

Not browsing as part of any series.

Commit Message

Karol Herbst Feb. 29, 2016, 12:42 p.m.
Some Kepler cards have no usefull header in the voltage table, which means
nouveau has to read the voltages out of the entries directly.

The mask may be bigger than 0x1fffff, but this value is already >2V, so it will
be fine for now.

This patch fixes volting issues on those cards enabling them to switch cstates

Signed-off-by: Karol Herbst <nouveau@karolherbst.de>
 drm/nouveau/nvkm/subdev/bios/volt.c | 3 +++
 1 file changed, 3 insertions(+)

Patch hide | download patch | download mbox

diff --git a/drm/nouveau/nvkm/subdev/bios/volt.c b/drm/nouveau/nvkm/subdev/bios/volt.c
index 6e0a336..fd2776b 100644
--- a/drm/nouveau/nvkm/subdev/bios/volt.c
+++ b/drm/nouveau/nvkm/subdev/bios/volt.c
@@ -142,7 +142,10 @@  nvbios_volt_entry_parse(struct nvkm_bios *bios, int idx, u8 *ver, u8 *len,
 		info->vid     = nvbios_rd08(bios, volt + 0x01) >> 2;
 	case 0x40:
+		break;
 	case 0x50:
+		info->voltage = nvbios_rd32(bios, volt) & 0x001fffff;
+		info->vid     = idx;
 	return volt;