[Nouveau] [Bug 77529] [NVE7] NVS 510 DP-3 output doesn't work

2015-06-14 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=77529

Samuel Pitoiset samuel.pitoi...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WORKSFORME

--- Comment #15 from Samuel Pitoiset samuel.pitoi...@gmail.com ---
Feel free to re-open the issue if the bug still occurs.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


[Nouveau] [Bug 77361] [nve7] nouveau not working on 3.13 linux kernel

2015-06-14 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=77361

Samuel Pitoiset samuel.pitoi...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WORKSFORME

--- Comment #24 from Samuel Pitoiset samuel.pitoi...@gmail.com ---
Feel free to re-open the issue if the bug still occurs.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


[Nouveau] [PATCH 1/2] pm: fix signals/sources for GT200+

2015-06-14 Thread Samuel Pitoiset
Signed-off-by: Samuel Pitoiset samuel.pitoi...@gmail.com
---

This patch should be squashed with pm/nv50: add compute and graphics 
signals/sources.

 drm/nouveau/nvkm/engine/pm/gt200.c | 8 
 drm/nouveau/nvkm/engine/pm/gt215.c | 3 +--
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/drm/nouveau/nvkm/engine/pm/gt200.c 
b/drm/nouveau/nvkm/engine/pm/gt200.c
index 220a027..e92f9c7 100644
--- a/drm/nouveau/nvkm/engine/pm/gt200.c
+++ b/drm/nouveau/nvkm/engine/pm/gt200.c
@@ -26,7 +26,7 @@
 const struct nvkm_specsrc
 gt200_crop_sources[] = {
{ 0x407008, (const struct nvkm_specmux[]) {
-   { 0x7, 0, sel0, true },
+   { 0xf, 0, sel0, true },
{ 0x1f, 16, sel1, true },
{}
}, pgraph_rop0_crop_pm_mux },
@@ -45,7 +45,7 @@ gt200_prop_sources[] = {
 const struct nvkm_specsrc
 gt200_tex_sources[] = {
{ 0x408508, (const struct nvkm_specmux[]) {
-   { 0x3fff, 0, unk0 },
+   { 0xf, 0, unk0 },
{}
}, pgraph_tpc0_tex_unk08 },
{}
@@ -94,7 +94,7 @@ gt200_pm[] = {
{ 0x5d, pc01_vfetch_17, g84_vfetch_sources },
{ 0x5e, pc01_vfetch_18, g84_vfetch_sources },
{ 0x5f, pc01_vfetch_19, g84_vfetch_sources },
- { 0x07, pc01_zcull_00, nv50_zcull_sources },
+   { 0x07, pc01_zcull_00, nv50_zcull_sources },
{ 0x08, pc01_zcull_01, nv50_zcull_sources },
{ 0x09, pc01_zcull_02, nv50_zcull_sources },
{ 0x0a, pc01_zcull_03, nv50_zcull_sources },
@@ -105,7 +105,7 @@ gt200_pm[] = {
{ 0xec, pc01_trailer },
{}
}, nv40_perfctr_func },
-   { 0xe0, (const struct nvkm_specsig[]) {
+   { 0xf0, (const struct nvkm_specsig[]) {
{ 0x55, pc02_crop_00, gt200_crop_sources },
{ 0x56, pc02_crop_01, gt200_crop_sources },
{ 0x57, pc02_crop_02, gt200_crop_sources },
diff --git a/drm/nouveau/nvkm/engine/pm/gt215.c 
b/drm/nouveau/nvkm/engine/pm/gt215.c
index b5542dc..f5eae63 100644
--- a/drm/nouveau/nvkm/engine/pm/gt215.c
+++ b/drm/nouveau/nvkm/engine/pm/gt215.c
@@ -23,10 +23,9 @@
  */
 #include nv40.h
 
-// TODO: check for GT200
 static const struct nvkm_specsrc
 gt215_zcull_sources[] = {
-   { 0x4002ca4, (const struct nvkm_specmux[]) {
+   { 0x402ca4, (const struct nvkm_specmux[]) {
{ 0x7fff, 0, unk0 },
{ 0xff, 24, unk24 },
{}
-- 
2.4.2

___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] [PATCH RFC 05/20] pm: reorganize the nvif interface

2015-06-14 Thread Samuel Pitoiset



On 06/14/2015 04:32 AM, Ben Skeggs wrote:

On 10 June 2015 at 07:53, Samuel Pitoiset samuel.pitoi...@gmail.com wrote:


On 06/09/2015 12:02 AM, Ben Skeggs wrote:

On 8 June 2015 at 06:40, Samuel Pitoiset samuel.pitoi...@gmail.com
wrote:

This commit introduces the NVIF_IOCTL_NEW_V0_PERFMON class which will be
used in order to query domains, signals and sources. This separates the
querying and the counting interface.

Hey Samuel,

I've merged patches 1-4 already, I've got some comments on this one,
but after they're solved I'm happy to merge up to (and including)
patch 18.  Patches 19/20, I need to think about some more.


Hey Ben,

Thanks for reviewing this series so quickly. :-)



Signed-off-by: Samuel Pitoiset samuel.pitoi...@gmail.com
---
   bin/nv_perfmon.c  | 12 ++--
   drm/nouveau/include/nvif/class.h  | 26 --
   drm/nouveau/include/nvif/ioctl.h  |  5 +++--
   drm/nouveau/nvkm/engine/pm/base.c | 38
--
   4 files changed, 57 insertions(+), 24 deletions(-)

diff --git a/bin/nv_perfmon.c b/bin/nv_perfmon.c
index a8c5838..30a3138 100644
--- a/bin/nv_perfmon.c
+++ b/bin/nv_perfmon.c
@@ -600,7 +600,7 @@ main(int argc, char **argv)
  const char *cfg = NULL;
  const char *dbg = error;
  u64 dev = ~0ULL;
-   struct nvif_perfctr_query_v0 args = {};
+   struct nvif_perfmon_query_signal_v0 args = {};
  struct nvif_client *client;
  struct nvif_object object;
  int ret, c, k;
@@ -644,15 +644,14 @@ main(int argc, char **argv)
  }

  ret = nvif_object_init(nvif_object(device), NULL, 0xdeadbeef,
-  NVIF_IOCTL_NEW_V0_PERFCTR,
-  (struct nvif_perfctr_v0) {
-  }, sizeof(struct nvif_perfctr_v0),
object);
+  NVIF_IOCTL_NEW_V0_PERFMON, NULL, 0,
object);
  assert(ret == 0);
  do {
  u32 prev_iter = args.iter;

  args.name[0] = '\0';
-   ret = nvif_mthd(object, NVIF_PERFCTR_V0_QUERY, args,
sizeof(args));
+   ret = nvif_mthd(object, NVIF_PERFMON_V0_QUERY_SIGNAL,
+   args, sizeof(args));
  assert(ret == 0);

  if (prev_iter) {
@@ -663,7 +662,8 @@ main(int argc, char **argv)
  args.iter = prev_iter;
  strncpy(signals[nr_signals - 1], args.name,
  sizeof(args.name));
-   ret = nvif_mthd(object, NVIF_PERFCTR_V0_QUERY,
args, sizeof(args));
+   ret = nvif_mthd(object,
NVIF_PERFMON_V0_QUERY_SIGNAL,
+   args, sizeof(args));
  assert(ret == 0);
  }
  } while (args.iter != 0x);
diff --git a/drm/nouveau/include/nvif/class.h
b/drm/nouveau/include/nvif/class.h
index 64f8b2f..11935a0 100644
--- a/drm/nouveau/include/nvif/class.h
+++ b/drm/nouveau/include/nvif/class.h
@@ -251,6 +251,20 @@ struct gf110_dma_v0 {
* perfmon

**/

+#define NVIF_PERFMON_V0_QUERY_SIGNAL
0x00
+
+struct nvif_perfmon_query_signal_v0 {
+   __u8  version;
+   __u8  pad01[3];
+   __u32 iter;
+   char  name[64];
+};
+
+

+/***
+ * perfctr
+
**/
+
   struct nvif_perfctr_v0 {
  __u8  version;
  __u8  pad01[1];
@@ -259,16 +273,8 @@ struct nvif_perfctr_v0 {
  char  name[4][64];
   };

-#define NVIF_PERFCTR_V0_QUERY
0x00
-#define NVIF_PERFCTR_V0_SAMPLE
0x01
-#define NVIF_PERFCTR_V0_READ
0x02
-
-struct nvif_perfctr_query_v0 {
-   __u8  version;
-   __u8  pad01[3];
-   __u32 iter;
-   char  name[64];
-};
+#define NVIF_PERFCTR_V0_SAMPLE
0x00
+#define NVIF_PERFCTR_V0_READ
0x01

   struct nvif_perfctr_sample {
   };
diff --git a/drm/nouveau/include/nvif/ioctl.h
b/drm/nouveau/include/nvif/ioctl.h
index 4cd8e32..517cd27 100644
--- a/drm/nouveau/include/nvif/ioctl.h
+++ b/drm/nouveau/include/nvif/ioctl.h
@@ -49,8 +49,9 @@ struct nvif_ioctl_new_v0 {
  __u64 token;
  __u32 handle;
   /* these class numbers are made up by us, and not nvidia-assigned */
-#define NVIF_IOCTL_NEW_V0_PERFCTR
0x
-#define NVIF_IOCTL_NEW_V0_CONTROL
0xfffe
+#define NVIF_IOCTL_NEW_V0_PERFMON
0x
+#define NVIF_IOCTL_NEW_V0_PERFCTR
0xfffe
+#define NVIF_IOCTL_NEW_V0_CONTROL
0xfffd

It doesn't matter this time, because we're technically breaking ABI
already anyway and current userspace won't be effected, but best to
avoid changing class numbers like this :)  It's fine this time though.


Sure, since the nvif interface is still not exposed through libdrm, this is
not going to affect 

[Nouveau] [PATCH 2/2] pm: some fixes related to sources

2015-06-14 Thread Samuel Pitoiset
Signed-off-by: Samuel Pitoiset samuel.pitoi...@gmail.com
---

This patch should be squashed with pm: allow the userspace to configure 
sources.

 drm/nouveau/nvkm/engine/pm/base.c | 21 -
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/drm/nouveau/nvkm/engine/pm/base.c 
b/drm/nouveau/nvkm/engine/pm/base.c
index f505a11..7866e22 100644
--- a/drm/nouveau/nvkm/engine/pm/base.c
+++ b/drm/nouveau/nvkm/engine/pm/base.c
@@ -154,6 +154,8 @@ nvkm_perfsrc_enable(struct nvkm_pm *ppm, struct 
nvkm_perfctr *ctr)
 
/* enable the source */
nv_mask(ppm, src-addr, mask, value);
+   nv_debug(ppm, enabled source 0x%08x 0x%08x 0x%08x\n,
+src-addr, mask, value);
}
}
return 0;
@@ -165,6 +167,7 @@ nvkm_perfsrc_disable(struct nvkm_pm *ppm, struct 
nvkm_perfctr *ctr)
struct nvkm_perfdom *dom = NULL;
struct nvkm_perfsig *sig;
struct nvkm_perfsrc *src;
+   u32 mask;
int i, j;
 
for (i = 0; i  4  ctr-signal[i]; i++) {
@@ -178,8 +181,16 @@ nvkm_perfsrc_disable(struct nvkm_pm *ppm, struct 
nvkm_perfctr *ctr)
if (!src)
return -EINVAL;
 
+   /* unset enable bit if needed */
+   mask = 0x;
+   if (src-enable)
+   mask = 0x8000;
+   mask |= (src-mask  src-shift);
+
/* disable the source */
-   nv_mask(ppm, src-addr, src-mask  src-shift, 0);
+   nv_mask(ppm, src-addr, mask, 0);
+   nv_debug(ppm, disabled source 0x%08x 0x%08x\n,
+src-addr, mask);
}
}
return 0;
@@ -309,7 +320,7 @@ nvkm_perfdom_dtor(struct nvkm_object *object)
 }
 
 static int
-nvkm_perfctr_new(struct nvkm_perfdom *dom, int slot,
+nvkm_perfctr_new(struct nvkm_perfdom *dom, int slot, uint8_t domain,
 struct nvkm_perfsig *signal[4], uint64_t source[4][8],
 uint16_t logic_op, struct nvkm_perfctr **pctr)
 {
@@ -323,6 +334,7 @@ nvkm_perfctr_new(struct nvkm_perfdom *dom, int slot,
if (!ctr)
return -ENOMEM;
 
+   ctr-domain   = domain;
ctr-logic_op = logic_op;
ctr-slot = slot;
for (i = 0; i  4; i++) {
@@ -361,7 +373,7 @@ nvkm_perfdom_ctor(struct nvkm_object *parent, struct 
nvkm_object *engine,
 
for (c = 0; c  ARRAY_SIZE(args-v0.ctr); c++) {
struct nvkm_perfsig *sig[4] = {};
-   u64 src[4][8];
+   u64 src[4][8] = {};
 
for (s = 0; s  ARRAY_SIZE(args-v0.ctr[c].signal); s++) {
sig[s] = nvkm_perfsig_find(ppm, args-v0.domain,
@@ -378,11 +390,10 @@ nvkm_perfdom_ctor(struct nvkm_object *parent, struct 
nvkm_object *engine,
}
}
 
-   ret = nvkm_perfctr_new(sdom, c, sig, src,
+   ret = nvkm_perfctr_new(sdom, c, args-v0.domain, sig, src,
   args-v0.ctr[c].logic_op, ctr[c]);
if (ret)
return ret;
-   ctr[c]-domain = args-v0.domain;
}
 
if (!sdom)
-- 
2.4.2

___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


[Nouveau] [Bug 76818] [NVE7] GPU lockup

2015-06-14 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=76818

Samuel Pitoiset samuel.pitoi...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WORKSFORME

--- Comment #11 from Samuel Pitoiset samuel.pitoi...@gmail.com ---
Feel free to re-open the issue if the bug still occurs.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


[Nouveau] [PATCH 1/2] pm/gf100: allow to share GPC, HUB and PART domains

2015-06-14 Thread Samuel Pitoiset
Signed-off-by: Samuel Pitoiset samuel.pitoi...@gmail.com
---
 drm/nouveau/include/nvkm/engine/pm.h   |  2 +-
 drm/nouveau/nvkm/engine/device/gf100.c | 18 +-
 drm/nouveau/nvkm/engine/pm/gf100.c | 22 +-
 drm/nouveau/nvkm/engine/pm/gf100.h | 11 +++
 4 files changed, 34 insertions(+), 19 deletions(-)

diff --git a/drm/nouveau/include/nvkm/engine/pm.h 
b/drm/nouveau/include/nvkm/engine/pm.h
index 82f1c7f..ce5d93e 100644
--- a/drm/nouveau/include/nvkm/engine/pm.h
+++ b/drm/nouveau/include/nvkm/engine/pm.h
@@ -26,7 +26,7 @@ extern struct nvkm_oclass *nv50_pm_oclass;
 extern struct nvkm_oclass *g84_pm_oclass;
 extern struct nvkm_oclass *gt200_pm_oclass;
 extern struct nvkm_oclass *gt215_pm_oclass;
-extern struct nvkm_oclass gf100_pm_oclass;
+extern struct nvkm_oclass *gf100_pm_oclass;
 extern struct nvkm_oclass gk104_pm_oclass;
 extern struct nvkm_oclass gk110_pm_oclass;
 #endif
diff --git a/drm/nouveau/nvkm/engine/device/gf100.c 
b/drm/nouveau/nvkm/engine/device/gf100.c
index 82b38d7..84a6abb 100644
--- a/drm/nouveau/nvkm/engine/device/gf100.c
+++ b/drm/nouveau/nvkm/engine/device/gf100.c
@@ -90,7 +90,7 @@ gf100_identify(struct nvkm_device *device)
device-oclass[NVDEV_ENGINE_CE0] = gf100_ce0_oclass;
device-oclass[NVDEV_ENGINE_CE1] = gf100_ce1_oclass;
device-oclass[NVDEV_ENGINE_DISP   ] =  gt215_disp_oclass;
-   device-oclass[NVDEV_ENGINE_PM ] = gf100_pm_oclass;
+   device-oclass[NVDEV_ENGINE_PM ] = gf100_pm_oclass;
break;
case 0xc4:
device-cname = GF104;
@@ -123,7 +123,7 @@ gf100_identify(struct nvkm_device *device)
device-oclass[NVDEV_ENGINE_CE0] = gf100_ce0_oclass;
device-oclass[NVDEV_ENGINE_CE1] = gf100_ce1_oclass;
device-oclass[NVDEV_ENGINE_DISP   ] =  gt215_disp_oclass;
-   device-oclass[NVDEV_ENGINE_PM ] = gf100_pm_oclass;
+   device-oclass[NVDEV_ENGINE_PM ] = gf100_pm_oclass;
break;
case 0xc3:
device-cname = GF106;
@@ -155,7 +155,7 @@ gf100_identify(struct nvkm_device *device)
device-oclass[NVDEV_ENGINE_MSPPP  ] = gf100_msppp_oclass;
device-oclass[NVDEV_ENGINE_CE0] = gf100_ce0_oclass;
device-oclass[NVDEV_ENGINE_DISP   ] =  gt215_disp_oclass;
-   device-oclass[NVDEV_ENGINE_PM ] = gf100_pm_oclass;
+   device-oclass[NVDEV_ENGINE_PM ] = gf100_pm_oclass;
break;
case 0xce:
device-cname = GF114;
@@ -188,7 +188,7 @@ gf100_identify(struct nvkm_device *device)
device-oclass[NVDEV_ENGINE_CE0] = gf100_ce0_oclass;
device-oclass[NVDEV_ENGINE_CE1] = gf100_ce1_oclass;
device-oclass[NVDEV_ENGINE_DISP   ] =  gt215_disp_oclass;
-   device-oclass[NVDEV_ENGINE_PM ] = gf100_pm_oclass;
+   device-oclass[NVDEV_ENGINE_PM ] = gf100_pm_oclass;
break;
case 0xcf:
device-cname = GF116;
@@ -220,7 +220,7 @@ gf100_identify(struct nvkm_device *device)
device-oclass[NVDEV_ENGINE_MSPPP  ] = gf100_msppp_oclass;
device-oclass[NVDEV_ENGINE_CE0] = gf100_ce0_oclass;
device-oclass[NVDEV_ENGINE_DISP   ] =  gt215_disp_oclass;
-   device-oclass[NVDEV_ENGINE_PM ] = gf100_pm_oclass;
+   device-oclass[NVDEV_ENGINE_PM ] = gf100_pm_oclass;
break;
case 0xc1:
device-cname = GF108;
@@ -252,7 +252,7 @@ gf100_identify(struct nvkm_device *device)
device-oclass[NVDEV_ENGINE_MSPPP  ] = gf100_msppp_oclass;
device-oclass[NVDEV_ENGINE_CE0] = gf100_ce0_oclass;
device-oclass[NVDEV_ENGINE_DISP   ] =  gt215_disp_oclass;
-   device-oclass[NVDEV_ENGINE_PM ] = gf100_pm_oclass;
+   device-oclass[NVDEV_ENGINE_PM ] = gf100_pm_oclass;
break;
case 0xc8:
device-cname = GF110;
@@ -285,7 +285,7 @@ gf100_identify(struct nvkm_device *device)
device-oclass[NVDEV_ENGINE_CE0] = gf100_ce0_oclass;
device-oclass[NVDEV_ENGINE_CE1] = gf100_ce1_oclass;
device-oclass[NVDEV_ENGINE_DISP   ] =  gt215_disp_oclass;
-   device-oclass[NVDEV_ENGINE_PM ] = gf100_pm_oclass;
+   device-oclass[NVDEV_ENGINE_PM ] = gf100_pm_oclass;
break;
case 0xd9:
device-cname = GF119;
@@ -317,7 +317,7 @@ gf100_identify(struct nvkm_device *device)
device-oclass[NVDEV_ENGINE_MSPPP  ] = gf100_msppp_oclass;
device-oclass[NVDEV_ENGINE_CE0] = gf100_ce0_oclass;
device-oclass[NVDEV_ENGINE_DISP   ] =  gf110_disp_oclass;
-   

[Nouveau] [PATCH 2/2] pm/gf100: add compute signals/sources

2015-06-14 Thread Samuel Pitoiset
These signals and sources have been reverse engineered from CUPTI
(Linux). Graphics signals exposed by PerfKit (Windows only) will be
added later. I need to reverse engineer them and it's a bit painful.

This commit also adds a new class for GF108 and GF117.

Signed-off-by: Samuel Pitoiset samuel.pitoi...@gmail.com
---
 drm/nouveau/include/nvkm/engine/pm.h   |  2 +
 drm/nouveau/nvkm/engine/device/gf100.c |  6 +--
 drm/nouveau/nvkm/engine/pm/Kbuild  |  2 +
 drm/nouveau/nvkm/engine/pm/gf100.c | 96 +-
 drm/nouveau/nvkm/engine/pm/gf100.h |  5 ++
 drm/nouveau/nvkm/engine/pm/gf108.c | 84 +
 drm/nouveau/nvkm/engine/pm/gf117.c | 92 
 7 files changed, 282 insertions(+), 5 deletions(-)
 create mode 100644 drm/nouveau/nvkm/engine/pm/gf108.c
 create mode 100644 drm/nouveau/nvkm/engine/pm/gf117.c

diff --git a/drm/nouveau/include/nvkm/engine/pm.h 
b/drm/nouveau/include/nvkm/engine/pm.h
index ce5d93e..ed36daf 100644
--- a/drm/nouveau/include/nvkm/engine/pm.h
+++ b/drm/nouveau/include/nvkm/engine/pm.h
@@ -27,6 +27,8 @@ extern struct nvkm_oclass *g84_pm_oclass;
 extern struct nvkm_oclass *gt200_pm_oclass;
 extern struct nvkm_oclass *gt215_pm_oclass;
 extern struct nvkm_oclass *gf100_pm_oclass;
+extern struct nvkm_oclass *gf108_pm_oclass;
+extern struct nvkm_oclass *gf117_pm_oclass;
 extern struct nvkm_oclass gk104_pm_oclass;
 extern struct nvkm_oclass gk110_pm_oclass;
 #endif
diff --git a/drm/nouveau/nvkm/engine/device/gf100.c 
b/drm/nouveau/nvkm/engine/device/gf100.c
index 84a6abb..65b151d 100644
--- a/drm/nouveau/nvkm/engine/device/gf100.c
+++ b/drm/nouveau/nvkm/engine/device/gf100.c
@@ -252,7 +252,7 @@ gf100_identify(struct nvkm_device *device)
device-oclass[NVDEV_ENGINE_MSPPP  ] = gf100_msppp_oclass;
device-oclass[NVDEV_ENGINE_CE0] = gf100_ce0_oclass;
device-oclass[NVDEV_ENGINE_DISP   ] =  gt215_disp_oclass;
-   device-oclass[NVDEV_ENGINE_PM ] = gf100_pm_oclass;
+   device-oclass[NVDEV_ENGINE_PM ] = gf108_pm_oclass;
break;
case 0xc8:
device-cname = GF110;
@@ -317,7 +317,7 @@ gf100_identify(struct nvkm_device *device)
device-oclass[NVDEV_ENGINE_MSPPP  ] = gf100_msppp_oclass;
device-oclass[NVDEV_ENGINE_CE0] = gf100_ce0_oclass;
device-oclass[NVDEV_ENGINE_DISP   ] =  gf110_disp_oclass;
-   device-oclass[NVDEV_ENGINE_PM ] = gf100_pm_oclass;
+   device-oclass[NVDEV_ENGINE_PM ] = gf117_pm_oclass;
break;
case 0xd7:
device-cname = GF117;
@@ -347,7 +347,7 @@ gf100_identify(struct nvkm_device *device)
device-oclass[NVDEV_ENGINE_MSPPP  ] = gf100_msppp_oclass;
device-oclass[NVDEV_ENGINE_CE0] = gf100_ce0_oclass;
device-oclass[NVDEV_ENGINE_DISP   ] =  gf110_disp_oclass;
-   device-oclass[NVDEV_ENGINE_PM ] = gf100_pm_oclass;
+   device-oclass[NVDEV_ENGINE_PM ] = gf117_pm_oclass;
break;
default:
nv_fatal(device, unknown Fermi chipset\n);
diff --git a/drm/nouveau/nvkm/engine/pm/Kbuild 
b/drm/nouveau/nvkm/engine/pm/Kbuild
index cc01048..4fadf55 100644
--- a/drm/nouveau/nvkm/engine/pm/Kbuild
+++ b/drm/nouveau/nvkm/engine/pm/Kbuild
@@ -5,5 +5,7 @@ nvkm-y += nvkm/engine/pm/g84.o
 nvkm-y += nvkm/engine/pm/gt200.o
 nvkm-y += nvkm/engine/pm/gt215.o
 nvkm-y += nvkm/engine/pm/gf100.o
+nvkm-y += nvkm/engine/pm/gf108.o
+nvkm-y += nvkm/engine/pm/gf117.o
 nvkm-y += nvkm/engine/pm/gk104.o
 nvkm-y += nvkm/engine/pm/gk110.o
diff --git a/drm/nouveau/nvkm/engine/pm/gf100.c 
b/drm/nouveau/nvkm/engine/pm/gf100.c
index 64db47e..b40c218 100644
--- a/drm/nouveau/nvkm/engine/pm/gf100.c
+++ b/drm/nouveau/nvkm/engine/pm/gf100.c
@@ -23,18 +23,110 @@
  */
 #include gf100.h
 
+const struct nvkm_specsrc
+gf100_pmfb_sources[] = {
+   { 0x140028, (const struct nvkm_specmux[]) {
+   { 0x3fff, 0, unk0 },
+   { 0x7, 16, unk16 },
+   { 0x3, 24, unk24 },
+   { 0x2, 29, unk29 },
+   {}
+   }, pmfb0_pm_unk28 },
+   {}
+};
+
+static const struct nvkm_specsrc
+gf100_l1_sources[] = {
+   { 0x5044a8, (const struct nvkm_specmux[]) {
+   { 0x3f, 0, sel, true },
+   {}
+   }, pgraph_gpc0_tpc0_l1_pm_mux },
+   {}
+};
+
+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 

[Nouveau] [Bug 77361] [nve7] nouveau not working on 3.13 linux kernel

2015-06-14 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=77361

--- Comment #25 from sam.halli...@gmail.com ---
Hi,

I got the NVIDIA drivers to work so I haven't looked back. Good luck with
the project, I really wish I could use it instead of the proprietary
drivers. I'm never buying an NVIDIA card by choice.

On 14 June 2015 at 13:04, bugzilla-dae...@freedesktop.org wrote:

  Samuel Pitoiset samuel.pitoi...@gmail.com changed bug 77361
 https://bugs.freedesktop.org/show_bug.cgi?id=77361
  What Removed Added  Status NEW RESOLVED  Resolution --- WORKSFORME

  *Comment # 24 https://bugs.freedesktop.org/show_bug.cgi?id=77361#c24
 on bug 77361 https://bugs.freedesktop.org/show_bug.cgi?id=77361 from
 Samuel Pitoiset samuel.pitoi...@gmail.com *

 Feel free to re-open the issue if the bug still occurs.

  --
 You are receiving this mail because:

- You reported the bug.



-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


[Nouveau] [Bug 90453] [NVE4] Desktop freezes PDISP, PFIFO, PGRAPH and PGR errors

2015-06-14 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=90453

--- Comment #22 from Argyris Megalios argy...@gmail.com ---
I originally added my problem to bug 89912, as my original error message was
not seen here.

kernel: nouveau E[   PFIFO][:01:00.0] write fault at 0x2a [PTE]
from GR/GPC0/PROP_0 on channel 0x007f96c000 [Xorg[383]]
kernel: nouveau E[   PFIFO][:01:00.0] PGR engine fault on channel 2,
recovering...

However, after also getting the following:
kernel: nouveau E[   PFIFO][:01:00.0] SCHED_ERROR [ CTXSW_TIMEOUT ]
kernel: nouveau E[   PFIFO][:01:00.0] PGR engine fault on channel 10,
recovering...

I am inclined to thing the bugs are duplicates.
Now, while playing a game (which actually played fine yesterday) I have had two
consecutive freezes with the message:

kernel: nouveau E[ DRM] GPU lockup - switching to software fbcon

I, too, will be switching to the nvidia driver for the moment, however I will
be happy to assist with any fix tests.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


[Nouveau] [Bug 90871] NV30: Xfwm4 use_compositing - garbled display

2015-06-14 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=90871

--- Comment #10 from poma pomidorabelis...@gmail.com ---
(In reply to poma from comment #9)
 (In reply to poma from comment #5)
 ...
  Interestingly, in contrast to Xorg-1.17.1,
  on Xorg-1.16.3 NV30 can work with 'modesetting':
  
 
 FTR
 Xorg-1.17.1 'modesetting' ist kaputt also with NV50.

Precisely - with 32 bit
https://bugs.freedesktop.org/show_bug.cgi?id=90978

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


[Nouveau] [Bug 90976] New: GM204 (NV124) black screen on modesetting

2015-06-14 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=90976

Bug ID: 90976
   Summary: GM204 (NV124) black screen on modesetting
   Product: xorg
   Version: unspecified
  Hardware: x86-64 (AMD64)
OS: Linux (All)
Status: NEW
  Severity: major
  Priority: high
 Component: Driver/nouveau
  Assignee: nouveau@lists.freedesktop.org
  Reporter: roucaries.bastien+b...@gmail.com
QA Contact: xorg-t...@lists.x.org

Created attachment 116492
  -- https://bugs.freedesktop.org/attachment.cgi?id=116492action=edit
dmesg

Modesetting does not work.

The card is linked to sony bravia TV through HDMI

I achieved to get a trace by blacklisting nouveau then manually load it.
error log here (full dmesg joinded):
[  143.521000] nouveau E[ DRM] Pointer to flat panel table invalid
[  143.525351] nouveau W[ DRM] unknown connector type 70
[  143.525387] nouveau W[ DRM] failed to create encoder 1/8/0: -19
[  143.525388] nouveau W[ DRM] Unknown-1 has no encoders, removing
[  143.525407] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[  143.525407] [drm] Driver supports precise vblank timestamp query.
[  143.525424] nouveau E[ DRM] failed to initialise sync subsystem, -38
[  143.819264] nouveau  [ DRM] allocated 1920x1080 fb: 0x6, bo
8802135d3000

What could I do ?

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau