Commit Graph

1648 Commits

Author SHA1 Message Date
Ben Skeggs
8e9e3d2dea drm/nv84/disp: move hdmi control into core
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:51 +10:00
Ben Skeggs
a4feaf4ea5 drm/nva3/disp: move hda codec handling to core
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:51 +10:00
Ben Skeggs
f7960736d0 drm/nv50/disp: move dp link training helpers into core
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:50 +10:00
Ben Skeggs
7ebb38b556 drm/nv50/disp: call into core for dac load detection
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:50 +10:00
Ben Skeggs
ef22c8bb7b drm/nv50/disp: call into core to handle dac/sor power state changes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:49 +10:00
Ben Skeggs
2d0aca2119 drm/nv50/disp: allocate display from driver core
EVO channels still handled "manually", this won't be ported here, and
will instead be held off until nv50_display/nvd0_display are merged.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:49 +10:00
Ben Skeggs
75f8693f30 drm/nouveau/bios: implement some dcb output entry parsing/matching functions
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:48 +10:00
Ben Skeggs
ed58aee93c drm/nvd0/disp: handle DP transfer unit setup from second supervisor interrupt
This is what we've done forever in nv50_display.c, and also allows the
last direct MMIO accesses to be removed from nvd0_display.c.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:48 +10:00
Ben Skeggs
1c30cd09e3 drm/nvd0/disp: move HDMI control to core
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:47 +10:00
Ben Skeggs
0a9e2b959f drm/nvd0/disp: move HDA codec setup to core
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:47 +10:00
Ben Skeggs
35b21d39a5 drm/nvd0/disp: call into core to handle dac power state changes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:46 +10:00
Ben Skeggs
74b6685089 drm/nvd0/disp: call into core to handle sor power state changes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:46 +10:00
Ben Skeggs
6c5a04249d drm/nvd0/disp: move link training helpers into core as display methods
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:45 +10:00
Ben Skeggs
fb445b3c23 drm/nouveau/core: allow representing method ranges in nouveau_omthds
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:45 +10:00
Ben Skeggs
cbe7270d48 drm/nouveau/core: expose full method calling capabilities with nv_exec
nv_call() just allows mthd+u32 submission, nv_exec() exposes the
mthd+data+size interface which will be used in future commits.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:45 +10:00
Ben Skeggs
65c78660fb drm/nouveau/bios: implement "full" BIT 'd' table (and subtable) parsing in core
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:44 +10:00
Ben Skeggs
14464b8cd6 drm/nvd0/disp: move remaining interrupt handling to core
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:44 +10:00
Ben Skeggs
206c38a9f1 drm/nouveau/core: add some missing subdev/engine disable flags
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:43 +10:00
Ben Skeggs
b6caea5058 drm/nouveau/bios: implement BIT 'U' table (and subtable) parsing in core
This will, in the near future, replace what's currently in the DRM
nouveau_bios.c code.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:43 +10:00
Ben Skeggs
b5a794b0f1 drm/nvd0/disp: allocate display and evo channels from driver core
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:42 +10:00
Ben Skeggs
d6bf2f3707 drm/nouveau: run mode_config destructor before destroying internal display state
Later changes will depend on being able to pull down CRTCs etc with the
master display state still intact.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:42 +10:00
Ben Skeggs
94e5c39bad drm/nouveau/drm/nvd0/disp: display->disp
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:41 +10:00
Ben Skeggs
dd0e3d53f0 drm/nvd0/disp: introduce a nvd0_head as a subclass of nouveau_crtc
This will be used instead of storing a heap of per-head data (such as evo
channels) in nvd0_display in some other way.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:41 +10:00
Ben Skeggs
46654061bb drm/nvd0-nve0/disp: initial implementation of evo channel classes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:40 +10:00
Ben Skeggs
944234d6a2 drm/nv50/disp: allow PCI_US pushbuf binding 2012-11-29 09:57:40 +10:00
Ben Skeggs
370c00f939 drm/nv50/disp: initial implementation of the various channel object classes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:57:35 +10:00
Ben Skeggs
446b05a077 drm/nv50/disp: enable interrupts and setup memory area
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:41 +10:00
Ben Skeggs
ab77214a8e drm/nv50/disp: copy caps to evo
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:41 +10:00
Ben Skeggs
70cabe4a14 drm/nv50/disp: create skeleton display/channel object classes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:40 +10:00
Ben Skeggs
47a1e0fe4b drm/nvd0/dmaobj: initial bind() method implementation
Currently unused, and rudimentary.  Lots to figure out here still, but
this is sufficient for what disp will need.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:40 +10:00
Ben Skeggs
80fe155ba6 drm/nvc0/dmaobj: implement initial bind() method
Currently unused.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:39 +10:00
Ben Skeggs
f756944a21 drm/nv50/dmaobj: extend class to allow gpu-specific attributes to be defined
disp is going to need to be able to create more specific dma objects
than was previously possible.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:39 +10:00
Ben Skeggs
344e107df7 drm/nvd0/dmaobj: duplicate fermi class, will diverge real soon now
The hardware dmaobj format completely changed in GF119, so these will
need a separate implementation.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:39 +10:00
Ben Skeggs
82d23aea10 drm/nvc0/dmaobj: stub bind function for now so we can call unconditionally
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:38 +10:00
Ben Skeggs
6c1689a08c drm/nouveau/dmaobj: move parent class check to bind() method
Otherwise when nvc0- gains a bind() method (disp needs it), the fifo
engine will attempt to create a dma object for the push buffer, which
is unnecessary on fermi.

