summaryrefslogtreecommitdiffstats
path: root/drivers/gpu
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'drm-nouveau-pony' of ↵Linus Torvalds2009-12-1181-0/+35852
|\ | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 * 'drm-nouveau-pony' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: drm/nouveau: Add DRM driver for NVIDIA GPUs
| * drm/nouveau: Add DRM driver for NVIDIA GPUsBen Skeggs2009-12-1181-0/+35852
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a drm/kms staging non-API stable driver for GPUs from NVIDIA. This driver is a KMS-based driver and requires a compatible nouveau userspace libdrm and nouveau X.org driver. This driver requires firmware files not available in this kernel tree, interested parties can find them via the nouveau project git archive. This driver is reverse engineered, and is in no way supported by nVidia. Support for nearly the complete range of nvidia hw from nv04->g80 (nv50) is available, and the kms driver should support driving nearly all output types (displayport is under development still) along with supporting suspend/resume. This work is all from the upstream nouveau project found at nouveau.freedesktop.org. The original authors list from nouveau git tree is: Anssi Hannula <anssi.hannula@iki.fi> Ben Skeggs <bskeggs@redhat.com> Francisco Jerez <currojerez@riseup.net> Maarten Maathuis <madman2003@gmail.com> Marcin Kościelnicki <koriakin@0x04.net> Matthew Garrett <mjg@redhat.com> Matt Parnell <mparnell@gmail.com> Patrice Mandin <patmandin@gmail.com> Pekka Paalanen <pq@iki.fi> Xavier Chantry <shiningxc@gmail.com> along with project founder Stephane Marchesin <marchesin@icps.u-strasbg.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* | Merge branch 'drm-linus' of ↵Linus Torvalds2009-12-113-104/+71
|\ \ | |/ | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 * 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: drm/ttm: export some functions useful to drivers using ttm drm/radeon/kms/avivo: fix typo in new_pll module description drm/radeon/kms: Convert radeon to new ttm_bo_init drm/ttm: Convert ttm_buffer_object_init to use ttm_placement
| * drm/ttm: export some functions useful to drivers using ttmBen Skeggs2009-12-111-0/+4
| | | | | | | | | | | | | | These are functions required by nouveau which will be merged later. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms/avivo: fix typo in new_pll module descriptionAlex Deucher2009-12-111-1/+1
| | | | | | | | | | Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/radeon/kms: Convert radeon to new ttm_bo_initJerome Glisse2009-12-111-30/+9
| | | | | | | | | | | | | | Now bo init use placement structure like bo validation does. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm/ttm: Convert ttm_buffer_object_init to use ttm_placementJerome Glisse2009-12-111-73/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Convert ttm_buffer_object_init to use struct ttm_placement and rename to ttm_bo_init for consistency with function naming. This allow to give more complex placement at buffer creation. For instance you ask to allocate bo into vram first but if there is not enough vram you can give system as a second possible placement. It also allow to create buffer in a specific range. Also rename ttm_buffer_object_validate to ttm_bo_validate. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* | Merge branch 'drm-linus' of ↵Linus Torvalds2009-12-10104-2924/+10895
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 * 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (189 commits) drm/radeon/kms: fix warning about cur_placement being uninitialised. drm/ttm: Print debug information on memory manager when eviction fails drm: Add memory manager debug function drm/radeon/kms: restore surface registers on resume. drm/radeon/kms/r600/r700: fallback gracefully on ucode failure drm/ttm: Initialize eviction placement in case the driver callback doesn't drm/radeon/kms: cleanup structure and module if initialization fails drm/radeon/kms: actualy set the eviction placements we choose drm/radeon/kms: Fix NULL ptr dereference drm/radeon/kms/avivo: add support for new pll selection algo drm/radeon/kms/avivo: fix some bugs in the display bandwidth setup drm/radeon/kms: fix return value from fence function. drm/radeon: Remove tests for -ERESTART from the TTM code. drm/ttm: Have the TTM code return -ERESTARTSYS instead of -ERESTART. drm/radeon/kms: Convert radeon to new TTM validation API (V2) drm/ttm: Rework validation & memory space allocation (V3) drm: Add search/get functions to get a block in a specific range drm/radeon/kms: fix avivo tiling regression since radeon object rework drm/i915: Remove a debugging printk from hangcheck drm/radeon/kms: make sure i2c id matches ...
| * drm/radeon/kms: fix warning about cur_placement being uninitialised.Dave Airlie2009-12-101-1/+1
| | | | | | | | Signed-off-by: Dave Airlie <airlied@redhat.com>
| * Merge remote branch 'korg/drm-radeon-next' of into drm-linusDave Airlie2009-12-1029-474/+768
| |\ | | | | | | | | | | | | | | | | | | | | | This merges some TTM overhauls to allow us to do better object placement for certain radeon GPUs that need scanout+cursor within range of each other, along with an API change to not return ERESTART to userspace, but to use ERESTARTSYS properly internally and have it convert to EINTR and catch that correctly. Also lots of radeon fixes across the board.
| | * drm/ttm: Print debug information on memory manager when eviction failsJerome Glisse2009-12-101-13/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | This add helper function to print information on eviction placements and memory manager status when eviction fails to allocate memory space. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * drm: Add memory manager debug functionJerome Glisse2009-12-101-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | drm_mm_debug_table will print the memory manager state in table allowing to give a snapshot of the manager at given point in time. Usefull for debugging. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * drm/radeon/kms: restore surface registers on resume.Dave Airlie2009-12-1011-7/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On resume on my rv530 laptop surface cntl was left disabled, so wierd stuff would happen with rendering to a tiled front buffer. This checks if the surface regs are assigned to bos and reprograms the surface registers on resume using the same path that clears them all on init. Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * drm/radeon/kms/r600/r700: fallback gracefully on ucode failureAlex Deucher2009-12-102-25/+25
| | | | | | | | | | | | | | | | | | | | | Sent the wrong patch earlier. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * drm/ttm: Initialize eviction placement in case the driver callback doesn'tJerome Glisse2009-12-101-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | This would allow to catch driver callback error of not properly setting the eviction placement structure. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@linux.ie>
| | * drm/radeon/kms: cleanup structure and module if initialization failsJerome Glisse2009-12-101-22/+20
| | | | | | | | | | | | | | | | | | | | | | | | This would allow us to properly unload others module like TTM if initialization fails after we initiliazed TTM structure. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@linux.ie>
| | * drm/radeon/kms: actualy set the eviction placements we chooseJerome Glisse2009-12-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Stupid bug, somehow copying the eviction placements into the result structure was missing. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@linux.ie>
| | * drm/radeon/kms: Fix NULL ptr dereferenceJerome Glisse2009-12-101-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | radeon_atombios_fini might be call while there is not valid atombios structure allocated, thus test for a not null ptr before trying to access this structure. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@linux.ie>
| | * drm/radeon/kms/avivo: add support for new pll selection algoAlex Deucher2009-12-106-3/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Supported on all AVIVO-based asics. Can be disabled via the new_pll module parameter: new_pll=0 - disable new_pll=1 - enable enabled by default [airlied: fixed to use do_div] Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@linux.ie>
| | * drm/radeon/kms/avivo: fix some bugs in the display bandwidth setupAlex Deucher2009-12-103-5/+28
| | | | | | | | | | | | | | | Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@linux.ie>
| | * drm/radeon/kms: fix return value from fence function.Dave Airlie2009-12-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | We only want to return here for errors, the wait functions return a positive timeout otherwise, which gets back to userspace and causes X to crash here. Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * drm/radeon: Remove tests for -ERESTART from the TTM code.Thomas Hellstrom2009-12-102-29/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also sets affected TTM calls up to not wait interruptible, since that would cause an in-kernel spin until the TTM call succeeds, since the Radeon code does not return to user-space when a signal is received. Modifies interruptible fence waits to return -ERESTARTSYS rather than -EBUSY when interrupted by a signal, since that's the (yet undocumented) semantics required by the TTM sync object hooks. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * drm/ttm: Have the TTM code return -ERESTARTSYS instead of -ERESTART.Thomas Hellstrom2009-12-102-24/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Return -ERESTARTSYS instead of -ERESTART when interrupted by a signal. The -ERESTARTSYS is converted to an -EINTR by the kernel signal layer before returned to user-space. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * drm/radeon/kms: Convert radeon to new TTM validation API (V2)Jerome Glisse2009-12-103-51/+67
| | | | | | | | | | | | | | | | | | | | | | | | This convert radeon to use new TTM validation API, it doesn't really take advantage of it beside in the eviction case. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * drm/ttm: Rework validation & memory space allocation (V3)Jerome Glisse2009-12-101-242/+221
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change allow driver to pass sorted memory placement, from most prefered placement to least prefered placement. In order to avoid long function prototype a structure is used to gather memory placement informations such as range restriction (if you need a buffer to be in given range). Range restriction is determined by fpfn & lpfn which are the first page and last page number btw which allocation can happen. If those fields are set to 0 ttm will assume buffer can be put anywhere in the address space (thus it avoids putting a burden on the driver to always properly set those fields). This patch also factor few functions like evicting first entry of lru list or getting a memory space. This avoid code duplication. V2: Change API to use placement flags and array instead of packing placement order into a quadword. V3: Make sure we set the appropriate mem.placement flag when validating or allocation memory space. [Pending Thomas Hellstrom further review but okay from preliminary review so far]. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * drm: Add search/get functions to get a block in a specific rangeJerome Glisse2009-12-101-0/+88
| | | | | | | | | | | | | | | | | | | | | These are required for changes to TTM. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * drm/radeon/kms: fix avivo tiling regression since radeon object reworkDave Airlie2009-12-101-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | The object rework moved the tiling flag setup around wrongly, so tiling we getting setup then overwritten by fb format. Fixes regression with drm-radeon-next on rv530 laptop tiling test. Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * drm/radeon/kms: make sure i2c id matchesAlex Deucher2009-12-091-48/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | Entries in the i2c table aren't always ordered by id. This allows us to remove some quirks that are no longer needed. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * drm/radeon/kms: make sure ss id matchesAlex Deucher2009-12-091-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | entries in the ss table aren't always ordered by id. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * drm/radeon/kms: connector fixesAlex Deucher2009-12-092-9/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Don't add dac load detection property to DVI-D - Make sure i2c info is valid before adding DP aux chan bus - Don't create scaling_mode_property twice - fix typo that prevented coherent and load detection from working - add coherent prop to DP (for dp->dvi adapters) Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * drm/ttm: fix memory leak noticed by kmemleak.Dave Airlie2009-12-091-1/+3
| | | | | | | | | | | | | | | | | | | | | If we don't need the zone we need to free it. Acked-By: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * drm: disable all the possible outputs/crtcs before entering KMS modeZhao Yakui2009-12-091-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes we will use a crtc for integerated LVDS, which is different with that assigned by BIOS. If we want to get flicker-free transitions, then we could read out the current state for it and set our current state accordingly. But it is true that if we aren't reading current state out, we do need to turn everything off before modesetting. Otherwise the clocks can get very angry and we get things worse than a flicker at boot. In fact we also do the similar thing in UMS mode. We will disable all the possible outputs/crtcs for the first modesetting. So we disable all the possible outputs/crtcs before entering the KMS mode. Before we configure connector/encoder/crtc, the function of drm_helper_disable_unused_function can disable all the possible outputs/crtcs. Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Rafal Milecki <zajec5@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | Merge remote branch 'anholt/drm-intel-next' into drm-linusDave Airlie2009-12-107-26/+26
| |\ \ | | |/ | |/| | | | Pull more Intel changes in, especially one to init the GTT properly
| | * drm/i915: Remove a debugging printk from hangcheckChris Wilson2009-12-081-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | A residual bare printk survived the merger of the hang detector, remove this debugging left-over. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Eric Anholt <eric@anholt.net>
| | * drm/i915: restore render clock gating on resumeAndrew Lutomirski2009-12-084-23/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than restoring just a few clock gating registers on resume, just reinitialize the whole thing. Signed-off-by: Andy Lutomirski <luto@mit.edu> [anholt: Fixed up for RC6 support landed since the patch was written] Signed-off-by: Eric Anholt <eric@anholt.net>
| | * drm/i915: Set the error code after failing to insert new offset into mm ht.Chris Wilson2009-12-071-0/+1
| | | | | | | | | | | | | | | | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: stable@kernel.org Signed-off-by: Eric Anholt <eric@anholt.net>
| | * drm/i915: Report purgeable status in buffer lists.Chris Wilson2009-12-071-2/+3
| | | | | | | | | | | | | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Eric Anholt <eric@anholt.net>
| * | Merge remote branch 'korg/drm-radeon-dp' into drm-linusDave Airlie2009-12-0823-309/+2612
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This merges the radeon KMS DisplayPort and hotplug detect support. Tested on RV635 DP card with a Dell 2408 monitor. Conflicts: drivers/gpu/drm/drm_fb_helper.c
| | * | drm/radeon/kms: enable hpd supportAlex Deucher2009-12-0810-10/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This enabled interrupt driven hpd support for all radeon chips. Assuming the hpd pin is wired up correctly, the driver will generate uevents on digital monitor connect and disconnect and retrain DP monitors automatically. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * | drm/radeon/kms: add asic callbacks for hpdAlex Deucher2009-12-083-1/+65
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * | drm/radeon/kms: add hpd support for r6xx/r7xx/rs780/rs880 asicsAlex Deucher2009-12-081-23/+485
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This just adds the functionality, it's not hooked up yet. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * | drm/radeon/kms: add hpd support for r5xx/rs600/rs690/rs740 asicsAlex Deucher2009-12-081-0/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This just adds the functionality, it's not hooked up yet. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * | drm/radeon/kms: add hpd support for r1xx-r4xx asicsAlex Deucher2009-12-081-2/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This just adds the functionality, it's not hooked up yet. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * | drm/radeon/kms: add regs and irq tracking bits for hpdAlex Deucher2009-12-084-23/+154
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * | drm/radeon/kms: get HPD info for connectorsAlex Deucher2009-12-087-84/+330
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This populates the connectors with HPD (Hot Plug Detect) information. This will be used in subsequent patches for automatic digital monitor connect/disconnect handling. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * | drm/radeon/kms: clean up DP debuggingAlex Deucher2009-12-081-28/+28
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * | drm/radeon/kms: fix DP detectAlex Deucher2009-12-084-11/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | only return connected if there is actually a monitor connected. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * | drm/radeon/kms: drop unused array to fix warning.Dave Airlie2009-12-081-3/+0
| | | | | | | | | | | | | | | | Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * | drm/radeon/kms: do dp link training at dpms on time not mode set.Dave Airlie2009-12-081-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This moves the radeon DP link training call to happen when we dpms on the encoder not when we set the mode. Signed-off-by: Dave Airlie <airlied@redhat.com>
| | * | drm/radeon/kms: make displayport work by reorganising vsemph setup.Dave Airlie2009-12-081-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fix reorganises the initial DP link training slightly, and actually makes DP work under kms here. Signed-off-by: Dave Airlie <airlied@redhat.com>
OpenPOWER on IntegriCloud