| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
|
|
|
|
| |
adds kernel support for
amdgpu: vega20, raven2, renoir, navi10, navi14
inteldrm: icelake, tigerlake
Thanks to the OpenBSD Foundation for sponsoring this work, kettenis@ for
helping, patrick@ for helping adapt rockchip drm and many developers for
testing.
|
|
|
|
|
|
|
|
| |
Locking `event_lock' in filt_drmread() is currently commented out as it
requires some refactoring to use proper 'struct drm_minor' like upstream.
That said, it is fine as long as all the code is run under KERNEL_LOCK().
ok visa@
|
|
|
|
|
|
| |
for example, with locking assertions.
OK mpi@, anton@
|
|
|
|
|
|
| |
make drm(4) attach to rkdrm(4). This makes KMS work on the RK3399 SoC.
ok patrick@
|
|
|
|
| |
ok jsg@
|
|
|
|
|
|
| |
adding more filter properties without cluttering the struct.
OK mpi@, anton@
|
| |
|
|
|
|
| |
OK jsg@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
async/SIGIO use likely came from DR1 context swapping for the "gamma"
driver for 3dlabs GMX 2000, removed from the old upstream drm cvs
repository in 2004:
commit 1430163b4bbf7b00367ea1066c1c5fe85dbeefed
Author: Dave Airlie <airlied@linux.ie>
Date: Sun Aug 29 12:04:35 2004 +0000
Drop GAMMA DRM from a great height ...
linux in 2005:
commit 1fad99499afdd2730adb1d53413b91580b1f0662
Author: Dave Airlie <airlied@starflyer.(none)>
Date: Fri Aug 5 22:40:34 2005 +1000
drm: remove the gamma driver
and further remaining async bits removed from linux in 2013 with
commit b0e898ac555e96e7863a5ee95d70f3625f1db5e2
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date: Thu Aug 8 15:41:23 2013 +0200
drm: remove FASYNC support
pointed out by claudio@ ok visa@ kettenis@
|
|
|
|
|
|
| |
make the structs const so that the data are put in .rodata.
OK mpi@, deraadt@, anton@, bluhm@
|
|
|
|
| |
ok mpi@
|
|
|
|
|
|
| |
code in radeon(4) and amdgpu(4).
ok jsg@
|
|
|
|
| |
leave out CORE as it is quite noisy
|
|
|
|
|
|
|
| |
drm_print) a var instead of a define in a header.
Makes it easier to change without rebuilding everything and allows the
value to be changed at runtime via ddb.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when we have a serial console by introducing the notion of a "primary"
graphics device. The primary graphics device is the one set up and
used by firmware (BIOS, UEFI).
The goal is to make sure that wsdisplay0 and drm0 reliably attach to
the primary graphics device such that X works out of the box even
if you have multiple cards or if you are using a serial console.
This also fixes the situation where inteldrm(4) or radeondrm(4) would
take over the console on UEFI systems even if the kernel was booted
with a serial console.
ok jsg@
|
|
|
|
|
|
|
| |
device. This matches what Linux does and is a first step towards running
X without setuid or root priviliges.
ok jsg@
|
|
|
|
| |
ok jsg@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
linux 4.19.34.
Adds support for more Intel hardware:
Broxton/Apollo Lake (was is_preliminary in 4.4)
Amber Lake (another Kaby Lake refresh)
Gemini Lake
Coffee Lake
Whiskey Lake
Cannon Lake (though no hardware with Intel graphics ever shipped)
Ice Lake (alpha support, hardware not released)
This does not add support for new radeon hardware on the AMD side as
newer radeons have a different kernel driver (amdgpu).
Thanks to the OpenBSD Foundation for sponsoring this work, kettenis@ for
helping and a bunch of other developers for testing.
|
|
|
|
|
|
|
|
| |
between processes using file descriptors. This provides an alternative to
eporting them with guesable 32-bit IDs. This implementation does not (yet)
allow sharing of graphics buffers between GPUs.
ok mpi@, visa@
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
available on OpenBSD well and by notifying listeners of a device
state change using EVFILT_DEVICE and NOTE_CHANGE.
drm_sysfs_hotplug_event() gets called when a state change of the device
occured, like an hdmi cable has been plugged, this in the future will
be used by the modesetting xorg driver to notify desktop environments
via randr events to update their screen configuration
ok kettenis@
|
|
|
|
| |
diffs with Linux.
|
|
|
|
|
|
|
|
| |
inadvertedly match the Intel HD Graphics P4000 as a "Quanta transcode"
device.
Thanks to Joe Gidi for figuring out that I inadvertedly brought this back.
Hopefully fixing it this way prevents it from happening again.
|
|
|
|
|
|
|
|
| |
Skylake and Cherryview and better support for Broadwell and Valleyview. Also
adds MST support. Some tweaks to the TTM code and radeondrm(4) to keep it
working with the updated generic DRM code needed for inteldrm(4).
Tested by many.
|
|
|
|
|
|
|
| |
reducing the local diff in libdrm.
We only handle a single master as xorg privdrop has already occurred at
the point where the ioctls are issued.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to get pci device ids from a drm fd as an ordinary user.
This will be used to provide non-sysfs implementations of functions in
libdrm. These functions are required for Mesa >= 13.
The ioctl number used is the same as the DRM_IOCTL_ADD_MAP ioctl which
was removed when we removed DRI1 support. This was chosen to not
collide with new ioctls from linux.
ok kettenis@ ok mpi@ on an earlier version
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the ioff argument to pool_init() is unused and has been for many
years, so this replaces it with an ipl argument. because the ipl
will be set on init we no longer need pool_setipl.
most of these changes have been done with coccinelle using the spatch
below. cocci sucks at formatting code though, so i fixed that by hand.
the manpage and subr_pool.c bits i did myself.
ok tedu@ jmatthew@
@ipl@
expression pp;
expression ipl;
expression s, a, o, f, m, p;
@@
-pool_init(pp, s, a, o, f, m, p);
-pool_setipl(pp, ipl);
+pool_init(pp, s, a, ipl, f, m, p);
|
|
|
|
| |
ok kettenis@
|
|
|
|
|
|
| |
the data structures in drmP.h with Linux 3.14.
ok jsg@
|
|
|
|
|
|
|
| |
the vma offset manager. This brings us a little bit more isolation between
applications as GEM buffers are now tied to a specific /dev/drmX clone.
ok jsg@
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
basically only the ioctls that Linux allows on the so-called "render nodes".
For now, it also allows DRM_IOCTL_GET_MAGIC and DRM_IOCTL_GEM_OPEN, as we
don't implement prime/dma-buf yet in OpenBSD. That still leaves a big gaping
hole, so they will be removed as soon as we can.
Based on a diff by robert@, who did all the heavy lifting by studying the
behaviour of the chromium GPU process, with some further suggestions by
deraadt@.
ok jsg@, deraadt@, robert@
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in inteldrm(4).
The Intel integrated graphics device has a major design flaw where it needs
legacy VGA io access to disable VGA mode completely. This only works if
legacy VGA io routing is setup such that it actually reaches the IGD. This
typically isn't the case if the primary VGA device is a discrete graphics
device. To make sure we don't whack that device we have to temporarily
route legacy VGA io access to the IGD.
Fixes the "black screen" issue reported by Timo Myrra and others.
|
|
|
|
|
|
|
|
| |
features, and some code (such as the Xorg modesetting driver) actually checks
the version. With this change the PCI-based probe method in that driver
works.
ok jsg@
|
|
|
|
| |
has been removed upstream as well.
|
|
|
|
|
|
|
|
|
| |
interrupt line register as the irq number doesn't really work as the contents
of that register might be 0, and the code has checks for non-zero irq
numbers in places. Insteadmake drm_dev_to_irq() return -1, which is an
obviously bogus, but non-zero value.
This should fix inteldrm(4) on recent Apple hardware.
|
|
|
|
|
|
| |
Disable the DRM_IOCTL_IRQ_BUSID and DRM_IOCTL_CONTROL ioctls.
These are legacy ioctls for DRI1 support, which we no longer support on
OpenBSD.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
commit 48f8f36a6c8018c2b36ea207aaf68ef5326c5075 on the linux-3.14.y
branch of the linux-stable tree). This brings preliminary support for
the GPU on Intel's Broadwell CPUs. Don't expect these to work
perfectly yet. There are some remaining issues with older hardware as
well, but no significant regressions have been uncovered.
This also updates some of drm core code. The radeondrm code remains
based on Linux 3.8 with some minimal canges to adjust to changes in
the core drm APIs.
Joint effort with jsg@, who did the initial update of the relevant drm
core bits. Committing this early to make sure it gets more testing
and make it possible for others to help getting the remaining wrinkles
straightened out.
|
|
|
|
| |
with a mutex held, so we can't have it sleep.
|
|
|
|
| |
ok kettenis@
|
|
|
|
|
|
| |
negative errno values.
ok jsg@
|
|
|
|
|
|
|
| |
- rename uiomove() to uiomovei() and update all its users.
- introduce uiomove(), which is similar to uiomovei() but with a size_t.
- rewrite uiomovei() as an uiomove() wrapper.
ok kettenis@
|
|
|
|
| |
call linux style lock functions where these macros were used.
|
| |
|
|
|
|
|
|
|
|
| |
CIRCLEQ_* is deprecated and not called in the tree. The other queue types
have *_END macros which were added for symmetry with CIRCLEQ_END. They are
defined as NULL. There's no reason to keep the other *_END macro calls.
ok millert@
|