Browse Source

drm/nouveau/pm: change signal iter to u16

16 bits is large enough to store the maximum number of signals available
for one domain (i.e. 256).

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Samuel Pitoiset 10 years ago
parent
commit
e4047599ae

+ 4 - 3
drivers/gpu/drm/nouveau/include/nvif/class.h

@@ -259,14 +259,15 @@ struct nvif_perfmon_query_domain_v0 {
 	__u8  id;
 	__u8  id;
 	__u8  counter_nr;
 	__u8  counter_nr;
 	__u8  iter;
 	__u8  iter;
-	__u32 signal_nr;
+	__u16 signal_nr;
+	__u8  pad05[2];
 };
 };
 
 
 struct nvif_perfmon_query_signal_v0 {
 struct nvif_perfmon_query_signal_v0 {
 	__u8  version;
 	__u8  version;
 	__u8  domain;
 	__u8  domain;
-	__u8  pad02[2];
-	__u32 iter;
+	__u16 iter;
+	__u8  pad03[4];
 	char  name[64];
 	char  name[64];
 };
 };
 
 

+ 5 - 5
drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c

@@ -45,10 +45,10 @@ nvkm_pm_count_perfdom(struct nvkm_pm *ppm)
 	return domain_nr;
 	return domain_nr;
 }
 }
 
 
-static u32
+static u16
 nvkm_perfdom_count_perfsig(struct nvkm_perfdom *dom)
 nvkm_perfdom_count_perfsig(struct nvkm_perfdom *dom)
 {
 {
-	u32 signal_nr = 0;
+	u16 signal_nr = 0;
 	int i;
 	int i;
 
 
 	if (dom) {
 	if (dom) {
@@ -183,9 +183,9 @@ nvkm_perfmon_mthd_query_signal(struct nvkm_object *object, void *data, u32 size)
 	nv_ioctl(object, "perfmon query signal size %d\n", size);
 	nv_ioctl(object, "perfmon query signal size %d\n", size);
 	if (nvif_unpack(args->v0, 0, 0, false)) {
 	if (nvif_unpack(args->v0, 0, 0, false)) {
 		nv_ioctl(object,
 		nv_ioctl(object,
-			 "perfmon query signal vers %d dom %d iter %08x\n",
+			 "perfmon query signal vers %d dom %d iter %04x\n",
 			 args->v0.version, args->v0.domain, args->v0.iter);
 			 args->v0.version, args->v0.domain, args->v0.iter);
-		si = (args->v0.iter & 0xffffffff) - 1;
+		si = (args->v0.iter & 0xffff) - 1;
 	} else
 	} else
 		return ret;
 		return ret;
 
 
@@ -209,7 +209,7 @@ nvkm_perfmon_mthd_query_signal(struct nvkm_object *object, void *data, u32 size)
 		}
 		}
 	}
 	}
 
 
-	args->v0.iter = 0xffffffff;
+	args->v0.iter = 0xffff;
 	return 0;
 	return 0;
 }
 }
 
 

+ 1 - 1
drivers/gpu/drm/nouveau/nvkm/engine/pm/priv.h

@@ -44,7 +44,7 @@ struct nvkm_perfdom {
 	char name[32];
 	char name[32];
 	u32 addr;
 	u32 addr;
 	u8  quad;
 	u8  quad;
-	u32 signal_nr;
+	u16 signal_nr;
 	struct nvkm_perfsig signal[];
 	struct nvkm_perfsig signal[];
 };
 };