History log of /openbsd-current/sys/dev/pci/drm/drm_gem.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.23 16-Jan-2024 jsg

update drm to linux 6.6.12

Thanks to the OpenBSD Foundation for sponsoring this work.


Revision tags: OPENBSD_7_4_BASE
# 1.22 28-Mar-2023 jsg

drm/msm/gem: Prevent blocking within shrinker loop

From Dmitry Osipenko
96a5aee27439e56fca69628c3f87a042e7026b3e in linux-6.1.y/6.1.21
9630b585b607bd26f505d34620b14d75b9a5af7d in mainline linux


Revision tags: OPENBSD_7_3_BASE
# 1.21 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


Revision tags: OPENBSD_7_2_BASE
# 1.20 16-Sep-2022 jsg

drm/gem: Fix GEM handle release errors

From Jeffy Chen
1f574fbe9c2b831a8c3156260842a7abd280d59f in linux 5.15.y/5.15.68
ea2aa97ca37a9044ade001aef71dbc06318e8d44 in mainline linux


# 1.19 18-Aug-2022 jsg

drm/gem: Properly annotate WW context on drm_gem_lock_reservations() error

From Dmitry Osipenko
da2a1aa058acd7eb2cccd9de74df0809cbe4f1f8 in linux 5.15.y/5.15.61
2939deac1fa220bc82b89235f146df1d9b52e876 in mainline linux


Revision tags: OPENBSD_7_1_BASE
# 1.18 14-Jan-2022 jsg

update drm to linux 5.15.14

new hardware support includes

Intel
ehl/Elkhart Lake (embedded)
jsl/Jasper Lake (atom)
rkl/Rocket Lake (desktop)

AMD
van gogh APU (gfx1033)
yellow carp / rembrandt APU (gfx1035?)
Ryzen 6000 APU
navy flounder / navi 22 (gfx1031)
RX 6700, RX 6700 XT, RX 6700M, RX 6800M, RX 6850M XT
dimgrey cavefish / navi 23 (gfx1032)
Pro W6600, Pro W6600M, RX 6600, RX 6600 XT, RX 6600M,
RX 6600S, RX 6650M, RX 6650M XT, RX 6700S, RX 6800S
beige goby / navi 24 (gfx1034)
RX 6500 XT, RX 6400, RX 6500M, RX 6300M

Thanks to the OpenBSD Foundation for sponsoring this work
niklas@ for helping with ttm and amdgpu and patrick@ for adapting
rockchip drm.


# 1.17 12-Oct-2021 kettenis

Remove misleading uvm reference counting that isn't actually used.
Make sure uvm_obj_init() is only called once. Call uvm_obj_destroy()
when we release the GEM object that wraps an uvm object for which we
called uvm_obj_init().

ok mpi@, jsg@


Revision tags: OPENBSD_7_0_BASE
# 1.16 07-Jul-2021 jsg

update drm to linux 5.10.47

hardware support changes include
inteldrm: better support for tiger lake
amdgpu: support for navi12, navi21 "sienna_cichlid", arcturus
amdgpu: support for cezanne "green sardine" ryzen 5000 apu

Thanks to the OpenBSD Foundation for sponsoring this work,
patrick@ for helping adapt rockchip drm, kettenis@ and mpi@
for uvm discussions and various testers.


# 1.15 16-Jun-2021 mpi

Change the prefix of UVM object functions to match NetBSD's.

For example uvm_objinit() becomes uvm_obj_init(). Reduce differences
between the trees and help porting new functions needed for UVM object
locking.

No functionnal change.


Revision tags: OPENBSD_6_9_BASE
# 1.14 06-Nov-2020 mpi

Remove unused `anon' argument from uvmfault_unlockall().

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@


# 1.13 21-Oct-2020 mpi

Constify and use C99 initializer for "struct uvm_pagerops".

While here put some KERNEL_ASSERT_LOCKED() in the functions called from
the page fault handler. The removal of locking of `uobj' will need to be
revisited and these are good indicator that something is missing and that
many comments are lying.

ok kettenis


# 1.12 21-Oct-2020 jsg

change drm_vma function arguments to take struct drm_file *

reduces the diff to linux 5.7.y
ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.11 22-Aug-2020 jsg

drm/gem: Fix a leak in drm_gem_objects_lookup()

From Dan Carpenter
04d83a826f68db88a1059ee8424f44739149b753 in linux 5.7.y/5.7.16
ec0bb482de0ad5e4aba2a4537ea53eaeb77d11a6 in mainline linux


# 1.10 05-Aug-2020 jsg

drm: hold gem reference until object is no longer accessed

From Steve Cohen
5aa4eb5a6d915cf00bf104ddd76e1adbc3dabdc4 in linux 5.7.y/5.7.13
8490d6a7e0a0a6fab5c2d82d57a3937306660864 in mainline linux


# 1.9 08-Jun-2020 jsg

update drm to linux 5.7

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.


Revision tags: OPENBSD_6_7_BASE
# 1.8 30-Dec-2019 jsg

convert infinite msleep(9) to msleep_nsec(9)

ok mpi@


Revision tags: OPENBSD_6_6_BASE
# 1.7 14-Apr-2019 jsg

Update shared drm code, inteldrm(4) and radeondrm(4) from linux 4.4 to
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.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.6 25-Jun-2018 kettenis

Implement DRI3/prime support. This allows graphics buffers to be passed
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@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.5 03-Sep-2017 jsg

drm: Release driver tracking before making the object available again

From Chris Wilson
2a9d7664ffb2c223c488058ee6bee61512db9396 in linux-4.4.y/4.4.85
fe4600a548f2763dec91b3b27a1245c370ceee2a in mainline linux


# 1.4 01-Jul-2017 kettenis

Update inteldrm(4) to code based on Linux 4.4.70. This brings us support for
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.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.3 05-Apr-2016 kettenis

Add $OpenBSD$ markers.


# 1.2 05-Apr-2016 kettenis

Now that we the "idr" API, we can get rid of a lot of

#ifdef __linux__
...
#else
...
#endif

code in the generic drm GEM code.


# 1.1 05-Apr-2016 kettenis

Split out the generic GEM code (like Linux did) and switch it over to
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@


# 1.22 28-Mar-2023 jsg

drm/msm/gem: Prevent blocking within shrinker loop

From Dmitry Osipenko
96a5aee27439e56fca69628c3f87a042e7026b3e in linux-6.1.y/6.1.21
9630b585b607bd26f505d34620b14d75b9a5af7d in mainline linux


Revision tags: OPENBSD_7_3_BASE
# 1.21 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


Revision tags: OPENBSD_7_2_BASE
# 1.20 16-Sep-2022 jsg

drm/gem: Fix GEM handle release errors

From Jeffy Chen
1f574fbe9c2b831a8c3156260842a7abd280d59f in linux 5.15.y/5.15.68
ea2aa97ca37a9044ade001aef71dbc06318e8d44 in mainline linux


# 1.19 18-Aug-2022 jsg

drm/gem: Properly annotate WW context on drm_gem_lock_reservations() error

From Dmitry Osipenko
da2a1aa058acd7eb2cccd9de74df0809cbe4f1f8 in linux 5.15.y/5.15.61
2939deac1fa220bc82b89235f146df1d9b52e876 in mainline linux


