summaryrefslogtreecommitdiffstats
path: root/drivers/gpu
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'drm-for-2.6.35' of ↵Linus Torvalds2010-05-21136-5291/+11992
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 * 'drm-for-2.6.35' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (207 commits) drm/radeon/kms/pm/r600: select the mid clock mode for single head low profile drm/radeon: fix power supply kconfig interaction. drm/radeon/kms: record object that have been list reserved drm/radeon: AGP memory is only I/O if the aperture can be mapped by the CPU. drm/radeon/kms: don't default display priority to high on rs4xx drm/edid: fix typo in 1600x1200@75 mode drm/nouveau: fix i2c-related init table handlers drm/nouveau: support init table i2c device identifier 0x81 drm/nouveau: ensure we've parsed i2c table entry for INIT_*I2C* handlers drm/nouveau: display error message for any failed init table opcode drm/nouveau: fix init table handlers to return proper error codes drm/nv50: support fractional feedback divider on newer chips drm/nv50: fix monitor detection on certain chipsets drm/nv50: store full dcb i2c entry from vbios drm/nv50: fix suspend/resume with DP outputs drm/nv50: output calculated crtc pll when debugging on drm/nouveau: dump pll limits entries when debugging is on drm/nouveau: bios parser fixes for eDP boards drm/nouveau: fix a nouveau_bo dereference after it's been destroyed drm/nv40: remove some completed ctxprog TODOs ...
| * drm/radeon/kms/pm/r600: select the mid clock mode for single head low profileAlex Deucher2010-05-211-1/+1
| | | | | | | | | | | | | | This saves some more power at the expense of performance. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * Merge remote branch 'nouveau/for-airlied' into drm-nextDave Airlie2010-05-2115-223/+1067
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * nouveau/for-airlied: drm/nouveau: fix i2c-related init table handlers drm/nouveau: support init table i2c device identifier 0x81 drm/nouveau: ensure we've parsed i2c table entry for INIT_*I2C* handlers drm/nouveau: display error message for any failed init table opcode drm/nouveau: fix init table handlers to return proper error codes drm/nv50: support fractional feedback divider on newer chips drm/nv50: fix monitor detection on certain chipsets drm/nv50: store full dcb i2c entry from vbios drm/nv50: fix suspend/resume with DP outputs drm/nv50: output calculated crtc pll when debugging on drm/nouveau: dump pll limits entries when debugging is on drm/nouveau: bios parser fixes for eDP boards drm/nouveau: fix a nouveau_bo dereference after it's been destroyed drm/nv40: remove some completed ctxprog TODOs drm/nv04: Implement missing nv04 PGRAPH methods in software. drm/nouveau: Use 0x5f instead of 0x9f as imageblit on original NV10.
| | * drm/nouveau: fix i2c-related init table handlersBen Skeggs2010-05-191-39/+38Star
| | | | | | | | | | | | | | | | | | | | | | | | Mutliple issues. INIT_ZM_I2C_BYTE/INIT_I2C_BYTE didn't even try and use the register value, and all the handlers were using the wrong slave address. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau: support init table i2c device identifier 0x81Ben Skeggs2010-05-191-0/+3
| | | | | | | | | | | | | | | | | | It appears to be meant to reference the second "default index". Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau: ensure we've parsed i2c table entry for INIT_*I2C* handlersBen Skeggs2010-05-191-77/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We may not have parsed the entry yet if the i2c_index is for an i2c bus that's not referenced by a DCB encoder. This could be done oh so much more nicely, except we have to care about prehistoric DCB tables too, and they make life painful. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau: display error message for any failed init table opcodeBen Skeggs2010-05-191-16/+23
| | | | | | | | | | | | | | | | | | | | | Some handlers don't report specific errors, but we still *really* want to know if we failed to parse a complete init table. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau: fix init table handlers to return proper error codesBen Skeggs2010-05-191-23/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | We really want to be able to distinguish between INIT_DONE and an actual error sometimes. This commit fixes up several lazy "return 0;" to be actual error codes, and explicitly reserves "0" as "success, but stop parsing this table". Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nv50: support fractional feedback divider on newer chipsBen Skeggs2010-05-194-24/+120
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nv50: fix monitor detection on certain chipsetsBen Skeggs2010-05-191-5/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There appears to be some kind of switch on certain chips to control whether the DP auxch or traditional i2c bus will be operational on a connector, this commit hopefully fixes nouveau to do the right thing. Likely only relevent on chips with DP outputs. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nv50: store full dcb i2c entry from vbiosBen Skeggs2010-05-192-2/+7
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nv50: fix suspend/resume with DP outputsBen Skeggs2010-05-194-5/+46
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nv50: output calculated crtc pll when debugging onBen Skeggs2010-05-191-0/+6
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau: dump pll limits entries when debugging is onBen Skeggs2010-05-191-25/+26
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau: bios parser fixes for eDP boardsBen Skeggs2010-05-191-0/+124
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau: fix a nouveau_bo dereference after it's been destroyedBen Skeggs2010-05-191-1/+1
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nv40: remove some completed ctxprog TODOsBen Skeggs2010-05-191-5/+0Star
| | | | | | | | | | | | | | | | | | | | | I actually thought these were gone already when the initial commit was done.. I guess not! Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nv04: Implement missing nv04 PGRAPH methods in software.Marcin Kościelnicki2010-05-191-13/+553
| | | | | | | | | | | | | | | Signed-off-by: Marcin Kościelnicki <koriakin@0x04.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| | * drm/nouveau: Use 0x5f instead of 0x9f as imageblit on original NV10.Marcin Kościelnicki2010-05-191-1/+1
| | | | | | | | | | | | | | | Signed-off-by: Marcin Kościelnicki <koriakin@0x04.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * | drm/radeon: fix power supply kconfig interaction.Dave Airlie2010-05-212-1/+1
| | | | | | | | | | | | | | | | | | | | | radeon needs power supply to get correct PM info so select it at the radeon level not at the kms option. Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms: record object that have been list reservedJerome Glisse2010-05-212-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | list reservation was too optimistic about ttm object reservation and could think that an object reserved by some other process as reserved by the list reservation which was false. Thus when unreserving the list it might unreserve object that it didn't reserved in the list. Sorry if it's hard to follow but this kind of things are just causing headheck. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon: AGP memory is only I/O if the aperture can be mapped by the CPU.Michel Dänzer2010-05-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Fixes AGP initialization failure with Apple UniNorth bridges due to trying to ioremap() normal RAM. Signed-off-by: Michel Dänzer <daenzer@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/radeon/kms: don't default display priority to high on rs4xxAlex Deucher2010-05-211-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Seems to cause issues with the sound hardware. Fixes kernel bug 15982: https://bugzilla.kernel.org/show_bug.cgi?id=15982 Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm/edid: fix typo in 1600x1200@75 modeAlex Deucher2010-05-211-1/+1
| |/ | | | | | | | | | | | | | | | | Spotted by Scott Bertilson. Fixes fdo bug 28146. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Reviewed-by: Mark Marshall <mark.marshall@csr.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon: fix hdmi offset bug reported by smatch.Dave Airlie2010-05-191-1/+1
| | | | | | | | | | Reported-by: Dan Carpenter Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: hpd cleanupAlex Deucher2010-05-194-16/+15Star
| | | | | | | | | | | | | | | | - Use radeon hpd enum consistently (in both hotplug and dp) - Legacy r100 with DVI should be HPD_1 not NONE Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: reset ddc_bus in object header parsingAlex Deucher2010-05-191-3/+2Star
| | | | | | | | | | | | | | | | | | | | | | Some LVDS connectors don't have a ddc bus, so reset the ddc bus to invalid before parsing the next connector to avoid using stale ddc bus data. Should fix fdo bug 28164. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
| * Merge remote branch 'anholt/drm-intel-next' into drm-nextDave Airlie2010-05-1935-220/+526
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * anholt/drm-intel-next: (515 commits) drm/i915: Fix out of tree builds drm/i915: move fence lru to struct drm_i915_fence_reg drm/i915: don't allow tiling changes on pinned buffers v2 drm/i915: Be extra careful about A/D matching for multifunction SDVO drm/i915: Fix DDC bus selection for multifunction SDVO drm/i915: cleanup mode setting before unmapping registers drm/i915: Make fbc control wrapper functions drm/i915: Wait for the GPU whilst shrinking, if truly desperate. drm/i915: Use spatio-temporal dithering on PCH [MTD] Remove zero-length files mtdbdi.c and internal.ho pata_pcmcia / ide-cs: Fix bad hashes for Transcend and kingston IDs libata: Fix several inaccuracies in developer's guide slub: Fix bad boundary check in init_kmem_cache_nodes() raid6: fix recovery performance regression KEYS: call_sbin_request_key() must write lock keyrings before modifying them KEYS: Use RCU dereference wrappers in keyring key type code KEYS: find_keyring_by_name() can gain access to a freed keyring ALSA: hda: Fix 0 dB for Packard Bell models using Conexant CX20549 (Venice) ALSA: hda - Add quirk for Dell Inspiron 19T using a Conexant CX20582 ALSA: take tu->qlock with irqs disabled ...
| | * drm/i915: Fix out of tree buildsPeter Clifton2010-05-102-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes up include paths for i915_trace.h by setting additional CFLAGS for i915_trace_points.c to include the $src directory. The required TRACE_INCLUDE_PATH is then "." Signed-off-by: Peter Clifton <pcjc2@cam.ac.uk> Signed-off-by: Eric Anholt <eric@anholt.net>
| | * drm/i915: move fence lru to struct drm_i915_fence_regDaniel Vetter2010-05-102-15/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | This lru tracks fences, not objects, so move it to where it belongs. As a side effect, this nicely shrinks drm_i915_gem_object by two pointers. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Eric Anholt <eric@anholt.net>
| | * drm/i915: don't allow tiling changes on pinned buffers v2Daniel Vetter2010-05-101-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makes no sense and complicates matters for pipelined tiling changes. So don't allow it and return -EBUSY. v2: Fix reference leak. Thanks to Owain Ainsworth for spotting this. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Eric Anholt <eric@anholt.net>
| | * drm/i915: Be extra careful about A/D matching for multifunction SDVOAdam Jackson2010-05-101-24/+21Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we're both RGB and TMDS capable, we'll have set up one connector for each. When determining connectivity, require analog/digital state in the EDID block to match analog/digital support in the connector. Otherwise, both DVI and VGA will appear to be connected. Signed-off-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Eric Anholt <eric@anholt.net>
| | * drm/i915: Fix DDC bus selection for multifunction SDVOAdam Jackson2010-05-103-32/+11Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Multifunction SDVO cards stopped working after 14571b4, and would report something that looked remarkably like an ADD2 SPD ROM instead of EDID. This appears to be because DDC bus selection was utterly horked by that commit; controlled_output was no longer always a single bit, so intel_sdvo_select_ddc_bus would pick bus 0, which is (unsurprisingly) the SPD ROM bus, not a DDC bus. So, instead of that, let's just use the DDC bus the child device table tells us to use. I'm guessing at the bitmask and shifting from VBIOS dumps, but it can't possibly be worse. cf. https://bugzilla.redhat.com/584229 Signed-off-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Eric Anholt <eric@anholt.net>
| | * Merge remote branch 'origin/master' into drm-intel-nextEric Anholt2010-05-1030-105/+356
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: drivers/gpu/drm/i915/i915_dma.c drivers/gpu/drm/i915/i915_drv.h drivers/gpu/drm/radeon/r300.c The BSD ringbuffer support that is landing in this branch significantly conflicts with the Ironlake PIPE_CONTROL fix on master, and requires it to be tested successfully anyway.
| | * | drm/i915: cleanup mode setting before unmapping registersJesse Barnes2010-05-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We'll turn off outputs etc at unload time, so don't unmap the registers before doing it. Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Eric Anholt <eric@anholt.net>
| | * | drm/i915: Make fbc control wrapper functionsAdam Jackson2010-05-074-36/+51
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Eric Anholt <eric@anholt.net>
| | * | drm/i915: Wait for the GPU whilst shrinking, if truly desperate.Chris Wilson2010-05-071-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By idling the GPU and discarding everything we can when under extreme memory pressure, the number of OOM-killer events is dramatically reduced. For instance, this makes it possible to run firefox-planet-gnome.trace again on my swapless 512MiB i915. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Eric Anholt <eric@anholt.net>
| | * | drm/i915: Use spatio-temporal dithering on PCHAdam Jackson2010-05-072-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Spatial dither is better than nothing, but ST is even better. (from ajax's followup message:) I noticed this with: http://ajax.fedorapeople.org/YellowFlower.jpg set as my desktop background in Gnome on a 1280x800 machine (in particular, a Sony Vaio VPCB1 with 6-bit panel and a rather bright black level). Easiest way to test this is by poking at PIPEACONF with intel_reg_write directly: % sudo intel_reg_write 0x70008 0xc0000040 # no dither % sudo intel_reg_write 0x70008 0xc0000050 # spatial % sudo intel_reg_write 0x70008 0xc0000054 # ST I notice it especially strongly in the relatively flat dark area in the top left. Closer than about 18" I can see a noticeable checkerboard pattern with plain spatial dithering. ST smooths that out; I can still tell that it's lacking color precision, but it's not offensive. Signed-off-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Eric Anholt <eric@anholt.net>
| * | | drm/radeon/pm: fix device_create_file return value checks.Dave Airlie2010-05-181-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | print an error if these fail. Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | | drm/radeon/kms/pm: fix r6xx+ profile setupAlex Deucher2010-05-181-61/+53Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is a combination of the previous two profile patches, but without the index bugs. It cleans up and fixes some issues with pm profile setup on r6xx chips. Some tables have different orderings for the power states, also, r600 only has 1 clock mode per power state. On desktop cards there are no battery modes, so the low and high power states are the same. For the low profile case, choose the lower clock mode. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | | drm/radeon/kms/pm: make pm spam debug onlyAlex Deucher2010-05-184-24/+24
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | | drm/radeon/kms/pm: rework power managementAlex Deucher2010-05-1819-519/+790
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Separate dynpm and profile based power management methods. You can select the pm method by echoing the selected method ("dynpm" or "profile") to power_method in sysfs. - Expose basic 4 profile in profile method "default" - default clocks "auto" - select between low and high based on ac/dc state "low" - DC, low power mode "high" - AC, performance mode The current base profile is "default", but it should switched to "auto" once we've tested on more systems. Switching the state is a matter of echoing the requested profile to power_profile in sysfs. The lowest power states are selected automatically when dpms turns the monitors off in all states but default. - Remove dynamic fence-based reclocking for the moment. We can revisit this later once we have basic pm in. - Move pm init/fini to modesetting path. pm is tightly coupled with display state. Make sure display side is initialized before pm. - Add pm suspend/resume functions to make sure pm state is properly reinitialized on resume. - Remove dynpm module option. It's now selectable via sysfs. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | | drm/radeon/kms/pm: add support for no display power statesAlex Deucher2010-05-188-40/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The lowest power states often cause display problems, so only enable them when all displays are off. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | | drm/radeon/kms: fix lock ordering in ring, ib handlingAlex Deucher2010-05-181-17/+22
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | | radeon: Use fences to gate entry to reclocking on <r600Matthew Garrett2010-05-181-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GUI idle interrupts don't seem to work terribly well on r500 and earlier, so let's use a fence instead. Signed-off-by: Matthew Garrett <mjg@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | | radeon: Split out ring locking and allocationMatthew Garrett2010-05-182-6/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to handle the ring while we've already locked it, so split out the allocation and commit functions in order to allow them to be used. Signed-off-by: Matthew Garrett <mjg@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | | drm/radeon/kms: enable misc pm power state features on r1xx-r4xxAlex Deucher2010-05-181-2/+0Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | voltage drop, dynamic voltage, dynamic sclk, pcie lane adjust, etc, Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | | drm/radeon/kms: enable misc pm power state features on r5xx, rs6xxAlex Deucher2010-05-182-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | voltage drop, dynamic voltage, dynamic sclk, pcie lane adjust, etc, Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | | drm/radeon/kms: re-enable gui idle interrupts on r6xx+Alex Deucher2010-05-181-11/+13
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | | drm/radeon/kms: take vram mutex pointer before derefing object.Dave Airlie2010-05-181-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | since derefing the object might free it. Signed-off-by: Dave Airlie <airlied@redhat.com>