[Nouveau] [Bug 27501] MacBook Pro 5, x unable to boot [NV96 + NVAC]

2014-12-02 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27501

Pierre Moreau pierre.mor...@free.fr changed:

   What|Removed |Added

 Attachment #107262|0   |1
is obsolete||

--- Comment #58 from Pierre Moreau pierre.mor...@free.fr ---
Created attachment 110350
  -- https://bugs.freedesktop.org/attachment.cgi?id=110350action=edit
[Patch] Fix acceleration on 9400M v4

This should be the final verson of this patch, thanks to answers given by the
Nvidia guys.

Please check that you can use the NVAC with acceleration. If you want to start
X or power off the NV96 (if you have one), you will either need to deactivate
acceleration for it (noaccel=:02:00.0) or use the trick describe by l3iggs
**before** loading Nouveau.

-- 
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 72180] [NVE6] Random GPU Lockups, works with blob PGRAPH fw

2014-12-02 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=72180

--- Comment #39 from Cedric Brandenbourger ced...@brandenbourger.lu ---
I also have this random GPU lookups on my GT660.
I tried to get the proprietary PGRAPH working, but without success.
Im'getting an error at boot:

Failed to loader firmware with error -2
Fallback to user helper

Im'using UEFI on debian jessie.
I've tried to howto in this forum

-- 
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 72180] [NVE6] Random GPU Lockups, works with blob PGRAPH fw

2014-12-02 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=72180

--- Comment #40 from Matthias Nagel matthias.h.na...@gmail.com ---
@Cedric: Well this means, that the kernel could not find the firmware. There
are several ways how to do it and it depends on wether you have a initramfs or
not, if the kernel has access to /lib/fimware when it tries to load the fw, if
the the fw is directly included in the kernel or not, if you use an additional
boot manager, etc. With UEFI: Does your UEFI directly load the Linux kernel or
is there a boot manager in between. For example, I use rEFInd as boot
manager, but I guess Debian uses grub2 by default.

My setup is the following:
(a) Boot manager rEFInd
(b) No initramfs
(c) FW directly included in kernel. This requires CONFIG_FIRMWARE_IN_KERNEL=y
and CONFIG_EXTRA_FIRMWARE=\nouveau/...\ to be set.

In my experience, putting the fw directly into the kernel is the easiest way,
because one does not need to bother with correct pathes and mount points during
boot. Unfortunately, I cannot give you more detailed advices, because I turned
my back to Debian long time ago.

-- 
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


Re: [Nouveau] demmio

2014-12-02 Thread Ilia Mirkin
On Tue, Dec 2, 2014 at 8:38 AM, poma pomidorabelis...@gmail.com wrote:
 Is this expected result for Chipset: G98 (NV98)?

Yep, 100% expected. [Perhaps you might glance at the wiki page you got
that from for clues as to why.]


 $ modinfo nvidia -F version
 304.123

 $ stat -c %s mmiotrace.log
 134659197

 $ file mmiotrace.log
 mmiotrace.log: ASCII text

 $ grep -i lost mmiotrace.log ; echo $?
 1

 $ ./envytools/rnn/demmio -f mmiotrace.log | perl -e 'open($fh409c, 
 fuc409c); open($fh409d, fuc409d); open($fh41ac, fuc41ac); 
 open($fh41ad, fuc41ad);%m = (0x409184 = $fh409c, 0x4091c4 = $fh409d, 
 0x41a184 = $fh41ac, 0x41a1c4 = $fh41ad);while () { exit if 
 (/0x409840/); next if (!/W (0x4(?:09|1a)1[c8]4) .* = (?:.*0x)?(.*)/); print 
 { $m{$1} } pack I, hex($2);}'
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!

 $ file fuc4*
 fuc409c: empty
 fuc409d: empty
 fuc41ac: empty
 fuc41ad: empty


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


Re: [Nouveau] demmio

2014-12-02 Thread poma
On 02.12.2014 14:40, Ilia Mirkin wrote:
 On Tue, Dec 2, 2014 at 8:38 AM, poma pomidorabelis...@gmail.com wrote:
 Is this expected result for Chipset: G98 (NV98)?
 
 Yep, 100% expected. [Perhaps you might glance at the wiki page you got
 that from for clues as to why.]
 

  You basically never need to do the mmiotrace, unless you're a nouveau 
