summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* drm/nouveau: remove dev_priv->init_state and friendsBen Skeggs2010-07-137-74/+25
| | | | | | | Nouveau will no longer load at all if card initialisation fails, so all these checks are unnecessary. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: add scaler-only modes for eDP tooBen Skeggs2010-07-131-1/+2
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50: set DP display power state during DPMSBen Skeggs2010-07-131-2/+16
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: move DP script invocation to nouveau_dp.cBen Skeggs2010-07-132-33/+23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50: rewrite display irq handlerBen Skeggs2010-07-132-143/+190
| | | | | | | | | The previous handler basically worked correctly for a full-blown mode change. However, it did nothing at all when a partial (encoder only) reconfiguation was necessary, leading to the display hanging on certain types of mode switch. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50: send evo "update" command after each disconnectBen Skeggs2010-07-133-13/+12
| | | | | | | | | It turns out that the display engine signals an interrupt for disconnects too. In order to make it easier to process the display interrupts correctly, we want to ensure we only get one operation per interrupt sequence - this is what this commit achieves. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: Workaround broken TV load detection on a "Zotac FX5200".Francisco Jerez2010-07-131-6/+27
| | | | | | | | The blob seems to have the same problem so it's probably a hardware issue (bug 28810). Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: Move the fence wait before migration resource clean-up.Francisco Jerez2010-07-131-3/+3
| | | | | | | | Avoids an oops in the fence wait failure path (bug 26521). Signed-off-by: Francisco Jerez <currojerez@riseup.net> Tested-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv04-nv40: Drop redundant logging.Francisco Jerez2010-07-131-4/+0
| | | | | Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: INIT_CONFIGURE_PREINIT/CLK/MEM on newer BIOSes is not an error.Francisco Jerez2010-07-131-3/+3
| | | | | | | | No need to spam the logs when they're found, they're equivalent to INIT_DONE. Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: Fix a couple of sparse warnings.Francisco Jerez2010-07-139-19/+20
| | | | | Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv04-nv40: Disable connector polling when there're no spare CRTCs left.Francisco Jerez2010-07-133-12/+48
| | | | | | | | | Load detection needs the connector wired to a CRTC, when there are no inactive CRTCs left that means we need to cut some other head off for a while, causing intermittent flickering. Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv04-nv40: Prevent invalid DAC/TVDAC combinations.Francisco Jerez2010-07-133-2/+26
| | | | | Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv17-nv40: Avoid using active CRTCs for load detection.Francisco Jerez2010-07-131-5/+4
| | | | | Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50: when debugging on, log which crtc we connect an encoder toBen Skeggs2010-07-132-2/+4
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50: supply encoder disable() hook for SOR outputsBen Skeggs2010-07-134-45/+41
| | | | | | | | | | Allows us to remove a driver hack that used to be necessary to disable encoders in certain situations before setting up a mode. The DRM has better knowledge of when this is needed than the driver does. This fixes a number of display switching issues. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50: DCB quirk for Dell M6300Ben Skeggs2010-07-131-0/+28
| | | | | | | | Uncertain if this is a weirdo configuration, or a BIOS bug. If it's not a BIOS bug, we still don't know how to make it work anyway so ignore a "conflicting" DCB entry to prevent a display hang. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50: fix DP->DVI if output has been programmed for native DP previouslyBen Skeggs2010-07-132-0/+32
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: downgrade severity of most init table parser errorsBen Skeggs2010-07-131-42/+70
| | | | | | | | As long as we know the length of the opcode, we're probably better off trying to parse the remainder of an init table rather than aborting in the middle of it. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: tidy connector/encoder creation a littleBen Skeggs2010-07-1313-83/+84
| | | | | | | | | | | | | | | Create connectors before encoders to avoid having to do another loop across encoder list whenever we create a new connector. This allows us to pass the connector to the encoder creation functions, and avoid using a create_resources() callback since we can now call it directly. This can also potentially modify the connector ordering on nv50. On cards where the DCB connector and encoder tables are in the same order, things will be unchanged. However, there's some cards where the ordering between the tables differ, and in one case, leads us to naming the connectors "wrongly". Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: set encoder for lvdsAlbert Damen2010-07-131-0/+1
| | | | | | | | fixes oops in nouveau_connector_get_modes with nv_encoder is NULL Signed-off-by: Albert Damen <albrt@gmx.net> Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: Ignore broken legacy I2C entries.Francisco Jerez2010-07-131-4/+8
| | | | | | | | | | | The nv05 card in the bug report [1] doesn't have usable I2C port register offsets (they're all filled with zeros). Ignore them and use the defaults. [1] http://bugs.launchpad.net/bugs/569505 Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: Don't clear AGPCMD completely on INIT_RESET.Francisco Jerez2010-07-131-1/+2
| | | | | | | | | | | | | We just need to clear the SBA and ENABLE bits to reset the AGP controller: If the AGP bridge was configured to use "fast writes", clearing the FW bit would break the subsequent MMIO writes and eventually end with a lockup. Note that all the BIOSes I've seen do the same as we did (it works for them because they don't use MMIO), OTOH the blob leaves FW untouched. Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: Put the dithering check back in nouveau_connector_create.Francisco Jerez2010-07-131-4/+22
| | | | | | | | a7b9f9e5adef dropped it by accident. Signed-off-by: Francisco Jerez <currojerez@riseup.net> Tested-by: Thibaut Girka <thib@sitedethib.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50: fix memory detection for cards with >=4GiB VRAMBen Skeggs2010-07-131-1/+6
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: missed some bracesBen Skeggs2010-07-131-1/+2
| | | | | | | Luckily this had absolutely no effect whatsoever :) Reported-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: remove left-over !DRIVER_MODESET pathsBen Skeggs2010-07-134-71/+38
| | | | | | It's far preferable to have the driver do nothing at all for "nomodeset". Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: use drm_mm in preference to custom code doing the same thingBen Skeggs2010-07-137-240/+45
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: move LVDS detection back to connector detect() timeBen Skeggs2010-07-131-115/+87
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: place notifiers in system memory by defaultBen Skeggs2010-07-131-1/+1
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm: disable encoder rather than dpms off in drm_crtc_prepare_encoders()Ben Skeggs2010-07-131-8/+14
| | | | | | | | | Original behaviour will be preserved for drivers that don't implement disable() hooks for an encoder. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm: add PCI requirements to low-level drivers.Dave Airlie2010-07-092-4/+4
| | | | | | | | Now that highlevel DRM no longer requires PCI, we can move the requirement into the lowlevel drivers. Reported-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* Merge branch 'drm-tracepoints' into drm-testingDave Airlie2010-07-077-1/+128
|\
| * drm/i915: add tracepoints for flip requests & completionsJesse Barnes2010-07-022-0/+41
| | | | | | | | | | Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm: add per-event vblank event trace pointsJesse Barnes2010-07-023-14/+53
| | | | | | | | | | | | | | Allows us to track each process that requests and completes events. Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * drm: add vblank event trace pointJesse Barnes2010-07-024-1/+48
| | | | | | | | | | | | | | | | Emit a trace point for vblank events. This can be helpful for mapping drawing activity against the vblank frequency and period. Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
* | drm/kms: add crtc disable functionAlex Deucher2010-07-072-1/+7
| | | | | | | | | | | | | | | | | | | | More explicit than dpms. Same as the encoder disable function. Need this to explicity disconnect plls from crtcs for reuse when you plls:crtcs ratio isn't 1:1. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* | Merge branch 'drm-intel-lru' into drm-testingDave Airlie2010-07-075-144/+254
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | * drm-intel-lru: drm: implement helper functions for scanning lru list drm_mm: extract check_free_mm_node drm: sane naming for drm_mm.c drm: kill dead code in drm_mm.c drm: kill drm_mm_node->private drm: use list_for_each_entry in drm_mm.c
| * | drm: implement helper functions for scanning lru listDaniel Vetter2010-07-072-5/+177
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These helper functions can be used to efficiently scan lru list for eviction. Eviction becomes a three stage process: 1. Scanning through the lru list until a suitable hole has been found. 2. Scan backwards to restore drm_mm consistency and find out which objects fall into the hole. 3. Evict the objects that fall into the hole. These helper functions don't allocate any memory (at the price of not allowing any other concurrent operations). Hence this can also be used for ttm (which does lru scanning under a spinlock). Evicting objects in this fashion should be more fair than the current approach by i915 (scan the lru for a object large enough to contain the new object). It's also more efficient than the current approach used by ttm (uncoditionally evict objects from the lru until there's enough free space). Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Thomas Hellstrom <thellstrom@vmwgfx.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm_mm: extract check_free_mm_nodeDaniel Vetter2010-07-071-37/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are already two copies of this logic. And the new scanning stuff will add some more. So extract it into a small helper function. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Thomas Hellstrom <thellstrom@vmwgfx.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm: sane naming for drm_mm.cDaniel Vetter2010-07-072-41/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Yeah, I've kinda noticed that fl_entry is the free stack. Still give it (and the memory node list ml_entry) decent names. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Thomas Hellstrom <thellstrom@vmwgfx.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm: kill dead code in drm_mm.cDaniel Vetter2010-07-071-45/+0
| | | | | | | | | | | | | | | | | | | | | Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Thomas Hellstrom <thellstrom@vmwgfx.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm: kill drm_mm_node->privateDaniel Vetter2010-07-074-12/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Only ever assigned, never used. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> [glisse: I will re-add if needed for range-restricted allocations] Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | drm: use list_for_each_entry in drm_mm.cDaniel Vetter2010-07-071-6/+2
| | | | | | | | | | | | | | | | | | | | | Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Thomas Hellstrom <thellstrom@vmwgfx.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* | | Merge branch 'drm-platform' into drm-testingDave Airlie2010-07-0737-239/+479
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * drm-platform: drm: Make sure the DRM offset matches the CPU drm: Add __arm defines to DRM drm: Add support for platform devices to register as DRM devices drm: Remove drm_resource wrappers
| * | | drm: Make sure the DRM offset matches the CPUJordan Crouse2010-06-011-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The pgoff option in mmap() is defined as an unsigned long so the offset generated by DRM needs to fit into BITS_PER_LONG for the CPU in question. Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | | drm: Add __arm defines to DRMJordan Crouse2010-06-012-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add __arm defines to specify behavior specific for an ARM processor. Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | | drm: Add support for platform devices to register as DRM devicesJordan Crouse2010-06-0117-172/+402
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow platform devices without PCI resources to be DRM devices. [airlied: fixup warnings with dev pointers] Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | | drm: Remove drm_resource wrappersJordan Crouse2010-06-0120-65/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the drm_resource wrappers and directly use the actual PCI and/or platform functions in their place. [airlied: fixup nouveau properly to build] Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Reviewed-by: Matt Turner <mattst88@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* | | | Merge tag 'v2.6.35-rc4' into drm-testingDave Airlie2010-07-0749-599/+511
|\ \ \ \ | | |/ / | |/| |
OpenPOWER on IntegriCloud