History log of /src/sys/external/bsd/drm2/drm/
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base
1.6 02-Jul-2024 riastradh

drm: Update drm2netbsd to prepare for new import.


Revision tags: netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.5 19-Dec-2021 riastradh

branches: 1.5.10;
One more file by hand.


1.4 19-Dec-2021 riastradh

Add a couple more make variables.


1.3 19-Dec-2021 riastradh

Set CONFIG_DRM_VM=1, apparently needed for nouveau now.


Author: Maya Rashish <maya@NetBSD.org>


Revision tags: netbsd-9-4-RELEASE netbsd-9-3-RELEASE thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 netbsd-9-2-RELEASE cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
1.2 27-Aug-2018 riastradh

branches: 1.2.2; 1.2.6;
drm_fb_helper.c got lost in the merge, restore it.


1.1 27-Aug-2018 riastradh

New script to generate files.drmkms from Linux Makefile.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.7 19-Jul-2022 riastradh

drm: Nix drm_agp_borrow.

This horrible kludge dates from before I understood the relation of
genfb_pci and pci drm drivers in the old and new worlds of drm.

The only user of it, in i915, was changed to use agp_i810_borrow
directly in the last drm update, so this hack can die.


1.6 19-Dec-2021 riastradh

Make ourselves less dependent on drmP.h, removed upstream.

This causes some trouble as CONFIG_* lines might not be appropriately
defined. A few declarations remain in drmP.h so it's not gone.


Author: Maya Rashish <maya@NetBSD.org>


1.5 19-Dec-2021 riastradh

drm_agp_clear got renamed to drm_agp_legacy_clear.


1.4 19-Dec-2021 riastradh

Include drm_internal.h by "../dist/drm/drm_internal.h".


Revision tags: netbsd-9-4-RELEASE netbsd-9-3-RELEASE thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 netbsd-9-2-RELEASE cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
1.3 30-Aug-2018 mrg

branches: 1.3.2; 1.3.6;
if hooks init works, store the hooks in the agp. fixes start up
crash on an old radeon laptop. from @riastradh.

the console also now works, unlike previous drm2, where eg, the
problems from PR#49744 are seen.

unfortunately, i got a crash starting X, and no ddb yet, so we
can't re-enable the r100/r200 parts here yet. once this is
known to be working we can delete the old radeondrm code, and
remove the hacks to disable drm2 there.


1.2 30-Aug-2018 tnn

initialize error variable


1.1 28-Aug-2018 riastradh

Rework PCI and AGP conditionalization.

- Push drm_pci_set_unique into driver callback.
- Eliminate drm_pci_set_unique_hook.
- Gather all drm_agp_* functions into struct drm_agp_hooks.
- Replace the nonsensical old atomic garbage by serious locking.
- Make drm_agpsupport.c its own module.
- Eliminate NDRMKMS_PCI.
- Use NAGP from "agp.h" only in drm_module.c for horrible hack.
=> See comment in file for rationale.
- Always define CONFIG_PCI=1 and CONFIG_AGP=1.
- Always go through the drm_agp_* function hooks.
- Ifdef out nouveau agp stuff that doesn't go through drm_agp_*
for reasons that I'm too frustrated to figure out tonight.
- pci_iomap no longer automagically does agp_i810_borrow.
=> Use drm_agp_borrow instead.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.19 19-Jul-2022 riastradh

drm: Make drm_clflush_* noop on alpha.

As far as I know there is no need for this; the CPU has weak ordering
on loads and stores requiring ordering barriers, but I/O devices
participate in the CPU's cache protocol for access to main memory so
there's never any need for explicit cache flushes.


1.18 19-Dec-2021 riastradh

drm: Another pass over i915 and some supporting logic.

This makes a shim around sg_table, which essentially represents two
things:

1. an array of pages (roughly corresponding to bus_dma_segment_t[])
2. an array of DMA addresses stored in a bus_dmamap_t

Both parts are optional; different parts of i915 use sg_tables to
pass around one or both of the two parts. This helps to reduce the
ifdefs by quite a bit, although it's not always clear which part of
an sg_table any particular interface is actually using which is why I
was reluctant to do this before.


1.17 19-Dec-2021 riastradh

drm: Nix use of uvm pglist. Just use arrays of page pointers.


1.16 19-Dec-2021 riastradh

Make ourselves less dependent on drmP.h, removed upstream.

This causes some trouble as CONFIG_* lines might not be appropriately
defined. A few declarations remain in drmP.h so it's not gone.


Author: Maya Rashish <maya@NetBSD.org>


1.15 19-Dec-2021 riastradh

drm_clflush_* decls moved to drm_cache.h.


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
1.14 05-Sep-2020 maxv

x86: fix several CPUID flags

- Rename: CPUID_PN -> CPUID_PSN
CPUID_CFLUSH -> CPUID_CLFSH
CPUID_SBF -> CPUID_PBE
CPUID_LZCNT -> CPUID_ABM
CPUID_P1GB -> CPUID_PAGE1GB
CPUID2_PCLMUL -> CPUID2_PCLMULQDQ
CPUID2_CID -> CPUID2_CNXTID
CPUID2_xTPR -> CPUID2_XTPR
CPUID2_AES -> CPUID2_AESNI
To match the x86 specification and the other OSes.

- Remove: CPUID_B10, CPUID_B20, CPUID_IA64. They do not exist.


Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127
1.13 23-Jan-2019 jmcneill

branches: 1.13.4;
skip clflush on aarch64, too


Revision tags: pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
1.12 27-Aug-2018 riastradh

Draft sparc cache flushing.


1.11 27-Aug-2018 riastradh

Factor mfence out. Simplify a little.


1.10 27-Aug-2018 riastradh

Need sync after a series of dcbf's on powerpc.


1.9 27-Aug-2018 riastradh

Implement drm_md_clflush_* for powerpc with dcbf.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
1.8 17-Oct-2015 jmcneill

branches: 1.8.10; 1.8.16; 1.8.18;
skip clflush on arm


1.7 17-Oct-2015 jmcneill

machine/cpufunc.h is MD, move it to i386/amd64 block


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
1.6 06-Mar-2015 riastradh

Remove local definition of wbinvd.


1.5 06-Mar-2015 riastradh

Use x86_mfence explicitly, not membar_sync, just to be clear.


1.4 04-Mar-2015 riastradh

CLFLUSH needs to be surrounded by membars.

While here, round everything to a multiple of the cache line size.


Revision tags: nick-nhusb-base tls-maxphys-base netbsd-7-base tls-earlyentropy-base
1.3 16-Jul-2014 riastradh

branches: 1.3.2; 1.3.4; 1.3.6;
Make it build and boot on my test machines.

Screen blanks on boot on the Ivy Bridge system with

DRM error in cpt_serr_int_handler: PCH transcoder A FIFO underrun

But after that everything is OK. Appears to be an upstream problem.
To investigate...

I think there's a cache flushing issue somewhere -- there are little
display artefacts on my T60.


Revision tags: rmind-smpnet-base rmind-smpnet-nbase yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15
1.2 18-Mar-2014 riastradh

branches: 1.2.2; 1.2.4; 1.2.6;
Merge riastradh-drm2 to HEAD.


Revision tags: riastradh-drm2-base3
1.1 08-Sep-2013 riastradh

branches: 1.1.2;
file drm_cache.c was initially added on branch riastradh-drm2.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base perseant-exfatfs-base-20240630 perseant-exfatfs-base
1.31 21-Apr-2024 riastradh

drm(4): Fix st_rdev in stat.

dminor->index already has the 64*type adjustment, as allocated in
drm_minor_alloc.

PR kern/58180


Revision tags: netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.30 06-Jul-2022 riastradh

branches: 1.30.4;
uvm(9): fo_mmap caller guarantees positive size.

No functional change intended, just sprinkling assertions to make it
clearer.


1.29 19-Dec-2021 riastradh

amdgpu: Make amdgpu_file_to_fpriv work.


1.28 19-Dec-2021 riastradh

drm: Omit bogus __unused attributes.


1.27 19-Dec-2021 riastradh

Initialize priv->filp, lost in removing drm_fops.c


Author: Maya Rashish <maya@NetBSD.org>
Committer: Taylor R Campbell <riastradh@NetBSD.org>


1.26 19-Dec-2021 riastradh

Eliminate drm_file.c copypasta.


1.25 19-Dec-2021 riastradh

drm_agpsupport.h for drm_legacy_agp_clear.


1.24 19-Dec-2021 riastradh

Remove last users of drmP.h.


1.23 19-Dec-2021 riastradh

Make ourselves less dependent on drmP.h, removed upstream.

This causes some trouble as CONFIG_* lines might not be appropriately
defined. A few declarations remain in drmP.h so it's not gone.


Author: Maya Rashish <maya@NetBSD.org>


1.22 19-Dec-2021 riastradh

some declarations are now guarded under CONFIG_DRM_LEGACY.

Put our code under CONFIG_DRM_LEGACY, too, for now.


Author: Maya Rashish <maya@NetBSD.org>


1.21 19-Dec-2021 riastradh

Include some headers now that drmP.h got split off.


Author: Maya Rashish <maya@NetBSD.org>