developer.?

I did everything by the book[1].
Though I don't need this, I still wanted to see how it works with 
'nouveau.config=NvGrUseFW=1'.
Bummer.


[1] https://wiki.ubuntu.com/X/MMIOTracing



 $ modinfo nvidia -F version
 304.123

 $ stat -c %s mmiotrace.log
 134659197

 $ file mmiotrace.log
 mmiotrace.log: ASCII text

 $ grep -i lost mmiotrace.log ; echo $?
 1

 $ ./envytools/rnn/demmio -f mmiotrace.log | perl -e 'open($fh409c, 
 fuc409c); open($fh409d, fuc409d); open($fh41ac, fuc41ac); 
 open($fh41ad, fuc41ad);%m = (0x409184 = $fh409c, 0x4091c4 = 
 $fh409d, 0x41a184 = $fh41ac, 0x41a1c4 = $fh41ad);while () { exit if 
 (/0x409840/); next if (!/W (0x4(?:09|1a)1[c8]4) .* = (?:.*0x)?(.*)/); print 
 { $m{$1} } pack I, hex($2);}'
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!
 I don't know which chipset variant to use!

 $ file fuc4*
 fuc409c: empty
 fuc409d: empty
 fuc41ac: empty
 fuc41ad: empty


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

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


Re: [Nouveau] demmio

2014-12-02 Thread Ilia Mirkin
On Tue, Dec 2, 2014 at 8:50 AM, poma pomidorabelis...@gmail.com wrote:
 On 02.12.2014 14:40, Ilia Mirkin wrote:
 On Tue, Dec 2, 2014 at 8:38 AM, poma pomidorabelis...@gmail.com wrote:
 Is this expected result for Chipset: G98 (NV98)?

 Yep, 100% expected. [Perhaps you might glance at the wiki page you got
 that from for clues as to why.]


   You basically never need to do the mmiotrace, unless you're a nouveau 
 developer.?

 I did everything by the book[1].
 Though I don't need this, I still wanted to see how it works with 
 'nouveau.config=NvGrUseFW=1'.
 Bummer.

You don't just not need it -- you can't possibly use it. Context
switching firmware of this sort only exists on nvc0+ (fermi and
newer). As the page you got the instructions from suggests
(NVC0_Firmware).

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


Re: [Nouveau] demmio

2014-12-02 Thread poma
On 02.12.2014 14:52, Ilia Mirkin wrote:
 On Tue, Dec 2, 2014 at 8:50 AM, poma pomidorabelis...@gmail.com wrote:
 On 02.12.2014 14:40, Ilia Mirkin wrote:
 On Tue, Dec 2, 2014 at 8:38 AM, poma pomidorabelis...@gmail.com wrote:
 Is this expected result for Chipset: G98 (NV98)?

 Yep, 100% expected. [Perhaps you might glance at the wiki page you got
 that from for clues as to why.]


   You basically never need to do the mmiotrace, unless you're a nouveau 
 developer.?

 I did everything by the book[1].
 Though I don't need this, I still wanted to see how it works with 
 'nouveau.config=NvGrUseFW=1'.
 Bummer.
 
 You don't just not need it -- you can't possibly use it. Context
 switching firmware of this sort only exists on nvc0+ (fermi and
 newer). As the page you got the instructions from suggests
 (NVC0_Firmware).
 
   -ilia
 

AHA! Maxwell and Maxwell only.
Bummer.



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


[Nouveau] [Bug 27501] MacBook Pro 5, x unable to boot [NV96 + NVAC]

2014-12-02 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27501

--- Comment #59 from l3iggs j...@greyltc.com ---
(In reply to Pierre Moreau from comment #58)
 Created attachment 110350 [details] [review]
 [Patch] Fix acceleration on 9400M v4
 
 This should be the final verson of this patch, thanks to answers given by
 the Nvidia guys.
 
 Please check that you can use the NVAC with acceleration. If you want to
 start X or power off the NV96 (if you have one), you will either need to
 deactivate acceleration for it (noaccel=:02:00.0) or use the trick
 describe by l3iggs **before** loading Nouveau.

Thanks very much for your work on this Pierre (and thanks to your Nvidia
contacts too). With your previous patch, my NVAC was able to start a fully
accelerated gnome session via X, although it was very unstable and was quite
unusable (however, weston seemed to work fine for me with that patch). With
this latest patch, things seem quite stable. I'm writing this from a
google-chrome browser in gnome-shell/X and generally things seem to be working
so far.

~l3iggs

-- 
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 86935] New: unknown kepler chipset