The only sane place to put these checks is in the bind method itself,
and have it unconditionally called from wherever it might be needed.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:38 +10:00
Ben Skeggs
f86770aaaa drm/nouveau/dmaobj: merge everything except ctor and bind together
Simplifies things a little, and currently no reason to need
chipset-specific dmaobj constructors.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:37 +10:00
Ben Skeggs
0a32241d8b drm/nouveau: pass address to object accessor functions as u64
Will be required by future work.  Make the API change now to catch any
(but hopefully none) unexpected fallout.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:37 +10:00
Ben Skeggs
66bb7e1d67 drm/nouveau/gpio: place upper limit on using old-school tvdac bios data
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:36 +10:00
Ben Skeggs
9da49599a7 drm/nouveau: remove newline-only NV_DEBUG calls
This used to output the function name, now doesn't, so just looks
stupid.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:36 +10:00
Marcin Slusarz
d432a2db7d drm/nv50: decode PGRAPH status registers on TLB flush fail
SIgned-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:35 +10:00
Viktor Novotný
1f2285d462 drm/nouveau/clk: fix crystal frequency retrieval on nv25
Signed-off-by: Viktor Novotný <noviktor@seznam.cz>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:35 +10:00
Marcin Slusarz
fced4b2211 drm/nouveau: remove unused variable from nouveau_bios_shadow_of
drivers/gpu/drm/nouveau/core/subdev/bios/base.c: warning: unused variable 'i'

Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:34 +10:00
Ben Skeggs
7ef19e454e drm/nv40/fb: use an actual compressed zeta format
SPLIT is apparently just that, and only splits Z and S components.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:34 +10:00
Ben Skeggs
d7da62845b drm/nv30/fb: enable z compression
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:33 +10:00
Ben Skeggs
2f1cb96d65 drm/nv40/fb: enable z compression
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:33 +10:00
Ben Skeggs
fd3a522586 drm/nv20/fb: fixup compression tag allocation size
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:32 +10:00
Ben Skeggs
fafa0cb37e drm/nv30-nv40/graph: poke zcomp regs from tile_prog hook
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:32 +10:00
Ben Skeggs
e1344412ae drm/nv30-nv40/fb: call zcomp setup hook from tiling setup
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:31 +10:00
Ben Skeggs
dac1558d49 drm/nouveau/fb: create tag heap from common code for all relevant chipsets
A nv2x bug wrt hardcoded tag counts is now also fixed as a side-effect.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:31 +10:00
Ben Skeggs
268d5a3017 drm/nv30/fb: start bashing zcomp registers with 'disabled' (for now)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:30 +10:00
Ben Skeggs
7e0f992b79 drm/nouveau: replace some open-coded mm_initialised checks
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:30 +10:00
Ben Skeggs
6d338081a6 drm/nouveau/fb: read TILE_BASE after writing it to avoid a hardware race
Apparently needed for turbocache nv4x chips at least, we'll just do it
everywhere...

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:29 +10:00
Ben Skeggs
5f8e256704 drm/nv40/fb: start bashing zcomp registers on relevant chipsets
Always bashing "disabled" for now, actual compressing coming up...

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:29 +10:00
Ben Skeggs
150ccf161f drm/nv30-nv40/fb: make use of bankoff for zeta buffers, where supported
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:28 +10:00
Ben Skeggs
d33db63b37 drm/nv20/fb: fix zcomp register calculation on big-endian systems
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:28 +10:00
Ben Skeggs
4ae207453e drm/nv40/fb: split implementation into nv40/nv41/nv44/nv46/nv47/nv49/nv4e pieces
Wow, this is a nice complicated mess of build-your-own-mc blocks...

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:27 +10:00
Ben Skeggs
11bac40708 drm/nv30/fb: split implementation into nv34(nv10)/nv30/nv35 pieces
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:27 +10:00
Ben Skeggs
a8749af1a0 drm/nv20/fb: split implementation into nv20/nv25 pieces
There's more stuff that can be shared in the constructor, will be merged
together again later.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:27 +10:00
Ben Skeggs
67e9e9f6ca drm/nouveau/fb: split tile and compression region handling
This is in preparation for extending the support to the remaining
chipsets, to allow for sharing more functions.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:26 +10:00
Ben Skeggs
de2b8b8bbb drm/nouveau/bios: attempt to fetch entire acpi rom image in one shot
v2: fdo#55948 - the _ROM method silently truncates size to 4KiB, perform
    a checksum test and fall back to slow _ROM access on failure.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-29 09:56:26 +10:00
