summaryrefslogtreecommitdiff
path: root/linux-core
AgeCommit message (Collapse)Author
2008-06-12xgi: Bump kernel versionIan Romanick
This should have been bumped when the fence interface was changed the other day. Better late than never, I suppose.
2008-06-10xgixp: Remove dependency on TTM fencesIan Romanick
2008-06-10xgi: Fix 64-bit kernel / 32-bit user issue.Ian Romanick
2008-06-10ati_pcigart: split out the page insert functionDave Airlie
2008-06-08I915 suspend/resume for FreeBSDRobert Noland
2008-06-03vblank: Don't wait or update the counter while the CRTC is supposedly disabled.Michel Dänzer
Without kernel modesetting, this requires cooperation of the user/* * Copyright © 2008 Jérôme Glisse * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS * AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE * USE OR OTHER DEALINGS IN THE SOFTWARE. * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. */ /* * Authors: * Jérôme Glisse <glisse@freedesktop.org> */ #ifndef RADEON_BO_H #define RADEON_BO_H #include <stdio.h> #include <stdint.h> /* bo object */ #define RADEON_BO_FLAGS_MACRO_TILE 1 #define RADEON_BO_FLAGS_MICRO_TILE 2 #define RADEON_BO_FLAGS_MICRO_TILE_SQUARE 0x20 struct radeon_bo_manager; struct radeon_cs; struct radeon_bo { void *ptr; uint32_t flags; uint32_t handle; uint32_t size; }; struct radeon_bo_manager; void radeon_bo_debug(struct radeon_bo *bo, const char *op); struct radeon_bo *radeon_bo_open(struct radeon_bo_manager *bom, uint32_t handle, uint32_t size, uint32_t alignment, uint32_t domains, uint32_t flags); void radeon_bo_ref(struct radeon_bo *bo); struct radeon_bo *radeon_bo_unref(struct radeon_bo *bo); int radeon_bo_map(struct radeon_bo *bo, int write); int radeon_bo_unmap(struct radeon_bo *bo); int radeon_bo_wait(struct radeon_bo *bo); int radeon_bo_is_busy(struct radeon_bo *bo, uint32_t *domain); int radeon_bo_set_tiling(struct radeon_bo *bo, uint32_t tiling_flags, uint32_t pitch); int radeon_bo_get_tiling(struct radeon_bo *bo, uint32_t *tiling_flags, uint32_t *pitch); int radeon_bo_is_static(struct radeon_bo *bo); int radeon_bo_is_referenced_by_cs(struct radeon_bo *bo, struct radeon_cs *cs); uint32_t radeon_bo_get_handle(struct radeon_bo *bo); uint32_t radeon_bo_get_src_domain(struct radeon_bo *bo); #endif
s GIT_REVISION string macro. Packagers can override it by 'make GIT_REVISION=foo'. Update Nouveau to use GIT_REVISION, if defined, instead of DRIVER_DATE in struct drm_driver. Signed-off-by: Pekka Paalanen <pq@iki.fi> 2008-04-14Fix buffer object map wait error.Thomas Hellstrom Add some branch prediction hints. 2008-04-14Fix buffer object creation validation.Thomas Hellstrom BO lock fixes. 2008-04-14Unlock the BO mutex while waiting for idle, unmapped, unfenced.Thomas Hellstrom Move unfenced checking into idle checking. Never time out while waiting for software events like unmapped or unfenced. 2008-04-14Fix up buffer manager locking.Thomas Hellstrom 2008-04-11Save and restore dsparb and d_state regsKeith Packard 2008-04-07Missing KERNEL_VERSION macroPatrice Mandin 2008-04-07nouveau: enable accelerated move to sysmemBen Skeggs 2008-04-07nouveau: enable m2mf for tt<->vram moves, fix fence_pollBen Skeggs 2008-04-06Place highmem pages last in the ttm page array.Thomas Hellstrom 2008-04-06Use clflush() when available for cache flushing.Thomas Hellstrom 2008-04-06[I915] Fix VRAM eviction.Thomas Hellstrom 2008-04-06Fix emergency allocation accounting.Thomas Hellstrom 2008-03-30Initialize the fence::error member.Thomas Hellstrom 2008-03-30[i915] Report buffer state _after_ fence submission to user-space.Thomas Hellstrom This fixes a problem where the wrong bo->fence_type was reported, and also saves some memory space. [bo core] export the drm_bo_fill_rep_arg function. 2008-03-30Don't call fence::poll during irq if there are no waiters.Thomas Hellström 2008-03-24nouveau: silence warningBen Skeggs 2008-03-17Evict cached_mapped relocatee before applying reloc.Thomas Hellstrom Fix that got left out after the intel-post-reloc merge. 2008-03-17drm/pcigart: fix the pci gart to use the drm_pci wrapper.Dave Airlie This is the correct fix for the RS690 and hopefully the dma coherent work. For now we limit everybody to a 32-bit DMA mask but it is possible for RS690 to use a 40-bit DMA mask for the GART table itself, and the PCIE cards can use 40-bits for the table entries. Signed-off-by: Dave Airlie <airlied@redhat.com> 2008-03-16[via] Allow a little larger stride for SG DMA DownloadFromScreen.Thomas Hellstrom 2008-03-16ati: fix rs690 igp gart by allocating the page table in 32-bit memoryDave Airlie 2008-03-16drm: this u32 should be a dma_addr_tDave Airlie doesn't fix anything but just making it consistent 2008-03-14fix build problemsAlan Hourihane 2008-03-14drm: Fix race that can lockup the kernelMike Isely The i915_vblank_swap() function schedules an automatic buffer swap upon receipt of the vertical sync interrupt. Such an operation is lengthy so it can't be allowed to happen in normal interrupt context, thus the DRM implements this by scheduling the work in a kernel softirq-scheduled tasklet. In order for the buffer swap to work safely, the DRM's central lock must be taken, via a call to drm_lock_take() located in drivers/char/drm/drm_irq.c within the function drm_locked_tasklet_func(). The lock-taking logic uses a non-interrupt-blocking spinlock to implement the manipulations needed to take the lock. This semantic would be safe if all attempts to use the spinlock only happen from process context. However this buffer swap happens from softirq context which is really a form of interrupt context. Thus we have an unsafe situation, in that drm_locked_tasklet_func() can block on a spinlock already taken by a thread in process context which will never get scheduled again because of the blocked softirq tasklet. This wedges the kernel hard. To trigger this bug, run a dual-head cloned mode configuration which uses the i915 drm, then execute an opengl application which synchronizes buffer swaps against the vertical sync interrupt. In my testing, a lockup always results after running anywhere from 5 minutes to an hour and a half. I believe dual-head is needed to really trigger the problem because then the vertical sync interrupt handling is no longer predictable (due to being interrupt-sourced from two different heads running at different speeds). This raises the probability of the tasklet trying to run while the userspace DRI is doing things to the GPU (and manipulating the DRM lock). The fix is to change the relevant spinlock semantics to be the interrupt-blocking form. After this change I am no longer able to trigger the lockup; the longest test run so far was 20 hours (test stopped after that point). Note: I have examined the places where this spinlock is being employed; all are reasonably short bounded sequences and should be suitable for interrupts being blocked without impacting overall kernel interrupt response latency. Signed-off-by: Mike Isely <isely@pobox.com> 2008-03-12Merge branch 'intel-post-reloc'Thomas Hellstrom Conflicts: linux-core/drm_compat.c linux-core/drm_compat.h linux-core/drm_ttm.c shared-core/i915_dma.c Bump driver minor to 13 due to introduction of new relocation type. 2008-03-12Bug # 14712Thomas Hellstrom Disable page saving for GPU read-only TTMs. 2008-03-12Dont allow !sysadmin clients to alter the memory type ofThomas Hellstrom NO_EVICT buffers. 2008-03-12Fix for debug memory routinesAlan Hourihane