2014-12-02 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=86935

Bug ID: 86935
   Summary: unknown kepler chipset
   Product: xorg
   Version: unspecified
  Hardware: Other
OS: All
Status: NEW
  Severity: normal
  Priority: medium
 Component: Driver/nouveau
  Assignee: nouveau@lists.freedesktop.org
  Reporter: sven.koeh...@gmail.com
QA Contact: xorg-t...@lists.x.org

With Linux 3.17.4, I get the following errors in dmesg:

nouveau ![  DEVICE][:01:00.0] unknown Kepler chipset
nouveau E[  DEVICE][:01:00.0] unknown chipset, 0xb06070b1
nouveau E[ DRM] failed to create 0x0080, -22
nouveau: probe of :01:00.0 failed with error -22

Obviously, I don't have a framebuffer console during boot and of course
nouveau-based X also doesn't work. I'm currently using uvesafb as a workaround.

lspci -v output:

01:00.0 VGA compatible controller: NVIDIA Corporation GK208 [GeForce GT 730]
(rev a1) (prog-if 00 [VGA controller])
Subsystem: CardExpert Technology Device 1287
Flags: bus master, fast devsel, latency 0, IRQ 11
Memory at f600 (32-bit, non-prefetchable) [size=16M]
Memory at e800 (64-bit, prefetchable) [size=128M]
Memory at f000 (64-bit, prefetchable) [size=32M]
I/O ports at e000 [size=128]
Expansion ROM at f700 [disabled] [size=512K]
Capabilities: [60] Power Management version 3
Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [78] Express Legacy Endpoint, MSI 00
Capabilities: [100] Virtual Channel
Capabilities: [128] Power Budgeting ?
Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 ?
Kernel modules: nouveau

I have no additional details on the card. It came with an HP office PC.

-- 
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 86935] [NV106] unknown kepler chipset 0x106

2014-12-02 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=86935

Ilia Mirkin imir...@alum.mit.edu changed:

   What|Removed |Added

Summary|unknown kepler chipset  |[NV106] unknown kepler
   ||chipset 0x106

--- Comment #1 from Ilia Mirkin imir...@alum.mit.edu ---
Yeah, these are the funky GK208B's (often marketed as GT 720?). You can try
adding 0x106 right above case 0x108 in
drivers/gpu/drm/nouveau/core/engine/device/nve0.c -- they should be identical
or at least similar.

If that doesn't work, please append a dmesg here (after the patch) and send a
mmiotrace of the blob + vbios to mmio.du...@gmail.com -- good guide available
at https://wiki.ubuntu.com/X/MMIOTracing

-- 
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 86935] [NV106] unknown kepler chipset 0x106

2014-12-02 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=86935

--- Comment #2 from Sven sven.koeh...@gmail.com ---
Created attachment 110361
  -- https://bugs.freedesktop.org/attachment.cgi?id=110361action=edit
the patch proposed in the previous comment

Adding 0x106 seems to have worked. I can now boot with nouveau framebuffer and
nouveau Xorg driver also works.

-- 
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 86935] [NV106] unknown kepler chipset 0x106

2014-12-02 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=86935

--- Comment #3 from Sven sven.koeh...@gmail.com ---
Will this patch be included in 3.18 (a bit late I guess) or maybe 3.19?

-- 
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 86935] [NV106] unknown kepler chipset 0x106

2014-12-02 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=86935

--- Comment #4 from Ilia Mirkin imir...@alum.mit.edu ---
(In reply to Sven from comment #2)
 Created attachment 110361 [details] [review]
 the patch proposed in the previous comment
 
 Adding 0x106 seems to have worked. I can now boot with nouveau framebuffer
 and nouveau Xorg driver also works.

Awesome. Please confirm that you're using the nouveau 3d driver (you'll need at
least mesa 10.2). Try running some semi-stressing 3d thing too? Not sure if you
use gnome-shell or something. [glxgears isn't really enough, although it's a
start.]