1.20 19-Dec-2021 riastradh

Serialize drm_read so we can back out on uiomove without reordering.

Upstream commit 9b2c0b7fb4ce79566d830d03ce7aa11cccc39f97.


1.19 19-Dec-2021 riastradh

drm_agp_clear got renamed to drm_agp_legacy_clear.


1.18 19-Dec-2021 riastradh

drm_lastclose now rightly returns void.


1.17 19-Dec-2021 riastradh

Include drm_internal.h by "../dist/drm/drm_internal.h".


1.16 26-Sep-2021 thorpej

Change the kqueue filterops::f_isfd field to filterops::f_flags, and
define a flag FILTEROP_ISFD that has the meaning of the prior f_isfd.
Field and flag name aligned with OpenBSD.

This does not constitute a functional or ABI change, as the field location
and size, and the value placed in that field, are the same as the previous
code, but we're bumping __NetBSD_Version__ so 3rd-party module source code
can adapt, as needed.

NetBSD 9.99.89


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
1.15 19-Dec-2020 thorpej

Use sel{record,remove}_knote().


Revision tags: netbsd-9-4-RELEASE netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
1.14 16-Apr-2019 mrg

branches: 1.14.4; 1.14.14;
fix various problems i've seen where cv_*wait*() return ERESTART,
which is -3 in netbsd, which we have mapped linux ERESTARTSYS to.

this has a problem because linux code often returns errors and
pointers in the same value, and pointer values between -4095 and
-1 are considered as error returns, but -3 ends up as 3 and thus
is not considered an error, and mayhem ensues.

with this in place my kabylake system seems actually stable, i
have not triggered any of my prior issues in almost 4 weeks now.


Taylor asked me to write up a description and then wrote most of
the text below for me :-)


In Linux code, we always work with ERESTARTSYS so the code meaning
start over is a positive NetBSD errno safe for PTR_ERR/ERR_PTR.
To achieve this:
1. adapt all cv_waits that return to Linux so they map ERESTART to
ERESTARTSYS, and
2. adapt all returns to userland so they convert ERESTARTSYS to
ERESTART.
Leave EINTR and all other error codes alone.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226
1.13 21-Dec-2018 maya

Expose nvif ioctl interface.

nvif is a variable length (nested..) ioctl, so it doesn't match the
usual drm_ioctl interface. linux uses a shim to override the ioctl
function for nouveau to allow this, do the same.

fixes 3D acceleration with nouveau.

from riastradh.


Revision tags: pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
1.12 28-Aug-2018 riastradh

branches: 1.12.2;
Rework PCI and AGP conditionalization.

- Push drm_pci_set_unique into driver callback.
- Eliminate drm_pci_set_unique_hook.
- Gather all drm_agp_* functions into struct drm_agp_hooks.
- Replace the nonsensical old atomic garbage by serious locking.
- Make drm_agpsupport.c its own module.
- Eliminate NDRMKMS_PCI.
- Use NAGP from "agp.h" only in drm_module.c for horrible hack.
=> See comment in file for rationale.
- Always define CONFIG_PCI=1 and CONFIG_AGP=1.
- Always go through the drm_agp_* function hooks.
- Ifdef out nouveau agp stuff that doesn't go through drm_agp_*
for reasons that I'm too frustrated to figure out tonight.
- pci_iomap no longer automagically does agp_i810_borrow.
=> Use drm_agp_borrow instead.


1.11 28-Aug-2018 riastradh

Move decl of drm_guarantee_initialized to drmP.h.


1.10 27-Aug-2018 riastradh

Locks are not like negatives: doubles don't cancel out.


1.9 27-Aug-2018 riastradh

We don't need drm_legacy_vma_flush.


1.8 27-Aug-2018 riastradh

Rename drm_mmap_* -> drm_legacy_mmap_* like upstream.


1.7 27-Aug-2018 riastradh

Copy body of static drm_legacy_dev_reinit from drm_fops.c to drm_cdevsw.c.


1.6 27-Aug-2018 riastradh

open_count is protected by drm_global_mutex; count_lock is no more.


1.5 27-Aug-2018 riastradh

Actually convert errno as comment suggests.


1.4 27-Aug-2018 riastradh

Move drm_ioctl to drm_ioctl.c.

Previously it was in drm_drv.c upstream, which we overrode; then it
got moved to drm_ioctl.c and drm_drv.c got deleted, so we no longer
need to maintain a separate copy of the table in what we now call
drm_cdevsw.c.


1.3 27-Aug-2018 riastradh

Update DRM_IOCTL_DEF.


1.2 27-Aug-2018 riastradh

Make drm_lastclose match upstream.


1.1 27-Aug-2018 riastradh

Rename drm_drv.c to drm_cdevsw.c.

Previously we overrode upstream's drm_drv.c altogether, and used
upstream's drm_stub.c subroutines.

But upstream deleted drm_drv.c and renamed drm_stub.c to drm_drv.c,
so we have to cope with that reshuffle.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.3 19-Dec-2021 riastradh

drm: Unstub drm_client slightly more.


1.2 19-Dec-2021 riastradh

drm: Slightly unstub this toe.


1.1 19-Dec-2021 riastradh

drm_client stubs


Revision tags: perseant-exfatfs-base-20250801 perseant-exfatfs-base-20240630 perseant-exfatfs-base bouyer-sunxi-drm-base cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-futex-base bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1 ad-namecache-base isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
1.22 27-Aug-2018 riastradh

Rename drm_drv.c to drm_cdevsw.c.

Previously we overrode upstream's drm_drv.c altogether, and used
upstream's drm_stub.c subroutines.

But upstream deleted drm_drv.c and renamed drm_stub.c to drm_drv.c,
so we have to cope with that reshuffle.


1.21 27-Aug-2018 riastradh

directly include asm/bug.h for WARN_ON instead of fighting
to match side-loading.

include drm_legacy.h as needed


Author: coypu <coypu@sdf.org>
Committer: Taylor R Campbell <riastradh@NetBSD.org>


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
1.20 05-Dec-2017 jmcneill

branches: 1.20.2; 1.20.4;
drm_stat: fix device minor calculation, ok riastradh@


Revision tags: tls-maxphys-base-20171202
1.19 30-Nov-2017 christos

add fo_name so we can identify the fileops in a simple way.


1.18 25-Oct-2017 maya

Use C99 initializer for filterops

Mostly done with spatch with touchups for indentation