Revision tags: OPENBSD_7_1_BASE
# 1.18 14-Jan-2022 jsg

update drm to linux 5.15.14

new hardware support includes

Intel
ehl/Elkhart Lake (embedded)
jsl/Jasper Lake (atom)
rkl/Rocket Lake (desktop)

AMD
van gogh APU (gfx1033)
yellow carp / rembrandt APU (gfx1035?)
Ryzen 6000 APU
navy flounder / navi 22 (gfx1031)
RX 6700, RX 6700 XT, RX 6700M, RX 6800M, RX 6850M XT
dimgrey cavefish / navi 23 (gfx1032)
Pro W6600, Pro W6600M, RX 6600, RX 6600 XT, RX 6600M,
RX 6600S, RX 6650M, RX 6650M XT, RX 6700S, RX 6800S
beige goby / navi 24 (gfx1034)
RX 6500 XT, RX 6400, RX 6500M, RX 6300M

Thanks to the OpenBSD Foundation for sponsoring this work
niklas@ for helping with ttm and amdgpu and patrick@ for adapting
rockchip drm.


# 1.17 12-Oct-2021 kettenis

Remove misleading uvm reference counting that isn't actually used.
Make sure uvm_obj_init() is only called once. Call uvm_obj_destroy()
when we release the GEM object that wraps an uvm object for which we
called uvm_obj_init().

ok mpi@, jsg@


Revision tags: OPENBSD_7_0_BASE
# 1.16 07-Jul-2021 jsg

update drm to linux 5.10.47

hardware support changes include
inteldrm: better support for tiger lake
amdgpu: support for navi12, navi21 "sienna_cichlid", arcturus
amdgpu: support for cezanne "green sardine" ryzen 5000 apu

Thanks to the OpenBSD Foundation for sponsoring this work,
patrick@ for helping adapt rockchip drm, kettenis@ and mpi@
for uvm discussions and various testers.


# 1.15 16-Jun-2021 mpi

Change the prefix of UVM object functions to match NetBSD's.

For example uvm_objinit() becomes uvm_obj_init(). Reduce differences
between the trees and help porting new functions needed for UVM object
locking.

No functionnal change.


Revision tags: OPENBSD_6_9_BASE
# 1.14 06-Nov-2020 mpi

Remove unused `anon' argument from uvmfault_unlockall().

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@


# 1.13 21-Oct-2020 mpi

Constify and use C99 initializer for "struct uvm_pagerops".

While here put some KERNEL_ASSERT_LOCKED() in the functions called from
the page fault handler. The removal of locking of `uobj' will need to be
revisited and these are good indicator that something is missing and that
many comments are lying.

ok kettenis


# 1.12 21-Oct-2020 jsg

change drm_vma function arguments to take struct drm_file *

reduces the diff to linux 5.7.y
ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.11 22-Aug-2020 jsg

drm/gem: Fix a leak in drm_gem_objects_lookup()

From Dan Carpenter
04d83a826f68db88a1059ee8424f44739149b753 in linux 5.7.y/5.7.16
ec0bb482de0ad5e4aba2a4537ea53eaeb77d11a6 in mainline linux


# 1.10 05-Aug-2020 jsg

drm: hold gem reference until object is no longer accessed

From Steve Cohen
5aa4eb5a6d915cf00bf104ddd76e1adbc3dabdc4 in linux 5.7.y/5.7.13
8490d6a7e0a0a6fab5c2d82d57a3937306660864 in mainline linux


# 1.9 08-Jun-2020 jsg

update drm to linux 5.7

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.


Revision tags: OPENBSD_6_7_BASE
# 1.8 30-Dec-2019 jsg

convert infinite msleep(9) to msleep_nsec(9)

ok mpi@


Revision tags: OPENBSD_6_6_BASE
# 1.7 14-Apr-2019 jsg

Update shared drm code, inteldrm(4) and radeondrm(4) from linux 4.4 to
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.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.6 25-Jun-2018 kettenis

Implement DRI3/prime support. This allows graphics buffers to be passed
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@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.5 03-Sep-2017 jsg

drm: Release driver tracking before making the object available again

From Chris Wilson
2a9d7664ffb2c223c488058ee6bee61512db9396 in linux-4.4.y/4.4.85
fe4600a548f2763dec91b3b27a1245c370ceee2a in mainline linux


# 1.4 01-Jul-2017 kettenis

Update inteldrm(4) to code based on Linux 4.4.70. This brings us support for
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.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.3 05-Apr-2016 kettenis

Add $OpenBSD$ markers.


# 1.2 05-Apr-2016 kettenis

Now that we the "idr" API, we can get rid of a lot of

#ifdef __linux__
...
#else
...
#endif

code in the generic drm GEM code.


# 1.1 05-Apr-2016 kettenis

Split out the generic GEM code (like Linux did) and switch it over to
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@


# 1.21 01-Jan-2023 jsg

update drm to linux 6.1.2

new hardware support includes

AMD
Raphael, Ryzen 7000 desktop, gfx1036/GC 10.3.6
Mendocino, Ryzen & Athlon 7020 Series mobile APU, gfx1037/GC 10.3.7
Navi 31, gfx1100 dGPU, GC 11.0.0, Radeon RX 7900 XT/XTX
gfx1101 dGPU
gfx1102 dGPU
gfx1103 APU

Thanks to the OpenBSD Foundation for sponsoring this work.


Revision tags: OPENBSD_7_2_BASE
# 1.20 16-Sep-2022 jsg

drm/gem: Fix GEM handle release errors

From Jeffy Chen
1f574fbe9c2b831a8c3156260842a7abd280d59f in linux 5.15.y/5.15.68
ea2aa97ca37a9044ade001aef71dbc06318e8d44 in mainline linux


# 1.19 18-Aug-2022 jsg

drm/gem: Properly annotate WW context on drm_gem_lock_reservations() error

From Dmitry Osipenko
da2a1aa058acd7eb2cccd9de74df0809cbe4f1f8 in linux 5.15.y/5.15.61
2939deac1fa220bc82b89235f146df1d9b52e876 in mainline linux


Revision tags: OPENBSD_7_1_BASE
# 1.18 14-Jan-2022 jsg

update drm to linux 5.15.14

new hardware support includes

Intel
ehl/Elkhart Lake (embedded)
jsl/Jasper Lake (atom)
rkl/Rocket Lake (desktop)

AMD
van gogh APU (gfx1033)
yellow carp / rembrandt APU (gfx1035?)
Ryzen 6000 APU
navy flounder / navi 22 (gfx1031)
RX 6700, RX 6700 XT, RX 6700M, RX 6800M, RX 6850M XT
dimgrey cavefish / navi 23 (gfx1032)
Pro W6600, Pro W6600M, RX 6600, RX 6600 XT, RX 6600M,
RX 6600S, RX 6650M, RX 6650M XT, RX 6700S, RX 6800S
beige goby / navi 24 (gfx1034)
RX 6500 XT, RX 6400, RX 6500M, RX 6300M

Thanks to the OpenBSD Foundation for sponsoring this work
niklas@ for helping with ttm and amdgpu and patrick@ for adapting
rockchip drm.


# 1.17 12-Oct-2021 kettenis