Also, I think it'd still be nice if you could provide a mmiotrace of the blob,
the chip could have different golden init values, and other small differences.

As for the patch, change it so that the 0x106 case gets a full copy of the
0x108 stuff, and call it GK208B in the name string, and send it as a proper
patch (with git format-patch) to nouveau@lists.freedesktop.org .

-- 
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 86935] [NV106] unknown kepler chipset 0x106

2014-12-02 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=86935

--- Comment #5 from Sven sven.koeh...@gmail.com ---
I will try to do the mmiotrace of the blob. Problem is, that the binary nvidia
drivers gives me a kernel OOPS. Yay!

Also, while I can make the changes to the kernel source, I'm not really sure
what you're asking from me regarding the git format-patch. I'm not really an
experienced git user yet.

-- 
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 86935] [NV106] unknown kepler chipset 0x106

2014-12-02 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=86935

--- Comment #6 from Ilia Mirkin imir...@alum.mit.edu ---
(In reply to Sven from comment #5)
 I will try to do the mmiotrace of the blob. Problem is, that the binary
 nvidia drivers gives me a kernel OOPS. Yay!

D'oh! Maybe try a newer driver? If it oopses later rather than on load/X
start, then that should be enough for a mmiotrace.

 
 Also, while I can make the changes to the kernel source, I'm not really sure
 what you're asking from me regarding the git format-patch. I'm not really an
 experienced git user yet.

Step 1: get a git checkout
Step 2: Make changes
Step 3: git commit -a [pops up editor window, enter in a commit log, subject on
first line, blank line, then longer description as necessary, and your sign
off]
Step 4: git format-patch HEAD^..
Step 5: review the foo.patch file that's generated
Step 6: git send-email --to 'nouveau@lists.freedesktop.org' foo.patch [or send
it as an email in some other way, just make sure that way preserves little
details like tabs]

-- 
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 RESEND] nv50/ir: use unordered_set instead of list to keep track of var defs

2014-12-02 Thread Tobias Klausmann
The set of variable defs does not need to be ordered in any way, and
removing/adding elements is a fairly common operation in various
optimization passes.

This shortens runtime of piglit test fp-long-alu to ~11s from ~22s
No piglit regressions observed on nvc0!

Signed-off-by: Tobias Klausmann tobias.johannes.klausm...@mni.thm.de
---
 src/gallium/drivers/nouveau/codegen/nv50_ir.cpp|  4 ++--
 src/gallium/drivers/nouveau/codegen/nv50_ir.h  |  7 +++---
 .../drivers/nouveau/codegen/nv50_ir_inlines.h  | 28 +-
 .../nouveau/codegen/nv50_ir_lowering_nv50.cpp  |  4 ++--
 .../nouveau/codegen/nv50_ir_lowering_nvc0.cpp  |  6 ++---
 .../drivers/nouveau/codegen/nv50_ir_peephole.cpp   |  4 ++--
 src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp | 17 +++--
 7 files changed, 38 insertions(+), 32 deletions(-)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp 
b/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp
index ca3c806..3138118 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp
@@ -154,9 +154,9 @@ ValueDef::set(Value *defVal)
if (value == defVal)
   return;
if (value)
-  value-defs.remove(this);
+  value-defs.erase(this);
if (defVal)
-  defVal-defs.push_back(this);
+  defVal-defs.insert(this);
 
value = defVal;
 }
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir.h 
b/src/gallium/drivers/nouveau/codegen/nv50_ir.h
index 0ff5e5d..56033f1 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir.h
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir.h
@@ -567,6 +567,7 @@ public:
 
inline Value *rep() const { return join; }
 
+   inline Instruction *getUniqueInsnMerged() const;
inline Instruction *getUniqueInsn() const;
inline Instruction *getInsn() const; // use when uniqueness is certain
 
@@ -583,11 +584,11 @@ public:
static inline Value *get(Iterator);
 
