Samuel Pitoiset
2015-Aug-04 21:58 UTC
[Nouveau] [PATCH 1/4] pm: allow zeroed signals to enable sources
Hardware signals index 0x00 are defined for some domains and they have
to be allowed to enable sources like the others.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
drm/nouveau/nvkm/engine/pm/base.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drm/nouveau/nvkm/engine/pm/base.c
b/drm/nouveau/nvkm/engine/pm/base.c
index 94991d6..48c1ce6 100644
--- a/drm/nouveau/nvkm/engine/pm/base.c
+++ b/drm/nouveau/nvkm/engine/pm/base.c
@@ -134,7 +134,7 @@ nvkm_perfsrc_enable(struct nvkm_pm *ppm, struct nvkm_perfctr
*ctr)
u32 mask, value;
int i, j;
- for (i = 0; i < 4 && ctr->signal[i]; i++) {
+ for (i = 0; i < 4; i++) {
for (j = 0; j < 8 && ctr->source[i][j]; j++) {
sig = nvkm_perfsig_find(ppm, ctr->domain,
ctr->signal[i], &dom);
@@ -170,7 +170,7 @@ nvkm_perfsrc_disable(struct nvkm_pm *ppm, struct
nvkm_perfctr *ctr)
u32 mask;
int i, j;
- for (i = 0; i < 4 && ctr->signal[i]; i++) {
+ for (i = 0; i < 4; i++) {
for (j = 0; j < 8 && ctr->source[i][j]; j++) {
sig = nvkm_perfsig_find(ppm, ctr->domain,
ctr->signal[i], &dom);
--
2.4.6
Samuel Pitoiset
2015-Aug-04 21:58 UTC
[Nouveau] [PATCH 2/4] pm/gf100: remove undefined TEX.PM_UNKC8 mux
This mux only exists on GF108+ (except for GF110 one), but since it is
not used by the userspace we can drop it for now.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
drm/nouveau/nvkm/engine/pm/gf100.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/drm/nouveau/nvkm/engine/pm/gf100.c
b/drm/nouveau/nvkm/engine/pm/gf100.c
index b40c218..37b1636 100644
--- a/drm/nouveau/nvkm/engine/pm/gf100.c
+++ b/drm/nouveau/nvkm/engine/pm/gf100.c
@@ -62,10 +62,6 @@ gf100_tex_sources[] = {
{ 0x7, 8, "sel1", true },
{}
}, "pgraph_gpc0_tpc0_tex_pm_mux_c_d" },
- { 0x5042c8, (const struct nvkm_specmux[]) {
- { 0x1f, 0, "sel", true },
- {}
- }, "pgraph_gpc0_tpc0_tex_pm_unkc8" },
{}
};
--
2.4.6
Samuel Pitoiset
2015-Aug-04 21:58 UTC
[Nouveau] [PATCH 3/4] pm/gf100: remove multiple definitions of GPC_DOM signal 0x0e
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
drm/nouveau/nvkm/engine/pm/gf100.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/drm/nouveau/nvkm/engine/pm/gf100.c
b/drm/nouveau/nvkm/engine/pm/gf100.c
index 37b1636..ab46389 100644
--- a/drm/nouveau/nvkm/engine/pm/gf100.c
+++ b/drm/nouveau/nvkm/engine/pm/gf100.c
@@ -93,11 +93,10 @@ gf100_pm_gpc[] = {
{ 0x0c, "gpc00_tex_02", gf100_tex_sources },
{ 0x0d, "gpc00_tex_03", gf100_tex_sources },
{ 0x0e, "gpc00_tex_04", gf100_tex_sources },
- { 0x0e, "gpc00_tex_05", gf100_tex_sources },
- { 0x0f, "gpc00_tex_06", gf100_tex_sources },
- { 0x10, "gpc00_tex_07", gf100_tex_sources },
- { 0x11, "gpc00_tex_08", gf100_tex_sources },
- { 0x12, "gpc00_tex_09", gf100_tex_sources },
+ { 0x0f, "gpc00_tex_05", gf100_tex_sources },
+ { 0x10, "gpc00_tex_06", gf100_tex_sources },
+ { 0x11, "gpc00_tex_07", gf100_tex_sources },
+ { 0x12, "gpc00_tex_08", gf100_tex_sources },
{ 0x26, "gpc00_unk400_00", gf100_unk400_sources },
{}
}, &gf100_perfctr_func },
--
2.4.6
Samuel Pitoiset
2015-Aug-04 21:58 UTC
[Nouveau] [PATCH 4/4] pm/gf100: only use PBFB_BROADCAST.PM_UNK100 for PBFB signals
High level hardware events related to PBFB will monitor all partitions.
While we are at it, fix bitfield for this mux.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
drm/nouveau/nvkm/engine/pm/gf100.c | 21 ++++++++++-----------
drm/nouveau/nvkm/engine/pm/gf100.h | 2 +-
drm/nouveau/nvkm/engine/pm/gf108.c | 25 ++++---------------------
drm/nouveau/nvkm/engine/pm/gf117.c | 21 ++-------------------
drm/nouveau/nvkm/engine/pm/gk104.c | 4 ++--
5 files changed, 19 insertions(+), 54 deletions(-)
diff --git a/drm/nouveau/nvkm/engine/pm/gf100.c
b/drm/nouveau/nvkm/engine/pm/gf100.c
index ab46389..887d2df 100644
--- a/drm/nouveau/nvkm/engine/pm/gf100.c
+++ b/drm/nouveau/nvkm/engine/pm/gf100.c
@@ -24,6 +24,16 @@
#include "gf100.h"
const struct nvkm_specsrc
+gf100_pbfb_sources[] = {
+ { 0x10f100, (const struct nvkm_specmux[]) {
+ { 0x1, 0, "unk0" },
+ { 0x3f, 4, "unk4" },
+ {}
+ }, "pbfb_broadcast_pm_unk100" },
+ {}
+};
+
+const struct nvkm_specsrc
gf100_pmfb_sources[] = {
{ 0x140028, (const struct nvkm_specmux[]) {
{ 0x3fff, 0, "unk0" },
@@ -45,17 +55,6 @@ gf100_l1_sources[] = {
};
static const struct nvkm_specsrc
-gf100_pbfb_sources[] = {
- { 0x10f100, (const struct nvkm_specmux[]) {
- { 0x1, 0, "unk0" },
- { 0xf, 4, "unk4" },
- { 0x3, 8, "unk8" },
- {}
- }, "pbfb_broadcast_pm_unk100" },
- {}
-};
-
-static const struct nvkm_specsrc
gf100_tex_sources[] = {
{ 0x5042c0, (const struct nvkm_specmux[]) {
{ 0xf, 0, "sel0", true },
diff --git a/drm/nouveau/nvkm/engine/pm/gf100.h
b/drm/nouveau/nvkm/engine/pm/gf100.h
index d73f0ca..3a3a901 100644
--- a/drm/nouveau/nvkm/engine/pm/gf100.h
+++ b/drm/nouveau/nvkm/engine/pm/gf100.h
@@ -26,7 +26,7 @@ int gf100_pm_fini(struct nvkm_object *, bool);
extern const struct nvkm_specdom gf100_pm_gpc[];
+extern const struct nvkm_specsrc gf100_pbfb_sources[];
extern const struct nvkm_specsrc gf100_pmfb_sources[];
-extern const struct nvkm_specsrc gf117_pbfb_sources[];
#endif
diff --git a/drm/nouveau/nvkm/engine/pm/gf108.c
b/drm/nouveau/nvkm/engine/pm/gf108.c
index a74c685..a4d86d1 100644
--- a/drm/nouveau/nvkm/engine/pm/gf108.c
+++ b/drm/nouveau/nvkm/engine/pm/gf108.c
@@ -23,23 +23,6 @@
*/
#include "gf100.h"
-static const struct nvkm_specsrc
-gf108_pbfb_sources[] = {
- { 0x110100, (const struct nvkm_specmux[]) {
- { 0x1, 0, "unk0" },
- { 0xf, 4, "unk4" },
- { 0x3, 8, "unk8" },
- {}
- }, "pbfb0_pm_unk100" },
- { 0x111100, (const struct nvkm_specmux[]) {
- { 0x1, 0, "unk0" },
- { 0xf, 4, "unk4" },
- { 0x3, 8, "unk8" },
- {}
- }, "pbfb1_pm_unk100" },
- {}
-};
-
static const struct nvkm_specdom
gf108_pm_hub[] = {
{}
@@ -48,10 +31,10 @@ gf108_pm_hub[] = {
static const struct nvkm_specdom
gf108_pm_part[] = {
{ 0xe0, (const struct nvkm_specsig[]) {
- { 0x14, "part00_pbfb_00", gf108_pbfb_sources },
- { 0x15, "part00_pbfb_01", gf108_pbfb_sources },
- { 0x20, "part00_pbfb_02", gf108_pbfb_sources },
- { 0x21, "part00_pbfb_03", gf108_pbfb_sources },
+ { 0x14, "part00_pbfb_00", gf100_pbfb_sources },
+ { 0x15, "part00_pbfb_01", gf100_pbfb_sources },
+ { 0x20, "part00_pbfb_02", gf100_pbfb_sources },
+ { 0x21, "part00_pbfb_03", gf100_pbfb_sources },
{ 0x01, "part00_pmfb_00", gf100_pmfb_sources },
{ 0x04, "part00_pmfb_01", gf100_pmfb_sources },
{ 0x05, "part00_pmfb_02", gf100_pmfb_sources},
diff --git a/drm/nouveau/nvkm/engine/pm/gf117.c
b/drm/nouveau/nvkm/engine/pm/gf117.c
index 01d3a48..a76c928 100644
--- a/drm/nouveau/nvkm/engine/pm/gf117.c
+++ b/drm/nouveau/nvkm/engine/pm/gf117.c
@@ -39,23 +39,6 @@ gf117_pmfb_sources[] = {
{}
};
-const struct nvkm_specsrc
-gf117_pbfb_sources[] = {
- { 0x110100, (const struct nvkm_specmux[]) {
- { 0x1, 0, "unk0" },
- { 0xf, 4, "unk4" },
- { 0x3, 8, "unk8" },
- {}
- }, "pbfb0_pm_unk100" },
- { 0x10f100, (const struct nvkm_specmux[]) {
- { 0x1, 0, "unk0" },
- { 0xf, 4, "unk4" },
- { 0x3, 8, "unk8" },
- {}
- }, "pbfb_broadcast_pm_unk100" },
- {}
-};
-
static const struct nvkm_specdom
gf117_pm_hub[] = {
{}
@@ -64,8 +47,8 @@ gf117_pm_hub[] = {
static const struct nvkm_specdom
gf117_pm_part[] = {
{ 0xe0, (const struct nvkm_specsig[]) {
- { 0x00, "part00_pbfb_00", gf117_pbfb_sources },
- { 0x01, "part00_pbfb_01", gf117_pbfb_sources },
+ { 0x00, "part00_pbfb_00", gf100_pbfb_sources },
+ { 0x01, "part00_pbfb_01", gf100_pbfb_sources },
{ 0x12, "part00_pmfb_00", gf117_pmfb_sources },
{ 0x15, "part00_pmfb_01", gf117_pmfb_sources },
{ 0x16, "part00_pmfb_02", gf117_pmfb_sources },
diff --git a/drm/nouveau/nvkm/engine/pm/gk104.c
b/drm/nouveau/nvkm/engine/pm/gk104.c
index 5067f72..a236db9 100644
--- a/drm/nouveau/nvkm/engine/pm/gk104.c
+++ b/drm/nouveau/nvkm/engine/pm/gk104.c
@@ -145,8 +145,8 @@ gk104_pm_gpc[] = {
static const struct nvkm_specdom
gk104_pm_part[] = {
{ 0x60, (const struct nvkm_specsig[]) {
- { 0x00, "part00_pbfb_00", gf117_pbfb_sources },
- { 0x01, "part00_pbfb_01", gf117_pbfb_sources },
+ { 0x00, "part00_pbfb_00", gf100_pbfb_sources },
+ { 0x01, "part00_pbfb_01", gf100_pbfb_sources },
{ 0x0c, "part00_pmfb_00", gk104_pmfb_sources },
{ 0x0d, "part00_pmfb_01", gk104_pmfb_sources },
{ 0x0e, "part00_pmfb_02", gk104_pmfb_sources },
--
2.4.6