summaryrefslogtreecommitdiff
path: root/sys/dev/drm
AgeCommit message (Collapse)Author
2017-06-01remove checks for failure after memory allocation calls that cannot fail:chs
kmem_alloc() with KM_SLEEP kmem_zalloc() with KM_SLEEP percpu_alloc() pserialize_create() psref_class_create() all of these paths include an assertion that the allocation has not failed, so callers should not assert that again.
2017-01-20Check pmf_device_register return value. NFCmaya
Appeases static analyzers.
2011-08-28add dependency on "drm" modulejmcneill
2011-02-20add VirtualBox DRM driverjmcneill
2009-06-21remove the old drm sources.mrg
2009-05-12struct device * -> device_t, no functional changes intended.cegger
2009-05-06you can now easily select trying external drm with "options DRM_EXTERNAL".mrg
2009-04-21Rework scatter / gather page allocation inspired by r186295 of FreeBSD SVN:rafal
rework drm_scatter.c which allocates scatter / gather pages for use by ati pci gart to use bus_dma to handle the allocations. This fixes a garbled screen issue on at least some radeons (X1400 tested). It is also likely that this is the correct fix for PR# 119324, though that is not confirmed yet. Fixes similar issues on a Radeon Mobility X300, non-Mobility X800 (including a hard-lock of the machine). With feedback from ad@, ok mrg@
2009-04-17Move initialisation of the irq spinlock into the device handling code,joerg
at least the Intel driver depends on it whether the IRQ is currently enabled or not.
2009-03-29drm_addmap():mrg
- for _DRM_CONSISTENT mappings, keep the handle. - use DRM_HANDLE_NEEDS_MASK() drm_mapbufs(): - use DRM_HANDLE_NEEDS_MASK() drm_mmap(): - use DRM_HANDLE_NEEDS_MASK() - for _DRM_SCATTER_GATHER and _DRM_SHM, use vtophys() on the adjusted offset. XXX this is gets radeon working on amd64 with an older PCI 9250 card. XXX: need to excise vtophys() usage. XXX: need to finish porting these fixes to external.
2009-03-29include the size in a falled allocation message.mrg
2009-03-29add a comment explaining DRM_NETBSD_ADDR2HANDLE/DRM_NETBSD_HANDLE2ADDR:mrg
* This hack strips the top bit from amd64 addresses, which avoid * udv_attach() returning NULL for "negative" offset. * A better hack would be to encode the offset of some kernel data * structure.. add a new DRM_HANDLE_NEEDS_MASK macro to check whether the above need to be applied for various mapping types (_DRM_SHM and _DRM_SCATTER_GATHER.)
2009-03-18bzero -> memsetcegger
2009-03-07move a DRM_SPINUNLOCK() to where it will actually be executed.mrg
2009-02-15Only pull in genfb.h if _KERNEL_OPT is defined. Reported by Kurt Schreinerjmcneill
2009-02-15Use genfb_borrow; drm works with genfb now.jmcneill
2009-01-31Pass a bus_space_tag_t as first argument of bus_space_unmap, not an int.bouyer
2009-01-20Change major()/minor() to return 32-bit types again, calleddrochner
devmajor_t/devminor_t, as proposed on tech-kern. This avoids 64-bit arithmetics and 64-bit printf formats in parts of the kernel where it is not really useful, and helps clarity.
2009-01-18Don't attempt to unload a DRM device that's in use. (Note:mrg
Unloading doesn't work right in any case -- it doesn't clean up the sysctl tree, among other things. This code needs Work, but at least this prevents it crashing randomly due to autounload while X is running.) Also, fix the dependency list for radeondrm. contributed anonymously.
2008-10-14Fix handling of lists with a single entry in list_for_each_safe();bjs
this also plugs a memory leak.
2008-07-19support new drm.mrg
XXX: not fully enabled yet. config(1) has a makeoptions bug with complex conditionals. see files.drm / files.pcidrm for some instructions on how to enable it.
2008-07-08remove some more local changes of the form "foo.h" -> <dev/*/foo.h>mrg
by using makeoptions in files.drm/files.pcidrm. this reduces the diffs against other drm code by about 40kb.
2008-07-07revert unnecessary changes to 3rd party code.mrg
2008-07-03split device/softcdrochner
2008-06-29Revert previous, i915drm works again.jmcneill
2008-06-21Revert to using atop(offset + map->offset) for map types _DRM_AGP,bjs
_DRM_REGISTERS, and _DRM_FRAME_BUFFER. Fixes issue where a call to DrmMap() in libdrm returns EINVAL.
2008-06-20make an i386 ALL kernel build againcegger
2008-06-20- Don't use btop, as only three (?) platforms define this macro; usebjs
round_page(x) >> PAGE_SHIFT instead. - Add bus_space_mmap() in drm_vm.c to give a proper cookie to the device pager; this gets rid of one of the two #ifdef macppc conditionals.
2008-06-20- Use the extent manager to track mappings and provide sane offsetbjs
"cookies" for mmap. Now the radeon driver works on amd64! - Use bus_dma for nearly all map types (carried over from prior patch). - Plug some lock leaks in drm_bufs.c and remove superfluous locking in drm_add_magic() (from git). - Lower spl of mutexes to IPL_NONE (and so are now adaptive instead of spin mutexes), save for irq_lock which is a spin mutex at IPL_VM. Use mutex_spin_enter()/mutex_spin_exit() for irq_lock. ok jmcneill@
2008-06-13DRM_IOCTL_SG_ALLOC needs IOWR, not IOR!bjs
2008-06-09o Split device_t/softc for agp(4).freza
o agp_ali.c: remove unused 'agp' member from agp_ali_softc. o drm: agp_find_device() returns 'void *', not a device_t. o Use device_t, cfdata_t instead of struct pointers. o Don't cast void pointers in assignments.
2008-06-03Make the atomic macros compile: do not discard 'volatile' qualificationdyoung
from argument `p'. Use `b' instead of `bit'.
2008-06-01Use symbolic names for mem->phase, make error reporting more sensible.bjs
2008-05-30Don't call devsw_attach/detach if _MODULE is not definedjmcneill
2008-05-28Add work-in-progress of NetBSD-specific code. I will be committing a lotbjs
more changes shortly (as soon as I work out the mmap offset insanity).
2008-05-28Rework drm_atomic.h for correctness and readability:bjs
- Use macros where appropriate. - Remove code for other operating systems -- we don't need it. - In atomic_read/atomic_set, cast to volatile. - Misc. cleanup.
2008-05-19Don't use MALLOC_DECLARE / MALLOC_DEFINE if building as a module.jmcneill
2008-05-19NOTE: this commit message accompnies the last one for sys/dev/pci/drm.bjs
Revert condvar changes; there seem to be other locking issues (independent of these changes insofar as I can tell), and it will only complicate things for now to introduce more changes. Argh!
2008-05-18Allow building as a module.jmcneill
2008-05-18Oops, did not compile. Fix it.bjs
2008-05-18Use cv(9) instead of mtsleep/wakeup. Also, define drm_hz asbjs
mstohz(333) (this seems to eliminate lockups for me using the r300 driver). Tested with i915 and radeon on amd64.
2008-05-18atomic_add_32 -> atomic_and_32. For atomic_read/atomic_write, castbjs
to volatile uint32_t *.
2008-05-06Revert all the changes this time.bjs
2008-05-06Revert last commit -- breaks i915.bjs
2008-05-06 A few steps down the yellow brick road toward bus_dma-ification:bjs
- Add drm_dmamem_alloc/drm_dmamem_free to drm_memory.c to nicely wrap up the bus_dma API. - Start using the above in drm_pci.c. - Add DRM_NETBSD_DMA_ADDR/DRM_NETBSD_DMA_VADDR macros. Locking: - Use IPL_NONE for all locks except the IRQ lock, which runs at IPL_VM. - Use IPL_VM instead of IPL_TTY with pci_intr_establish() for consistency's sake. These two changes seem to eliminate the presistent lockups I was having (NetBSD-current/amd64 r300). - Start getting rid of DRM_SPININIT/DRM_SPINUNINIT and DRM_SPINLOCK/ DRM_SPINUNLOCK ... these annoy me to no end--not to mention that they locks may or may not be spinlocks! It's a linux frob, really. We're way beyond merging any useful bsd-core code on a large scale, which was the only good reason to keep them around. Memory allocation: - Change drm_memory.c so that it contains generally useful, memory allocation functions using kmem(9) (mostly used by the drivers themselves). However, I expect to use this more in the future in the "bsd core". These functions always use KM_NOSLEEP. The new drm_dmamem_alloc function has a wait argument which takes DRM_DMA_WAIT/DRM_DMA_NOWAIT (defined as their bus_dma counterparts), and honors this hint in its calls to kmem(9) and bus_dma(9) functions. - Got rid of these functions' "area" argument--it's been deprecated for ages. Provide macros in drmP.h to deal with the os-independent code. - Declare these functions inline -- I believe they're used enough by the i915 and radeon drivers to justify it. Please let me know if I am mistaken. NOTE: With these changes, a glxgears score which was previously ~3900fps is now ~4400fps (same setup as mentioned above). I realize that using kmem(9) could cause problems, but I can't seem to run into any with my test setup. If anyone smells regression, please let me know.
2008-05-05Use aprint instead of DRM_INFO macro to cleanup attachment messages.jmcneill
2008-05-04Ugh, unbreak _DRM_SHM on amd64 again.jmcneill
2008-05-04Fix compilation on i386.jmcneill
2008-05-04For _DRM_SHM allocations, do not use the VA as drm_map handle on x86_64jmcneill
since udv_attach will not accept a larger offset than signed 64-bit will provide. Not the best fix, but good enough for now -- at least an X server will now startup and get proper mappings.
2008-05-04Returning EINVAL from drm_mmap isn't a smart thing to do.jmcneill