Remove misleading uvm reference counting that isn't actually used.
Make sure uvm_obj_init() is only called once. Call uvm_obj_destroy()
when we release the GEM object that wraps an uvm object for which we
called uvm_obj_init().

ok mpi@, jsg@


Revision tags: OPENBSD_7_0_BASE
# 1.16 07-Jul-2021 jsg

update drm to linux 5.10.47

hardware support changes include
inteldrm: better support for tiger lake
amdgpu: support for navi12, navi21 "sienna_cichlid", arcturus
amdgpu: support for cezanne "green sardine" ryzen 5000 apu

Thanks to the OpenBSD Foundation for sponsoring this work,
patrick@ for helping adapt rockchip drm, kettenis@ and mpi@
for uvm discussions and various testers.


# 1.15 16-Jun-2021 mpi

Change the prefix of UVM object functions to match NetBSD's.

For example uvm_objinit() becomes uvm_obj_init(). Reduce differences
between the trees and help porting new functions needed for UVM object
locking.

No functionnal change.


Revision tags: OPENBSD_6_9_BASE
# 1.14 06-Nov-2020 mpi

Remove unused `anon' argument from uvmfault_unlockall().

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@


# 1.13 21-Oct-2020 mpi

Constify and use C99 initializer for "struct uvm_pagerops".

While here put some KERNEL_ASSERT_LOCKED() in the functions called from
the page fault handler. The removal of locking of `uobj' will need to be
revisited and these are good indicator that something is missing and that
many comments are lying.

ok kettenis


# 1.12 21-Oct-2020 jsg

change drm_vma function arguments to take struct drm_file *

reduces the diff to linux 5.7.y
ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.11 22-Aug-2020 jsg

drm/gem: Fix a leak in drm_gem_objects_lookup()

From Dan Carpenter
04d83a826f68db88a1059ee8424f44739149b753 in linux 5.7.y/5.7.16
ec0bb482de0ad5e4aba2a4537ea53eaeb77d11a6 in mainline linux


# 1.10 05-Aug-2020 jsg

drm: hold gem reference until object is no longer accessed

From Steve Cohen
5aa4eb5a6d915cf00bf104ddd76e1adbc3dabdc4 in linux 5.7.y/5.7.13
8490d6a7e0a0a6fab5c2d82d57a3937306660864 in mainline linux


# 1.9 08-Jun-2020 jsg

update drm to linux 5.7

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.


Revision tags: OPENBSD_6_7_BASE
# 1.8 30-Dec-2019 jsg

convert infinite msleep(9) to msleep_nsec(9)

ok mpi@


Revision tags: OPENBSD_6_6_BASE
# 1.7 14-Apr-2019 jsg

Update shared drm code, inteldrm(4) and radeondrm(4) from linux 4.4 to
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.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.6 25-Jun-2018 kettenis

Implement DRI3/prime support. This allows graphics buffers to be passed
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@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.5 03-Sep-2017 jsg

drm: Release driver tracking before making the object available again

From Chris Wilson
2a9d7664ffb2c223c488058ee6bee61512db9396 in linux-4.4.y/4.4.85
fe4600a548f2763dec91b3b27a1245c370ceee2a in mainline linux


# 1.4 01-Jul-2017 kettenis

Update inteldrm(4) to code based on Linux 4.4.70. This brings us support for
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.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.3 05-Apr-2016 kettenis

Add $OpenBSD$ markers.


# 1.2 05-Apr-2016 kettenis

Now that we the "idr" API, we can get rid of a lot of

#ifdef __linux__
...
#else
...
#endif

code in the generic drm GEM code.


# 1.1 05-Apr-2016 kettenis

Split out the generic GEM code (like Linux did) and switch it over to
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@


# 1.20 16-Sep-2022 jsg

drm/gem: Fix GEM handle release errors

From Jeffy Chen
1f574fbe9c2b831a8c3156260842a7abd280d59f in linux 5.15.y/5.15.68
ea2aa97ca37a9044ade001aef71dbc06318e8d44 in mainline linux


# 1.19 18-Aug-2022 jsg

drm/gem: Properly annotate WW context on drm_gem_lock_reservations() error

From Dmitry Osipenko
da2a1aa058acd7eb2cccd9de74df0809cbe4f1f8 in linux 5.15.y/5.15.61
2939deac1fa220bc82b89235f146df1d9b52e876 in mainline linux


Revision tags: OPENBSD_7_1_BASE
# 1.18 14-Jan-2022 jsg

update drm to linux 5.15.14

new hardware support includes

Intel
ehl/Elkhart Lake (embedded)
jsl/Jasper Lake (atom)
rkl/Rocket Lake (desktop)

AMD
van gogh APU (gfx1033)
yellow carp / rembrandt APU (gfx1035?)
Ryzen 6000 APU
navy flounder / navi 22 (gfx1031)
RX 6700, RX 6700 XT, RX 6700M, RX 6800M, RX 6850M XT
dimgrey cavefish / navi 23 (gfx1032)
Pro W6600, Pro W6600M, RX 6600, RX 6600 XT, RX 6600M,
RX 6600S, RX 6650M, RX 6650M XT, RX 6700S, RX 6800S
beige goby / navi 24 (gfx1034)
RX 6500 XT, RX 6400, RX 6500M, RX 6300M

Thanks to the OpenBSD Foundation for sponsoring this work
niklas@ for helping with ttm and amdgpu and patrick@ for adapting
rockchip drm.


# 1.17 12-Oct-2021 kettenis

Remove misleading uvm reference counting that isn't actually used.
Make sure uvm_obj_init() is only called once. Call uvm_obj_destroy()
when we release the GEM object that wraps an uvm object for which we
called uvm_obj_init().

ok mpi@, jsg@


Revision tags: OPENBSD_7_0_BASE
# 1.16 07-Jul-2021 jsg

update drm to linux 5.10.47

hardware support changes include
inteldrm: better support for tiger lake
amdgpu: support for navi12, navi21 "sienna_cichlid", arcturus
amdgpu: support for cezanne "green sardine" ryzen 5000 apu

Thanks to the OpenBSD Foundation for sponsoring this work,
patrick@ for helping adapt rockchip drm, kettenis@ and mpi@
for uvm discussions and various testers.


# 1.15 16-Jun-2021 mpi

Change the prefix of UVM object functions to match NetBSD's.

For example uvm_objinit() becomes uvm_obj_init(). Reduce differences
between the trees and help porting new functions needed for UVM object
locking.

No functionnal change.


Revision tags: OPENBSD_6_9_BASE
# 1.14 06-Nov-2020 mpi

Remove unused `anon' argument from uvmfault_unlockall().

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@


# 1.13 21-Oct-2020 mpi

Constify and use C99 initializer for "struct uvm_pagerops".

While here put some KERNEL_ASSERT_LOCKED() in the functions called from
the page fault handler. The removal of locking of `uobj' will need to be
revisited and these are good indicator that something is missing and that
many comments are lying.

ok kettenis


# 1.12 21-Oct-2020 jsg

change drm_vma function arguments to take struct drm_file *

reduces the diff to linux 5.7.y
ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.11 22-Aug-2020 jsg

drm/gem: Fix a leak in drm_gem_objects_lookup()

