Ben Skeggs
9f403603f2
drm/nv40/pm: parse geometric delta clock from vbios
...
This changes the meaning of what we reported as "core" clock previously.
The shader/rop units are allegedly supposed to be run at the base clock
listed in the perf table, while the geometric clock can be bumped from
this value on some boards.
So that we can report both, we'll report the base clock as "shader" (since
the shaders *do* run at it), and the geometric clock as "core".
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:10:40 +10:00
Ben Skeggs
52e0d0ecc8
drm/nouveau/dp: enable down-spread if vbios and sink support it
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:10:35 +10:00
Ben Skeggs
28e2d12405
drm/nouveau/dp: execute some more vbios tables relating to link rate
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:10:27 +10:00
Ben Skeggs
75a1fccf92
drm/nouveau/dp: store unencoded link_bw everywhere
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:10:24 +10:00
Ben Skeggs
27a4598737
drm/nouveau/dp: restructure link training code
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:10:21 +10:00
Ben Skeggs
a002feceb7
drm/nouveau/dp: pass in required datarate to link training
...
Not used currently, but it will be used in preference to pre-determined
lane/bandwidth numbers at a later point.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:10:19 +10:00
Ben Skeggs
a8e415d3eb
drm/nouveau/bios: check for null script pointers in parser
...
Allows us to be lazy elsewhere...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:10:12 +10:00
Ben Skeggs
5024c54b5c
drm/nva3/backlight: add suppport for newer style backlight regs
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:10:06 +10:00
Ben Skeggs
09461459e1
drm/nv50/backlight: express brightness level in percent
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:10:02 +10:00
Ben Skeggs
10b461e40a
drm/nv50/backlight: take the sor into account when bashing regs
...
I'm sure that out there somewhere, someone will need this. We currently
haven't seen an example of LVDS being on a non-0 SOR so far though.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:09:56 +10:00
Ben Skeggs
730764812d
drm/nouveau/backlight: make more consistent with rest of driver style
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:09:53 +10:00
Ben Skeggs
68c9918479
drm/nouveau: tidy connector hotplug handler, punt messages to debug
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:09:49 +10:00
Ben Skeggs
46959b7790
drm/nouveau/dp: remove reliance on vbios for native displayport
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:09:42 +10:00
Ben Skeggs
4372013388
drm/nouveau/dp: rewrite auxch transaction routines
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:09:03 +10:00
Ben Skeggs
91a8f1ea4b
drm/nouveau: workaround semaphore hw bug causing unnecessary interrupts
...
The HW will only accept the DMA_FROM_MEMORY class for DMA_SEMAPHORE without
asking the driver to intervene.
It appears that semaphores will work correctly even without DMA_IN_MEMORY,
so lets avoid the large amount of interrupts generated by x-chan sync.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:08:59 +10:00
Ben Skeggs
afb0c796d8
drm/nouveau/tmr: fix miscalculation of ratio on pre-nv4x chipsets
...
The clock_get() hook returns KHz, not Hz.
Also fixed to use crystal freq from dev_priv.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:08:54 +10:00
Ben Skeggs
378f85ed54
drm/nva3/pm: fixup for NVAF special
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:08:50 +10:00
Ben Skeggs
64e740bb3d
drm/nva3/pm: use crystal freq where appropriate
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:08:44 +10:00
Ben Skeggs
f2cbe46f14
drm/nouveau: determine timing crystal freq from straps
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:08:41 +10:00
Ben Skeggs
93e692dc5f
drm/nva3/pm: pll disabled if bit 0 of ctrl not set
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:08:37 +10:00
Ben Skeggs
6b70e48167
drm/nouveau: magic to make auxch on new macbooks booted in EFI mode work
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:08:32 +10:00
Roy Spliet
2228c6fe04
drm/nouveau/pm: Document and expose CL and WR for 0x1002Cx
...
Signed-off-by: Roy Spliet <r.spliet@student.tudelft.nl>
2011-09-20 16:08:28 +10:00
Roy Spliet
9a78248876
drm/nouveau/pm: add initial NV3x/NVCx memtiming support, improve other cards
...
NV30: Create framework for memtm
NV50: Improve reg creation,
NV50: Use P.version instead of card codename/stepping,
NVC0: Initial memtiming code for Fermi,
Renamed regs for consistency,
Overall redesign to improve readability,
Avoid kfree on null-pointer
Signed-off-by: Roy Spliet <r.spliet@student.tudelft.nl>
2011-09-20 16:08:25 +10:00
Ben Skeggs
1cb70b30e4
drm/nouveau: remove special-casing of hotplug detection type
...
If we support PGPIO interrupts, and know a hotplug GPIO tag for a
connector we use HPD, otherwise POLL_CONNECT.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:08:14 +10:00
Ben Skeggs
bd57e7fc2e
drm/nvd0: no page flipping at the moment
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:08:11 +10:00
Ben Skeggs
64c2502b77
drm/nvc0/gr: remove max tpc count info
...
Just assume a max of 16 everywhere, and hope it's okay.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:08:08 +10:00
Ben Skeggs
e432d48f87
drm/nvd0: lets not attempt to dereference a nv50_display pointer
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:08:02 +10:00
Ken Milmore
658e86ee2d
drm/nouveau: enable hwmon support when both nouveau/hwmon are built as modules.
...
The nouveau hwmon temperature support currently only functions when hwmon is
compiled into the kernel. There's no reason why this shouldn't also work when
both hwmon and nouveau are modularised (as is the case with Slackware's stock
kernels).
Signed-off-by: Ken Milmore <ken.milmore@googlemail.com>
Reviewed-by: Martin Peres <martin.peres@ensi-bourges.fr>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:59 +10:00
Ben Skeggs
37b034a64b
drm/nvd0/disp: tidy up what we have so far
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:49 +10:00
Ben Skeggs
ee41779e76
drm/nvd0/disp: rewrite irq handler, should be somewhat sturdier now
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:46 +10:00
Ben Skeggs
f20ce9629f
drm/nvd0/disp: do modeset irq handling from tasklet
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:42 +10:00
Ben Skeggs
3b6d83d1b9
drm/nvd0/disp: untested LVDS support
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:36 +10:00
Ben Skeggs
c6f2f71dae
drm/nvd0/disp: track down fb positioning method
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:32 +10:00
Ben Skeggs
ff8ff50342
drm/nvd0/disp: determine U table config in or_mode_set()
...
Takes a gamble and presumes that we can safely store something random in
OR_MODE_CTRL+4, the hw doesn't seem to mind...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:29 +10:00
Ben Skeggs
b681993f7a
drm/nvd0/disp: dac load detect
...
VBIOS does more than this, as does nv50/nvc0 driver in nouveau. Traces
of the NVIDIA binary driver however, show pretty much just this being
done... Seems to work for me, it'll be fine for the moment.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:22 +10:00
Ben Skeggs
629c1b9207
drm/nvd0/disp: handle sync polarity, kill off some unknown
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:18 +10:00
Ben Skeggs
f3fdc52dd7
drm/nvd0/disp: scaling
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:15 +10:00
Ben Skeggs
a46232ee09
drm/nvd0/disp: push the update button in mode_set_base()
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:09 +10:00
Ben Skeggs
8ea0d4aa60
drm/nvd0/disp: fixup clut so it actually works
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:05 +10:00
Ben Skeggs
3a89cd0292
drm/nvd0/disp: initial attempt at modeset irq handling
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:07:01 +10:00
Ben Skeggs
b6d8e7ec38
drm/nvd0/disp: stub dac load detect, prevents oops
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:57 +10:00
Ben Skeggs
8eaa9669f8
drm/nvd0/disp: dac encoder module
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:50 +10:00
Ben Skeggs
a36f04c044
drm/nvd0/disp: extend the init voodoo to cover crtcs
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:47 +10:00
Ben Skeggs
c0cc92a115
drm/nvd0/disp: remove lp reordering from vram dmaobj, create fb dmaobjs
...
Fixes CLUT being messed up. Mostly.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:44 +10:00
Ben Skeggs
1d6e7a59f7
drm/nvd0/disp: some magic to make evo happeir
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:37 +10:00
Ben Skeggs
2fad3d5e2b
drm/nvd0/disp: they moved the linear flag..
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:33 +10:00
Ben Skeggs
438d99e3b1
drm/nvd0/disp: initial crtc object implementation
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:30 +10:00
Ben Skeggs
270a574780
drm/nvd0/disp: skeletal handling of modeset interrupts
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:24 +10:00
Ben Skeggs
83fc083cbb
drm/nvd0/disp: start on SOR encoder functions
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:21 +10:00
Ben Skeggs
efd272a7a0
drm/nvd0/disp: setup a couple of dma objects we'll need
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2011-09-20 16:06:07 +10:00