std::tr1::unordered_setValueRef * uses;
-   std::listValueDef * defs;
+   std::tr1::unordered_setValueDef * defs;
typedef std::tr1::unordered_setValueRef *::iterator UseIterator;
typedef std::tr1::unordered_setValueRef *::const_iterator UseCIterator;
-   typedef std::listValueDef *::iterator DefIterator;
-   typedef std::listValueDef *::const_iterator DefCIterator;
+   typedef std::tr1::unordered_setValueDef *::iterator DefIterator;
+   typedef std::tr1::unordered_setValueDef *::const_iterator DefCIterator;
 
int id;
Storage reg;
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_inlines.h 
b/src/gallium/drivers/nouveau/codegen/nv50_ir_inlines.h
index 255324f..471d47f 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_inlines.h
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_inlines.h
@@ -205,21 +205,26 @@ const LValue *ValueDef::preSSA() const
 
 Instruction *Value::getInsn() const
 {
-   return defs.empty() ? NULL : defs.front()-getInsn();
+   return defs.empty() ? NULL : (*defs.begin())-getInsn();
 }
 
-Instruction *Value::getUniqueInsn() const
+Instruction *Value::getUniqueInsnMerged() const
 {
if (defs.empty())
   return NULL;
+   /* It is not guaranteed that this is the first in the set, lets find it */
+   for (DefCIterator it = defs.begin(); it != defs.end(); ++it)
+  if ((*it)-get() == this)
+ return (*it)-getInsn();
+   /* We should never hit this assert */
+   assert(0);
+   return NULL;
+}
 
-   // after regalloc, the definitions of coalesced values are linked
-   if (join != this) {
-  for (DefCIterator it = defs.begin(); it != defs.end(); ++it)
- if ((*it)-get() == this)
-return (*it)-getInsn();
-  // should be unreachable and trigger assertion at the end
-   }
+Instruction *Value::getUniqueInsn() const
+{
+   if (defs.empty())
+  return NULL;
 #ifdef DEBUG
if (reg.data.id  0) {
   int n = 0;
@@ -230,8 +235,9 @@ Instruction *Value::getUniqueInsn() const
  WARN(value %%%i not uniquely defined\n, id); // return NULL ?
}
 #endif
-   assert(defs.front()-get() == this);
-   return defs.front()-getInsn();
+   ValueDef *def = *defs.begin();
+   assert(def-get() == this);
+   return def-getInsn();
 }
 
 inline bool Instruction::constrainedDefs() const
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp 
b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp
index e283424..f13e0d4 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp
@@ -211,7 +211,7 @@ NV50LegalizePostRA::visit(Function *fn)
if (outWrites) {
   for (std::listInstruction *::iterator it = outWrites-begin();
it != outWrites-end(); ++it)
- (*it)-getSrc(1)-defs.front()-getInsn()-setDef(0, 
(*it)-getSrc(0));
+ (*(*it)-getSrc(1)-defs.begin())-getInsn()-setDef(0, 
(*it)-getSrc(0));
   // instructions will be deleted on exit
   outWrites-clear();
}
@@ -343,7 

Re: [Nouveau] [PATCH] gf116: remove copy1 engine

2014-12-02 Thread Andy Ritger
Reviewed-by: Andy Ritger arit...@nvidia.com

On Sun, Nov 30, 2014 at 12:56:18PM -0500, Ilia Mirkin wrote:
 Indications are that no GF116's actually have a copy engine there, but
 actually have the decompression engine. This engine can be made to do
 copies, but that should be done separately.
 
 Unclear why this didn't turn up on all GF116's, but perhaps the
 non-mobile ones came with enough VRAM to not trigger ttm migrations in
 test scenarios.
 
 Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=85465
 Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=59168
 Cc: sta...@vger.kernel.org
 Signed-off-by: Ilia Mirkin imir...@alum.mit.edu
 ---
  nvkm/engine/device/nvc0.c | 1 -
  1 file changed, 1 deletion(-)
 
 diff --git a/nvkm/engine/device/nvc0.c b/nvkm/engine/device/nvc0.c
 index cd05677..72a40f9 100644
 --- a/nvkm/engine/device/nvc0.c
 +++ b/nvkm/engine/device/nvc0.c
 @@ -218,7 +218,6 @@ nvc0_identify(struct nouveau_device *device)
   device-oclass[NVDEV_ENGINE_BSP] = nvc0_bsp_oclass;
   device-oclass[NVDEV_ENGINE_PPP] = nvc0_ppp_oclass;
   device-oclass[NVDEV_ENGINE_COPY0  ] = nvc0_copy0_oclass;
 - device-oclass[NVDEV_ENGINE_COPY1  ] = nvc0_copy1_oclass;
   device-oclass[NVDEV_ENGINE_DISP   ] =  nva3_disp_oclass;
   device-oclass[NVDEV_ENGINE_PERFMON] = nvc0_perfmon_oclass;
   break;
 -- 
 2.0.4
 
 ___
 Nouveau mailing list
 Nouveau@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/nouveau
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] demmio

