summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
Commit message (Collapse)AuthorAgeFilesLines
* drm: make sure vblank interrupts are disabled at DPMS timeJesse Barnes2010-04-271-0/+1
| | | | | | | | | | | When we call drm_vblank_off() at DPMS off time (to wake any clients so they don't hang) we need to make sure interrupts are actually disabled. If drm_vblank_off() gets called before the vblank usage timer expires, it'll prevent the timer from disabling interrupts since it also clears the vblank_enabled flag for the pipe. Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms/evergreen: No EnableYUV tableAlex Deucher2010-04-231-1/+1
| | | | | | | DCE4 cards don't have an EnableYUV table. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon: 9800 SE has only one quadpipeTormod Volden2010-04-233-5/+15
| | | | | | | | | | | | | | Although these cards have 2 pipelines on the silicon only the first passed the QA and the other should be disabled. http://www.digital-daily.com/video/ati-radeon9800se/ http://www.rojakpot.com/showarticle.aspx?artno=101&pgno=1 agd5f: add some other SE cards as well; fix up kms Signed-off-by: Tormod Volden <debian.tormod@gmail.com> Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms: don't print error for legal crtcs.Dave Airlie2010-04-231-3/+3
| | | | | | With evergreen this is bounded by num_crtc not by 0,1. Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms/evergreen: fix LUT setupAlex Deucher2010-04-231-4/+4
| | | | | | | Must have gotten broken during an earlier rebase. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm: delay vblank cleanup until after driver unloadJesse Barnes2010-04-201-2/+2
| | | | | | | | | | Drivers may use vblank calls now (e.g. drm_vblank_off) in their unload paths, so don't clean up the vblank related structures until after driver unload. Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms: allow R500 regs VAP_ALT_NUM_VERTICES and VAP_INDEX_OFFSETMarek Olšák2010-04-195-6/+20
| | | | | | | | [airlied: fix V_A_N_V to not be safe and fix check to make sure only r500 - bump userspace version] Signed-off-by: Marek Olšák <maraeo@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drivers/gpu/radeon: Add MSPOS regs to safe list.Corbin Simpson2010-04-194-0/+8
| | | | | | | | | Permits MSAA and D3D-style rasterization. [airlied: add rs600] Signed-off-by: Corbin Simpson <MostAwesomeDude@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms: disable the tv encoder when tv/cv is not in useAlex Deucher2010-04-191-2/+6
| | | | | | | | | | | Switching between TV and VGA caused VGA to break on some systems since the TV encoder was left enabled when VGA was used. fixes fdo bug 25520. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable <stable@kernel.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms: adjust pll settings for tvAlex Deucher2010-04-191-0/+4
| | | | | | | May fix fdo bug 26582. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms: fix tv dac conflict resolverAlex Deucher2010-04-191-0/+5
| | | | | | | | | | | | | | On systems with the tv dac shared between DVI and TV, we can only use the dac for one of the connectors. However, when using a digital monitor on the DVI port, you can use the dac for the TV connector just fine. Check the use_digital status when resolving the conflict. Fixes fdo bug 27649, possibly others. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable <stable@kernel.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms/evergreen: don't enable hdmi audio stuffAlex Deucher2010-04-192-1/+10
| | | | | Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms/atom: fix dual-link DVI on DCE3.2/4.0Alex Deucher2010-04-191-0/+4
| | | | | | | | Got broken during the evergreen merge. Fixes fdo bug 27001. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms: fix rs600 tlb flushJerome Glisse2010-04-191-1/+1
| | | | | | | | | | Typo in in flush leaded to no flush of the RS600 tlb which ultimately leaded to massive system ram corruption, with this patch everythings seems to work properly. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Cc: stable <stable@kernel.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms: print GPU family and device id when loadingJerome Glisse2010-04-192-2/+54
| | | | | | | This will help figuring out GPU when looking at bugs log. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms: fix calculation of mipmapped 3D texture sizesMarek Olšák2010-04-121-5/+10
| | | | | | | The 3rd dimension should be minified too. Signed-off-by: Marek Olšák <maraeo@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms: only change mode when coherent value changes.Dave Airlie2010-04-121-2/+6
| | | | | | | | | On X startup we were getting a flicker where there shouldn't have been one. the X DDX calls the kernel to set the properties to the same values (yes it could be smarter), however the kernel was doing a pointless modeset then, making my nice smooth boot ugly. Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms: more atom parser fixes (v2)Alex Deucher2010-04-101-0/+10
| | | | | | | | | | | shr/shl ops need the full dst rather than the pre-masked version. Fixes fdo bug 27478 and kernel bug 15738. v2: remove some unsed vars, add comments Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable <stable@kernel.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
* Merge remote branch 'nouveau/for-airlied' of ../drm-nouveau-next into drm-linusDave Airlie2010-04-0924-241/+429
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'nouveau/for-airlied' of ../drm-nouveau-next: (21 commits) drm/nouveau: bail out of auxch transaction if we repeatedly recieve defers drm/nv50: implement gpio set/get routines drm/nv50: parse/use some more de-magiced parts of gpio table entries drm/nouveau: store raw gpio table entry in bios gpio structs drm/nv40: Init some tiling-related PGRAPH state. drm/nv50: Add NVA3 support in ctxprog/ctxvals generator. drm/nv50: another dodgy DP hack drm/nv50: punt hotplug irq handling out to workqueue drm/nv50: preserve an unknown SOR_MODECTRL value for DP encoders drm/nv50: Allow using the NVA3 new compute class. drm/nv50: cleanup properly if PDISPLAY init fails drm/nouveau: fixup the init failure paths some more drm/nv50: fix instmem init on IGPs if stolen mem crosses 4GiB mark drm/nv40: add LVDS table quirk for Dell Latitude D620 drm/nv40: rework lvds table parsing drm/nouveau: detect vram amount once, and save the value drm/nouveau: remove some unused members from drm_nouveau_private drm/nouveau: Make use of TTM busy_placements. drm/nv50: add more 0x100c80 flushy magic drm/nv50: fix fbcon when framebuffer above 4GiB mark ...
| * drm/nouveau: bail out of auxch transaction if we repeatedly recieve defersBen Skeggs2010-04-091-1/+7
| | | | | | | | | | | | | | There's one known case where we never stop recieving DEFER, and loop here forever. Lets not do that.. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50: implement gpio set/get routinesBen Skeggs2010-04-094-7/+86
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50: parse/use some more de-magiced parts of gpio table entriesBen Skeggs2010-04-092-14/+11
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau: store raw gpio table entry in bios gpio structsBen Skeggs2010-04-092-28/+21
| | | | | | | | | | | | And use our own version of the GPIO table for the INIT_GPIO opcode. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv40: Init some tiling-related PGRAPH state.Francisco Jerez2010-04-091-0/+21
| | | | | | | | | | | | | | | | Fixes garbled 3D on an nv46 card. Reported-by: Francesco Marella <francesco.marella@gmail.com> Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50: Add NVA3 support in ctxprog/ctxvals generator.Marcin Kościelnicki2010-04-091-1/+12
| | | | | | | | | | Signed-off-by: Marcin Kościelnicki <koriakin@0x04.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50: another dodgy DP hackBen Skeggs2010-04-091-0/+3
| | | | | | | | | | | | | | | | Allows *some* DP cards to keep working in some corner cases that most people shouldn't hit. I hit it all the time with development, so this can stay for now. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50: punt hotplug irq handling out to workqueueBen Skeggs2010-04-094-5/+12
| | | | | | | | | | | | | | On DP outputs we'll likely end up running vbios init tables here, which may sleep. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50: preserve an unknown SOR_MODECTRL value for DP encodersBen Skeggs2010-04-092-1/+22
| | | | | | | | | | | | | | | | | | This value interacts with some registers we don't currently know how to program properly ourselves. The default of 5 that we were using matches what the VBIOS on early DP cards do, but later ones use 6, which would cause nouveau to program an incorrect mode on these chips. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50: Allow using the NVA3 new compute class.Marcin Kościelnicki2010-04-091-3/+4
| | | | | | | | | | Signed-off-by: Marcin Kościelnicki <koriakin@0x04.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50: cleanup properly if PDISPLAY init failsBen Skeggs2010-04-091-1/+3
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau: fixup the init failure paths some moreBen Skeggs2010-04-091-1/+7
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50: fix instmem init on IGPs if stolen mem crosses 4GiB markBen Skeggs2010-04-091-3/+4
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv40: add LVDS table quirk for Dell Latitude D620Ben Skeggs2010-04-091-0/+15
| | | | | | | | | | | | | | | | | | | | | | Should fix: https://bugzilla.redhat.com/show_bug.cgi?id=505132 https://bugzilla.redhat.com/show_bug.cgi?id=543091 https://bugzilla.redhat.com/show_bug.cgi?id=530425 https://bugs.edge.launchpad.net/ubuntu/+source/xserver-xorg-video-nouveau/ +bug/539730 Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv40: rework lvds table parsingBen Skeggs2010-04-092-28/+17
| | | | | | | | | | | | | | | | | | | | | | All indications seem to be that the version 0x30 table should be handled the same way as 0x40 (as used on G80), at least for the parts that we currently try use. This commit cleans up the parsing to make it clearer about what we're actually trying to achieve, and unifies the 0x30/0x40 parsing. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau: detect vram amount once, and save the valueBen Skeggs2010-04-098-76/+74
| | | | | | | | | | | | | | | | | | | | As opposed to repeatedly reading the amount back from the GPU every time we need to know the VRAM size. We should now fail to load gracefully on detecting no VRAM, rather than something potentially messy happening. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau: remove some unused members from drm_nouveau_privateBen Skeggs2010-04-092-11/+0
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau: Make use of TTM busy_placements.Francisco Jerez2010-04-093-59/+61
| | | | | | | | | | | | | | | | | | Previously we were filling it the same as "placements", but in some cases there're valid alternatives that we were ignoring completely. Keeping a back-up memory type helps on several low-mem situations. Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50: add more 0x100c80 flushy magicBen Skeggs2010-04-092-0/+46
| | | | | | | | | | | | | | | | | | | | Fixes the !vbo_fifo path in the 3D driver on certain chipsets. Still not really any good idea of what exactly the magic achieves, but it makes things work. While we're at it, in the PCIEGART path, flush on unbinding also. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50: fix fbcon when framebuffer above 4GiB markBen Skeggs2010-04-091-6/+7
| | | | | | | | | | | | This can't actually happen right now, but lets fix it anyway. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50: Fix NEWCTX_DONE flag numberMarcin Kościelnicki2010-04-091-3/+3
| | | | | | | | | | Signed-off-by: Marcin Kościelnicki <koriakin@0x04.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/radeon/kms/combios: verify dac_adj values are validAlex Deucher2010-04-071-5/+15
| | | | | | | | | | | | | | | | | | | | | | Some vbios dac_adj tables are all zeros. Check for that case and use the default table if so. Should fix fdo bug 27478. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable <stable@kernel.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
* | drm/radeon/kms: clean up atom dac handlingAlex Deucher2010-04-071-14/+7
| | | | | | | | | | | | | | | | | | - make sure legacy dac1 has an enc priv - remove unused num var - no need for extra tv_dac var in atom dac functions Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* | drm/radeon/kms: legacy tv dac cleanupAlex Deucher2010-04-071-25/+33
| | | | | | | | | | | | | | | | - fix formatting - clean up tv_dac_cntl handling for tv Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* | drm/radeon/kms: small memory leak in atom exit codeDan Carpenter2010-04-071-2/+5
| | | | | | | | | | | | | | | | | | This is an unlikely memory leak, but we may as well fix it. It's easy to fix and every static checker will complain if we don't. Signed-off-by: Dan Carpenter <error27@gmail.com> Reviewed-by: Matt Turner <mattst88@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* | drm/edid/quirks: Envision EN2028Adam Jackson2010-04-071-0/+2
| | | | | | | | | | | | | | | | | | | | Claims 1280x1024 preferred, physically 1600x1200 cf. http://bugzilla.redhat.com/530399 Signed-off-by: Adam Jackson <ajax@redhat.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
* | drm/radeon/kms: fix washed out image on legacy tv dacAlex Deucher2010-04-061-1/+1
|/ | | | | | | | | bad cast was overwriting the tvdac adj values Fixes fdo bug 27478 Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms/atom: fix gpio i2c table overrun (v2)Alex Deucher2010-04-061-4/+7
| | | | | | | | | | | | | | | The GPIO_I2C_INFO table does not always have ATOM_MAX_SUPPORTED_DEVICE entries. Limit the number of indices to the size of the table. Should fix Novell bug 589022. v2: fix typo Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: Stable <stable@kernel.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon: R300 AD only has one quad pipe.Michel Dänzer2010-04-062-6/+9
| | | | | | | | | | Gleaned from the Mesa code. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=27355 . Signed-off-by: Michel Dänzer <daenzer@vmware.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms: enable ACPI powermanagement mode on radeon gpus.Dave Airlie2010-04-012-0/+8
| | | | | | | Some GPUs have an APM/ACPI PM mode selection switch and some BIOSes set this to APM. We really want this in ACPI mode for Linux. Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms: rs400/480 should set common registers.Dave Airlie2010-04-011-0/+2
| | | | | | These GPUs should be setting these registers up also. Signed-off-by: Dave Airlie <airlied@redhat.com>
OpenPOWER on IntegriCloud