summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau
Commit message (Collapse)AuthorAgeFilesLines
* drm/nv04/crtc: Bail out if FB is not bound to crtcEmil Velikov2011-09-091-2/+13
| | | | | | | | | | | This commit resolves a possible 'NULL pointer dereference' It uses the same approach as radeon, intel and nouveau/nv50 Fixes bug 'Nouveau: Kernel oops when unplugging external monitor' https://bugs.freedesktop.org/show_bug.cgi?id=40336 Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: fix nv04_sgdma_bind on non-"4kB pages" archsMarcin Slusarz2011-09-091-1/+1
| | | | | | | | | nv04_sgdma_bind binds the same page multiple times on architectures where PAGE_SIZE != 4096. Let's fix it. Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: properly handle allocation failure in nouveau_sgdma_populateMarcin Slusarz2011-09-091-1/+4
| | | | | | | | | | Not cleaning after alloc failure would result in crash on destroy, because nouveau_sgdma_clear assumes "ttm_alloced" to be not null when "pages" is not null. Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Cc: stable@kernel.org Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: fix oops on pre-semaphore hardwareBen Skeggs2011-09-091-1/+2
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50/crtc: Bail out if FB is not bound to crtcEmil Velikov2011-09-091-2/+10
| | | | | | | | | Fixes possbile NULL pointer dereference Resolves 'kernel crash in nv50_crtc_do_mode_set_base during shutdown' https://bugs.freedesktop.org/show_bug.cgi?id=40005 Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* Merge branch 'drm-core-next' of ↵Linus Torvalds2011-07-2656-908/+4247
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 * 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (135 commits) drm/radeon/kms: fix DP training for DPEncoderService revision bigger than 1.1 drm/radeon/kms: add missing vddci setting on NI+ drm/radeon: Add a rmb() in IH processing drm/radeon: ATOM Endian fix for atombios_crtc_program_pll() drm/radeon: Fix the definition of RADEON_BUF_SWAP_32BIT drm/radeon: Do an MMIO read on interrupts when not uisng MSIs drm/radeon: Writeback endian fixes drm/radeon: Remove a bunch of useless _iomem casts drm/gem: add support for private objects DRM: clean up and document parsing of video= parameter DRM: Radeon: Fix section mismatch. drm: really make debug levels match in edid failure code drm/radeon/kms: fix i2c map for rv250/280 drm/nouveau/gr: disable fifo access and idle before suspend ctx unload drm/nouveau: pass flag to engine fini() method on suspend drm/nouveau: replace nv04_graph_fifo_access() use with direct reg bashing drm/nv40/gr: rewrite/split context takedown functions drm/nouveau: detect disabled device in irq handler and return IRQ_NONE drm/nouveau: ignore connector type when deciding digital/analog on DVI-I drm/nouveau: Add a quirk for Gigabyte NX86T ...
| * Merge branch 'drm-nouveau-next' of ↵Dave Airlie2011-07-2518-147/+98
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-core-next * 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: drm/nouveau/gr: disable fifo access and idle before suspend ctx unload drm/nouveau: pass flag to engine fini() method on suspend drm/nouveau: replace nv04_graph_fifo_access() use with direct reg bashing drm/nv40/gr: rewrite/split context takedown functions drm/nouveau: detect disabled device in irq handler and return IRQ_NONE drm/nouveau: ignore connector type when deciding digital/analog on DVI-I drm/nouveau: Add a quirk for Gigabyte NX86T drm/nouveau: do not leak in nv20_graph_create drm/nv50/dp: fix hack to work for macbooks booted via EFI
| | * drm/nouveau/gr: disable fifo access and idle before suspend ctx unloadBen Skeggs2011-07-254-0/+20
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau: pass flag to engine fini() method on suspendBen Skeggs2011-07-2514-20/+21
| | | | | | | | | | | | | | | | | | | | | | | | It may not be necessary to fail in certain cases (such as failing to idle) on module unload, whereas on suspend it's important to ensure a consistent state can be restored on resume. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau: replace nv04_graph_fifo_access() use with direct reg bashingBen Skeggs2011-07-254-20/+8
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nv40/gr: rewrite/split context takedown functionsBen Skeggs2011-07-251-91/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's completely pointless to save the PGRAPH context when destroying a channel, so don't bother. This commit should also fix kernel.org bug 39422, where the DRM channel state was incorrectly being saved because we left PGRAPH FIFO access enabled while running the ctxprog. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau: detect disabled device in irq handler and return IRQ_NONEBen Skeggs2011-07-251-1/+1
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau: ignore connector type when deciding digital/analog on DVI-IBen Skeggs2011-07-251-15/+19
| | | | | | | | | | | | | | | | | | | | | | | | If the connector table is lying, which it often does on the boards of a particular manufacturer, we may end up doing the wrong thing. Listen to the encoder table instead, it's more reliable. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau: Add a quirk for Gigabyte NX86TEmil Velikov2011-07-251-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | The connector table lies, the card has DVI-I not HDMI Fixes bug https://bugs.freedesktop.org/show_bug.cgi?id=35675 v2: Mention the bugreport Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau: do not leak in nv20_graph_createJesper Juhl2011-07-251-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we return due to an unknown chipset in drivers/gpu/drm/nouveau/nv20_graph.c:nv20_graph_create() we'll leak the memory allocated to 'pgraph'. This patch should fix the leak. Signed-off-by: Jesper Juhl <jj@chaosbits.net> Reviewed-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nv50/dp: fix hack to work for macbooks booted via EFIBen Skeggs2011-07-251-0/+2
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | Merge 3.0-rc7 into drm-core-nextDave Airlie2011-07-131-2/+0
| |\ \ | | | | | | | | | | | | | | | | This pulls in all the drm fixes up to this point which are needed for some -next patches to work.
| * | | DRM: remove drm_pci_device_is_pcieJon Mason2011-07-134-5/+5
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | drm_pci_device_is_pcie duplicates the funcationality of pci_is_pcie. Convert callers of the former to the latter. This has the side benefit of removing an unnecessary search in the PCI configuration space due to using a saved PCIe capability offset. [airlied: update for new callsite] Signed-off-by: Jon Mason <jdmason@kudzu.us> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/nouveau: error paths leak in nvc0_graph_construct_context()Dan Carpenter2011-06-271-10/+12
| | | | | | | | | | | | | | | | | | | | | Two of these error paths returned without freeing "ctx". Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau: Calculate reserved VRAM for PRAMIN value before use.Younes Manton2011-06-272-28/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'drm/nouveau: rework vram init/fini ordering a little' changed the order of instmem.init() and nouveau_mem_vram_init() which resulted in using ramin_rsvd_vram before it was calculated and failing to init any accel on pre-NV50 cards. Since it's only used on <NV50 just calculate it where it's needed and leave it as default 0 for NV50. Signed-off-by: Younes Manton <younes.m@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau: fix nouveau_vma object leakMarcin Slusarz2011-06-271-1/+3
| | | | | | | | | | | | | | | Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau: fix nouveau_mem object leakMarcin Slusarz2011-06-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | It's a regression from "drm/nouveau: create temp vmas for both src and dst of bo moves". Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau: fix fetching vbios from above 4GiB vram addressesBen Skeggs2011-06-271-5/+6
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau: fix off-by-oneBen Skeggs2011-06-231-1/+1
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau/temp: Add default calibration values for nv67Emil Velikov2011-06-231-0/+7
| | | | | | | | | | | | | | | Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau/temp: Fix signed/unsigned int logicEmil Velikov2011-06-232-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Many (all?) of the coefficients related to calculating the correct temperature are signed integers This patch correcly parses and stores those values It also ensures that the default offset is 0 (previously 1) Affected cards - the original nv50 and the nv40 family Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nvc0: push prunk140 irq messages to debug loglevelBen Skeggs2011-06-231-1/+1
| | | | | | | | | | | | | | | | | | | | | We know they happen, we don't know why. They're annoying, so hide them from users for the moment. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau: un-blacklist nvce accelBen Skeggs2011-06-231-1/+0
| | | | | | | | | | | | | | | | | | Reported working on IRC. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau: fix null pointer deref on pre-nv50 chipsetsBen Skeggs2011-06-231-5/+11
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau: rework vram init/fini ordering a littleBen Skeggs2011-06-236-53/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit "drm/nouveau: add some debug output if nouveau_mm busy at destroy time" revealed an issue where vram mm takedown would actually fail due to there still being nodes present, causing nouveau to leak a small amount of memory on module unload. This splits TTM/nouveau_mm a bit more cleanly and ensures nouveau_mm fini isn't done until all gpuobjs are also destroyed. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau: shut lockdep up if last vm ref needs to destroy pgdBen Skeggs2011-06-231-8/+11
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau: fix display takedown order to match reverse init orderBen Skeggs2011-06-231-5/+6
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nvc0: enable per-client address spacesBen Skeggs2011-06-233-40/+55
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau: add some debug output if nouveau_mm busy at destroy timeBen Skeggs2011-06-232-3/+10
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nv50: enable use of per-client gpu address spaceBen Skeggs2011-06-231-1/+11
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau: remove implicit mapping of every bo into chan_vmBen Skeggs2011-06-234-11/+43
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau: remove 'chan' argument from nouveau_bo_newBen Skeggs2011-06-239-18/+15
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau: fixup gem_info ioctl to return client-specific bo virtualBen Skeggs2011-06-231-12/+20
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nvc0: explicitly map PDISP semaphore buffer into each channel's vmBen Skeggs2011-06-233-2/+19
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nv50-nvc0: lookup pushbuf virtual address on dma_pushBen Skeggs2011-06-231-1/+6
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nv84-nvc0: explicitly map semaphore buffer into channel vmBen Skeggs2011-06-232-16/+14
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nv50-nvc0: explicitly map pushbuf bo into channel vmBen Skeggs2011-06-232-1/+9
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nv50-nvc0: explicitly map notifier bo into channel vmBen Skeggs2011-06-233-4/+15
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nv50-nvc0: explicitly map fbcon fb into channel vmBen Skeggs2011-06-234-10/+22
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau: initial changes to support multiple VMAs per buffer objectBen Skeggs2011-06-233-26/+80
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nv50-nvc0: completely disable relocsBen Skeggs2011-06-231-17/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GPU virtual addresses are constant now so this should never be getting hit anyway and userspace shouldn't break from them being ignored. This is being done in preference to teaching the code how to deal with BOs that exist at different virtual addresses within separate VMs. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau: convert bo.mem.start usage to bo.offsetBen Skeggs2011-06-238-12/+10
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau: convert some bo.offset use to vma.offsetBen Skeggs2011-06-235-7/+9
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau: create temp vmas for both src and dst of bo movesBen Skeggs2011-06-233-107/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | Greatly simplifies a number of things, particularly once per-client GPU address spaces are involved. May add this back later once I know what things'll look like. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/nouveau: store bo's page size in nouveau_boBen Skeggs2011-06-233-19/+15
| | | | | | | | | | | | | | | | | | | | | | | | Was previously assuming a page size of 4KiB unless a VMA was present to override it. Eventually, a buffer won't necessarily have a VMA at all at some stages of its life, so we need to store this info elsewhere. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
OpenPOWER on IntegriCloud