2014-12-02 Thread poma
On 02.12.2014 14:59, poma wrote:
 On 02.12.2014 14:52, Ilia Mirkin wrote:
 On Tue, Dec 2, 2014 at 8:50 AM, poma pomidorabelis...@gmail.com wrote:
 On 02.12.2014 14:40, Ilia Mirkin wrote:
 On Tue, Dec 2, 2014 at 8:38 AM, poma pomidorabelis...@gmail.com wrote:
 Is this expected result for Chipset: G98 (NV98)?

 Yep, 100% expected. [Perhaps you might glance at the wiki page you got
 that from for clues as to why.]


   You basically never need to do the mmiotrace, unless you're a nouveau 
 developer.?

 I did everything by the book[1].
 Though I don't need this, I still wanted to see how it works with 
 'nouveau.config=NvGrUseFW=1'.
 Bummer.

 You don't just not need it -- you can't possibly use it. Context
 switching firmware of this sort only exists on nvc0+ (fermi and
 newer). As the page you got the instructions from suggests
 (NVC0_Firmware).

   -ilia

 
 AHA! Maxwell and Maxwell only.
 Bummer.
 

Pardon me,
Fermi, Kepler and Maxwell only.
Bummer^3.


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


[Nouveau] [Bug 27501] MacBook Pro 5, x unable to boot [NV96 + NVAC]

2014-12-02 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27501

Pierre Moreau pierre.mor...@free.fr changed:

   What|Removed |Added

 Attachment #110350|0   |1
is obsolete||

--- Comment #60 from Pierre Moreau pierre.mor...@free.fr ---
Created attachment 110376
  -- https://bugs.freedesktop.org/attachment.cgi?id=110376action=edit
[Patch v4.5] Enable non-isometric poller

Sorry, there is a new version of the patch to test.
The fix is still the same, but it integrates better with the rest of the code.
It still works on my laptop but it is best to have some more reports.

-- 
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] Testers needed for NVAA/NVAC kernel patch

2014-12-02 Thread Pierre Moreau
Hello everyone,

I would need testers to check that this patch doesn't break working
NVAA/NVAC configurations. It fixes an issue where some NVAC would hang on boot;
if similar issues exist on NVAA, it may fix them too.
You will find the patch below in two different versions: one will apply on Ben
Skeggs' repository, the other one will apply on a regular Linux tree.

Thanks in advance,

Pierre Moreau


If you are using Ben Skeggs' repository:
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
diff --git a/drm/core/subdev/fb/nvaa.h b/drm/core/subdev/fb/nvaa.h
new file mode 12
index 000..b450e8c
--- /dev/null
+++ b/drm/core/subdev/fb/nvaa.h
@@ -0,0 +1 @@
+../../../../nvkm/subdev/fb/nvaa.h
\ No newline at end of file
diff --git a/nvkm/subdev/fb/nv50.h b/nvkm/subdev/fb/nv50.h
index c5e5a88..0b20975 100644
--- a/nvkm/subdev/fb/nv50.h
+++ b/nvkm/subdev/fb/nv50.h
@@ -9,6 +9,10 @@ struct nv50_fb_priv {
dma_addr_t r100c08;
 };
 
+#define nv50_fb_create(p,e,c,d,o)  
\
+   nv50_fb_ctor((p), (e), (c), (d), sizeof(**o),  \
+   (struct nouveau_object **)o)
+
 int  nv50_fb_ctor(struct nouveau_object *, struct nouveau_object *,
  struct nouveau_oclass *, void *, u32,
  struct nouveau_object **);
