aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau
Commit message (Collapse)AuthorAge
...
* | | drm/nouveau: Fix pageflip eventBenjamin Franzke2011-02-24
| | | | | | | | | | | | | | | | | | Assign correct event when initializing nouveau_page_flip_state. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nouveau/vbios: parse more gpio tag bits from connector tableBen Skeggs2011-02-24
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nouveau: decode PFIFO DMA_PUSHER error codesMarcin Slusarz2011-02-24
| | | | | | | | | | | | | | | Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv50: fix typos in CCACHE error reportingMarcin Slusarz2011-02-24
| | | | | | | | | | | | | | | | | | | | | | | | The code was supposed to print registers around 0x405018 (which is read earlier), not 0x405818. Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nvc0: support for sw methods + enable page flippingBen Skeggs2011-02-24
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv50: enable page flippingBen Skeggs2011-02-24
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv50-nvc0: activate/update ds channel's framebuffer on modesetsBen Skeggs2011-02-24
| | | | | | | | | | | | | | | | | | | | | | | | The hw doesn't really appear to be designed to be used the way we have to use it due to DRI2's design. This leads us to having to keep the flipped fb support active at all times. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv50-nvc0: initialise display sync channelsBen Skeggs2011-02-24
| | | | | | | | | | | | | | | | | | | | | Also imports a couple of helper functions that'll be used to implement page flipping in the following commits.. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv50-nvc0: precalculate some fb state when creating themBen Skeggs2011-02-24
| | | | | | | | | | | | | | | | | | | | | Just a cleanup, to avoid duplicating parts of nv50_crtc.c's code in the page flipping routines. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv50-nvc0: tidy evo object creation some moreBen Skeggs2011-02-24
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv50-nvc0: request and wait on notification of modeset completionBen Skeggs2011-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | This should prevent a number of races from occuring, the most obvious of which will be exposed when we start making use of the "display sync" evo channel for page flipping. The DS channel will reject any command stream that doesn't completely agree with the current "master" state. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv50-nvc0: switch to tasklet for display isr bhBen Skeggs2011-02-24
| | | | | | | | | | | | | | | | | | | | | | | | We need to be able to have the bh run while possibly spinning waiting for the EVO notifier to signal. This apparently happens in some circumstances with preempt disabled, so our workqueue was never being run. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nouveau: make vbios parser runnable from an atomic contextBen Skeggs2011-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | The nv50 display isr bh needs to be converted to a tasklet, which means we can't sleep anymore. The places we execute vbios init tables are rare, and not in any way performance critical, so this isn't a huge problem. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv50-nvc0: include nv50_display in evo debuggingBen Skeggs2011-02-24
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv50-nvc0: tidy evo init failure pathsBen Skeggs2011-02-24
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv50-nvc0: fix ramht entries for multiple evo channelsBen Skeggs2011-02-24
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv50-nvc0: disp channels have fixed purposes, don't "allocate" themBen Skeggs2011-02-24
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv50-nvc0: rename disp->evo to disp->masterBen Skeggs2011-02-24
| | | | | | | | | | | | | | | | | | | | | More appropriate, and we're about to be using more than just the master EVO channel. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv50-nvc0: move non-sharable display state into private structureBen Skeggs2011-02-24
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nouveau: use system_wq instead of dev_priv->wqTejun Heo2011-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With cmwq, there's no reason for nouveau to use a dedicated workqueue. Drop dev_priv->wq and use system_wq instead. Each work item is sync flushed when the containing structure is unregistered/destroyed. Note that this change also makes sure that nv50_gpio_handler is not freed while the contained work item is still running. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: David Airlie <airlied@linux.ie> Cc: dri-devel@lists.freedesktop.org Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nouveau: use I2C_MODULE_PREFIX kernel defineLucas Stach2011-02-24
| | | | | | | | | | | | | | | Signed-off-by: Lucas Stach <dev@lynxeye.de> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv50: drop explicit yields in favour of smaller PFIFO timesliceBen Skeggs2011-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This gives a small, but noticeable performance gain at lower performance levels, and unchanged at the higher ones. With this commit, we're now using the same timeslice size as the NVIDIA binary driver currently does, and dropping an unknown bit that NVIDIA no longer appear to set. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv84: use vm offsets for semaphoresBen Skeggs2011-02-24
| | | | | | | | | | | | | | | | | | | | | | | | We may well be making more use of semaphores in the future, having the entire VM available makes requiring DMA objects for each and every semaphore block unnecessary. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv50: 0x50 needs semaphore yields tooBen Skeggs2011-02-24
| | | | | | | | | | | | | | | | | | Evil, evil chipset. Worst of both worlds. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nouveau: silence some compiler warningsBen Skeggs2011-02-24
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nvc0: implement semaphores for inter-channel syncBen Skeggs2011-02-24
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nvc0/pfifo: semi-handle a couple more irqsBen Skeggs2011-02-24
| | | | | | | | | | | | | | | | | | | | | And also, don't disable PFIFO IRQs completely whenever we recieve one, just when we don't know about it already. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv84: switch to new-style semaphoresBen Skeggs2011-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | These are the same semaphores nvc0 will use, and they potentially allow us to do much cooler things than our current inter-channel sync impl. Lets switch to them where possible now for some testing. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv40: support for 39-bit dma addresses on native PCIE chipsetsBen Skeggs2011-02-24
| | | | | | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nv40: implement support for on-chip PCIEGARTBen Skeggs2011-02-24
| | | | | | | | | | | | | | | | | | | | | v2. moved nv44 pciegart table back to instmem, where it's not accessible by userspace clients. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nouveau: introduce new gart type, and name _SGDMA more appropriatelyBen Skeggs2011-02-24
| | | | | | | | | | | | | | | | | | | | | In preparation for the addition of a new nv40 backend, we'll need to be able to distinguish between a paged dma object and the on-chip GART. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | drm/nouveau: move + rename some stuff in nouveau_sgdma.cBen Skeggs2011-02-24
| | | | | | | | | | | | | | | | | | In preparation for the addition of a new nv40 pcie backend. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | | Merge remote-tracking branch 'airlied/drm-core-next' into drm-nouveau-nextBen Skeggs2011-02-24
|\ \ \ | |_|/ |/| |
| * | Revert "ttm: Include the 'struct dev' when using the DMA API."Dave Airlie2011-02-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 5a893fc28f0393adb7c885a871b8c59e623fd528. This causes a use after free in the ttm free alloc pages path, when it tries to get the be after the be has been destroyed. Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | Merge branch 'drm-mm-cleanup' into drm-nextDave Airlie2011-02-22
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * drm-mm-cleanup: radeon: move blit functions to radeon_asic.h radeon: kill decls for inline functions radeon: consolidate asic-specific function decls for r600 & later drm/radeon: kill radeon_bo->gobj pointer drm/radeon: introduce gem_to_radeon_bo helper drm/radeon: embed struct drm_gem_object drm: mm: add helper to unwind scan state drm: mm: add api for embedding struct drm_mm_node drm: mm: extract node insert helper functions drm: mm: track free areas implicitly drm/nouveau: don't munge in drm_mm internals
| | * | drm/nouveau: don't munge in drm_mm internalsDaniel Vetter2011-02-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Nouveau was checking drm_mm internals on teardown to see whether the memory manager was initialized. Hide these internals in a small inline helper function. Acked-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | | Merge branch 'stable/ttm.pci-api.v5' of ↵Dave Airlie2011-02-22
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into drm-next * 'stable/ttm.pci-api.v5' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen: ttm: Include the 'struct dev' when using the DMA API. nouveau/ttm/PCIe: Use dma_addr if TTM has set it. radeon/ttm/PCIe: Use dma_addr if TTM has set it. ttm: Expand (*populate) to support an array of DMA addresses. ttm: Utilize the DMA API for pages that have TTM_PAGE_FLAG_DMA32 set. ttm: Introduce a placeholder for DMA (bus) addresses.
| | * | | ttm: Include the 'struct dev' when using the DMA API.Konrad Rzeszutek Wilk2011-02-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes the accounting when using 'debug_dma_dump_mappings()' and CONFIG_DMA_API_DEBUG=y be assigned to the correct device instead of 'fallback'. No functional change - just cosmetic. Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
| | * | | nouveau/ttm/PCIe: Use dma_addr if TTM has set it.Konrad Rzeszutek Wilk2011-02-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the TTM layer has used the DMA API to setup pages that are TTM_PAGE_FLAG_DMA32 (look at patch titled: "ttm: Utilize the DMA API for pages that have TTM_PAGE_FLAG_DMA32 set"), lets use it when programming the GART in the PCIe type cards. This patch skips doing the pci_map_page (and pci_unmap_page) if there is a DMA addresses passed in for that page. If the dma_address is zero (or DMA_ERROR_CODE), then we continue on with our old behaviour. [v2: Added a review-by tag] Reviewed-by: Thomas Hellstrom <thomas@shipmail.org> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Tested-by: Ian Campbell <ian.campbell@citrix.com>
| | * | | ttm: Expand (*populate) to support an array of DMA addresses.Konrad Rzeszutek Wilk2011-01-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We pass in the array of ttm pages to be populated in the GART/MM of the card (or AGP). Patch titled: "ttm: Utilize the DMA API for pages that have TTM_PAGE_FLAG_DMA32 set." uses the DMA API to make those pages have a proper DMA addresses (in the situation where page_to_phys or virt_to_phys do not give use the DMA (bus) address). Since we are using the DMA API on those pages, we should pass in the DMA address to this function so it can save it in its proper fields (later patches use it). [v2: Added reviewed-by tag] Reviewed-by: Thomas Hellstrom <thellstrom@shipmail.org> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Tested-by: Ian Campbell <ian.campbell@citrix.com>
| * | | | drm: Mark constant arrays of drm_display_mode constChris Wilson2011-02-22
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... and fixup some methods to accept the constant argument. Now that constant module arrays are loaded into read-only memory, using const appropriately has some benefits beyond warning the programmer about likely mistakes. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | | drm: rework PCI/platform driver interface.Dave Airlie2011-02-06
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | This abstracts the pci/platform interface out a step further, we can go further but this is far enough for now to allow USB to be plugged in. The drivers now just call the init code directly for their device type. Signed-off-by: Dave Airlie <airlied@redhat.com>
| * | Merge remote branch 'nouveau/drm-nouveau-next' of /ssd/git/drm-nouveau-next ↵Dave Airlie2011-02-01
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | into drm-fixes * 'nouveau/drm-nouveau-next' of /ssd/git/drm-nouveau-next: drm/nv50: fix display on 0x50 drm/nouveau: correctly pair hwmon_init and hwmon_fini
| * \ \ Merge branch 'drm-fixes' of ↵Linus Torvalds2011-01-27
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: drm/nv50: fix regression on IGPs drm/radeon/kms: re-emit full context state for evergreen blits drm/radeon/kms: release CMASK access in preclose_kms drm/radeon/kms: fix r6xx+ scanout on BE systems drm/radeon/kms: clean up some magic numbers drm/radeon/kms: only enable HDMI mode if radeon audio is enabled radeon/kms: fix dp displayport mode validation drm/nvc0/grctx: correct an off-by-one drm/nv50: Fix race with PFIFO during PGRAPH context destruction. drm/nouveau: Workaround incorrect DCB entry on a GeForce3 Ti 200. drm/nvc0: implement irq handler for whatever's at 0x14xxxx drm/nvc0: fix incorrect TPC register setup drm/nouveau: probe for adt7473 before f75375 drm/nouveau: remove dead function definition
| | * \ \ Merge branch 'drm-nouveau-next' of ↵Dave Airlie2011-01-27
| | |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.freedesktop.org/git/nouveau/linux-2.6 into drm-fixes * 'drm-nouveau-next' of git://git.freedesktop.org/git/nouveau/linux-2.6: drm/nv50: fix regression on IGPs
| | * \ \ \ Merge branch 'drm-nouveau-next' of ↵Dave Airlie2011-01-26
| | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.freedesktop.org/git/nouveau/linux-2.6 into drm-fixes * 'drm-nouveau-next' of git://git.freedesktop.org/git/nouveau/linux-2.6: drm/nvc0/grctx: correct an off-by-one drm/nv50: Fix race with PFIFO during PGRAPH context destruction. drm/nouveau: Workaround incorrect DCB entry on a GeForce3 Ti 200. drm/nvc0: implement irq handler for whatever's at 0x14xxxx drm/nvc0: fix incorrect TPC register setup drm/nouveau: probe for adt7473 before f75375 drm/nouveau: remove dead function definition
| * | | | | | console: rename acquire/release_console_sem() to console_lock/unlock()Torben Hohn2011-01-25
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The -rt patches change the console_semaphore to console_mutex. As a result, a quite large chunk of the patches changes all acquire/release_console_sem() to acquire/release_console_mutex() This commit makes things use more neutral function names which dont make implications about the underlying lock. The only real change is the return value of console_trylock which is inverted from try_acquire_console_sem() This patch also paves the way to switching console_sem from a semaphore to a mutex. [akpm@linux-foundation.org: coding-style fixes] [akpm@linux-foundation.org: make console_trylock return 1 on success, per Geert] Signed-off-by: Torben Hohn <torbenh@gmx.de> Cc: Thomas Gleixner <tglx@tglx.de> Cc: Greg KH <gregkh@suse.de> Cc: Ingo Molnar <mingo@elte.hu> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| * | | | | kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERTDavid Rientjes2011-01-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The meaning of CONFIG_EMBEDDED has long since been obsoleted; the option is used to configure any non-standard kernel with a much larger scope than only small devices. This patch renames the option to CONFIG_EXPERT in init/Kconfig and fixes references to the option throughout the kernel. A new CONFIG_EMBEDDED option is added that automatically selects CONFIG_EXPERT when enabled and can be used in the future to isolate options that should only be considered for embedded systems (RISC architectures, SLOB, etc). Calling the option "EXPERT" more accurately represents its intention: only expert users who understand the impact of the configuration changes they are making should enable it. Reviewed-by: Ingo Molnar <mingo@elte.hu> Acked-by: David Woodhouse <david.woodhouse@intel.com> Signed-off-by: David Rientjes <rientjes@google.com> Cc: Greg KH <gregkh@suse.de> Cc: "David S. Miller" <davem@davemloft.net> Cc: Jens Axboe <axboe@kernel.dk> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Robin Holt <holt@sgi.com> Cc: <linux-arch@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| * | | | | Merge remote branch 'nouveau/drm-nouveau-next' of /ssd/git/drm-nouveau-next ↵Dave Airlie2011-01-16
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into drm-fixes * 'nouveau/drm-nouveau-next' of /ssd/git/drm-nouveau-next: drm/nouveau: fix gpu page faults triggered by plymouthd drm/nouveau: greatly simplify mm, killing some bugs in the process drm/nvc0: enable protection of system-use-only structures in vm drm/nv40: initialise 0x17xx on all chipsets that have it drm/nv40: make detection of 0x4097-ful chipsets available everywhere
| * | | | | | Revert "drm: Update fbdev fb_fix_screeninfo"Dave Airlie2011-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit dfe63bb0ad9810db13aab0058caba97866e0a681. This commit was causing nouveau not to work properly, for -rc1 I'd prefer it worked and we can look if this is useful for 2.6.39. Cc: James Simmons <jsimmons@infradead.org> Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>