From Dan Carpenter
04d83a826f68db88a1059ee8424f44739149b753 in linux 5.7.y/5.7.16
ec0bb482de0ad5e4aba2a4537ea53eaeb77d11a6 in mainline linux


# 1.10 05-Aug-2020 jsg

drm: hold gem reference until object is no longer accessed

From Steve Cohen
5aa4eb5a6d915cf00bf104ddd76e1adbc3dabdc4 in linux 5.7.y/5.7.13
8490d6a7e0a0a6fab5c2d82d57a3937306660864 in mainline linux


# 1.9 08-Jun-2020 jsg

update drm to linux 5.7

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.


Revision tags: OPENBSD_6_7_BASE
# 1.8 30-Dec-2019 jsg

convert infinite msleep(9) to msleep_nsec(9)

ok mpi@


Revision tags: OPENBSD_6_6_BASE
# 1.7 14-Apr-2019 jsg

Update shared drm code, inteldrm(4) and radeondrm(4) from linux 4.4 to
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.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.6 25-Jun-2018 kettenis

Implement DRI3/prime support. This allows graphics buffers to be passed
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@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.5 03-Sep-2017 jsg

drm: Release driver tracking before making the object available again

From Chris Wilson
2a9d7664ffb2c223c488058ee6bee61512db9396 in linux-4.4.y/4.4.85
fe4600a548f2763dec91b3b27a1245c370ceee2a in mainline linux


# 1.4 01-Jul-2017 kettenis

Update inteldrm(4) to code based on Linux 4.4.70. This brings us support for
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.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.3 05-Apr-2016 kettenis

Add $OpenBSD$ markers.


# 1.2 05-Apr-2016 kettenis

Now that we the "idr" API, we can get rid of a lot of

#ifdef __linux__
...
#else
...
#endif

code in the generic drm GEM code.


# 1.1 05-Apr-2016 kettenis

Split out the generic GEM code (like Linux did) and switch it over to
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@


# 1.19 18-Aug-2022 jsg

drm/gem: Properly annotate WW context on drm_gem_lock_reservations() error

From Dmitry Osipenko
da2a1aa058acd7eb2cccd9de74df0809cbe4f1f8 in linux 5.15.y/5.15.61
2939deac1fa220bc82b89235f146df1d9b52e876 in mainline linux


Revision tags: OPENBSD_7_1_BASE
# 1.18 14-Jan-2022 jsg

update drm to linux 5.15.14

new hardware support includes

Intel
ehl/Elkhart Lake (embedded)
jsl/Jasper Lake (atom)
rkl/Rocket Lake (desktop)

AMD
van gogh APU (gfx1033)
yellow carp / rembrandt APU (gfx1035?)
Ryzen 6000 APU
navy flounder / navi 22 (gfx1031)
RX 6700, RX 6700 XT, RX 6700M, RX 6800M, RX 6850M XT
dimgrey cavefish / navi 23 (gfx1032)
Pro W6600, Pro W6600M, RX 6600, RX 6600 XT, RX 6600M,
RX 6600S, RX 6650M, RX 6650M XT, RX 6700S, RX 6800S
beige goby / navi 24 (gfx1034)
RX 6500 XT, RX 6400, RX 6500M, RX 6300M

Thanks to the OpenBSD Foundation for sponsoring this work
niklas@ for helping with ttm and amdgpu and patrick@ for adapting
rockchip drm.


# 1.17 12-Oct-2021 kettenis

Remove misleading uvm reference counting that isn't actually used.
Make sure uvm_obj_init() is only called once. Call uvm_obj_destroy()
when we release the GEM object that wraps an uvm object for which we
called uvm_obj_init().

ok mpi@, jsg@


Revision tags: OPENBSD_7_0_BASE
# 1.16 07-Jul-2021 jsg

update drm to linux 5.10.47

hardware support changes include
inteldrm: better support for tiger lake
amdgpu: support for navi12, navi21 "sienna_cichlid", arcturus
amdgpu: support for cezanne "green sardine" ryzen 5000 apu

Thanks to the OpenBSD Foundation for sponsoring this work,
patrick@ for helping adapt rockchip drm, kettenis@ and mpi@
for uvm discussions and various testers.


# 1.15 16-Jun-2021 mpi

Change the prefix of UVM object functions to match NetBSD's.

For example uvm_objinit() becomes uvm_obj_init(). Reduce differences
between the trees and help porting new functions needed for UVM object
locking.

No functionnal change.


Revision tags: OPENBSD_6_9_BASE
# 1.14 06-Nov-2020 mpi

Remove unused `anon' argument from uvmfault_unlockall().

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@


# 1.13 21-Oct-2020 mpi

Constify and use C99 initializer for "struct uvm_pagerops".

While here put some KERNEL_ASSERT_LOCKED() in the functions called from
the page fault handler. The removal of locking of `uobj' will need to be
revisited and these are good indicator that something is missing and that
many comments are lying.

ok kettenis


# 1.12 21-Oct-2020 jsg

change drm_vma function arguments to take struct drm_file *

reduces the diff to linux 5.7.y
ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.11 22-Aug-2020 jsg

drm/gem: Fix a leak in drm_gem_objects_lookup()

From Dan Carpenter
04d83a826f68db88a1059ee8424f44739149b753 in linux 5.7.y/5.7.16
ec0bb482de0ad5e4aba2a4537ea53eaeb77d11a6 in mainline linux


# 1.10 05-Aug-2020 jsg

drm: hold gem reference until object is no longer accessed

From Steve Cohen
5aa4eb5a6d915cf00bf104ddd76e1adbc3dabdc4 in linux 5.7.y/5.7.13
8490d6a7e0a0a6fab5c2d82d57a3937306660864 in mainline linux


# 1.9 08-Jun-2020 jsg

update drm to linux 5.7

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.


Revision tags: OPENBSD_6_7_BASE
# 1.8 30-Dec-2019 jsg

convert infinite msleep(9) to msleep_nsec(9)

ok mpi@


Revision tags: OPENBSD_6_6_BASE
# 1.7 14-Apr-2019 jsg

Update shared drm code, inteldrm(4) and radeondrm(4) from linux 4.4 to
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.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.6 25-Jun-2018 kettenis

Implement DRI3/prime support. This allows graphics buffers to be passed
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@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.5 03-Sep-2017 jsg

drm: Release driver tracking before making the object available again

From Chris Wilson
2a9d7664ffb2c223c488058ee6bee61512db9396 in linux-4.4.y/4.4.85
fe4600a548f2763dec91b3b27a1245c370ceee2a in mainline linux


# 1.4 01-Jul-2017 kettenis

Update inteldrm(4) to code based on Linux 4.4.70. This brings us support for
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.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.3 05-Apr-2016 kettenis

Add $OpenBSD$ markers.


# 1.2 05-Apr-2016 kettenis

Now that we the "idr" API, we can get rid of a lot of

#ifdef __linux__
...
#else
...
#endif

code in the generic drm GEM code.


# 1.1 05-Apr-2016 kettenis

Split out the generic GEM code (like Linux did) and switch it over to
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@


# 1.18 14-Jan-2022 jsg

update drm to linux 5.15.14

new hardware support includes

Intel
ehl/Elkhart Lake (embedded)
jsl/Jasper Lake (atom)
rkl/Rocket Lake (desktop)

AMD
van gogh APU (gfx1033)
yellow carp / rembrandt APU (gfx1035?)
Ryzen 6000 APU
navy flounder / navi 22 (gfx1031)
RX 6700, RX 6700 XT, RX 6700M, RX 6800M, RX 6850M XT
dimgrey cavefish / navi 23 (gfx1032)
Pro W6600, Pro W6600M, RX 6600, RX 6600 XT, RX 6600M,
RX 6600S, RX 6650M, RX 6650M XT, RX 6700S, RX 6800S
beige goby / navi 24 (gfx1034)
RX 6500 XT, RX 6400, RX 6500M, RX 6300M

Thanks to the OpenBSD Foundation for sponsoring this work
niklas@ for helping with ttm and amdgpu and patrick@ for adapting
rockchip drm.


# 1.17 12-Oct-2021 kettenis

Remove misleading uvm reference counting that isn't actually used.
Make sure uvm_obj_init() is only called once. Call uvm_obj_destroy()
when we release the GEM object that wraps an uvm object for which we
called uvm_obj_init().

ok mpi@, jsg@


Revision tags: OPENBSD_7_0_BASE
# 1.16 07-Jul-2021 jsg

update drm to linux 5.10.47

hardware support changes include
inteldrm: better support for tiger lake
amdgpu: support for navi12, navi21 "sienna_cichlid", arcturus
amdgpu: support for cezanne "green sardine" ryzen 5000 apu

Thanks to the OpenBSD Foundation for sponsoring this work,
patrick@ for helping adapt rockchip drm, kettenis@ and mpi@
for uvm discussions and various testers.


# 1.15 16-Jun-2021 mpi

Change the prefix of UVM object functions to match NetBSD's.

For example uvm_objinit() becomes uvm_obj_init(). Reduce differences
between the trees and help porting new functions needed for UVM object
locking.

No functionnal change.


Revision tags: OPENBSD_6_9_BASE
# 1.14 06-Nov-2020 mpi

Remove unused `anon' argument from uvmfault_unlockall().

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@


# 1.13 21-Oct-2020 mpi

Constify and use C99 initializer for "struct uvm_pagerops".

While here put some KERNEL_ASSERT_LOCKED() in the functions called from
the page fault handler. The removal of locking of `uobj' will need to be
revisited and these are good indicator that something is missing and that
many comments are lying.

ok kettenis


# 1.12 21-Oct-2020 jsg

change drm_vma function arguments to take struct drm_file *

reduces the diff to linux 5.7.y
ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.11 22-Aug-2020 jsg

drm/gem: Fix a leak in drm_gem_objects_lookup()

From Dan Carpenter
04d83a826f68db88a1059ee8424f44739149b753 in linux 5.7.y/5.7.16
ec0bb482de0ad5e4aba2a4537ea53eaeb77d11a6 in mainline linux


# 1.10 05-Aug-2020 jsg

drm: hold gem reference until object is no longer accessed

From Steve Cohen
5aa4eb5a6d915cf00bf104ddd76e1adbc3dabdc4 in linux 5.7.y/5.7.13
8490d6a7e0a0a6fab5c2d82d57a3937306660864 in mainline linux


# 1.9 08-Jun-2020 jsg

update drm to linux 5.7

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.


Revision tags: OPENBSD_6_7_BASE
# 1.8 30-Dec-2019 jsg

convert infinite msleep(9) to msleep_nsec(9)

ok mpi@


Revision tags: OPENBSD_6_6_BASE
# 1.7 14-Apr-2019 jsg

Update shared drm code, inteldrm(4) and radeondrm(4) from linux 4.4 to
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.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.6 25-Jun-2018 kettenis

Implement DRI3/prime support. This allows graphics buffers to be passed
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@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.5 03-Sep-2017 jsg

drm: Release driver tracking before making the object available again

From Chris Wilson
2a9d7664ffb2c223c488058ee6bee61512db9396 in linux-4.4.y/4.4.85
fe4600a548f2763dec91b3b27a1245c370ceee2a in mainline linux


# 1.4 01-Jul-2017 kettenis

Update inteldrm(4) to code based on Linux 4.4.70. This brings us support for
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.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.3 05-Apr-2016 kettenis

Add $OpenBSD$ markers.


# 1.2 05-Apr-2016 kettenis

Now that we the "idr" API, we can get rid of a lot of

#ifdef __linux__
...
#else
...
#endif

code in the generic drm GEM code.


# 1.1 05-Apr-2016 kettenis

Split out the generic GEM code (like Linux did) and switch it over to
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@


# 1.17 12-Oct-2021 kettenis

Remove misleading uvm reference counting that isn't actually used.
Make sure uvm_obj_init() is only called once. Call uvm_obj_destroy()
when we release the GEM object that wraps an uvm object for which we
called uvm_obj_init().

ok mpi@, jsg@


Revision tags: OPENBSD_7_0_BASE
# 1.16 07-Jul-2021 jsg

update drm to linux 5.10.47

hardware support changes include
inteldrm: better support for tiger lake
amdgpu: support for navi12, navi21 "sienna_cichlid", arcturus
amdgpu: support for cezanne "green sardine" ryzen 5000 apu

Thanks to the OpenBSD Foundation for sponsoring this work,
patrick@ for helping adapt rockchip drm, kettenis@ and mpi@
for uvm discussions and various testers.


# 1.15 16-Jun-2021 mpi

Change the prefix of UVM object functions to match NetBSD's.

For example uvm_objinit() becomes uvm_obj_init(). Reduce differences
between the trees and help porting new functions needed for UVM object
locking.

No functionnal change.


Revision tags: OPENBSD_6_9_BASE
# 1.14 06-Nov-2020 mpi

Remove unused `anon' argument from uvmfault_unlockall().

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@


# 1.13 21-Oct-2020 mpi

Constify and use C99 initializer for "struct uvm_pagerops".

While here put some KERNEL_ASSERT_LOCKED() in the functions called from
the page fault handler. The removal of locking of `uobj' will need to be
revisited and these are good indicator that something is missing and that
many comments are lying.

ok kettenis


# 1.12 21-Oct-2020 jsg

change drm_vma function arguments to take struct drm_file *

reduces the diff to linux 5.7.y
ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.11 22-Aug-2020 jsg

drm/gem: Fix a leak in drm_gem_objects_lookup()

From Dan Carpenter
04d83a826f68db88a1059ee8424f44739149b753 in linux 5.7.y/5.7.16
ec0bb482de0ad5e4aba2a4537ea53eaeb77d11a6 in mainline linux


# 1.10 05-Aug-2020 jsg

drm: hold gem reference until object is no longer accessed

From Steve Cohen
5aa4eb5a6d915cf00bf104ddd76e1adbc3dabdc4 in linux 5.7.y/5.7.13
8490d6a7e0a0a6fab5c2d82d57a3937306660864 in mainline linux


# 1.9 08-Jun-2020 jsg

update drm to linux 5.7

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.


Revision tags: OPENBSD_6_7_BASE
# 1.8 30-Dec-2019 jsg

convert infinite msleep(9) to msleep_nsec(9)

ok mpi@


Revision tags: OPENBSD_6_6_BASE
# 1.7 14-Apr-2019 jsg

Update shared drm code, inteldrm(4) and radeondrm(4) from linux 4.4 to
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.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.6 25-Jun-2018 kettenis

Implement DRI3/prime support. This allows graphics buffers to be passed
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@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.5 03-Sep-2017 jsg

drm: Release driver tracking before making the object available again

From Chris Wilson
2a9d7664ffb2c223c488058ee6bee61512db9396 in linux-4.4.y/4.4.85
fe4600a548f2763dec91b3b27a1245c370ceee2a in mainline linux


# 1.4 01-Jul-2017 kettenis

Update inteldrm(4) to code based on Linux 4.4.70. This brings us support for
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.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.3 05-Apr-2016 kettenis

Add $OpenBSD$ markers.


# 1.2 05-Apr-2016 kettenis

Now that we the "idr" API, we can get rid of a lot of

#ifdef __linux__
...
#else
...
#endif

code in the generic drm GEM code.


# 1.1 05-Apr-2016 kettenis

Split out the generic GEM code (like Linux did) and switch it over to
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@


# 1.16 07-Jul-2021 jsg

update drm to linux 5.10.47

hardware support changes include
inteldrm: better support for tiger lake
amdgpu: support for navi12, navi21 "sienna_cichlid", arcturus
amdgpu: support for cezanne "green sardine" ryzen 5000 apu

Thanks to the OpenBSD Foundation for sponsoring this work,
patrick@ for helping adapt rockchip drm, kettenis@ and mpi@
for uvm discussions and various testers.


# 1.15 16-Jun-2021 mpi

Change the prefix of UVM object functions to match NetBSD's.

For example uvm_objinit() becomes uvm_obj_init(). Reduce differences
between the trees and help porting new functions needed for UVM object
locking.

No functionnal change.


Revision tags: OPENBSD_6_9_BASE
# 1.14 06-Nov-2020 mpi

Remove unused `anon' argument from uvmfault_unlockall().

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@


# 1.13 21-Oct-2020 mpi

Constify and use C99 initializer for "struct uvm_pagerops".

While here put some KERNEL_ASSERT_LOCKED() in the functions called from
the page fault handler. The removal of locking of `uobj' will need to be
revisited and these are good indicator that something is missing and that
many comments are lying.

ok kettenis


# 1.12 21-Oct-2020 jsg

change drm_vma function arguments to take struct drm_file *

reduces the diff to linux 5.7.y
ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.11 22-Aug-2020 jsg

drm/gem: Fix a leak in drm_gem_objects_lookup()

From Dan Carpenter
04d83a826f68db88a1059ee8424f44739149b753 in linux 5.7.y/5.7.16
ec0bb482de0ad5e4aba2a4537ea53eaeb77d11a6 in mainline linux


# 1.10 05-Aug-2020 jsg

drm: hold gem reference until object is no longer accessed

From Steve Cohen
5aa4eb5a6d915cf00bf104ddd76e1adbc3dabdc4 in linux 5.7.y/5.7.13
8490d6a7e0a0a6fab5c2d82d57a3937306660864 in mainline linux


# 1.9 08-Jun-2020 jsg

update drm to linux 5.7

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.


Revision tags: OPENBSD_6_7_BASE
# 1.8 30-Dec-2019 jsg

convert infinite msleep(9) to msleep_nsec(9)

ok mpi@


Revision tags: OPENBSD_6_6_BASE
# 1.7 14-Apr-2019 jsg

Update shared drm code, inteldrm(4) and radeondrm(4) from linux 4.4 to
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.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.6 25-Jun-2018 kettenis

Implement DRI3/prime support. This allows graphics buffers to be passed
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@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.5 03-Sep-2017 jsg

drm: Release driver tracking before making the object available again

From Chris Wilson
2a9d7664ffb2c223c488058ee6bee61512db9396 in linux-4.4.y/4.4.85
fe4600a548f2763dec91b3b27a1245c370ceee2a in mainline linux


# 1.4 01-Jul-2017 kettenis

Update inteldrm(4) to code based on Linux 4.4.70. This brings us support for
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.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.3 05-Apr-2016 kettenis

Add $OpenBSD$ markers.


# 1.2 05-Apr-2016 kettenis

Now that we the "idr" API, we can get rid of a lot of

#ifdef __linux__
...
#else
...
#endif

code in the generic drm GEM code.


# 1.1 05-Apr-2016 kettenis

Split out the generic GEM code (like Linux did) and switch it over to
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@


# 1.15 16-Jun-2021 mpi

Change the prefix of UVM object functions to match NetBSD's.

For example uvm_objinit() becomes uvm_obj_init(). Reduce differences
between the trees and help porting new functions needed for UVM object
locking.

No functionnal change.


Revision tags: OPENBSD_6_9_BASE
# 1.14 06-Nov-2020 mpi

Remove unused `anon' argument from uvmfault_unlockall().

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@


# 1.13 21-Oct-2020 mpi

Constify and use C99 initializer for "struct uvm_pagerops".

While here put some KERNEL_ASSERT_LOCKED() in the functions called from
the page fault handler. The removal of locking of `uobj' will need to be
revisited and these are good indicator that something is missing and that
many comments are lying.

ok kettenis


# 1.12 21-Oct-2020 jsg

change drm_vma function arguments to take struct drm_file *

reduces the diff to linux 5.7.y
ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.11 22-Aug-2020 jsg

drm/gem: Fix a leak in drm_gem_objects_lookup()

From Dan Carpenter
04d83a826f68db88a1059ee8424f44739149b753 in linux 5.7.y/5.7.16
ec0bb482de0ad5e4aba2a4537ea53eaeb77d11a6 in mainline linux


# 1.10 05-Aug-2020 jsg

drm: hold gem reference until object is no longer accessed

From Steve Cohen
5aa4eb5a6d915cf00bf104ddd76e1adbc3dabdc4 in linux 5.7.y/5.7.13
8490d6a7e0a0a6fab5c2d82d57a3937306660864 in mainline linux


# 1.9 08-Jun-2020 jsg

update drm to linux 5.7

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.


Revision tags: OPENBSD_6_7_BASE
# 1.8 30-Dec-2019 jsg

convert infinite msleep(9) to msleep_nsec(9)

ok mpi@


Revision tags: OPENBSD_6_6_BASE
# 1.7 14-Apr-2019 jsg

Update shared drm code, inteldrm(4) and radeondrm(4) from linux 4.4 to
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.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.6 25-Jun-2018 kettenis

Implement DRI3/prime support. This allows graphics buffers to be passed
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@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.5 03-Sep-2017 jsg

drm: Release driver tracking before making the object available again

From Chris Wilson
2a9d7664ffb2c223c488058ee6bee61512db9396 in linux-4.4.y/4.4.85
fe4600a548f2763dec91b3b27a1245c370ceee2a in mainline linux


# 1.4 01-Jul-2017 kettenis

Update inteldrm(4) to code based on Linux 4.4.70. This brings us support for
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.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.3 05-Apr-2016 kettenis

Add $OpenBSD$ markers.


# 1.2 05-Apr-2016 kettenis

Now that we the "idr" API, we can get rid of a lot of

#ifdef __linux__
...
#else
...
#endif

code in the generic drm GEM code.


# 1.1 05-Apr-2016 kettenis

Split out the generic GEM code (like Linux did) and switch it over to
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@


# 1.14 06-Nov-2020 mpi

Remove unused `anon' argument from uvmfault_unlockall().

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@


# 1.13 21-Oct-2020 mpi

Constify and use C99 initializer for "struct uvm_pagerops".

While here put some KERNEL_ASSERT_LOCKED() in the functions called from
the page fault handler. The removal of locking of `uobj' will need to be
revisited and these are good indicator that something is missing and that
many comments are lying.

ok kettenis


# 1.12 21-Oct-2020 jsg

change drm_vma function arguments to take struct drm_file *

reduces the diff to linux 5.7.y
ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.11 22-Aug-2020 jsg

drm/gem: Fix a leak in drm_gem_objects_lookup()

From Dan Carpenter
04d83a826f68db88a1059ee8424f44739149b753 in linux 5.7.y/5.7.16
ec0bb482de0ad5e4aba2a4537ea53eaeb77d11a6 in mainline linux


# 1.10 05-Aug-2020 jsg

drm: hold gem reference until object is no longer accessed

From Steve Cohen
5aa4eb5a6d915cf00bf104ddd76e1adbc3dabdc4 in linux 5.7.y/5.7.13
8490d6a7e0a0a6fab5c2d82d57a3937306660864 in mainline linux


# 1.9 08-Jun-2020 jsg

update drm to linux 5.7

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.


Revision tags: OPENBSD_6_7_BASE
# 1.8 30-Dec-2019 jsg

convert infinite msleep(9) to msleep_nsec(9)

ok mpi@


Revision tags: OPENBSD_6_6_BASE
# 1.7 14-Apr-2019 jsg

Update shared drm code, inteldrm(4) and radeondrm(4) from linux 4.4 to
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.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.6 25-Jun-2018 kettenis

Implement DRI3/prime support. This allows graphics buffers to be passed
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@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.5 03-Sep-2017 jsg

drm: Release driver tracking before making the object available again

From Chris Wilson
2a9d7664ffb2c223c488058ee6bee61512db9396 in linux-4.4.y/4.4.85
fe4600a548f2763dec91b3b27a1245c370ceee2a in mainline linux


# 1.4 01-Jul-2017 kettenis

Update inteldrm(4) to code based on Linux 4.4.70. This brings us support for
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.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.3 05-Apr-2016 kettenis

Add $OpenBSD$ markers.


# 1.2 05-Apr-2016 kettenis

Now that we the "idr" API, we can get rid of a lot of

#ifdef __linux__
...
#else
...
#endif

code in the generic drm GEM code.


# 1.1 05-Apr-2016 kettenis

Split out the generic GEM code (like Linux did) and switch it over to
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@


# 1.13 21-Oct-2020 mpi

Constify and use C99 initializer for "struct uvm_pagerops".