diff --git a/nvkm/subdev/fb/nvaa.c b/nvkm/subdev/fb/nvaa.c
index cba8e68..b70ab2f 100644
--- a/nvkm/subdev/fb/nvaa.c
+++ b/nvkm/subdev/fb/nvaa.c
@@ -22,15 +22,81 @@
  * Authors: Ben Skeggs
  */
 
-#include nv50.h
+#include nvaa.h
+
+int
+nvaa_fb_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
+struct nouveau_oclass *oclass, void *data, u32 size,
+struct nouveau_object **pobject)
+{
+   struct nouveau_device *device = nv_device(parent);
+   struct nvaa_fb_priv *priv;
+   int ret;
+
+   ret = nv50_fb_create(parent, engine, oclass, data, priv);
+   *pobject = nv_object(priv);
+   if (ret)
+   return ret;
+
+   priv = (struct nvaa_fb_priv *)(*pobject);
+
+   priv-r100c18_page = alloc_page(GFP_KERNEL | __GFP_ZERO);
+   if (priv-r100c18_page) {
+   priv-r100c18 = dma_map_page(nv_device_base(device),
+priv-r100c18_page, 0, PAGE_SIZE,
+DMA_BIDIRECTIONAL);
+   if (dma_mapping_error(nv_device_base(device), priv-r100c18))
+   return -EFAULT;
+   } else {
+   nv_warn(priv, failed 0x100c18 page alloc\n);
+   }
+   return 0;
+}
+
+void
+nvaa_fb_dtor(struct nouveau_object *object)
+{
+   struct nouveau_device *device = nv_device(object);
+   struct nvaa_fb_priv *priv = (void *)object;
+
+   if (priv-r100c18_page) {
+   dma_unmap_page(nv_device_base(device), priv-r100c18, PAGE_SIZE,
+  DMA_BIDIRECTIONAL);
+   __free_page(priv-r100c18_page);
+   }
+
+   nv50_fb_dtor(object);
+}
+
+int
+nvaa_fb_init(struct nouveau_object *object)
+{
+   struct nvaa_fb_priv *priv = (void *)object;
+   int ret;
+
+   ret = nv50_fb_init(object);
+   if (ret)
+   return ret;
+
+   /* Enable NISO poller for various clients and set their associated
+* read address, only for MCP77/78 and MCP79/7A. (fd#25701)
+*/
+   nv_wr32(priv, 0x100c18, priv-r100c18  8);
+   nv_mask(priv, 0x100c14, 0x, 0x0001);
+   nv_wr32(priv, 0x100c1c, (priv-r100c18  8) + 1);
+   nv_mask(priv, 0x100c14, 0x, 0x0002);
+   nv_wr32(priv, 0x100c24, (priv-r100c18  8) + 2);
+   nv_mask(priv, 0x100c14, 0x, 0x0001);
+   return 0;
+}
 
 struct nouveau_oclass *
 nvaa_fb_oclass = (struct nv50_fb_impl) {
.base.base.handle = NV_SUBDEV(FB, 0xaa),
.base.base.ofuncs = (struct nouveau_ofuncs) {
-   .ctor = nv50_fb_ctor,
-   .dtor = nv50_fb_dtor,
-   .init = nv50_fb_init,
+   .ctor = nvaa_fb_ctor,
+   .dtor = nvaa_fb_dtor,
+   .init = nvaa_fb_init,
.fini = _nouveau_fb_fini,
},
.base.memtype = nv50_fb_memtype_valid,
diff --git a/nvkm/subdev/fb/nvaa.h b/nvkm/subdev/fb/nvaa.h
new file mode 100644
index 000..84e1eca
--- /dev/null
+++ b/nvkm/subdev/fb/nvaa.h
@@ -0,0 +1,19 @@
+#ifndef __NVKM_FB_NVAA_H__
+#define __NVKM_FB_NVAA_H__
+
+#include nv50.h
+
+struct nvaa_fb_priv {
+   struct nv50_fb_priv base;
+   struct page *r100c18_page;
+   dma_addr_t r100c18;
+};
+
+int  nvaa_fb_ctor(struct nouveau_object *, struct nouveau_object *,
+ struct nouveau_oclass *, void *, u32,
+ struct nouveau_object **);
+void nvaa_fb_dtor(struct nouveau_object *);
+int  nvaa_fb_init(struct nouveau_object *);
+
+
+#endif
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/


Or if you are using the regular tree: