aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm
AgeCommit message (Collapse)AuthorFilesLines
2014-09-15drm/nva3/clk: Set intermediate core clock on reclockingRoy Spliet3-14/+51
Signed-off-by: Roy Spliet <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nva3/clk: For PLL clocks always make sure the PLL is not in useRoy Spliet1-0/+9
Signed-off-by: Roy Spliet <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nva3/clk: Abort when PLL doesn't lockRoy Spliet1-1/+5
Signed-off-by: Roy Spliet <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nva3/clk: HOST clockRoy Spliet2-8/+78
Signed-off-by: Roy Spliet <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nva3/clk: Set PLL refclkRoy Spliet3-29/+48
Signed-off-by: Roy Spliet <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nva3/clk: Parse clock control registers more accuratelyRoy Spliet1-4/+28
Signed-off-by: Roy Spliet <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau: Fix duplicate definition of NV04_PFB_BOOT_0_*Pierre Moreau3-32/+24
Signed-off-by: Pierre Moreau <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau: Display Nouveau boot options at launchPierre Moreau9-6/+37
It can help to remove any ambiguity about which options were passed to Nouveau, especially in case the user had some options set in /etc/modprobe.d/*.conf that he forgot about, as they won't appear in a dmesg. Signed-off-by: Pierre Moreau <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau/pwr: wait for scrubbers to finish before uploading new ucodeBen Skeggs1-3/+2
Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau/pwr/fuc: make $r1-$r10 registers callee-saved in kernel.fucMartin Peres5-736/+749
Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau/pwr/fuc: add ld/st macrosMartin Peres1-0/+10
Signed-off-by: Martin Peres <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau/pwr: add helpers for delay-to-ticks and ticks-to-delayMartin Peres9-2284/+2446
Signed-off-by: Martin Peres <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau/pwr: add some arith functions (mul32_32_64, subu64 and addu64)Martin Peres10-1735/+1919
Signed-off-by: Martin Peres <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau/pwr: fix the timers implementation with concurent processesMartin Peres5-990/+1133
The problem with the current implementation is that adding a timer improperly checked which process would time up first by not taking into account how much time elapsed since their timer got scheduled. Rework the re-scheduling decision t fix this. The catch with this fix is that we are limited to scheduling timers of up to 2^31 ticks to avoid any potential overflow. Since we are unlikely to need to wait for more than a second, this won't be a problem :) Another possible fix would be to decrement the timeouts of all processes but it would duplicate a lot of code and dealing with edge cases wasn't pretty last time I checked. Signed-off-by: Martin Peres <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau/ppwr: enable ppwr on gm107Martin Peres2-1/+5
For some reason, it is now required to wait a 20 µs after the 0x200 reset of the engine. Signed-off-by: Martin Peres <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/gm107/therm: add PWM fan support v2Martin Peres7-6/+106
v2: change the copyright ownership from "Nouveau Community" to myself, as per Illia's recommendation. Signed-off-by: Martin Peres <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau/therm/fan: do not use the pwm mode when the vbios tells us to ↵Martin Peres1-1/+7
use toggle Signed-off-by: Martin Peres <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau/bios/fan: add support for maxwell's fan management table v2Martin Peres4-1/+111
Re-use the therm-exported fan structure with only two minor modifications: - pwm_freq: u16 -> u32; - add fan_type (toggle or PWM) v2: - Do not memset the table to 0 as it erases the pre-set default values Signed-off-by: Martin Peres <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau/ltc: allocate tagram from memory that spans all partitionsBen Skeggs1-1/+1
Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau/core/mm: allow allocation to be confined to a specific slice of heapBen Skeggs16-26/+38
Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau/core/mm: fill in holes with "allocated" nodesBen Skeggs2-6/+21
The allocation algorithm doesn't expect there to be holes in the mm, which causes its alignment/cutoff calculations to choke (and go negative) when encountering the last chunk of a block before a hole. The least expensive solution is to simply fill in any holes with nodes that are pre-marked as being allocated. Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau/core/mm: dump mm when trying to tear one down that still has ↵Ben Skeggs1-9/+32
allocations Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau/core/mm: modify test for if building a mm with holes in itBen Skeggs2-2/+4
Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau/core/mm: make it clearer what (type == 0) meansBen Skeggs2-9/+10
Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/gf100/ltc: translate interrupt status into more meaningful namesBen Skeggs2-5/+29
Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau/ltc: drop workaround for an interrupt storm that no longer happensBen Skeggs2-10/+0
This is really the wrong thing to do, but at the time it was our only option to prevent worse issues. We no longer cause quite so much anger from LTC, so it's not needed. Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nv50-/disp: add support for completion eventsBen Skeggs11-11/+173
Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau/core: pass related object into notify constructorBen Skeggs18-28/+42
The event source types/index might need to be derived from it. Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15drm/nouveau/bar: ioremap only the areas that we're actually usingBen Skeggs2-20/+19
Signed-off-by: Ben Skeggs <[email protected]>
2014-09-15Merge tag 'topic/core-stuff-2014-09-15' of ↵Dave Airlie6-73/+105
git://anongit.freedesktop.org/drm-intel into drm-next Here's the updated topic/core-stuff pull request with the two patches already merged into drm-fixes dropped. * tag 'topic/core-stuff-2014-09-15' of git://anongit.freedesktop.org/drm-intel: drm: Drop modeset locking from crtc init function drm/i915/hdmi: Enable pipe pixel replication for SD interlaced modes drm/edid: Reduce horizontal timings for pixel replicated modes drm: Include task->name and master status in debugfs clients info drm/gem: Fix kerneldoc typo drm: use c99 initializers in structures drm: fix drm_modeset_lock.h kernel-doc notation
2014-09-15drm: Drop modeset locking from crtc init functionDaniel Vetter1-5/+0
At driver init no one can access modeset objects and we're single-threaded. So locking is just cargo-culting here. Worse, with the new ww mutexes and ww mutex slowpath debugging the mutex_lock might actually fail, and we don't have the full-blown ww recovery dance. Which then leads to fireworks when we try to unlock the not-locked crtc lock. An audit of all the functions called from here shows that none of them contain locking checks, so there's also no reason to keep the locking around just for consistency of caller contexts. Besides that I have the rule (at least in i915) that such places where we take locks just to simplify locking checks and not for correctness always require a comment. This regression was introduced in commit 51fd371bbaf94018a1223b4e2cf20b9880fd92d4 Author: Rob Clark <[email protected]> Date: Tue Nov 19 12:10:12 2013 -0500 drm: convert crtc and connection_mutex to ww_mutex (v5) v2: Don't drop the lock_init call, spotted by the 0day builder. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=83341 Cc: Rob Clark <[email protected]> Cc: [email protected] Cc: [email protected] Signed-off-by: Daniel Vetter <[email protected]>
2014-09-15drm/i915/hdmi: Enable pipe pixel replication for SD interlaced modesClint Taylor1-3/+12
Enable 2x pixel replication for modes the mode flag DBLCLK to double horizontal timings and pixel clock across TMDS. Signed-off-by: Clint Taylor <[email protected]> Cc: Daniel Vetter <[email protected]> Cc: Ville Syrjälä <[email protected]> Reviewed-by: Ville Syrjälä <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2014-09-15drm/edid: Reduce horizontal timings for pixel replicated modesClint Taylor1-48/+48
Pixel replicated modes should be non-2x horizontal timings and pixel replicated by the HW across the HDMI cable at 2X pixel clock. Current horizontal resolution of 1440 does not allow pixel duplication to occur and scaling artifacts occur on the TV. HDMI certification 7-26 currently fails for all pixel replicated modes. This change will allow HDMI certification with 480i/576i modes once pixel replication is turned on. Signed-off-by: Clint Taylor <[email protected]> Cc: Daniel Vetter <[email protected]> Cc: Ville Syrjälä <[email protected]> Reviewed-by: Ville Syrjälä <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2014-09-15drm: Include task->name and master status in debugfs clients infoChris Wilson1-5/+22
Showing who is the current master is useful for trying to decypher errors when trying to acquire master (e.g. a race with X taking over from plymouth). By including the process name as well as the pid simplifies the task of grabbing enough information remotely at the point of error. v2: Add the command column header and flesh out a couple of comments. (David Herrmann) Signed-off-by: Chris Wilson <[email protected]> Cc: David Herrmann <[email protected]> Reviewed-by: David Herrmann <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2014-09-15drm/gem: Fix kerneldoc typoLaurent Pinchart1-1/+1
The drm_gem_private_object_init function is called drm_gem_object_init in its kerneldoc. Fix it. Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2014-09-15drm/ast: Cleanup analog init code pathBenjamin Herrenschmidt1-18/+31
Move the MMIO mangling to a separate routine and actually disable the DVO output when using pure analog. Signed-off-by: Benjamin Herrenschmidt <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2014-09-15drm/ast: Don't assume DVO enabled means SIL164 on uninitialized chipsBenjamin Herrenschmidt1-4/+10
It looks like the AST2400 comes up with the DVO enable bit set, which causes us to incorrectly assume we have a SIL164 regardless of the value of the scratch registers setup by the BMC firmware. So let's limit that test to the case where the chip has already been setup by a BIOS. Signed-off-by: Benjamin Herrenschmidt <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2014-09-15drm/ast: Properly initialize P2A base before using it in ast_init_3rdtx()Benjamin Herrenschmidt1-0/+11
If the P2A has been used to target other SOC registers before that call, we're going to hit the wrong place so make sure we set the base address up properly before using it. (P2A stands for PCIe to AHB bridge and is the bride that allows accessing the AST's internal AHB bus using a relocatable 64k window in the second half of the PCIe MMIO BAR) Signed-off-by: Benjamin Herrenschmidt <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2014-09-15drm/ast: POST chip at probe time if VGA not enabledBenjamin Herrenschmidt3-11/+62
We need to do it on machines without a BIOS such as POWER8. Also for detection to work without triggering PCIe errors, we need to enable VGA early on, inside ast_detect_chip(). While touching those files, replace a few hard coded register numbers with the corresponding symbolic constant. Signed-off-by: Benjamin Herrenschmidt <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2014-09-15drm/ast: Try to use MMIO registers when PIO isn't supportedBenjamin Herrenschmidt2-4/+21
If the PIO resources haven't been assigned, then we have no choice but try to use the MMIO version. This is the case for example on POWER8 which doesn't support PIO at all. Chips rev 0x20 or later have MMIO decoding enabled by default. Signed-off-by: Benjamin Herrenschmidt <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2014-09-12drm: use c99 initializers in structuresJulia Lawall2-11/+22
Use c99 initializers for structures. Drop 0 initializers in drivers/gpu/drm/sti/sti_vtac.c. A 0x0 initializer is left in vtac_mode_aux in drivers/gpu/drm/sti/sti_vtac.c to highlight the relation to vtac_mode_main. A simplified version of the semantic match that finds the first problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @decl@ identifier i1,fld; type T; field list[n] fs; @@ struct i1 { fs T fld; ...}; @bad@ identifier decl.i1,i2; expression e; initializer list[decl.n] is; @@ struct i1 i2 = { is, + .fld = e - e ,...}; // </smpl> v2: Drop 0 initializers and add trailing commas at the suggestions of Josh Triplett. Signed-off-by: Julia Lawall <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
2014-09-12drm: Move DRM_MAGIC_HASH_ORDER into drm_drv.cDaniel Vetter1-0/+2
Only used in one place ever, so put it right next to that. Signed-off-by: Daniel Vetter <[email protected]>
2014-09-12drm: Move drm_class to drm_internal.hDaniel Vetter1-0/+2
Signed-off-by: Daniel Vetter <[email protected]>
2014-09-12drm: Move legacy buffer structures to <drm/drm_legacy.h>Daniel Vetter6-5/+10
A few odd cases: - mgag200 someho had a totally unused drm_dma_handle_t. Remove it. - i915 still uses the legacy pci dma alloc api, so grows an include. Everything else fairly standard. v2: Include "drm_legacy.h" in drm.ko source files for consistency. Signed-off-by: Daniel Vetter <[email protected]>
2014-09-12drm: Move drm_memory.c map support declarations to <drm/drm_legacy.h>Daniel Vetter9-73/+73
And replace the drm_core_ prefix with drm_legacy_ since really, this isn't core stuff. Also drop drm_core_dropmap since it's unused. v2: Fix up i810.ko fully which somehow slipped through. Signed-off-by: Daniel Vetter <[email protected]>
2014-09-12drm: Purge ioctl forward declarations from drmP.hDaniel Vetter1-123/+123
If we push down the ioctl table in drm_ioctl.c all the forward declarations in drmP.h are not required any more. v2: Fold in fixup from Fenugguang Wu to declare functions as static. Signed-off-by: Daniel Vetter <[email protected]>
2014-09-12drm: unexport drm_global_mutexDaniel Vetter3-1/+2
Drivers really, really have no business even looking at this lock. And thankfully they don't. So unexport it and move the declaration to drm_internal.h. Signed-off-by: Daniel Vetter <[email protected]>
2014-09-12drm: Move piles of functions from drmP.h to drm_internal.hDaniel Vetter9-0/+76
This way drivers can't grow crazy ideas any more, and it also helps a bit in reviewing EXPORT_SYMBOLS. v2: Even more stuff. Unfortunately we can't move drm_vm_open_locked because exynos does some horrible stuff with it. Signed-off-by: Daniel Vetter <[email protected]>
2014-09-12drm: Move vblank related module options into drm_irq.cDaniel Vetter4-13/+40
This allows us to drop 2 header declarations from drmP.h. The 3rd one is also used in drm_ioctl.c, so for that create a new drm_internal.h header for non-legacy non-kms (since we have internal headers for those parts already) declarations private to drm.ko. Signed-off-by: Daniel Vetter <[email protected]>
2014-09-12drm: Move __drm_pci_free to drm_legacy.hDaniel Vetter3-4/+4
Also sprinkle the customary legacy_ prefix. Unfortunately we can't move the other functions since i915 is still using them. Shame on me for that one :( v2: Fix patch subject as spotted by David Herrmann. Signed-off-by: Daniel Vetter <[email protected]>