Maarten Lankhorst
ace5a9b8db drm/nouveau: use the correct fence implementation for nv50
Only compile time tested, noticed nv50_fence_create was never used,
so fix this. This will probably fix vblank on nv50 cards.

Hopefully this is still in time for 3.7 final release.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-22 11:11:10 +10:00
Maarten Lankhorst
dedfdffd44 drm/ttm: remove sync_arg from driver functions
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Reviewed-By: Thomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-11-20 16:10:10 +10:00
Maarten Lankhorst
b03640b1de drm/ttm: remove sync_obj_arg from ttm_bo_move_accel_cleanup
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Reviewed-By: Thomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-11-20 16:10:02 +10:00
Tommi Rantala
83ef7777aa drm/nouveau: free memory allocated with alloc_apertures()
Fix a memory leak by deallocating the memory we got from
alloc_apertures().

Signed-off-by: Tommi Rantala <tt.rantala@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-11-20 16:06:28 +10:00
Marcin Slusarz
0b91c4a1cd drm/ttm: remove ttm_buffer_object->buffer_start
All drivers set it to 0 and nothing uses it.

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-11-20 16:06:19 +10:00
Marcin Slusarz
3bb076af2a drm/nouveau/bios: fix DCB v1.5 parsing
memcmp->nv_strncmp conversion, in addition to name change, should have
inverted the return value.

But nv_strncmp does not act like strncmp - it does not check for string
terminator, returns true/false instead of -1/0/1 and has different
parameters order.

Let's rename it to nv_memcmp and let it act like memcmp.

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-19 08:54:20 +10:00
Maarten Lankhorst
d9c390561d drm/nouveau: add missing pll_calc calls
Fixes a null pointer dereference when reclocking on my fermi.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-19 08:52:30 +10:00
Marcin Slusarz
bf7e438bca drm/nouveau: fix crash with noaccel=1
Reported-by: Ortwin Glück <odi@odi.ch>
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-19 08:52:20 +10:00
Marcin Slusarz
1f150b3e7a drm/nv40: allocate ctxprog with kmalloc
Some archs defconfigs have CONFIG_FRAME_WARN set to 1024, which lead to this
warning:
drivers/gpu/drm/nouveau/core/engine/graph/ctxnv40.c: warning: the frame size
of 1184 bytes is larger than 1024 bytes

Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-19 08:52:07 +10:00
Kelly Doran
4113014f2d drm/nvc0/disp: fix thinko in vblank regression fix..
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-19 08:52:03 +10:00
Maarten Lankhorst
df285500b2 drm/nouveau: fix acpi edid retrieval
Commit c0077061e7 accidentally inverted the logic for nouveau_acpi_edid,
causing it to only show a connector as connected when the edid could not
be retrieved with acpi.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-09 13:43:08 +10:00
Kelly Doran
11d92561c8 drm/nvc0/disp: fix regression in vblank semaphore release
Signed-off-by: Kelly Doran <kel.p.doran@gmail.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-09 13:43:05 +10:00
Marcin Slusarz
7707b701eb drm/nv40/mpeg: fix context handling
It slipped in thanks to typeless API.

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-09 13:43:01 +10:00
Marcin Slusarz
a4dd4ec250 drm/nv40/graph: fix typo in type names
nv04_graph_priv / nv04_graph_chan are not defined in this context...

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-09 13:42:56 +10:00
Marcin Slusarz
479dd56705 drm/nv41/vm: fix typo in type name
It's a miracle it compiles at all - nv04_vm_priv does not exist
anywhere in the tree.

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-11-09 13:42:53 +10:00
Ben Skeggs
e412e95a26 drm/nouveau: headless mode by default if pci class != vga display
This is to prevent nouveau from taking over the console on headless boards
such as Tesla.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-31 13:27:30 +10:00
Ben Skeggs
9430738d80 drm/nouveau: resurrect headless mode since rework
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-31 12:11:15 +10:00
Ben Skeggs
5cad16acd2 drm/nv50/fb: prevent oops on chipsets without compression tags
Unconditionally create the tagram mm, even if there's zero tags.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-31 11:23:23 +10:00
Ben Skeggs
a7dbf00433 drm/nouveau: allow creation of zero-sized mm
Useful for places where a given chipset may or may not have a given
resource, and we want to avoid having to spray checks for the mm's
existance around everywhere.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-31 11:22:51 +10:00
Ben Skeggs
1249ac592a drm/nouveau/i2c: fix typo when checking nvio i2c port validity
Reported-by: Mathieu Chouquet-Stringer <mathieu@csetco.com>
Tested-by: Mathieu Chouquet-Stringer <mathieu@csetco.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-31 11:05:33 +10:00
Ben Skeggs
cee59f15a6 drm/nouveau: silence modesetting spam on pre-gf8 chipsets
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-31 10:57:53 +10:00
Dave Airlie
ae168d973f Merge branch 'drm-nouveau-fixes' of git://git.freedesktop.org/git/nouveau/linux-2.6 into drm-fixes
Fixes from Ben, off note:
ACPI ROM regression fix,
some IGP and AGP regressions fixes from rework fallout.

* 'drm-nouveau-fixes' of git://git.freedesktop.org/git/nouveau/linux-2.6:
  drm/nouveau/clock: fix missing pll type/addr when matching default entry
  drm/nouveau/fb: fix reporting of memory type on GF8+ IGPs
  drm/nv41/vm: don't init hw pciegart on boards with agp bridge
  drm/nouveau/bios: fetch full 4KiB block to determine ACPI ROM image size
  drm/nouveau: validate vbios size
  drm/nouveau: warn when trying to free mm which is still in use
  drm/nouveau: fix nouveau_mm/nouveau_mm_node leak
  drm/nouveau/bios: improve error handling when reading the vbios from ACPI
  drm/nouveau: handle same-fb page flips
2012-10-22 17:50:50 +10:00
Ben Skeggs
5e5a195ecc drm/nouveau/clock: fix missing pll type/addr when matching default entry
This issue is a regression from 70790f4f81,
and causes us to miss a special-case for C51 (NV4E) chipsets and return
the wrong reference frequency for the VPLLs.

Should fix fdo#56202

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-22 14:38:06 +10:00
Ben Skeggs
2c25b73995 drm/nouveau/fb: fix reporting of memory type on GF8+ IGPs
Purely a cosmetic issue at this point.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-22 13:58:05 +10:00
Ben Skeggs
4bf24c0215 drm/nv41/vm: don't init hw pciegart on boards with agp bridge
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-22 13:39:42 +10:00
Ben Skeggs
d1626a9651 drm/nouveau/bios: fetch full 4KiB block to determine ACPI ROM image size
Buggy firmware leads to bad things happening otherwise..

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-22 13:39:38 +10:00
Marcin Slusarz
00e4845bad drm/nouveau: validate vbios size
Without checking, we could detect vbios size as 0, allocate 0-byte array
(kmalloc returns invalid pointer for such allocation) and crash in
nouveau_bios_score while checking for vbios signature.

