| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
matches radeon and i915
reported by Benjamin Baier
|
|
|
|
|
|
|
|
|
| |
Don't set taskq to system_wq in INIT_WORK(). Test if taskq pointer is
non-NULL before calling taskq_barrier() in flush functions.
fixes a black screen on boot problem with 5.10.y drm using nano x1
bisected by jcs@ to
'drm/i915: Always flush the active worker before returning from the wait'
|
|
|
|
|
|
|
|
|
|
|
|
| |
the SCHED_LOCK().
Putting a thread on a sleep queue is reduce to the following:
sleep_setup();
/* check condition or release lock */
sleep_finish();
Previous version ok cheloha@, jmatthew@, ok claudio@
|
|
|
|
|
|
|
| |
It is suspected they were to blame for a machine with inteldrm running X
(xterms and chromium) running out of resources after a few days.
ok kettenis@
|
|
|
|
|
|
|
|
|
| |
what Linux does. Let vmalloc() use km_alloc(9) instead of malloc(9) and
let kvmalloc() only use malloc(9) for small (less than a page) allocations
and atomic allocations. This should reduce the pressure on the
"interrupt-safe" map.
ok jsg@
|
|
|
|
| |
original diff from and ok cheloha@
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rename klist_{insert,remove}() to klist_{insert,remove}_locked().
These functions assume that the caller has locked the klist. The current
state of locking remains intact because the kernel lock is still used
with all klists.
Add new functions klist_insert() and klist_remove() that lock the klist
internally. This allows some code simplification.
OK mpi@
|
| |
|
|
|
|
|
| |
From Alexei Podtelezhnikov
f2bde2546b81b64fb58aa04888fdd82a090b3908 in mainline linux
|
| |
|
|
|
|
| |
ok kettenis@
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
function pointer in ttm_tt_swapout(). Reduces the diff to linux.
ok kettenis@
|
|
|
|
|
|
|
|
| |
Avoids a double free of gtt in amdgpu_ttm_tt_create() if the
bus_dmamap_create() call in ttm_sg_tt_init() fails and ttm_tt_destroy()
calls amdgpu_ttm_backend_destroy().
feedback from and ok kettenis@
|
|
|
|
| |
this is supposed to return a va for a page not pa
|
|
|
|
| |
Types stay unsigned long; we don't do 64 bit paddr_t on any 32 bit arch.
|
|
|
|
|
|
|
|
|
|
|
| |
SSE FP exception traps, update_bw_bounding_box() and
dcn20_populate_dml_pipes_from_context().
The scope around the dcn20_fast_validate_bw() call is large to match
DC_FP_START()/DC_FP_END() use in dcn20_resource.c and avoid the
situation where a dcn2.0 path would have nested DC_FP_START() calls.
ok kettenis@
|
|
|
|
| |
ok patrick@, jsg@
|
|
|
|
|
|
|
|
|
|
|
|
| |
behaviour of Linux' implementation: arm64's bus space operations
have no barriers, so while Linux' iowrite32/ioread32 explicitly
contain barriers, using bus space read/write is not enough on arm64.
Add read barriers after a read to make sure that all reads have
completed before the following reads. Add write barriers before a
write to make sure all previous writes have completed before that
write. This fixes panics on the HoneyComb LX2K with amdgpu(4).
ok kettenis@
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
only call it when the first drm(4) instance attaches. Also add a cleanup
function that gets called when the last drm(4) instance detaches.
This makes sure that statically initialized IDR instances always work.
ok jsg@, semarie@
|
|
|
|
| |
ok kettenis@
|
|
|
|
|
|
|
| |
IDA functions in terms of IDR. Fixes issues with running out of PASIDs
in amdgpu(4).
ok jsg@
|
| |
|
|
|
|
|
|
| |
Spotted thanks to debugging work by semarie@
ok jsg@, semarie@
|
|
|
|
|
|
|
|
|
|
| |
Gives rwlocks defined this way a non-NULL rwl_name.
Move ttm_pool_shrink_scan() DEFINE_MUTEX use out of function scope to fix
build with WITNESS after this change and expand macro to have a better
name than "lock".
Found by and ok semarie@
|
|
|
|
|
|
|
|
|
|
|
| |
Previously we would initialise a variable specific mutex in
ATOMIC64_INIT() or atomic64_set() but the drm code in multiple places
zeroes memory and later accesses it without calling these resulting
in a mutex with IPL_NONE instead of IPL_HIGH.
Fixes a 'locking against myself' panic reported by Anthony Richardby
on macppc with PowerBook5,6 and RV350.
ok kettenis@
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Linux rwlocks are read/write spin locks which don't sleep.
Fixes a panic claudio@ reported with a WITNESS kernel on inteldrm(4)
'panic: acquiring blockable sleep lock with spinlock or critical section
held (rwlock) drmvma'
Patch from kettenis@ with a small tweak from me. ok kettenis@
|
|
|
|
|
|
|
|
|
| |
It won't be used when amap and anon locking will be introduced.
This "fixes" passing a unrelated/uninitialized pointer in an error path
in case of memory shortage.
ok kettenis@
|
|
|
|
|
|
|
|
|
| |
It won't be used when amap and anon locking will be introduced.
This "fixes" passing a unrelated/uninitialized pointer in an error path
in case of memory shortage.
ok kettenis@
|
| |
|
|
|
|
| |
ok tobhe@
|
|
|
|
|
|
| |
POWER9 machines.
ok jsg@
|
|
|
|
|
|
| |
pci "memory space" io. Further reduces the diff to linux.
ok kettenis@
|
|
|
|
|
|
|
| |
the diffs to Linux and makes sure we use memory barriers in the same way
as Linux does.
ok jsg@ (who added the doorbell changes)
|
|
|
|
|
|
|
| |
"I/O Space" on their PCIe host bridges and for most (all) Radeon variants
there is an alternative method to access the relevant registers.
ok jsg@
|
|
|
|
|
|
|
|
|
|
| |
- Reverse byte order on big-endian architectures (except on sparc64)
- Add memory barriers
Note that sparc64 is special as we use a little-endian mapping for
PCI bus space, so we shouldn't reverse the byte order there.
ok jsg@
|
| |
|
| |
|