While here put some KERNEL_ASSERT_LOCKED() in the functions called from
the page fault handler. The removal of locking of `uobj' will need to be
revisited and these are good indicator that something is missing and that
many comments are lying.

ok kettenis


# 1.12 21-Oct-2020 jsg

change drm_vma function arguments to take struct drm_file *

reduces the diff to linux 5.7.y
ok kettenis@


Revision tags: OPENBSD_6_8_BASE
# 1.11 22-Aug-2020 jsg

drm/gem: Fix a leak in drm_gem_objects_lookup()

From Dan Carpenter
04d83a826f68db88a1059ee8424f44739149b753 in linux 5.7.y/5.7.16
ec0bb482de0ad5e4aba2a4537ea53eaeb77d11a6 in mainline linux


# 1.10 05-Aug-2020 jsg

drm: hold gem reference until object is no longer accessed

From Steve Cohen
5aa4eb5a6d915cf00bf104ddd76e1adbc3dabdc4 in linux 5.7.y/5.7.13
8490d6a7e0a0a6fab5c2d82d57a3937306660864 in mainline linux


# 1.9 08-Jun-2020 jsg

update drm to linux 5.7

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.


Revision tags: OPENBSD_6_7_BASE
# 1.8 30-Dec-2019 jsg

convert infinite msleep(9) to msleep_nsec(9)

ok mpi@


Revision tags: OPENBSD_6_6_BASE
# 1.7 14-Apr-2019 jsg

Update shared drm code, inteldrm(4) and radeondrm(4) from linux 4.4 to
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.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.6 25-Jun-2018 kettenis

Implement DRI3/prime support. This allows graphics buffers to be passed
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@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.5 03-Sep-2017 jsg

drm: Release driver tracking before making the object available again

From Chris Wilson
2a9d7664ffb2c223c488058ee6bee61512db9396 in linux-4.4.y/4.4.85
fe4600a548f2763dec91b3b27a1245c370ceee2a in mainline linux


# 1.4 01-Jul-2017 kettenis

Update inteldrm(4) to code based on Linux 4.4.70. This brings us support for
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.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.3 05-Apr-2016 kettenis

Add $OpenBSD$ markers.


# 1.2 05-Apr-2016 kettenis

Now that we the "idr" API, we can get rid of a lot of

#ifdef __linux__
...
#else
...
#endif

code in the generic drm GEM code.


# 1.1 05-Apr-2016 kettenis

Split out the generic GEM code (like Linux did) and switch it over to
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@


# 1.11 22-Aug-2020 jsg

drm/gem: Fix a leak in drm_gem_objects_lookup()

From Dan Carpenter
04d83a826f68db88a1059ee8424f44739149b753 in linux 5.7.y/5.7.16
ec0bb482de0ad5e4aba2a4537ea53eaeb77d11a6 in mainline linux


# 1.10 05-Aug-2020 jsg

drm: hold gem reference until object is no longer accessed

From Steve Cohen
5aa4eb5a6d915cf00bf104ddd76e1adbc3dabdc4 in linux 5.7.y/5.7.13
8490d6a7e0a0a6fab5c2d82d57a3937306660864 in mainline linux


# 1.9 08-Jun-2020 jsg

update drm to linux 5.7

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.


Revision tags: OPENBSD_6_7_BASE
# 1.8 30-Dec-2019 jsg

convert infinite msleep(9) to msleep_nsec(9)

ok mpi@


Revision tags: OPENBSD_6_6_BASE
# 1.7 14-Apr-2019 jsg

Update shared drm code, inteldrm(4) and radeondrm(4) from linux 4.4 to
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.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.6 25-Jun-2018 kettenis

Implement DRI3/prime support. This allows graphics buffers to be passed
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@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.5 03-Sep-2017 jsg

drm: Release driver tracking before making the object available again

From Chris Wilson
2a9d7664ffb2c223c488058ee6bee61512db9396 in linux-4.4.y/4.4.85
fe4600a548f2763dec91b3b27a1245c370ceee2a in mainline linux


# 1.4 01-Jul-2017 kettenis

Update inteldrm(4) to code based on Linux 4.4.70. This brings us support for
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.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.3 05-Apr-2016 kettenis

Add $OpenBSD$ markers.


# 1.2 05-Apr-2016 kettenis

Now that we the "idr" API, we can get rid of a lot of

#ifdef __linux__
...
#else
...
#endif

code in the generic drm GEM code.


# 1.1 05-Apr-2016 kettenis

Split out the generic GEM code (like Linux did) and switch it over to
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@


# 1.10 05-Aug-2020 jsg

drm: hold gem reference until object is no longer accessed

From Steve Cohen
5aa4eb5a6d915cf00bf104ddd76e1adbc3dabdc4 in linux 5.7.y/5.7.13
8490d6a7e0a0a6fab5c2d82d57a3937306660864 in mainline linux


# 1.9 08-Jun-2020 jsg

update drm to linux 5.7

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.


Revision tags: OPENBSD_6_7_BASE
# 1.8 30-Dec-2019 jsg

convert infinite msleep(9) to msleep_nsec(9)

ok mpi@


Revision tags: OPENBSD_6_6_BASE
# 1.7 14-Apr-2019 jsg

Update shared drm code, inteldrm(4) and radeondrm(4) from linux 4.4 to
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.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.6 25-Jun-2018 kettenis

Implement DRI3/prime support. This allows graphics buffers to be passed
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@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.5 03-Sep-2017 jsg

drm: Release driver tracking before making the object available again

From Chris Wilson
2a9d7664ffb2c223c488058ee6bee61512db9396 in linux-4.4.y/4.4.85
fe4600a548f2763dec91b3b27a1245c370ceee2a in mainline linux


# 1.4 01-Jul-2017 kettenis

Update inteldrm(4) to code based on Linux 4.4.70. This brings us support for
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.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.3 05-Apr-2016 kettenis

Add $OpenBSD$ markers.


# 1.2 05-Apr-2016 kettenis

Now that we the "idr" API, we can get rid of a lot of

#ifdef __linux__
...
#else
...
#endif

code in the generic drm GEM code.


# 1.1 05-Apr-2016 kettenis

Split out the generic GEM code (like Linux did) and switch it over to
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@


# 1.9 08-Jun-2020 jsg

update drm to linux 5.7

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.


Revision tags: OPENBSD_6_7_BASE
# 1.8 30-Dec-2019 jsg

convert infinite msleep(9) to msleep_nsec(9)

ok mpi@


Revision tags: OPENBSD_6_6_BASE
# 1.7 14-Apr-2019 jsg

Update shared drm code, inteldrm(4) and radeondrm(4) from linux 4.4 to
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.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.6 25-Jun-2018 kettenis

Implement DRI3/prime support. This allows graphics buffers to be passed
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@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.5 03-Sep-2017 jsg

drm: Release driver tracking before making the object available again

From Chris Wilson
2a9d7664ffb2c223c488058ee6bee61512db9396 in linux-4.4.y/4.4.85
fe4600a548f2763dec91b3b27a1245c370ceee2a in mainline linux


# 1.4 01-Jul-2017 kettenis

Update inteldrm(4) to code based on Linux 4.4.70. This brings us support for
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.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.3 05-Apr-2016 kettenis

Add $OpenBSD$ markers.


# 1.2 05-Apr-2016 kettenis

Now that we the "idr" API, we can get rid of a lot of

#ifdef __linux__
...
#else
...
#endif

code in the generic drm GEM code.


# 1.1 05-Apr-2016 kettenis

Split out the generic GEM code (like Linux did) and switch it over to
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@


# 1.8 30-Dec-2019 jsg

convert infinite msleep(9) to msleep_nsec(9)

ok mpi@


Revision tags: OPENBSD_6_6_BASE
# 1.7 14-Apr-2019 jsg

Update shared drm code, inteldrm(4) and radeondrm(4) from linux 4.4 to
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.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.6 25-Jun-2018 kettenis

Implement DRI3/prime support. This allows graphics buffers to be passed
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@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.5 03-Sep-2017 jsg

drm: Release driver tracking before making the object available again

From Chris Wilson
2a9d7664ffb2c223c488058ee6bee61512db9396 in linux-4.4.y/4.4.85
fe4600a548f2763dec91b3b27a1245c370ceee2a in mainline linux


# 1.4 01-Jul-2017 kettenis

Update inteldrm(4) to code based on Linux 4.4.70. This brings us support for
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.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.3 05-Apr-2016 kettenis

Add $OpenBSD$ markers.


# 1.2 05-Apr-2016 kettenis

Now that we the "idr" API, we can get rid of a lot of

#ifdef __linux__
...
#else
...
#endif

code in the generic drm GEM code.


# 1.1 05-Apr-2016 kettenis

Split out the generic GEM code (like Linux did) and switch it over to
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@


# 1.7 14-Apr-2019 jsg

Update shared drm code, inteldrm(4) and radeondrm(4) from linux 4.4 to
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.


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.6 25-Jun-2018 kettenis

Implement DRI3/prime support. This allows graphics buffers to be passed
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@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.5 03-Sep-2017 jsg

drm: Release driver tracking before making the object available again

From Chris Wilson
2a9d7664ffb2c223c488058ee6bee61512db9396 in linux-4.4.y/4.4.85
fe4600a548f2763dec91b3b27a1245c370ceee2a in mainline linux


# 1.4 01-Jul-2017 kettenis

Update inteldrm(4) to code based on Linux 4.4.70. This brings us support for
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.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.3 05-Apr-2016 kettenis

Add $OpenBSD$ markers.


# 1.2 05-Apr-2016 kettenis

Now that we the "idr" API, we can get rid of a lot of

#ifdef __linux__
...
#else
...
#endif

code in the generic drm GEM code.


# 1.1 05-Apr-2016 kettenis

Split out the generic GEM code (like Linux did) and switch it over to
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@


# 1.6 25-Jun-2018 kettenis

Implement DRI3/prime support. This allows graphics buffers to be passed
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@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.5 03-Sep-2017 jsg

drm: Release driver tracking before making the object available again

From Chris Wilson
2a9d7664ffb2c223c488058ee6bee61512db9396 in linux-4.4.y/4.4.85
fe4600a548f2763dec91b3b27a1245c370ceee2a in mainline linux


# 1.4 01-Jul-2017 kettenis

Update inteldrm(4) to code based on Linux 4.4.70. This brings us support for
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.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.3 05-Apr-2016 kettenis

Add $OpenBSD$ markers.


# 1.2 05-Apr-2016 kettenis

Now that we the "idr" API, we can get rid of a lot of

#ifdef __linux__
...
#else
...
#endif

code in the generic drm GEM code.


# 1.1 05-Apr-2016 kettenis

Split out the generic GEM code (like Linux did) and switch it over to
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@


Revision tags: OPENBSD_6_2_BASE
# 1.5 03-Sep-2017 jsg

drm: Release driver tracking before making the object available again

From Chris Wilson
2a9d7664ffb2c223c488058ee6bee61512db9396 in linux-4.4.y/4.4.85
fe4600a548f2763dec91b3b27a1245c370ceee2a in mainline linux


# 1.4 01-Jul-2017 kettenis

Update inteldrm(4) to code based on Linux 4.4.70. This brings us support for
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.


Revision tags: OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.3 05-Apr-2016 kettenis

Add $OpenBSD$ markers.


# 1.2 05-Apr-2016 kettenis

Now that we the "idr" API, we can get rid of a lot of

#ifdef __linux__
...
#else
...
#endif

code in the generic drm GEM code.


# 1.1 05-Apr-2016 kettenis

Split out the generic GEM code (like Linux did) and switch it over to
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@