瀏覽代碼

drm/nouveau/mc: implement support for PTOP reset info

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs 9 年之前
父節點
當前提交
583f8e4ea2
共有 1 個文件被更改,包括 9 次插入6 次删除
  1. 9 6
      drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c

+ 9 - 6
drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c

@@ -24,6 +24,7 @@
 #include "priv.h"
 
 #include <core/option.h>
+#include <subdev/top.h>
 
 void
 nvkm_mc_unk260(struct nvkm_mc *mc, u32 data)
@@ -82,12 +83,14 @@ nvkm_mc_reset_(struct nvkm_mc *mc, enum nvkm_devidx devidx)
 {
 	struct nvkm_device *device = mc->subdev.device;
 	const struct nvkm_mc_map *map;
-	u64 pmc_enable = 0;
-
-	for (map = mc->func->reset; map && map->stat; map++) {
-		if (map->unit == devidx) {
-			pmc_enable = map->stat;
-			break;
+	u64 pmc_enable;
+
+	if (!(pmc_enable = nvkm_top_reset(device->top, devidx))) {
+		for (map = mc->func->reset; map && map->stat; map++) {
+			if (map->unit == devidx) {
+				pmc_enable = map->stat;
+				break;
+			}
 		}
 	}