Reported-by: Heinz Diehl <htd@fritha.org>
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-22 12:26:46 +10:00
Marcin Slusarz
0bab097a9b drm/nouveau: warn when trying to free mm which is still in use
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-22 12:26:34 +10:00
Marcin Slusarz
92485cef52 drm/nouveau: fix nouveau_mm/nouveau_mm_node leak
v2: use already existing parent

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-22 12:25:53 +10:00
Martin Peres
90e2889c4e drm/nouveau/bios: improve error handling when reading the vbios from ACPI
Reported-by: Pawel Sikora <pawel.sikora@agmk.net>
Signed-off-by: Martin Peres <martin.peres@labri.fr>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-22 12:25:49 +10:00
Marcin Slusarz
2c14575f99 drm/nouveau: handle same-fb page flips
It's questionable use case, but weston/wayland already relies on this
behaviour, and other drivers don't care about it, so it's a matter of
compatibility.  Without it, process invoking such page flip hangs in
unkillable state, trying to reserve the same buffer twice.

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-22 12:25:38 +10:00
Dave Airlie
8a00b6af4c nouveau: fix warning on 32-bit build.
Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-10-16 16:40:53 +10:00
Dave Airlie
30f02cb7dd Merge branch 'drm-nouveau-fixes' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-fixes
minor set of nouveau fixes.

* 'drm-nouveau-fixes' of git://anongit.freedesktop.org/git/nouveau/linux-2.6:
  drm/nouveau/bios: fix typo in error message
  drm/nouveau: only call ttm_agp_tt_create when __OS_HAS_AGP
  drm/nv50/fb: fix double free of vram mm
  drm/nouveau/pm: do not stop reclocking if failing to set the fan speed
  drm/nouveau/pm: fix a typo related to the move to the therm subdev
  drm/nouveau/hwmon: fix the initialization condition
2012-10-16 16:34:11 +10:00
Ben Skeggs
565f571c48 drm/nouveau/bios: fix typo in error message
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-16 16:29:17 +10:00
Max Filippov
df1b4b91e5 drm/nouveau: only call ttm_agp_tt_create when __OS_HAS_AGP
ttm_agp_tt_create is itself defined under CONFIG_AGP, so there's no
point calling it otherwise.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-16 16:29:12 +10:00
Marcin Slusarz
5db4c6c5dd drm/nv50/fb: fix double free of vram mm
nouveau_fb_destroy already calls nouveau_mm_fini on vram mm.

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-16 16:29:08 +10:00
Martin Peres
eed6187d9f drm/nouveau/pm: do not stop reclocking if failing to set the fan speed
With the introduction of fan management modes, fan may not be drivable.
We should allow reclocking nonetheless.

This return was stupid to begin with since it may have left the card
in an intermediate state (clocks corresponding to a perflvl and voltage
corresponding to another one). The reclocking code will need to be
rewritten in a near-future in order to provide a better error handling.

Reported-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Martin Peres <martin.peres@labri.fr>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-16 16:29:02 +10:00
Martin Peres
a6fd5cf3c9 drm/nouveau/pm: fix a typo related to the move to the therm subdev
Reported-by: Vekin on IRC
Reported-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Martin Peres <martin.peres@labri.fr>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-16 16:28:58 +10:00
Martin Peres
a5f5af8698 drm/nouveau/hwmon: fix the initialization condition
Signed-off-by: Martin Peres <martin.peres@labri.fr>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-16 16:28:55 +10:00
Dave Airlie
ceb736c395 Merge branch 'drm-nouveau-fixes' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next
Just misc nouveau fixes all over the place.

* 'drm-nouveau-fixes' of git://anongit.freedesktop.org/git/nouveau/linux-2.6:
  drm/nouveau/timer: bump ptimer's alarm delay from u32 to u64
  drm/nouveau/fan: fix a typo in PWM's input clock calculation
  drm/nv50/clk: wire up pll_calc hook
  drm/nouveau: remove unused _nouveau_parent_ctor
  drm/nouveau/bios: fix shadowing of ACPI ROMs larger than 64KiB
2012-10-09 14:48:46 +10:00