@@
expression a;
identifier b,c,d;
identifier p;
@@
const struct filterops p =
- { a, b, c, d
+ {
+ .f_isfd = a,
+ .f_attach = b,
+ .f_detach = c,
+ .f_event = d,
};


Revision tags: matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
1.17 09-Nov-2015 jmcneill

branches: 1.17.8; 1.17.10;
only clear agp hook on last close when agp is in use, from riastradh@


1.16 17-Oct-2015 jmcneill

fix __OS_HAS_AGP=0 build


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
1.15 08-Mar-2015 riastradh

Don't return events that are too large and leave them in the list.


1.14 06-Mar-2015 riastradh

Synchronize permission checks with upstream drm_ioctl_permit.


1.13 01-Jan-2015 mrg

due to hangs seen by several folks, for now revert:
http://mail-index.netbsd.org/source-changes/2014/11/04/msg060120.html

Log Message:
This code should be MP-safe. Use IPL_SCHED in place of IPL_DRM/IPL_VM and set
D_MPSAFE flag in cdevsw.


1.12 14-Dec-2014 chs

add a new "fo_mmap" fileops method to allow use of arbitrary uvm_objects for
mappings of file objects. move vnode-specific details of mmap()ing a vnode
from uvm_mmap() to the new vnode-specific vn_mmap(). add new uvm_mmap_dev()
and uvm_mmap_anon() convenience functions for mapping character devices
and anonymous memory, and replace all other calls to uvm_mmap() with those.
use the new fileop in drm2 so that libdrm can use mmap() to map things
like on other platforms (instead of the ioctl that we have used so far).


Revision tags: nick-nhusb-base
1.11 22-Nov-2014 riastradh

branches: 1.11.2;
Move all PCI/AGP code back to drmkms_pci module where it belongs.


1.10 04-Nov-2014 jmcneill

This code should be MP-safe. Use IPL_SCHED in place of IPL_DRM/IPL_VM and set
D_MPSAFE flag in cdevsw.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
1.9 26-Jul-2014 riastradh

branches: 1.9.2; 1.9.4;
Let the drm driver decide what part of what object gets mmapped.

Pass the file around too so radeon/ttm can get at it to verify access.

Add drm_gem_or_legacy_mmap_object for drivers to choose the previous
behaviour, like i915.


1.8 25-Jul-2014 dholland

Add d_discard to all struct cdevsw instances I could find.

All have been set to "nodiscard"; some should get a real implementation.


1.7 16-Jul-2014 riastradh

Make it build and boot on my test machines.

Screen blanks on boot on the Ivy Bridge system with

DRM error in cpt_serr_int_handler: PCH transcoder A FIFO underrun

But after that everything is OK. Appears to be an upstream problem.
To investigate...

I think there's a cache flushing issue somewhere -- there are little
display artefacts on my T60.


1.6 07-Jul-2014 riastradh

Hook up drm suspend/resume.


1.5 13-Jun-2014 riastradh

Destroy, don't leak, events when done with them.


Revision tags: yamt-pagecache-base9 rmind-smpnet-base rmind-smpnet-nbase
1.4 01-May-2014 riastradh

branches: 1.4.2; 1.4.4;
Tweak some DRM GEM page indexing crap.

- Fix order of subtraction in drm_mmap_paddr_locked.
- Address GEM objects' pages from 0, not from the mmap cookie.
- Check page alignment earlier in mmap code paths.
- Sprinkle kasserts throughout.

Still doesn't fix the garbage that is sometimes being scribbled all
over kernel memory!


1.3 04-Apr-2014 riastradh

branches: 1.3.2;
Figure drm_debug into the drm_init module kludgerosity.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
1.2 18-Mar-2014 riastradh

Merge riastradh-drm2 to HEAD.


Revision tags: riastradh-drm2-base3
1.1 24-Jul-2013 riastradh

branches: 1.1.2;
file drm_drv.c was initially added on branch riastradh-drm2.


Revision tags: perseant-exfatfs-base-20250801 perseant-exfatfs-base-20240630 perseant-exfatfs-base bouyer-sunxi-drm-base
1.5 19-Dec-2021 riastradh

Eliminate drm_file.c copypasta.


1.4 19-Dec-2021 riastradh

Make ourselves less dependent on drmP.h, removed upstream.

This causes some trouble as CONFIG_* lines might not be appropriately
defined. A few declarations remain in drmP.h so it's not gone.


Author: Maya Rashish <maya@NetBSD.org>


1.3 19-Dec-2021 riastradh

Include newly split off headers Don't initialize struct members that no longer exist. Make DRIVER_PRIME code unconditional, similar to upstream drm_file.c


Author: Maya Rashish <maya@NetBSD.org>


1.2 19-Dec-2021 riastradh

Sync drm_file.c. Prepare to convert event read lock to cv.


1.1 19-Dec-2021 riastradh

Rename drm_fops.c -> drm_file.c


Revision tags: perseant-exfatfs-base-20250801 perseant-exfatfs-base-20240630 perseant-exfatfs-base bouyer-sunxi-drm-base
1.16 19-Dec-2021 riastradh

Rename drm_fops.c -> drm_file.c


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
1.15 14-Feb-2020 riastradh

Reduce diffs by nixing DRM_SUSER macro, deleted upstream long ago.

Instead stub Linux capable(CAP_SYS_ADMIN).


Revision tags: netbsd-9-4-RELEASE netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
1.14 27-Aug-2018 riastradh

branches: 1.14.6;
Draft support for drm prime.


1.13 27-Aug-2018 riastradh

Make sure all of struct drm_file gets initialized.


1.12 27-Aug-2018 riastradh

Sync drm_close_file: call drm_property_release_user_blobs.


1.11 27-Aug-2018 riastradh

Release the magic before releasing the master.

Releasing the master frees the idr into which we are trying to
release the magic. Use of magic that has been freed sounds like a
dangerous proposition.


1.10 27-Aug-2018 riastradh

Implement drm_new_set_master in drm_fops.c and use it.


1.9 27-Aug-2018 riastradh

More drm_fops.c updates. Hooray, code deletion!


1.8 27-Aug-2018 riastradh

Apply some more legacy renames. drm magic got replaced by an idr.


1.7 27-Aug-2018 riastradh

Fix headers for drm_fops.c.


1.6 27-Aug-2018 riastradh

Update always_authenticated -> authenticated.


1.5 27-Aug-2018 riastradh

include drm_legacy.h as needed...


Author: coypu <coypu@sdf.org>
Committer: Taylor R Campbell <riastradh@NetBSD.org>


Revision tags: netbsd-8-3-RELEASE netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-7-2-RELEASE pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 netbsd-7-1-2-RELEASE pgoyette-compat-base netbsd-7-1-1-RELEASE tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 nick-nhusb-base-20170204 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 nick-nhusb-base-20161204 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE nick-nhusb-base-20161004 localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base tls-maxphys-base netbsd-7-base tls-earlyentropy-base
1.4 16-Jul-2014 riastradh

branches: 1.4.4; 1.4.28; 1.4.30;
Make it build and boot on my test machines.

Screen blanks on boot on the Ivy Bridge system with

DRM error in cpt_serr_int_handler: PCH transcoder A FIFO underrun

But after that everything is OK. Appears to be an upstream problem.
To investigate...

I think there's a cache flushing issue somewhere -- there are little
display artefacts on my T60.


Revision tags: yamt-pagecache-base9 rmind-smpnet-base rmind-smpnet-nbase
1.3 03-Apr-2014 riastradh

branches: 1.3.2; 1.3.4; 1.3.6;
Fix up removal of _DRM_SHM mappings and the hardware lock.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
1.2 18-Mar-2014 riastradh

Merge riastradh-drm2 to HEAD.


Revision tags: riastradh-drm2-base3
1.1 24-Jul-2013 riastradh

branches: 1.1.2;
file drm_fops.c was initially added on branch riastradh-drm2.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base perseant-exfatfs-base-20240630 perseant-exfatfs-base thorpej-ifq-base thorpej-altq-separation-base
1.15 15-Aug-2023 mrg

avoid uninitialised variable usage in drm_gem_cma_create_internal().

in the case nothing has returned 'error', 'nsegs' and the dma info
are (potentially) uninitialised, so consider this an error.

found by GCC 12.


Revision tags: netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.14 02-Jul-2022 riastradh

branches: 1.14.4;
drm: Rewrite drm_gem_cma_helper.h from scratch.

The header file was originally part of drm with no licence text,
which I took to mean BSD-licensed like the rest of the Linux drm code
base is by default -- everything in Linux under include/drm and
drivers/gpu/drm not otherwise marked.

In 2017, a tree-wide automated change was applied to Linux which
caused an SPDX GPL header to appear in drm_gem_cma_helper.h. When I
asked the drm developers about this in drm files, they explained that
it was an automated process and many of the SPDX headers were wrong,
so when excluding GPL files in drm updates, I heeded the actual GPL
vs BSD/MIT licence text and revision history rather than the SPDX
headers.

I excluded drm_gem_cma_helper.c because it was clearly originally GPL
as an exception to the default BSD licence under Linux's
drivers/gpu/drm, and Jared reimplemented the API for ues by some
(NetBSD, BSD-licensed) Arm display drivers.

During an update after that, the header file was lost in the merge
shuffle and I copied it back in without noticing the SPDX header
file. In retrospect, I see now that it's not clear what the intent
was: the .c file was obviously GPL, and maybe the .h file was
supposed to be too but it wasn't carved out as an exception among the
drm code.

To keep our story simpler, I just drafted a new .h file that provides
a compatible subset of the interface we use, derived from the .c file
Jared wrote, written according to several deterministic rules based
on KNF that yield a non-creative specification of the compatible
interface:

1. $NetBSD$ RCS id
2. standard TNF copyright statement
3. header guard derived from #include file name
4. minimal #includes, grouped and sorted according to KNF
5. forward declaration of structs, sorted lexicographically
6. definitions of structs, members sorted lexicographically by name
7. downcasting macros, written in KNF and sorted lexicographically
8. minimal extern variable declarations, sorted lexicographically
9. minimal, function prototypes, written in KNF and sorted
lexicographically

`Minimal' means added one by one, according to the errors issued by
the compiler (and in the case of #includes, according to the correct
header file for the missing types or function prototypes being used),
until the compiler is formally satisfied.

Any changes to this will, unless otherwise marked, be covered by the
standard TNF licence now on the file.


1.13 19-Dec-2021 riastradh

Make ourselves less dependent on drmP.h, removed upstream.

This causes some trouble as CONFIG_* lines might not be appropriately
defined. A few declarations remain in drmP.h so it's not gone.


Author: Maya Rashish <maya@NetBSD.org>


1.12 19-Dec-2021 riastradh

Catch up with function renames

reference -> get, unreference -> put


Author: Maya Rashish <maya@NetBSD.org>


1.11 19-Dec-2021 riastradh

drm_gem_cma_dumb_map_offset is no more.


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
1.10 22-Feb-2020 chs

do not wait for memory in pgo_fault methods, just return ENOMEM
and let the uvm_fault code wait if it is appropriate.


Revision tags: ad-namecache-base2 ad-namecache-base1 ad-namecache-base phil-wifi-20191119
1.9 05-Nov-2019 jmcneill

branches: 1.9.2;
Add support for DRM GEM/CMA helpers using a driver provided vmem arena.


1.8 05-Nov-2019 jmcneill

Map buffer objects with BUS_DMA_PREFETCHABLE.


Revision tags: netbsd-9-base phil-wifi-20190609 isaki-audio2-base
1.7 08-Mar-2019 mrg

branches: 1.7.4;
drm_gem_cma_fault() is a UVM fault function. return netbsd errnos.


Revision tags: pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
1.6 27-Aug-2018 riastradh

Use dmat, not bus_dmat, to respect drm_limit_dma_space.


1.5 27-Aug-2018 riastradh

drm_gem_cma_create_internal can fail.


1.4 27-Aug-2018 riastradh

Rework drm prime guts.

- Our faux struct sg_table is now just an array of _pages_, not of
bus dma segments.

- We handle bus dma segments only in the presence of an adult bus dma
tag.

- All bus dma hacks are once again confined to bus_dma_hacks.h, and
more neatly organized:
. bus_dmamem_export_pages translates bus dma segs to vm_page array
. bus_dmamem_import_pages translates vm_page array to bus dma segs


1.3 27-Aug-2018 riastradh

Implement remainder of drm_gem_cma_helper API.


1.2 27-Aug-2018 riastradh

Fix up drm_gem_cma_helper.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
1.1 26-Dec-2017 jmcneill

branches: 1.1.2; 1.1.4;
Implement the DRM GEM/CMA helpers. The implementation has been extracted
from our tegra DRM driver, but generalized for use with other drivers.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.3 19-Dec-2021 riastradh

drm/drm_print.h for struct drm_printer drm/drm_fourcc.h for struct drm_format_info


Author: Maya Rashish <maya@NetBSD.org>


1.2 19-Dec-2021 riastradh

Add includes, fix reference path.


1.1 19-Dec-2021 riastradh

Local reimplementation of GPL drm_gem_framebuffer_helper.c.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.15 06-Jul-2022 riastradh

uvm(9): fo_mmap caller guarantees positive size.

No functional change intended, just sprinkling assertions to make it
clearer.


1.14 19-Dec-2021 riastradh

Make ourselves less dependent on drmP.h, removed upstream.

This causes some trouble as CONFIG_* lines might not be appropriately
defined. A few declarations remain in drmP.h so it's not gone.


Author: Maya Rashish <maya@NetBSD.org>


1.13 19-Dec-2021 riastradh

drm/drm_drv.h for struct drm_device


Author: Maya Rashish <maya@NetBSD.org>


1.12 19-Dec-2021 riastradh

Catch up with function renames

reference -> get, unreference -> put


Author: Maya Rashish <maya@NetBSD.org>


1.11 19-Dec-2021 riastradh

Need <sys/file.h> to dereference struct file.


1.10 19-Dec-2021 riastradh

Pass drm_file, not file, pointer to drm_vma_node_is_allowed.


Revision tags: netbsd-9-4-RELEASE netbsd-9-3-RELEASE thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 netbsd-9-2-RELEASE cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
1.9 27-Aug-2018 riastradh

Rename drm_mmap_* -> drm_legacy_mmap_* like upstream.


1.8 27-Aug-2018 riastradh

Need drm_legacy.h for legacy mmap stuff.


1.7 27-Aug-2018 riastradh

Need to use new <drm/drm_gem.h> for GEM stuff.


Revision tags: netbsd-8-3-RELEASE netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
1.6 09-Mar-2015 riastradh

branches: 1.6.16; 1.6.18;
Apply access control to gem mmap.


Revision tags: nick-nhusb-base tls-maxphys-base netbsd-7-base tls-earlyentropy-base
1.5 26-Jul-2014 riastradh

branches: 1.5.2; 1.5.4; 1.5.6;
Let the drm driver decide what part of what object gets mmapped.

Pass the file around too so radeon/ttm can get at it to verify access.

Add drm_gem_or_legacy_mmap_object for drivers to choose the previous
behaviour, like i915.


1.4 16-Jul-2014 riastradh

Make it build and boot on my test machines.

Screen blanks on boot on the Ivy Bridge system with

DRM error in cpt_serr_int_handler: PCH transcoder A FIFO underrun

But after that everything is OK. Appears to be an upstream problem.
To investigate...

I think there's a cache flushing issue somewhere -- there are little
display artefacts on my T60.


Revision tags: yamt-pagecache-base9 rmind-smpnet-base rmind-smpnet-nbase
1.3 01-May-2014 riastradh

branches: 1.3.2; 1.3.4;
Tweak some DRM GEM page indexing crap.

- Fix order of subtraction in drm_mmap_paddr_locked.
- Address GEM objects' pages from 0, not from the mmap cookie.
- Check page alignment earlier in mmap code paths.
- Sprinkle kasserts throughout.

Still doesn't fix the garbage that is sometimes being scribbled all
over kernel memory!


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
1.2 18-Mar-2014 riastradh

branches: 1.2.2;
Merge riastradh-drm2 to HEAD.


Revision tags: riastradh-drm2-base3
1.1 24-Jul-2013 riastradh

branches: 1.1.2;
file drm_gem_vm.c was initially added on branch riastradh-drm2.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.1 19-Dec-2021 riastradh

drm: Stub out drm_hdcp.c


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.5 19-Dec-2021 riastradh

stub drm_lease.c the same way as openbsd


Author: Maya Rashish <maya@NetBSD.org>
Committer: Taylor R Campbell <riastradh@NetBSD.org>


1.4 19-Dec-2021 riastradh

drm_lease_destroy stub


1.3 19-Dec-2021 riastradh

Fix typo: list lessees, not list leases.


1.2 19-Dec-2021 riastradh

Sprinkle some necessary includes and forward decls.


1.1 19-Dec-2021 riastradh

Unfinished local implementation of GPL drm_lease.c.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.13 19-Dec-2021 riastradh

drm: Make some legacy UMS crap build.


1.12 19-Dec-2021 riastradh

Make ourselves less dependent on drmP.h, removed upstream.

This causes some trouble as CONFIG_* lines might not be appropriately
defined. A few declarations remain in drmP.h so it's not gone.


Author: Maya Rashish <maya@NetBSD.org>


1.11 19-Dec-2021 riastradh

Make our code follow CONFIG_DRM_LEGACY.

We might want to delete all this code later, but no rush.


Author: Maya Rashish <maya@NetBSD.org>


1.10 19-Dec-2021 riastradh

Sync drm_lock.c. (Needs review, but only used by legacy drivers.)


1.9 19-Dec-2021 riastradh

Include drm_internal.h by "../dist/drm/drm_internal.h".


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
1.8 23-May-2020 ad

Move proc_lock into the data segment. It was dynamically allocated because
at the time we had mutex_obj_alloc() but not __cacheline_aligned.


Revision tags: netbsd-9-4-RELEASE netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
1.7 27-Aug-2018 riastradh

Need <drm/drm_internal.h> for drm_global_mutex.


1.6 27-Aug-2018 riastradh

Rename some drm_* to drm_legacy_*.


1.5 27-Aug-2018 riastradh

include drm_legacy.h as needed...


Author: coypu <coypu@sdf.org>
Committer: Taylor R Campbell <riastradh@NetBSD.org>


Revision tags: netbsd-8-3-RELEASE netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422
1.4 02-Apr-2016 riastradh

branches: 1.4.16; 1.4.18;
Take a stab at implementing drm_idlelock_take/release.

Evidently needed by VIA DRM/UMS. Noted and tested by medfly/coypu.


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base tls-maxphys-base netbsd-7-base tls-earlyentropy-base
1.3 16-Jul-2014 riastradh

branches: 1.3.4; 1.3.6;
Make it build and boot on my test machines.

Screen blanks on boot on the Ivy Bridge system with

DRM error in cpt_serr_int_handler: PCH transcoder A FIFO underrun

But after that everything is OK. Appears to be an upstream problem.
To investigate...

I think there's a cache flushing issue somewhere -- there are little
display artefacts on my T60.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-base rmind-smpnet-nbase
1.2 18-Mar-2014 riastradh

branches: 1.2.2; 1.2.4; 1.2.6;
Merge riastradh-drm2 to HEAD.


Revision tags: riastradh-drm2-base3
1.1 24-Jul-2013 riastradh

branches: 1.1.2;
file drm_lock.c was initially added on branch riastradh-drm2.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.17 19-Dec-2021 riastradh

Misc stubs.


1.16 19-Dec-2021 riastradh

<drm/drm_print.h> for DRM_DEBUG


1.15 19-Dec-2021 riastradh

Remove last users of drmP.h.


1.14 19-Dec-2021 riastradh

Make ourselves less dependent on drmP.h, removed upstream.

This causes some trouble as CONFIG_* lines might not be appropriately
defined. A few declarations remain in drmP.h so it's not gone.


Author: Maya Rashish <maya@NetBSD.org>


Revision tags: netbsd-9-4-RELEASE netbsd-9-3-RELEASE thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 netbsd-9-2-RELEASE cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
1.13 27-Aug-2018 riastradh

Tread carefully around DMA subregions.

Not all platforms support it.

- If we want to limit to 32-bit DMA, just use a known 32-bit DMA tag.
- If we want to limit to >32-bit DMA, but the host only has a known
32-bit DMA tag, then just use that anyway.
- If we want to limit to >32-bit DMA, but the host doesn't support
bus_dmatag_subregion, then just use the 32-bit DMA tag anyway.

Gives powerpc, sparc a chance of working.


1.12 27-Aug-2018 riastradh

Get the legacy drm declarations from drm_legacy.h.


1.11 27-Aug-2018 riastradh

Rename drm_core_ioremap -> drm_legacy_ioremap as upstream.


Revision tags: netbsd-8-3-RELEASE netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
1.10 06-Mar-2016 mlelstv

branches: 1.10.16; 1.10.18;
Non-x86 doesn't have AGP. This should really be handled by config logic.


1.9 05-Mar-2016 mlelstv

Make agp_i810 also depend on agp so that a 'no agp' build is possible.


Revision tags: nick-nhusb-base-20151226
1.8 17-Oct-2015 jmcneill

build on platforms without agp_i810


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606
1.7 29-Apr-2015 riastradh

Replace drm_ioremap by drm_core_ioremap, reducing diff a little.


Revision tags: netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base tls-maxphys-base netbsd-7-base tls-earlyentropy-base
1.6 16-Jul-2014 riastradh

branches: 1.6.2; 1.6.4; 1.6.6;
Make it build and boot on my test machines.

Screen blanks on boot on the Ivy Bridge system with

DRM error in cpt_serr_int_handler: PCH transcoder A FIFO underrun

But after that everything is OK. Appears to be an upstream problem.
To investigate...

I think there's a cache flushing issue somewhere -- there are little
display artefacts on my T60.


1.5 01-Jul-2014 riastradh

Honour write-combining flag in drm_ioremap.


1.4 12-Jun-2014 riastradh

Check bounds in agp_i810_borrow.

Out of paranoia, do a bus_space_subregion in case the old drm code
tries sizes that the agp_i810 code doesn't agree with.


Revision tags: rmind-smpnet-base rmind-smpnet-nbase
1.3 14-May-2014 riastradh

branches: 1.3.2; 1.3.4;
Fix error branch in drm_limit_dma_space.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15
1.2 18-Mar-2014 riastradh

branches: 1.2.2;
Merge riastradh-drm2 to HEAD.


Revision tags: riastradh-drm2-base3
1.1 24-Jul-2013 riastradh

branches: 1.1.2;
file drm_memory.c was initially added on branch riastradh-drm2.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base perseant-exfatfs-base-20240630 perseant-exfatfs-base thorpej-ifq-base thorpej-altq-separation-base
1.32 05-Sep-2023 riastradh

drm: Fix conditionals around drmkms_pci and agp.

Kernel should build now with all pci drm drivers stripped out but
DRM_LEGACY still enabled. (Might not be very useful, but it'll
build. Maybe we should also have DRM_LEGACY_PCI so those drivers can
be modloaded later.)


Revision tags: netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.31 19-Jul-2022 riastradh

branches: 1.31.4;
drm: Note dependency on sysmon_power.

drm uses this for pswitch events to notify of hotplug.


1.30 17-Jul-2022 riastradh

drm: Dust off module build a little.


1.29 31-Dec-2021 riastradh

drm: Reduce default debug level to driver-specific messages.

Let's make a liiiiittle less log spew by default with `boot -x'.


1.28 19-Dec-2021 riastradh

rkdrm: Convert to atomic modesetting, as needed for bridges.


Author: Jared McNeill <jmcneill@invisible.ca>
Committer: Taylor R Campbell <riastradh@NetBSD.org>


1.27 19-Dec-2021 riastradh

Make intel_psr.c build
netbsd-ify
Stub out intel_lpe_audio.c (for now?).
Hammer intel_opregion.c into shape.
Hack up intel_lrc.c
Adapt intel_reset.c
Stub out intel_region_lmem.c
Adapt intel_ring_submission.c
Adapt intel_rps.c
Adapt intel_sdvo.c
Adapt intel_runtime_pm.c
Adapt intel_sideband.c
Adapt intel_sprite.c
Adapt intel_tv.c
Adapt intel_tc.c
Adapt intel_sseu.c
Adapt intel_timeline.c
Adapt intel_uc_fw.c and fix typo
Fix up intel_uncore.c
intel_vga.c
intel_wakeref.c
intel_vdsc.c
intel_wopcm.c
intel_workarounds.c
i915_globals.c
Fix up intelfb.c
Stub out intel_guc_log.c
Stub out intel_dsi_dcs_backlight.c
i915_perf.c
intel_hdmi.c
intel_hdcp.c


Author: Maya Rashish <maya@NetBSD.org>
Committer: Taylor R Campbell <riastradh@NetBSD.org>


1.26 19-Dec-2021 riastradh

Initialize drm_core_init_complete in drm_module.c

Linux achieves this with a module_init(drm_core_init);


Author: Maya Rashish <maya@NetBSD.org>
Committer: Taylor R Campbell <riastradh@NetBSD.org>


1.25 19-Dec-2021 riastradh

drm_global_init/release is no more


1.24 19-Dec-2021 riastradh

Remove last users of drmP.h.


1.23 19-Dec-2021 riastradh

Make ourselves less dependent on drmP.h, removed upstream.

This causes some trouble as CONFIG_* lines might not be appropriately
defined. A few declarations remain in drmP.h so it's not gone.


Author: Maya Rashish <maya@NetBSD.org>


1.22 19-Dec-2021 riastradh

Missing includes, conditionalize on drm legacy

Might want to remove drm legacy code entirely later.


Author: Maya Rashish <maya@NetBSD.org>


1.21 19-Dec-2021 riastradh

Initialize kernel_fb_helper_lock in drm module load.


1.20 19-Dec-2021 riastradh

Declare and initialize drm_unplug_srcu our way.


1.19 19-Dec-2021 riastradh

Need drm_crtc_internal.h for drm_connector_ida_init/fini.


1.18 19-Dec-2021 riastradh

Include drm_internal.h by "../dist/drm/drm_internal.h".


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1 ad-namecache-base
1.17 03-Jan-2020 jmcneill

Initialize drm_bridge and drm_panel locks.


Revision tags: phil-wifi-20191119
1.16 23-Sep-2019 mrg

when "boot -x", don't turn on *all* drm debug, just the core, driver
and kms messages, eliding the vblank, atomic and prime messages,
which are the truly noisy ones (and may result in impossibly slow
to use systems.)

XXX: pullup-all.


Revision tags: netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
1.15 28-Aug-2018 riastradh

branches: 1.15.4;
Rework PCI and AGP conditionalization.

- Push drm_pci_set_unique into driver callback.
- Eliminate drm_pci_set_unique_hook.
- Gather all drm_agp_* functions into struct drm_agp_hooks.
- Replace the nonsensical old atomic garbage by serious locking.
- Make drm_agpsupport.c its own module.
- Eliminate NDRMKMS_PCI.
- Use NAGP from "agp.h" only in drm_module.c for horrible hack.
=> See comment in file for rationale.
- Always define CONFIG_PCI=1 and CONFIG_AGP=1.
- Always go through the drm_agp_* function hooks.
- Ifdef out nouveau agp stuff that doesn't go through drm_agp_*
for reasons that I'm too frustrated to figure out tonight.
- pci_iomap no longer automagically does agp_i810_borrow.
=> Use drm_agp_borrow instead.


1.14 28-Aug-2018 riastradh

Move decl of drm_guarantee_initialized to drmP.h.


1.13 27-Aug-2018 riastradh

Make sure to create and destroy the lock too...


1.12 27-Aug-2018 riastradh

Make drmkms build without drmkms_pci.


Revision tags: netbsd-8-3-RELEASE netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
1.11 13-Apr-2015 pgoyette

branches: 1.11.16; 1.11.18;
Update module dependencies:

drmkms does not depend on iic
drmkms_linux depends on i2cexec


Revision tags: nick-nhusb-base-20150406
1.10 05-Mar-2015 riastradh

Rewrite drm_encoder_slave.c, as nouveau will need.


Revision tags: nick-nhusb-base
1.9 12-Nov-2014 christos

branches: 1.9.2;
prettify and add to all the modules that have it.


1.8 14-Sep-2014 riastradh

Fix module build of drmkms.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
1.7 17-Jul-2014 riastradh

branches: 1.7.2; 1.7.4;
Initialize the drm_global stuff.


1.6 16-Jul-2014 riastradh

Make it build and boot on my test machines.

Screen blanks on boot on the Ivy Bridge system with

DRM error in cpt_serr_int_handler: PCH transcoder A FIFO underrun

But after that everything is OK. Appears to be an upstream problem.
To investigate...

I think there's a cache flushing issue somewhere -- there are little
display artefacts on my T60.


Revision tags: yamt-pagecache-base9 rmind-smpnet-base rmind-smpnet-nbase
1.5 04-Apr-2014 riastradh

branches: 1.5.2; 1.5.4; 1.5.6;
Figure drm_debug into the drm_init module kludgerosity.


1.4 03-Apr-2014 riastradh

Need <sys/reboot.h> for AB_DEBUG.


1.3 03-Apr-2014 riastradh

Enable drm debug output iff boothowto has AB_DEBUG set.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
1.2 18-Mar-2014 riastradh

Merge riastradh-drm2 to HEAD.


Revision tags: riastradh-drm2-base3
1.1 24-Jul-2013 riastradh

branches: 1.1.2;
file drm_module.c was initially added on branch riastradh-drm2.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.9 19-Dec-2021 riastradh

drm: Make some legacy UMS crap build.


1.8 19-Dec-2021 riastradh

Remove last users of drmP.h.


1.7 19-Dec-2021 riastradh

Missing includes, conditionalize on drm legacy

Might want to remove drm legacy code entirely later.


Author: Maya Rashish <maya@NetBSD.org>


1.6 19-Dec-2021 riastradh

Include drm_internal.h by "../dist/drm/drm_internal.h".


Revision tags: netbsd-9-4-RELEASE netbsd-9-3-RELEASE thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 netbsd-9-2-RELEASE cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
1.5 27-Aug-2018 riastradh

drm_sg_* legacy


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
1.4 07-Feb-2018 mrg

branches: 1.4.2; 1.4.4;
XXX: add a NULL init to avoid a GCC 6 maybe uninit warning.


Revision tags: netbsd-7-2-RELEASE netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 nick-nhusb-base-20170204 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 nick-nhusb-base-20161204 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE nick-nhusb-base-20161004 localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base tls-maxphys-base netbsd-7-base tls-earlyentropy-base
1.3 16-Jul-2014 riastradh

branches: 1.3.4; 1.3.22;
Make it build and boot on my test machines.

Screen blanks on boot on the Ivy Bridge system with

DRM error in cpt_serr_int_handler: PCH transcoder A FIFO underrun

But after that everything is OK. Appears to be an upstream problem.
To investigate...

I think there's a cache flushing issue somewhere -- there are little
display artefacts on my T60.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-base rmind-smpnet-nbase
1.2 18-Mar-2014 riastradh

branches: 1.2.2; 1.2.4; 1.2.6;
Merge riastradh-drm2 to HEAD.


Revision tags: riastradh-drm2-base3
1.1 24-Jul-2013 riastradh

branches: 1.1.2;
file drm_scatter.c was initially added on branch riastradh-drm2.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1 ad-namecache-base phil-wifi-20191119
1.1 16-Nov-2019 christos

branches: 1.1.8;
Add a stub for drm_ioctl() so that compat32 links with kernels without drmkms.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.8 19-Dec-2021 riastradh

i915: Adapt i915_perf.c.


Revision tags: netbsd-9-4-RELEASE netbsd-9-3-RELEASE thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 netbsd-9-2-RELEASE cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
1.7 27-Aug-2018 riastradh

Teach drm_sysctl about uint, kludgily.


Revision tags: netbsd-8-3-RELEASE netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
1.6 30-Jul-2015 riastradh

branches: 1.6.16; 1.6.18; 1.6.20;
Add $NetBSD$ tag.


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
1.5 25-Feb-2015 riastradh

Add string Linux module parameters.

Needed by nouveau.

From chs@.


Revision tags: nick-nhusb-base
1.4 24-Nov-2014 prlw1

branches: 1.4.2; 1.4.4;
Trivial build fix for no options SYSCTL_INCLUDE_DESCR case, to
avoid -Werror.
OK christos@ and riastradh@


1.3 12-Nov-2014 christos

fix description setting.


1.2 12-Nov-2014 christos

prettify and add to all the modules that have it.


1.1 12-Nov-2014 christos

Add __link_set based code to automatically convert the linux module parameters
into sysctls.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.9 19-Dec-2021 riastradh

drm: Fill in fake connector->kdev pointing at the drm device.

Hope this will make progress -- hope it won't screw up too badly if
two connectors have the same kdev!


1.8 19-Dec-2021 riastradh

Restore drm_sysfs_connector_add/remove stubs.


1.7 19-Dec-2021 riastradh

Update drm_sysfs stubs.


1.6 19-Dec-2021 riastradh

Use drmP.h less in our local files.


Author: Maya Rashish <maya@NetBSD.org>


1.5 19-Dec-2021 riastradh

Include drm_internal.h by "../dist/drm/drm_internal.h".


Revision tags: netbsd-9-4-RELEASE netbsd-9-3-RELEASE thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 netbsd-9-2-RELEASE cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
1.4 27-Aug-2018 riastradh

Internal prototypes from drm_internal.h. Reflect upstream deletions.


Revision tags: netbsd-8-3-RELEASE netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-7-2-RELEASE pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 netbsd-7-1-2-RELEASE pgoyette-compat-base netbsd-7-1-1-RELEASE tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 nick-nhusb-base-20170204 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 nick-nhusb-base-20161204 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE nick-nhusb-base-20161004 localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base tls-maxphys-base netbsd-7-base tls-earlyentropy-base
1.3 16-Jul-2014 riastradh

branches: 1.3.4; 1.3.28; 1.3.30;
Make it build and boot on my test machines.

Screen blanks on boot on the Ivy Bridge system with

DRM error in cpt_serr_int_handler: PCH transcoder A FIFO underrun

But after that everything is OK. Appears to be an upstream problem.
To investigate...

I think there's a cache flushing issue somewhere -- there are little
display artefacts on my T60.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-base rmind-smpnet-nbase
1.2 18-Mar-2014 riastradh

branches: 1.2.2; 1.2.4; 1.2.6;
Merge riastradh-drm2 to HEAD.


Revision tags: riastradh-drm2-base3
1.1 24-Jul-2013 riastradh

branches: 1.1.2;
file drm_sysfs.c was initially added on branch riastradh-drm2.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.13 06-Jul-2022 riastradh

uvm(9): fo_mmap caller guarantees positive size.

No functional change intended, just sprinkling assertions to make it
clearer.


1.12 19-Dec-2021 riastradh

Use drmP.h less in our local files.


Author: Maya Rashish <maya@NetBSD.org>


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
1.11 14-Feb-2020 riastradh

Reduce diffs by nixing DRM_SUSER macro, deleted upstream long ago.

Instead stub Linux capable(CAP_SYS_ADMIN).


Revision tags: netbsd-9-4-RELEASE netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
1.10 27-Aug-2018 riastradh

branches: 1.10.6;
Need <uvm/uvm.h> for struct uvm_object.


1.9 27-Aug-2018 riastradh

Rename drm_mmap_* -> drm_legacy_mmap_* like upstream.


1.8 27-Aug-2018 riastradh

Get the legacy drm declarations from drm_legacy.h.


Revision tags: netbsd-8-3-RELEASE netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
1.7 31-Dec-2014 mrg

branches: 1.7.16; 1.7.18;
fix a confusion between dev_t and devmajor_t, and include the primary
minor when calling makedev().


1.6 14-Dec-2014 chs

add a new "fo_mmap" fileops method to allow use of arbitrary uvm_objects for
mappings of file objects. move vnode-specific details of mmap()ing a vnode
from uvm_mmap() to the new vnode-specific vn_mmap(). add new uvm_mmap_dev()
and uvm_mmap_anon() convenience functions for mapping character devices
and anonymous memory, and replace all other calls to uvm_mmap() with those.
use the new fileop in drm2 so that libdrm can use mmap() to map things
like on other platforms (instead of the ioctl that we have used so far).


Revision tags: nick-nhusb-base tls-maxphys-base netbsd-7-base tls-earlyentropy-base
1.5 26-Jul-2014 riastradh

branches: 1.5.2; 1.5.4; 1.5.6;
Let the drm driver decide what part of what object gets mmapped.

Pass the file around too so radeon/ttm can get at it to verify access.

Add drm_gem_or_legacy_mmap_object for drivers to choose the previous
behaviour, like i915.


1.4 16-Jul-2014 riastradh

Make it build and boot on my test machines.

Screen blanks on boot on the Ivy Bridge system with

DRM error in cpt_serr_int_handler: PCH transcoder A FIFO underrun

But after that everything is OK. Appears to be an upstream problem.
To investigate...

I think there's a cache flushing issue somewhere -- there are little
display artefacts on my T60.


Revision tags: yamt-pagecache-base9 rmind-smpnet-base rmind-smpnet-nbase
1.3 01-May-2014 riastradh

branches: 1.3.2; 1.3.4;
Tweak some DRM GEM page indexing crap.

- Fix order of subtraction in drm_mmap_paddr_locked.
- Address GEM objects' pages from 0, not from the mmap cookie.
- Check page alignment earlier in mmap code paths.
- Sprinkle kasserts throughout.

Still doesn't fix the garbage that is sometimes being scribbled all
over kernel memory!


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
1.2 18-Mar-2014 riastradh

branches: 1.2.2;
Merge riastradh-drm2 to HEAD.


Revision tags: riastradh-drm2-base3
1.1 24-Jul-2013 riastradh

branches: 1.1.2;
file drm_vm.c was initially added on branch riastradh-drm2.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.8 19-Dec-2021 riastradh

drm: Add drm_vma_offset_exact_lookup_locked.


1.7 19-Dec-2021 riastradh

drm: Fix sign error in comparison for vma lookup.


1.6 19-Dec-2021 riastradh

drm_vma_manager deals in struct drm_file, not struct file, now.

Kinda inconvenient because it means we'll need to patch
filp->private_data with filp->f_data in various places...


Revision tags: netbsd-8-3-RELEASE netbsd-9-4-RELEASE netbsd-9-3-RELEASE thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 netbsd-9-2-RELEASE cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 isaki-audio2-base pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204
1.5 19-Nov-2016 maya

Lock the manager and not just the node for inserting/removing nodes

should fix/help PR kern/50349: radeondrmkms vt-switching crash

ok riastradh


Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422
1.4 19-Apr-2016 riastradh

branches: 1.4.2;
Make sure rbtrees are empty on desctruction.

If related to PR kern/51076, might help catch the bug a bit earlier.


Revision tags: nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
1.3 19-Jun-2015 chs

plug memory leak in drm_vma_node_revoke().


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
1.2 02-Mar-2015 riastradh

Don't sleep in the drm_vma allocator. Fail with ENOSPC, not ENOMEM.

Caller has dev->struct_mutex locked and will handle ENOSPC anyway.


Revision tags: nick-nhusb-base tls-maxphys-base netbsd-7-base tls-earlyentropy-base
1.1 16-Jul-2014 riastradh

branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8;
Make it build and boot on my test machines.

Screen blanks on boot on the Ivy Bridge system with

DRM error in cpt_serr_int_handler: PCH transcoder A FIFO underrun

But after that everything is OK. Appears to be an upstream problem.
To investigate...

I think there's a cache flushing issue somewhere -- there are little
display artefacts on my T60.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.1 19-Dec-2021 riastradh

drm_writeback stubs


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.16 01-Sep-2022 riastradh

drmfb: Rework console detection and takeover.

While here, simplify logic by removing an unreachable error branch so
we never have to contemplate unwinding claiming of the console.


1.15 01-Sep-2022 riastradh

drmfb: Take is_console property from parent, not from self.

The parent is the pci or platform device that firmware knows about.
The `drmfb' device is more of a fictitious invention of the drm stack
that exists for the convenience of the genfb abstraction which needs
device_private to be a struct genfb_softc.

Let's see if this does any better than the last attempt to rework the
logic here.


1.14 18-Feb-2022 wiz

revert "drm: Respect is_console property on main drm device, not fb child."

breaks booting on some machines

ok riastradh@


1.13 16-Feb-2022 riastradh

drm: Respect is_console property on main drm device, not fb child.

The MD device enumeration sets the property on, e.g., PCI devices --
not on drm framebuffer children, which are mostly a software
abstraction. Not sure examining the nouveaufb, intelfb, &c., device
properties is worthwhile at all, but in case it breaks something
let's just leave it in while we're fixing other things.


1.12 20-Dec-2021 chs

drm: add missing KERNEL_LOCK around calls to config_found().


1.11 20-Dec-2021 riastradh

drm: Simplify use of drm API for display on/off logic in drmfb.


1.10 19-Dec-2021 riastradh

Remove last users of drmP.h.


1.9 19-Dec-2021 riastradh

Iterate over connectors differently (i.e. in a way that compiles)


Author: Maya Rashish <maya@NetBSD.org>


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
1.8 27-Jun-2020 jmcneill

prop_data_create_data+prop_dictionary_set+prop_object_release -> prop_dictionary_set_data


Revision tags: netbsd-9-4-RELEASE netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
1.7 31-May-2019 jmcneill

Check property length, not array (fixes clang build)


1.6 31-May-2019 jmcneill

Add missing prop_object_release(), from thorpej


1.5 31-May-2019 jmcneill

Make the first EDID we find available to genfb


Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
1.4 27-Aug-2018 riastradh

Remove temporary drm_fb_helper_set_config stub from old code.


Revision tags: netbsd-8-3-RELEASE netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107
1.3 12-Dec-2016 maya

branches: 1.3.14; 1.3.16; 1.3.18;
add da_fb_linebytes to drmfb_attach_args and use it to pass linebytes
from nouveau code to drmfb. keep the same linebytes logic for i915.

nvidia hardware needs 256 byte alignment, so aligning to just 64 was
not enough.

fixes broken console with a width of 1440px (PR kern/51181)
ok riastradh


Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226
1.2 09-Nov-2015 jmcneill

branches: 1.2.2;
If the "is_console" property is already specified, do not overwrite it.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
1.1 05-Mar-2015 riastradh

branches: 1.1.2; 1.1.4;
Factor generic parts of intelfb out into a drmfb.

Adapting radeondrmkmsfb should not be hard.

This will make nouveaufb easier too.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.83 28-Jul-2022 riastradh

drm: New option DRM_LEGACY.

This brings in the `drmums' components, which are the parts of the
current drm code base (sys/external/bsd/drm2) needed by legacy
user-mode-setting drivers (currently just viadrmums), in contrast to
the old drm code base (sys/external/bsd/drm).

This way, viadrmums.kmod can be loaded into GENERIC i386 kernels, but
platforms without any relevant legacy UMS drivers don't get the
legacy goo statically baked in.


1.82 28-Jul-2022 riastradh

drmkms_sched: Remove duplicate module definition.


1.81 24-Jul-2022 riastradh

drm: Fix CPPFLAGS for drm scheduler code.


1.80 23-Jul-2022 riastradh

drm: Split scheduler into separate module.

Used only by amdgpu, and it uses something that is currently broken
from the gcc update on aarch64, so let's make it a little more
optional.


1.79 20-Jul-2022 riastradh

drm: Keep drm include flags in CPPFLAGS.drmkms after all.

Failures from this are much more obvious to debug than files with
missing #ifdefs, which sometimes lead to build failures but could
also just lead to silent miscompilation.


1.78 20-Jul-2022 riastradh

drm: Restore pollution of CPPFLAGS with include directories.

Too much trouble to make this fine-grained.


1.77 19-Jul-2022 riastradh

drm: Undefine `alpha' in CPPFLAGS. Causes lotsa trouble!

But don't undefine it outside drmkms; `#ifdef alpha' or equivalent is
used elsewhere in-tree. (Maybe it should be replaced by __alpha__.)


1.76 19-Jul-2022 riastradh

drm: Narrow scope of drm CPPLAGS just to drm files.

No need for various Linux compat definitions elsewhere in the kernel.


1.75 19-Jul-2022 riastradh

drm: Propagate CPPFLAGS.drmkms into all the drm drivers.


1.74 19-Jul-2022 riastradh

drm: Note dependency on sysmon_power.

drm uses this for pswitch events to notify of hotplug.


1.73 22-May-2022 tnn

rename CONFIG_AARCH64 to CONFIG_ARM64 which is what upstream code expects


1.72 21-Dec-2021 tnn

drm: sprinkle some -Wno-unused-function for clang

915_sw_fence.c: for debug_fence_init_onstack
drm_mm.c: for rb_hole_size_to_node
intel_hdmi.c: for intel_hdmi_hdcp2_protocol
intel_guc_submission.c: for rq_prio
nouveau_nvkm_subdev_instmem_base.c: for fake_ioread32_native
nouveau_nvkm_subdev_mmu_vmmnv04.c: for nv04_vmm_pgt_pte


1.71 19-Dec-2021 riastradh

drm: Make scheduler mandatory to make amdgpu module simpler.


1.70 19-Dec-2021 riastradh

drm: Make some legacy UMS crap build.


1.69 19-Dec-2021 riastradh

amdgpu: Stub out irq domain stuff with a finer grain.


1.68 19-Dec-2021 riastradh

drm: Place drm_hdcp.c like other overrides in files.drmkms.


1.67 19-Dec-2021 riastradh

drm: Stub out drm_hdcp.c


1.66 19-Dec-2021 riastradh

drm: Remove local diffs for drm_pci_set_busid.

Instead, move it to its own file that can be safely used without
bringing in a link/run-time dependency on pci.


1.65 19-Dec-2021 riastradh

Get drm_mm.c building.

Just replace the interval tree lookup by a linear search for now.


1.64 19-Dec-2021 riastradh

Revert part of previous: no separate CPPFLAGS.drmkms.

There are too many drms users outside sys/external/bsd/drm2 for now;
will hold off on this until we find a better way to keep the drm
includes modularized.


1.63 19-Dec-2021 riastradh

Narrow the CPPFLAGS for drm subsystems.

No need for the whole kernel to be built with -I flags for the drm
header files.


1.62 19-Dec-2021 riastradh

drm_client stubs


1.61 19-Dec-2021 riastradh

Regen and remerge.


1.60 19-Dec-2021 riastradh

drm_writeback stubs


1.59 19-Dec-2021 riastradh

Eliminate drm_file.c copypasta.


1.58 19-Dec-2021 riastradh

Rerun drm2netbsd and merge.

New tag drmums for the legacy stuff; to deal with later for via.


1.57 19-Dec-2021 riastradh

Empty out drm_os_netbsd.h.


1.56 19-Dec-2021 riastradh

Disable missing files for now.


1.55 19-Dec-2021 riastradh

Merge updated drm2netbsd output.


1.54 19-Dec-2021 riastradh

Remove these two files from the list.

We have our own copies of the same name. Since we don't support
building two files with the same name, it's pretty clear the
intention was to build just our copy of the file.


Author: Maya Rashish <maya@NetBSD.org>


1.53 19-Dec-2021 riastradh

upstream shadows, disable warning


Author: Maya Rashish <maya@NetBSD.org>


1.52 19-Dec-2021 riastradh

We have local versions of these files, don't use upstream ones


Author: Maya Rashish <maya@NetBSD.org>


1.51 19-Dec-2021 riastradh

Upstream uses shadowing, disable warning


Author: Maya Rashish <maya@NetBSD.org>


1.50 19-Dec-2021 riastradh

Disable warnings about shadowing.

Upstream does shadowing here, I'm feeling uncomfortable changing their
code.


Author: Maya Rashish <maya@NetBSD.org>


1.49 19-Dec-2021 riastradh

skip upstream drm_cache.c, we have our own


Author: Maya Rashish <maya@NetBSD.org>


1.48 19-Dec-2021 riastradh

Remove duplicates and non-existent files.


Author: Maya Rashish <maya@NetBSD.org>


1.47 19-Dec-2021 riastradh

misc drm hacks


1.46 19-Dec-2021 riastradh

Unhook drm_kms_helper_common.c from build.


1.45 19-Dec-2021 riastradh

Define CONFIG_DRM_FBDEV_OVERALLOC=100 to match upstream.


1.44 19-Dec-2021 riastradh

Rename drm_fops.c -> drm_file.c


1.43 19-Dec-2021 riastradh

Use -Wno-missing-field-initializers for drm to reduce diffs.


1.42 19-Dec-2021 riastradh

Move IS_REACHABLE to <linux/kernel.h> to avoid double definition.


1.41 19-Dec-2021 riastradh

Define IS_ENABLED and IS_REACHABLE on the command line.

Header file is too late for it, apparently.

XXX Find a way to put this into a header file; command-line -D
arguments are ugly.


1.40 19-Dec-2021 riastradh

No more hacks for dist/uapi -- got moved to dist/include/uapi.


1.39 19-Dec-2021 riastradh

Disable *_trace_points.c.

I accidentally deleted these in the import, because the *_trace.h
files got in the way and I forgot the *_trace_points.c files were
fine.

There's nothing important in them anyway, so nothing of value is
lost. Maybe next time I will remember to delete the *_trace.h files
on import but not the *_trace_points.c to reduce diffs, but that's
too much trouble at this point.


1.38 19-Dec-2021 riastradh

Unfinished local implementation of GPL drm_lease.c.


1.37 19-Dec-2021 riastradh

Local reimplementation of GPL drm_gem_framebuffer_helper.c.


1.36 19-Dec-2021 riastradh

Generate files.* using the 2netbsd scripts.


Author: Maya Rashish <maya@NetBSD.org>


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 thorpej-i2c-spi-conf-base
1.35 02-Jun-2021 nia

drm2: build with -fwrapv, since the Linux kernel does and we don't
want to spend too much time fixing their code. silences a lot of
KUBSAN warnings.

we need to use COPTS to have per-option compiler flags. help from
Riastradh.


Revision tags: cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-cfargs-base thorpej-futex-base bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
1.34 14-Feb-2020 riastradh

branches: 1.34.10; 1.34.14;
Eliminate -Wpointer-arith patches; use -Wno-pointer-arith instead.


Revision tags: ad-namecache-base2 ad-namecache-base1 ad-namecache-base
1.33 09-Dec-2019 jakllsch

branches: 1.33.2;
build drm_panel.c w/ drmkms


Revision tags: phil-wifi-20191119
1.32 18-Nov-2019 christos

don't build stub if legacy drm is present too.


1.31 16-Nov-2019 christos

Add a stub for drm_ioctl() so that compat32 links with kernels without drmkms.


Revision tags: netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
1.30 28-Aug-2018 riastradh

branches: 1.30.4;
Rework PCI and AGP conditionalization.

- Push drm_pci_set_unique into driver callback.
- Eliminate drm_pci_set_unique_hook.
- Gather all drm_agp_* functions into struct drm_agp_hooks.
- Replace the nonsensical old atomic garbage by serious locking.
- Make drm_agpsupport.c its own module.
- Eliminate NDRMKMS_PCI.
- Use NAGP from "agp.h" only in drm_module.c for horrible hack.
=> See comment in file for rationale.
- Always define CONFIG_PCI=1 and CONFIG_AGP=1.
- Always go through the drm_agp_* function hooks.
- Ifdef out nouveau agp stuff that doesn't go through drm_agp_*
for reasons that I'm too frustrated to figure out tonight.
- pci_iomap no longer automagically does agp_i810_borrow.
=> Use drm_agp_borrow instead.


1.29 27-Aug-2018 riastradh

Unhook upstream drm_pci.c, apparently overridden by files.drmkms_pci.


1.28 27-Aug-2018 riastradh

Draft support for drm prime.


1.27 27-Aug-2018 riastradh

Define CONFIG_DRM_FBDEV_EMULATION=1 in generic drmkms code.

This was accidentally pulled in by i915drmkms, but we need it
generically or else we need to patch upstream differently.


1.26 27-Aug-2018 riastradh

Sort. Put CWARNFLAGS next to source lists.


1.25 27-Aug-2018 riastradh

drm_fb_helper.c got lost in the merge, restore it.


1.24 27-Aug-2018 riastradh

Move drm_ioctl to drm_ioctl.c.

Previously it was in drm_drv.c upstream, which we overrode; then it
got moved to drm_ioctl.c and drm_drv.c got deleted, so we no longer
need to maintain a separate copy of the table in what we now call
drm_cdevsw.c.


1.23 27-Aug-2018 riastradh

Patch up drm_atomic_helper.c.

- Mark unused variables as such.
. Mistakes in local patches are likely to lead to unused variables,
so keep this warning enabled.
- Build with -Wno-shadow.
. Local patches aren't likely to cause this, so just suppress it.
- static plane_crtc_active


1.22 27-Aug-2018 riastradh

We have a local override for drm_encoder_slave.c.


1.21 27-Aug-2018 riastradh

Reorder header files to avoid drm_legacy.h lossage.


1.20 27-Aug-2018 riastradh

Restore more locally overridden files.


1.19 27-Aug-2018 riastradh

Rename drm_drv.c to drm_cdevsw.c.

Previously we overrode upstream's drm_drv.c altogether, and used
upstream's drm_stub.c subroutines.

But upstream deleted drm_drv.c and renamed drm_stub.c to drm_drv.c,
so we have to cope with that reshuffle.


1.18 27-Aug-2018 riastradh

Apply locally overridden files.


1.17 27-Aug-2018 riastradh

Omit PCI files from files.drmkms.


1.16 27-Aug-2018 riastradh

regen files.drmkms


1.15 27-Aug-2018 riastradh

Move local files to the top to make them more visible.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
1.14 26-Dec-2017 jmcneill

branches: 1.14.2; 1.14.4;
Implement the DRM GEM/CMA helpers. The implementation has been extracted
from our tegra DRM driver, but generalized for use with other drivers.


Revision tags: netbsd-8-3-RELEASE netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
1.13 24-Feb-2016 skrll

Move linux_work.c and workqueue.h from sys/external/bsd/drm2 to
sys/external/common so that they can be used by others.

LGTM from riastradh@

These should really live outside sys/external, but that can be decided
later


Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921
1.12 20-Aug-2015 skrll

Tweak IS_ENABLED to allow CONFIG_FOO values.

No functional change to drm2.

LGTM from riastradh@


Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406
1.11 05-Mar-2015 riastradh

Factor generic parts of intelfb out into a drmfb.

Adapting radeondrmkmsfb should not be hard.

This will make nouveaufb easier too.


1.10 05-Mar-2015 riastradh

Rewrite drm_encoder_slave.c, as nouveau will need.


Revision tags: nick-nhusb-base
1.9 12-Nov-2014 christos

branches: 1.9.2;
Add __link_set based code to automatically convert the linux module parameters
into sysctls.


1.8 14-Sep-2014 riastradh

Split drm ttm config into a separate file.


Revision tags: tls-maxphys-base netbsd-7-base tls-earlyentropy-base
1.7 16-Jul-2014 riastradh

branches: 1.7.2; 1.7.4;
First whack at radeon driver.

No hardware to test yet, but it builds.


1.6 16-Jul-2014 riastradh

Make it build and boot on my test machines.

Screen blanks on boot on the Ivy Bridge system with

DRM error in cpt_serr_int_handler: PCH transcoder A FIFO underrun

But after that everything is OK. Appears to be an upstream problem.
To investigate...

I think there's a cache flushing issue somewhere -- there are little
display artefacts on my T60.


Revision tags: rmind-smpnet-base rmind-smpnet-nbase yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15
1.5 01-Apr-2014 riastradh

branches: 1.5.2; 1.5.4; 1.5.6;
Make drmkms find header files from sys/external/bsd/common.


1.4 31-Mar-2014 riastradh

Move the drmkms i2c dependencies to where they belong.


1.3 27-Mar-2014 christos

add missing dependencies (Takahiro HAYASHI)


1.2 18-Mar-2014 riastradh

Merge riastradh-drm2 to HEAD.


Revision tags: riastradh-drm2-base3
1.1 04-Mar-2014 riastradh

branches: 1.1.2;
file files.drmkms was initially added on branch riastradh-drm2.


Revision tags: perseant-exfatfs-base-20250801 perseant-exfatfs-base-20240630 perseant-exfatfs-base bouyer-sunxi-drm-base
1.2 28-Jul-2022 riastradh

drmkms_sched: Remove duplicate module definition.


1.1 23-Jul-2022 riastradh

drm: Split scheduler into separate module.

Used only by amdgpu, and it uses something that is currently broken
from the gcc update on aarch64, so let's make it a little more
optional.