History log of /src/sys/external/bsd/drm2/linux |
Revision | Date | Author | Comments |
1.43 | 09-Jul-2022 |
riastradh | linux/hdmi.h: Split out logic into .c file.
Shoulda done this ages ago.
|
1.42 | 27-Feb-2022 |
jakllsch | only build linux_acpi.c if we have acpi(4) in the kernel
|
1.41 | 27-Feb-2022 |
riastradh | drm: Move acpi_check_dsm &c. from intel_acpi.c to new linux_acpi.c.
|
1.40 | 19-Dec-2021 |
riastradh | drm: Move io_mapping to very own .c file.
|
1.39 | 19-Dec-2021 |
riastradh | drm: linux kthread stubs
|
1.38 | 19-Dec-2021 |
riastradh | linux: Rename linux_sg.c -> linux_sgt.c.
Avoids collision with compat_linux.
|
1.37 | 19-Dec-2021 |
riastradh | linux: Kludgey radix tree shims
|
1.36 | 19-Dec-2021 |
riastradh | linux: Draft half-arsed xarray shims
|
1.35 | 19-Dec-2021 |
riastradh | linux: dma fence array stubs
|
1.34 | 19-Dec-2021 |
riastradh | linux: Draft irq_work shims, in terms of a softint.
Doesn't actually run in hardirq context, but who's gonna notice...
|
1.33 | 19-Dec-2021 |
riastradh | i915: more work
|
1.32 | 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.31 | 19-Dec-2021 |
riastradh | linux compat: Draft hrtimer shims.
(not actually high-resolution, just a wrapper around callout(9))
|
1.30 | 19-Dec-2021 |
riastradh | linux: Draft rwsem with bodgy semantics.
|
1.29 | 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.28 | 19-Dec-2021 |
riastradh | Move Linux firmware shims to their own .c file.
|
1.27 | 19-Dec-2021 |
riastradh | dma fence chain stubs
|
1.26 | 19-Dec-2021 |
riastradh | backlight stubs
|
1.25 | 19-Dec-2021 |
riastradh | Draft sync_file.
|
1.24 | 19-Dec-2021 |
riastradh | Rename reservation_object -> dma_resv.
|
1.23 | 19-Dec-2021 |
riastradh | Move Linux SRCU to common.
|
1.22 | 19-Dec-2021 |
riastradh | Draft stop_machine. Hope the callback runs quickly under splhigh...
|
1.21 | 19-Dec-2021 |
riastradh | Move Linux RCU to common.
|
1.20 | 19-Dec-2021 |
riastradh | linux/wait_bit.h
|
1.19 | 19-Dec-2021 |
riastradh | Draft SRCU implementation.
|
1.18 | 19-Dec-2021 |
riastradh | Rename fence -> dma_fence, step 2: files files.
|
1.17 | 27-Aug-2018 |
riastradh | Draft support for drm prime.
|
1.16 | 27-Aug-2018 |
riastradh | Hash-locked atomic64 to give ports like powerpc32 a chance at radeon.
|
1.15 | 27-Aug-2018 |
riastradh | Move the Linux PCI shim into its very own .c file.
The poor thing has deserved this for a very long time, even though it is full of kludges. Also I'm tired of recompiling everything every time I touch it.
|
1.14 | 27-Aug-2018 |
riastradh | Sort.
|
1.13 | 27-Aug-2018 |
riastradh | Draft implementation of the Linux reservation and fence APIs.
|
1.12 | 27-Aug-2018 |
riastradh | Implement some of the Linux RCU API.
|
1.11 | 27-Aug-2018 |
riastradh | Sort in the standard English alphabetical order, please.
|
1.10 | 27-Aug-2018 |
riastradh | Sort.
|
1.9 | 24-Feb-2016 |
skrll | branches: 1.9.16; 1.9.18; 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
|
1.8 | 08-Jan-2015 |
riastradh | Move Linux ww_mutex code into a .c file where it belongs.
|
1.7 | 17-Jul-2014 |
riastradh | branches: 1.7.2; 1.7.4; 1.7.6; Remove needless linux_gfp.c.
Trying to make do with Linux's page allocation interface is pretty much always wrong: either we let uvm allocate pages in uvm objects for us, or we use bus_dma.
|
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.
|
1.5 | 25-Apr-2014 |
riastradh | branches: 1.5.2; 1.5.4; Implement Linux dmi_check_system API.
Use it to get a Thinkpad quirk for i915 graphics.
Patch from nonoka@, PR 48708.
|
1.4 | 01-Apr-2014 |
riastradh | branches: 1.4.2; Make drmkms find header files from sys/external/bsd/common.
|
1.3 | 31-Mar-2014 |
riastradh | Move the drmkms i2c dependencies to where they belong.
|
1.2 | 18-Mar-2014 |
riastradh | Merge riastradh-drm2 to HEAD.
|
1.1 | 04-Mar-2014 |
riastradh | branches: 1.1.2; file files.drmkms_linux was initially added on branch riastradh-drm2.
|
1.1.2.1 | 04-Mar-2014 |
riastradh | Rework drm2 configuration and modularization.
- Split drm2.kmod into drmkms_linux, drmkms, drmkms_pci. - Split up drmkms-related files.* similarly. - Make drm_agp_* routines hooks that the drmkms_pci module installs. - Reuse drm device major 180 for (old) drm and drmkms.
Now old drm and new drmkms can coexist happily in the same tree, with or without PCI, and require no changes to userland.
|
1.4.2.1 | 10-Aug-2014 |
tls | Rebase.
|
1.5.4.2 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.5.4.1 | 25-Apr-2014 |
yamt | file files.drmkms_linux was added on branch yamt-pagecache on 2014-05-22 11:40:56 +0000
|
1.5.2.2 | 18-May-2014 |
rmind | sync with head
|
1.5.2.1 | 25-Apr-2014 |
rmind | file files.drmkms_linux was added on branch rmind-smpnet on 2014-05-18 17:46:01 +0000
|
1.7.6.2 | 19-Mar-2016 |
skrll | Sync with HEAD
|
1.7.6.1 | 06-Apr-2015 |
skrll | Sync with HEAD
|
1.7.4.3 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.7.4.2 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.7.4.1 | 17-Jul-2014 |
tls | file files.drmkms_linux was added on branch tls-maxphys on 2014-08-20 00:04:22 +0000
|
1.7.2.2 | 05-Apr-2017 |
snj | Pull up following revision(s) (requested by skrll in ticket #1395): share/man/man4/axe.4: netbsd-7-nhusb share/man/man4/axen.4: netbsd-7-nhusb share/man/man4/cdce.4: netbsd-7-nhusb share/man/man4/uaudio.4: netbsd-7-nhusb share/man/man4/ucom.4: netbsd-7-nhusb share/man/man4/uep.4: netbsd-7-nhusb share/man/man4/urtw.4: netbsd-7-nhusb share/man/man4/usb.4: netbsd-7-nhusb share/man/man4/uyap.4: netbsd-7-nhusb share/man/man4/xhci.4: netbsd-7-nhusb share/man/man9/usbdi.9: netbsd-7-nhusb sys/arch/amd64/conf/ALL: netbsd-7-nhusb sys/arch/amd64/conf/GENERIC: netbsd-7-nhusb sys/arch/amiga/dev/slhci_zbus.c: netbsd-7-nhusb sys/arch/arm/allwinner/awin_otg.c: netbsd-7-nhusb sys/arch/arm/allwinner/awin_usb.c: netbsd-7-nhusb sys/arch/arm/amlogic/amlogic_dwctwo.c: netbsd-7-nhusb sys/arch/arm/at91/at91ohci.c: netbsd-7-nhusb sys/arch/arm/broadcom/bcm2835_dwctwo.c: netbsd-7-nhusb sys/arch/arm/broadcom/bcm53xx_usb.c: netbsd-7-nhusb sys/arch/arm/ep93xx/epohci.c: netbsd-7-nhusb sys/arch/arm/gemini/obio_ehci.c: netbsd-7-nhusb sys/arch/arm/imx/files.imx23: netbsd-7-nhusb sys/arch/arm/imx/imxusb.c: netbsd-7-nhusb sys/arch/arm/imx/imxusbreg.h: netbsd-7-nhusb sys/arch/arm/omap/obio_ohci.c: netbsd-7-nhusb sys/arch/arm/omap/omap3_ehci.c: netbsd-7-nhusb sys/arch/arm/omap/omapl1x_ohci.c: netbsd-7-nhusb sys/arch/arm/omap/tiotg.c: netbsd-7-nhusb sys/arch/arm/s3c2xx0/ohci_s3c24x0.c: netbsd-7-nhusb sys/arch/arm/samsung/exynos_usb.c: netbsd-7-nhusb sys/arch/arm/xscale/pxa2x0_ohci.c: netbsd-7-nhusb sys/arch/arm/zynq/zynq_usb.c: netbsd-7-nhusb sys/arch/hpcarm/dev/nbp_slhci.c: netbsd-7-nhusb sys/arch/hpcmips/dev/plumohci.c: netbsd-7-nhusb sys/arch/i386/conf/ALL: netbsd-7-nhusb sys/arch/i386/conf/GENERIC: netbsd-7-nhusb sys/arch/i386/pci/gcscehci.c: netbsd-7-nhusb sys/arch/luna68k/conf/GENERIC: netbsd-7-nhusb sys/arch/mips/adm5120/dev/ahci.c: netbsd-7-nhusb sys/arch/mips/adm5120/dev/ahcivar.h: netbsd-7-nhusb sys/arch/mips/alchemy/dev/ohci_aubus.c: netbsd-7-nhusb sys/arch/mips/atheros/dev/ehci_arbus.c: netbsd-7-nhusb sys/arch/mips/atheros/dev/ohci_arbus.c: netbsd-7-nhusb sys/arch/mips/conf/files.adm5120: netbsd-7-nhusb sys/arch/mips/ralink/ralink_ehci.c: netbsd-7-nhusb sys/arch/mips/ralink/ralink_ohci.c: netbsd-7-nhusb sys/arch/mips/rmi/rmixl_ehci.c: netbsd-7-nhusb sys/arch/mips/rmi/rmixl_ohci.c: netbsd-7-nhusb sys/arch/playstation2/dev/ohci_sbus.c: netbsd-7-nhusb sys/arch/powerpc/booke/dev/pq3ehci.c: netbsd-7-nhusb sys/arch/powerpc/ibm4xx/dev/dwctwo_plb.c: netbsd-7-nhusb sys/arch/x68k/dev/slhci_intio.c: netbsd-7-nhusb sys/conf/files: netbsd-7-nhusb sys/dev/cardbus/ehci_cardbus.c: netbsd-7-nhusb sys/dev/cardbus/ohci_cardbus.c: netbsd-7-nhusb sys/dev/cardbus/uhci_cardbus.c: netbsd-7-nhusb sys/dev/ic/sl811hs.c: netbsd-7-nhusb sys/dev/ic/sl811hsvar.h: netbsd-7-nhusb sys/dev/isa/slhci_isa.c: netbsd-7-nhusb sys/dev/marvell/ehci_mv.c: netbsd-7-nhusb sys/dev/pci/ehci_pci.c: netbsd-7-nhusb sys/dev/pci/ohci_pci.c: netbsd-7-nhusb sys/dev/pci/uhci_pci.c: netbsd-7-nhusb sys/dev/pci/xhci_pci.c: netbsd-7-nhusb sys/dev/pcmcia/slhci_pcmcia.c: netbsd-7-nhusb sys/dev/usb/Makefile.usbdevs: netbsd-7-nhusb sys/dev/usb/TODO: netbsd-7-nhusb sys/dev/usb/TODO.usbmp: netbsd-7-nhusb sys/dev/usb/aubtfwl.c: netbsd-7-nhusb sys/dev/usb/auvitek.c: netbsd-7-nhusb sys/dev/usb/auvitek_audio.c: netbsd-7-nhusb sys/dev/usb/auvitek_dtv.c: netbsd-7-nhusb sys/dev/usb/auvitek_i2c.c: netbsd-7-nhusb sys/dev/usb/auvitek_video.c: netbsd-7-nhusb sys/dev/usb/auvitekvar.h: netbsd-7-nhusb sys/dev/usb/ehci.c: netbsd-7-nhusb sys/dev/usb/ehcireg.h: netbsd-7-nhusb sys/dev/usb/ehcivar.h: netbsd-7-nhusb sys/dev/usb/emdtv.c: netbsd-7-nhusb sys/dev/usb/emdtv_dtv.c: netbsd-7-nhusb sys/dev/usb/emdtv_ir.c: netbsd-7-nhusb sys/dev/usb/emdtvvar.h: netbsd-7-nhusb sys/dev/usb/ezload.c: netbsd-7-nhusb sys/dev/usb/ezload.h: netbsd-7-nhusb sys/dev/usb/files.usb: netbsd-7-nhusb sys/dev/usb/hid.c: netbsd-7-nhusb sys/dev/usb/hid.h: netbsd-7-nhusb sys/dev/usb/if_athn_usb.c: netbsd-7-nhusb sys/dev/usb/if_athn_usb.h: netbsd-7-nhusb sys/dev/usb/if_atu.c: netbsd-7-nhusb sys/dev/usb/if_atureg.h: netbsd-7-nhusb sys/dev/usb/if_aue.c: netbsd-7-nhusb sys/dev/usb/if_auereg.h: netbsd-7-nhusb sys/dev/usb/if_axe.c: netbsd-7-nhusb sys/dev/usb/if_axen.c: netbsd-7-nhusb sys/dev/usb/if_axenreg.h: netbsd-7-nhusb sys/dev/usb/if_axereg.h: netbsd-7-nhusb sys/dev/usb/if_cdce.c: netbsd-7-nhusb sys/dev/usb/if_cdcereg.h: netbsd-7-nhusb sys/dev/usb/if_cue.c: netbsd-7-nhusb sys/dev/usb/if_cuereg.h: netbsd-7-nhusb sys/dev/usb/if_kue.c: netbsd-7-nhusb sys/dev/usb/if_kuereg.h: netbsd-7-nhusb sys/dev/usb/if_otus.c: netbsd-7-nhusb sys/dev/usb/if_otusvar.h: netbsd-7-nhusb sys/dev/usb/if_rum.c: netbsd-7-nhusb sys/dev/usb/if_rumreg.h: netbsd-7-nhusb sys/dev/usb/if_rumvar.h: netbsd-7-nhusb sys/dev/usb/if_run.c: netbsd-7-nhusb sys/dev/usb/if_runvar.h: netbsd-7-nhusb sys/dev/usb/if_smsc.c: netbsd-7-nhusb sys/dev/usb/if_smscreg.h: netbsd-7-nhusb sys/dev/usb/if_smscvar.h: netbsd-7-nhusb sys/dev/usb/if_udav.c: netbsd-7-nhusb sys/dev/usb/if_udavreg.h: netbsd-7-nhusb sys/dev/usb/if_upgt.c: netbsd-7-nhusb sys/dev/usb/if_upgtvar.h: netbsd-7-nhusb sys/dev/usb/if_upl.c: netbsd-7-nhusb sys/dev/usb/if_ural.c: netbsd-7-nhusb sys/dev/usb/if_uralreg.h: netbsd-7-nhusb sys/dev/usb/if_uralvar.h: netbsd-7-nhusb sys/dev/usb/if_url.c: netbsd-7-nhusb sys/dev/usb/if_urlreg.h: netbsd-7-nhusb sys/dev/usb/if_urndis.c: netbsd-7-nhusb sys/dev/usb/if_urndisreg.h: netbsd-7-nhusb sys/dev/usb/if_urtw.c: netbsd-7-nhusb sys/dev/usb/if_urtwn.c: netbsd-7-nhusb sys/dev/usb/if_urtwn_data.h: netbsd-7-nhusb sys/dev/usb/if_urtwnreg.h: netbsd-7-nhusb sys/dev/usb/if_urtwnvar.h: netbsd-7-nhusb sys/dev/usb/if_urtwreg.h: netbsd-7-nhusb sys/dev/usb/if_zyd.c: netbsd-7-nhusb sys/dev/usb/if_zydreg.h: netbsd-7-nhusb sys/dev/usb/irmce.c: netbsd-7-nhusb sys/dev/usb/moscom.c: netbsd-7-nhusb sys/dev/usb/motg.c: netbsd-7-nhusb sys/dev/usb/motgvar.h: netbsd-7-nhusb sys/dev/usb/ohci.c: netbsd-7-nhusb sys/dev/usb/ohcireg.h: netbsd-7-nhusb sys/dev/usb/ohcivar.h: netbsd-7-nhusb sys/dev/usb/pseye.c: netbsd-7-nhusb sys/dev/usb/slurm.c: netbsd-7-nhusb sys/dev/usb/stuirda.c: netbsd-7-nhusb sys/dev/usb/u3g.c: netbsd-7-nhusb sys/dev/usb/uark.c: netbsd-7-nhusb sys/dev/usb/uatp.c: netbsd-7-nhusb sys/dev/usb/uaudio.c: netbsd-7-nhusb sys/dev/usb/uberry.c: netbsd-7-nhusb sys/dev/usb/ubsa.c: netbsd-7-nhusb sys/dev/usb/ubsa_common.c: netbsd-7-nhusb sys/dev/usb/ubsavar.h: netbsd-7-nhusb sys/dev/usb/ubt.c: netbsd-7-nhusb sys/dev/usb/uchcom.c: netbsd-7-nhusb sys/dev/usb/ucom.c: netbsd-7-nhusb sys/dev/usb/ucomvar.h: netbsd-7-nhusb sys/dev/usb/ucycom.c: netbsd-7-nhusb sys/dev/usb/udl.c: netbsd-7-nhusb sys/dev/usb/udl.h: netbsd-7-nhusb sys/dev/usb/udsbr.c: netbsd-7-nhusb sys/dev/usb/udsir.c: netbsd-7-nhusb sys/dev/usb/uep.c: netbsd-7-nhusb sys/dev/usb/uftdi.c: netbsd-7-nhusb sys/dev/usb/uftdireg.h: netbsd-7-nhusb sys/dev/usb/ugen.c: netbsd-7-nhusb sys/dev/usb/ugensa.c: netbsd-7-nhusb sys/dev/usb/uhci.c: netbsd-7-nhusb sys/dev/usb/uhcireg.h: netbsd-7-nhusb sys/dev/usb/uhcivar.h: netbsd-7-nhusb sys/dev/usb/uhid.c: netbsd-7-nhusb sys/dev/usb/uhidev.c: netbsd-7-nhusb sys/dev/usb/uhidev.h: netbsd-7-nhusb sys/dev/usb/uhmodem.c: netbsd-7-nhusb sys/dev/usb/uhso.c: netbsd-7-nhusb sys/dev/usb/uhub.c: netbsd-7-nhusb sys/dev/usb/uipad.c: netbsd-7-nhusb sys/dev/usb/uipaq.c: netbsd-7-nhusb sys/dev/usb/uirda.c: netbsd-7-nhusb sys/dev/usb/uirdavar.h: netbsd-7-nhusb sys/dev/usb/ukbd.c: netbsd-7-nhusb sys/dev/usb/ukbdmap.c: netbsd-7-nhusb sys/dev/usb/ukyopon.c: netbsd-7-nhusb sys/dev/usb/ukyopon.h: netbsd-7-nhusb sys/dev/usb/ulpt.c: netbsd-7-nhusb sys/dev/usb/umass.c: netbsd-7-nhusb sys/dev/usb/umass_isdata.c: netbsd-7-nhusb sys/dev/usb/umass_isdata.h: netbsd-7-nhusb sys/dev/usb/umass_quirks.c: netbsd-7-nhusb sys/dev/usb/umass_quirks.h: netbsd-7-nhusb sys/dev/usb/umass_scsipi.c: netbsd-7-nhusb sys/dev/usb/umass_scsipi.h: netbsd-7-nhusb sys/dev/usb/umassvar.h: netbsd-7-nhusb sys/dev/usb/umcs.c: netbsd-7-nhusb sys/dev/usb/umct.c: netbsd-7-nhusb sys/dev/usb/umidi.c: netbsd-7-nhusb sys/dev/usb/umidi_quirks.c: netbsd-7-nhusb sys/dev/usb/umidi_quirks.h: netbsd-7-nhusb sys/dev/usb/umodem.c: netbsd-7-nhusb sys/dev/usb/umodem_common.c: netbsd-7-nhusb sys/dev/usb/umodemvar.h: netbsd-7-nhusb sys/dev/usb/ums.c: netbsd-7-nhusb sys/dev/usb/uplcom.c: netbsd-7-nhusb sys/dev/usb/urio.c: netbsd-7-nhusb sys/dev/usb/urio.h: netbsd-7-nhusb sys/dev/usb/usb.c: netbsd-7-nhusb sys/dev/usb/usb.h: netbsd-7-nhusb sys/dev/usb/usb_mem.c: netbsd-7-nhusb sys/dev/usb/usb_mem.h: netbsd-7-nhusb sys/dev/usb/usb_quirks.c: netbsd-7-nhusb sys/dev/usb/usb_quirks.h: netbsd-7-nhusb sys/dev/usb/usb_subr.c: netbsd-7-nhusb sys/dev/usb/usbdevices.config: netbsd-7-nhusb sys/dev/usb/usbdevs: netbsd-7-nhusb sys/dev/usb/usbdevs.h: netbsd-7-nhusb sys/dev/usb/usbdevs_data.h: netbsd-7-nhusb sys/dev/usb/usbdi.c: netbsd-7-nhusb sys/dev/usb/usbdi.h: netbsd-7-nhusb sys/dev/usb/usbdi_util.c: netbsd-7-nhusb sys/dev/usb/usbdi_util.h: netbsd-7-nhusb sys/dev/usb/usbdivar.h: netbsd-7-nhusb sys/dev/usb/usbhid.h: netbsd-7-nhusb sys/dev/usb/usbhist.h: netbsd-7-nhusb sys/dev/usb/usbroothub.c: netbsd-7-nhusb sys/dev/usb/usbroothub.h: netbsd-7-nhusb sys/dev/usb/usbroothub_subr.c: delete sys/dev/usb/usbroothub_subr.h: delete sys/dev/usb/uscanner.c: netbsd-7-nhusb sys/dev/usb/uslsa.c: netbsd-7-nhusb sys/dev/usb/usscanner.c: netbsd-7-nhusb sys/dev/usb/ustir.c: netbsd-7-nhusb sys/dev/usb/uthum.c: netbsd-7-nhusb sys/dev/usb/utoppy.c: netbsd-7-nhusb sys/dev/usb/uts.c: netbsd-7-nhusb sys/dev/usb/uvideo.c: netbsd-7-nhusb sys/dev/usb/uvisor.c: netbsd-7-nhusb sys/dev/usb/uvscom.c: netbsd-7-nhusb sys/dev/usb/uyap.c: netbsd-7-nhusb sys/dev/usb/uyap_firmware.h: netbsd-7-nhusb sys/dev/usb/uyurex.c: netbsd-7-nhusb sys/dev/usb/x1input_rdesc.h: netbsd-7-nhusb sys/dev/usb/xhci.c: netbsd-7-nhusb sys/dev/usb/xhcireg.h: netbsd-7-nhusb sys/dev/usb/xhcivar.h: netbsd-7-nhusb sys/dev/usb/xinput_rdesc.h: netbsd-7-nhusb sys/external/bsd/common/conf/files.linux: netbsd-7-nhusb sys/external/bsd/common/include/linux/err.h: netbsd-7-nhusb sys/external/bsd/common/include/linux/kernel.h: netbsd-7-nhusb sys/external/bsd/common/include/linux/workqueue.h: netbsd-7-nhusb sys/external/bsd/common/linux/linux_work.c: netbsd-7-nhusb sys/external/bsd/drm2/dist/drm/radeon/atombios_encoders.c: netbsd-7-nhusb sys/external/bsd/drm2/dist/drm/radeon/radeon_legacy_encoders.c: netbsd-7-nhusb sys/external/bsd/drm2/drm/files.drmkms: netbsd-7-nhusb sys/external/bsd/drm2/i915drm/files.i915drmkms: netbsd-7-nhusb sys/external/bsd/drm2/include/linux/err.h: delete sys/external/bsd/drm2/include/linux/workqueue.h: delete sys/external/bsd/drm2/linux/files.drmkms_linux: netbsd-7-nhusb sys/external/bsd/drm2/linux/linux_work.c: delete sys/external/bsd/dwc2/dwc2.c: netbsd-7-nhusb sys/external/bsd/dwc2/dwc2.h: netbsd-7-nhusb sys/external/bsd/dwc2/dwc2var.h: netbsd-7-nhusb sys/external/bsd/dwc2/dwctwo2netbsd: netbsd-7-nhusb sys/external/bsd/dwc2/conf/files.dwc2: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_core.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_core.h: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_coreintr.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcd.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcd.h: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcdddma.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcdintr.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcdqueue.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hw.h: netbsd-7-nhusb sys/modules/drmkms_linux/Makefile: netbsd-7-nhusb sys/modules/i915drmkms/Makefile: netbsd-7-nhusb sys/rump/dev/lib/libugenhc/ugenhc.c: netbsd-7-nhusb sys/rump/dev/lib/libusb/Makefile: netbsd-7-nhusb sys/rump/dev/lib/libusb/USB.ioconf: netbsd-7-nhusb sys/rump/dev/lib/libusb/usb_at_ugenhc.c: delete sys/rump/dev/lib/libusb/opt/opt_usb.h: delete sys/rump/dev/lib/libusb/opt/opt_usbverbose.h: delete sys/sys/mbuf.h: netbsd-7-nhusb usr.sbin/usbdevs/usbdevs.8: netbsd-7-nhusb usr.sbin/usbdevs/usbdevs.c: netbsd-7-nhusb Merge netbsd-7-nhusb: - API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix - Change the SOFTINT level from NET to SERIAL for the USB softint handler. This gives the callback a chance of running when another softint handler at SOFTINT_NET has blocked holding a lock, e.g. softnet_lock and most of the network stack. - kern/49065 - ifconfig tun0 ... sequence locks up system / lockup: softnet_lock held across usb xfr - kern/50491 - unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2 - kern/51395 - USB Ethernet makes xhci hang - Various improvements to slhci(4) - Various improvements to dwc2(4)
|
1.7.2.1 | 06-Mar-2015 |
snj | branches: 1.7.2.1.4; Pull up following revision(s) (requested by mrg in ticket #573): sys/external/bsd/common/include/linux/kernel.h: 1.5, 1.6 sys/external/bsd/drm2/dist/drm/drm_ioctl.c: 1.4 sys/external/bsd/drm2/dist/drm/drm_irq.c: 1.6-1.8 sys/external/bsd/drm2/dist/drm/i915/i915_dma.c: 1.13-1.15 sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: 1.23-1.27 sys/external/bsd/drm2/dist/drm/i915/i915_gem_execbuffer.c: 1.5 sys/external/bsd/drm2/dist/drm/i915/intel_display.c: 1.14, 1.15 sys/external/bsd/drm2/dist/drm/i915/intel_dp.c: 1.10 sys/external/bsd/drm2/dist/drm/i915/intel_drv.h: 1.8 sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c: 1.8-1.13 sys/external/bsd/drm2/dist/drm/i915/intel_pm.c: 1.6 sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c: 1.5, 1.6 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c: 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/include/core/device.h: 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/include/subdev/mc.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/include/subdev/pwr.h: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/os.h: 1.4, 1.5 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_base.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_pll.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/clock/nouveau_subdev_clock_base.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/clock/nouveau_subdev_clock_nv50.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/fbmem.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/nouveau_subdev_devinit_nv04.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv50.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nvc0.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nv50.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nvc0.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/mc/nouveau_subdev_mc_base.c: 1.2, 1.3 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/mxm/nouveau_subdev_mxm_nv50.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/pwr/nouveau_subdev_pwr_base.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/therm/nouveau_subdev_therm_ic.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/timer/nouveau_subdev_timer_nv04.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_base.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv04.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv44.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nv04.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.h: 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c: 1.4, 1.5 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c: 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv84_fence.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.c: 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_vga.h: 1.2 sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c: 1.6-1.8 sys/external/bsd/drm2/dist/drm/radeon/radeon_pm.c: 1.3 sys/external/bsd/drm2/dist/drm/radeon/rs400.c: 1.3 sys/external/bsd/drm2/dist/drm/via/via_dmablit.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/via/via_drv.h: 1.3 sys/external/bsd/drm2/dist/drm/via/via_irq.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/via/via_video.c: 1.3, 1.4 sys/external/bsd/drm2/dist/include/drm/drmP.h: 1.10 sys/external/bsd/drm2/dist/include/drm/drm_crtc.h: 1.4 sys/external/bsd/drm2/dist/include/drm/drm_modes.h: 1.3 sys/external/bsd/drm2/dist/uapi/drm/i915_drm.h: 1.2 sys/external/bsd/drm2/drm/drm_cache.c: 1.4-1.6 sys/external/bsd/drm2/drm/drm_drv.c: 1.14 sys/external/bsd/drm2/drm/drm_module.c: 1.10 sys/external/bsd/drm2/drm/drm_sysctl.c: 1.5 sys/external/bsd/drm2/drm/drm_vma_manager.c: 1.2 sys/external/bsd/drm2/drm/drmfb.c: 1.1 sys/external/bsd/drm2/drm/files.drmkms: 1.10, 1.11 sys/external/bsd/drm2/i2c/drm_encoder_slave.c: 1.1 sys/external/bsd/drm2/i915drm/files.i915drmkms: 1.7, 1.10 sys/external/bsd/drm2/i915drm/intelfb.c: 1.11, 1.12 sys/external/bsd/drm2/include/asm/io.h: 1.4 sys/external/bsd/drm2/include/asm/unaligned.h: 1.2, 1.3 sys/external/bsd/drm2/include/drm/drm_encoder_slave.h: 1.1 sys/external/bsd/drm2/include/drm/drm_wait_netbsd.h: 1.7-1.11 sys/external/bsd/drm2/include/drm/drmfb.h: 1.1 sys/external/bsd/drm2/include/drm/drmfb_pci.h: 1.1, 1.2 sys/external/bsd/drm2/include/linux/bitops.h: 1.9 sys/external/bsd/drm2/include/linux/i2c.h: 1.7, 1.8 sys/external/bsd/drm2/include/linux/io-mapping.h: 1.5 sys/external/bsd/drm2/include/linux/moduleparam.h: 1.5 sys/external/bsd/drm2/include/linux/pci.h: 1.12-1.15 sys/external/bsd/drm2/include/linux/pm.h: 1.4 sys/external/bsd/drm2/include/linux/reboot.h: 1.2 sys/external/bsd/drm2/include/linux/slab.h: 1.5 sys/external/bsd/drm2/include/linux/string.h: 1.4 sys/external/bsd/drm2/include/linux/vgaarb.h: 1.3 sys/external/bsd/drm2/include/linux/ww_mutex.h: 1.10 sys/external/bsd/drm2/linux/files.drmkms_linux: 1.8 sys/external/bsd/drm2/linux/linux_i2c.c: 1.3 sys/external/bsd/drm2/linux/linux_ww_mutex.c: 1.1 sys/external/bsd/drm2/nouveau/files.nouveau: 1.5-1.8 sys/external/bsd/drm2/nouveau/nouveau_pci.c: 1.1-1.3 sys/external/bsd/drm2/nouveau/nouveau_pci.h: 1.1 sys/external/bsd/drm2/nouveau/nouveau_sysfs.c: 1.1 sys/external/bsd/drm2/nouveau/nouveau_vga.c: 1.1 sys/external/bsd/drm2/nouveau/nouveaufb.c: 1.1 sys/external/bsd/drm2/nouveau/nouveaufb.h: 1.1 sys/external/bsd/drm2/pci/drm_pci.c: 1.10-1.12 sys/external/bsd/drm2/pci/drm_pci_module.c: 1.4 sys/external/bsd/drm2/pci/drmfb_pci.c: 1.1-1.3 sys/external/bsd/drm2/pci/files.drmkms_pci: 1.5 sys/external/bsd/drm2/radeon/radeon_pci.c: 1.5-1.7 sys/modules/drmkms/Makefile: 1.8, 1.9 sys/modules/drmkms_linux/Makefile: 1.6 sys/modules/drmkms_pci/Makefile: 1.5 sync drm2 with HEAD.
|
1.7.2.1.4.1 | 06-Sep-2016 |
skrll | First pass at netbsd-7 updated with USB code from HEAD
|
1.9.18.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.9.16.1 | 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.2 | 28-Feb-2022 |
riastradh | drm: Fix ACPI crud in ALL kernel build.
|
1.1 | 27-Feb-2022 |
riastradh | drm: Move acpi_check_dsm &c. from intel_acpi.c to new linux_acpi.c.
|
1.3 | 27-Aug-2018 |
riastradh | branches: 1.3.2; 1.3.6; Implement atomic64_add_return and atomic64_inc_return.
|
1.2 | 27-Aug-2018 |
riastradh | Fix argument types of atomic64_add/sub to be sensible.
Technically Linux does use long long rather than int64_t, but that's silly.
|
1.1 | 27-Aug-2018 |
riastradh | Hash-locked atomic64 to give ports like powerpc32 a chance at radeon.
|
1.3.6.2 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.3.6.1 | 27-Aug-2018 |
christos | file linux_atomic64.c was added on branch phil-wifi on 2019-06-10 22:08:32 +0000
|
1.3.2.2 | 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.3.2.1 | 27-Aug-2018 |
pgoyette | file linux_atomic64.c was added on branch pgoyette-compat on 2018-09-06 06:56:37 +0000
|
1.1 | 19-Dec-2021 |
riastradh | backlight stubs
|
1.17 | 20-May-2024 |
riastradh | drm: Fix missing bounds checks in dma buf mmap.
|
1.16 | 21-Feb-2023 |
riastradh | drm: Teach dmabuf to handle lseek.
Needed by libdrm_amdgpu.
Based on patch from Jeff Frasca -- thanks!
XXX pullup-10
|
1.15 | 09-Apr-2022 |
riastradh | branches: 1.15.4; drm: Convert membar_enter/exit stragglers to membar_acquire/release.
|
1.14 | 17-Feb-2022 |
riastradh | drm: Fix membars around dma_buf_put reference count release.
|
1.13 | 19-Dec-2021 |
riastradh | amdgpu: amdgpu_dma_buf.c
|
1.12 | 19-Dec-2021 |
riastradh | drm: Omit half-baked dma_buf_file indirection.
|
1.11 | 19-Dec-2021 |
riastradh | drm: Note NetBSD->Linux errno conversion.
|
1.10 | 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.9 | 19-Dec-2021 |
riastradh | Rename reservation_object -> dma_resv.
|
1.8 | 19-Dec-2021 |
riastradh | Update dma-buf API enough to compile drm_prime.c.
|
1.7 | 19-Dec-2021 |
riastradh | No need for <linux/fence.h> in linux_dma_buf.c.
|
1.6 | 17-Oct-2019 |
maya | correct error handling.
from Ilja Van Sprundel, thanks.
|
1.5 | 04-Jan-2019 |
tnn | branches: 1.5.4; 1.5.6; dma_buf_fd(): fd_putfile() does not belong here
PR kern/53834 ok riastradh@
|
1.4 | 27-Aug-2018 |
riastradh | branches: 1.4.2; Implement poll for reservations and dma bufs.
|
1.3 | 27-Aug-2018 |
riastradh | Simplify. Destroy the mutex too.
|
1.2 | 27-Aug-2018 |
riastradh | Return the fd we just allocated.
|
1.1 | 27-Aug-2018 |
riastradh | Draft support for drm prime.
|
1.4.2.3 | 18-Jan-2019 |
pgoyette | Synch with HEAD
|
1.4.2.2 | 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.4.2.1 | 27-Aug-2018 |
pgoyette | file linux_dma_buf.c was added on branch pgoyette-compat on 2018-09-06 06:56:37 +0000
|
1.5.6.1 | 17-Oct-2019 |
martin | Pull up following revision(s) (requested by maya in ticket #350):
sys/external/bsd/drm2/linux/linux_dma_buf.c: revision 1.6
correct error handling. from Ilja Van Sprundel, thanks.
|
1.5.4.3 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.5.4.2 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.5.4.1 | 04-Jan-2019 |
christos | file linux_dma_buf.c was added on branch phil-wifi on 2019-06-10 22:08:32 +0000
|
1.15.4.2 | 04-Oct-2024 |
martin | Pull up following revision(s) (requested by rin in ticket #928):
sys/external/bsd/drm2/dist/drm/drm_gem.c: revision 1.25 sys/external/bsd/drm2/dist/drm/radeon/radeon_ci_dpm.c: revision 1.7 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/priv.h: revision 1.4 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_acpi.c: revision 1.4 sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h: revision 1.6 sys/external/bsd/drm2/dist/drm/i915/i915_drv.h: revision 1.49 sys/external/bsd/drm2/include/linux/mxm-wmi.h: revision 1.1 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_pcie.c: revision 1.4 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c: revision 1.13 sys/external/bsd/common/include/linux/bitops.h: revision 1.17 sys/external/bsd/drm2/nouveau/files.nouveau: revision 1.40 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.30 sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.h: revision 1.5 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_pcie.c: revision 1.5 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm/nouveau_nvkm_subdev_mxm_base.c: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c: revision 1.12 sys/external/bsd/drm2/dist/drm/radeon/radeon_rv770.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp/nouveau_nvkm_engine_disp_sorgm200.c: revision 1.3 sys/external/bsd/common/include/linux/printk.h: revision 1.14 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_gk20a.c: revision 1.10 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vi.c: revision 1.4 sys/external/bsd/drm2/include/linux/acpi.h: revision 1.11 sys/external/bsd/drm2/drm/drm_cdevsw.c: revision 1.31 sys/external/bsd/drm2/dist/drm/radeon/radeon_si.c: revision 1.6 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.c: revision 1.5 sys/external/bsd/drm2/dist/drm/i915/display/intel_acpi.h: revision 1.5 sys/external/bsd/drm2/include/acpi/video.h: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen.c: revision 1.6 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.h: revision 1.4 sys/arch/sparc64/include/pci_machdep.h: revision 1.31 sys/arch/sparc64/dev/pci_machdep.c: revision 1.83 sys/external/bsd/drm2/include/linux/kref.h: revision 1.14 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c: revision 1.12 sys/external/bsd/drm2/linux/linux_dma_buf.c: revision 1.17 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadowacpi.c: revision 1.4 sys/external/bsd/drm2/drm/drm_module.c: revision 1.32 sys/external/bsd/drm2/dist/drm/i915/i915_gem.h: revision 1.8 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_dmabuf.c: revision 1.7 sys/external/bsd/drm2/include/linux/smp.h: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_si.c: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c: revision 1.20 sys/arch/x86/x86/bus_dma.c: revision 1.91 sys/external/bsd/drm2/radeon/files.radeon: revision 1.40 sys/external/bsd/drm2/include/acpi/acpi_bus.h: revision 1.1 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drv.h: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c: revision 1.21 sys/external/bsd/common/include/asm/barrier.h: revision 1.20 sys/external/bsd/drm2/include/linux/nbsd-namespace-acpi.h: revision 1.2 sys/external/bsd/common/include/asm/barrier.h: revision 1.21 sys/modules/drmkms/drmkms_pci.h: revision 1.1 sys/external/bsd/drm2/dist/drm/drm_dp_helper.c: revision 1.17 sys/external/bsd/drm2/radeon/radeon_pci.c: revision 1.23 sys/external/bsd/drm2/linux/linux_xa.c: revision 1.4 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.23 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.24 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.25 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.26 sys/dev/pci/pcivar.h: revision 1.120 sys/arch/xen/include/pci_machdep.h: revision 1.24 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.26 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.27 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.27 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.28 sys/external/bsd/drm2/dist/drm/radeon/radeon_cik.c: revision 1.8 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.28 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.29 sys/external/bsd/drm2/include/linux/pci.h: revision 1.57 sys/external/bsd/drm2/include/linux/pci.h: revision 1.58 sys/external/bsd/drm2/dist/drm/radeon/radeon_acpi.c: revision 1.5 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_display.c: revision 1.6 sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_hwmgr.c: revision 1.3 sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_stream.c: revision 1.3 share/man/man9/bus_dma.9: revision 1.69 sys/external/bsd/drm2/drm/drm_gem_cma_helper.c: revision 1.15 sys/external/bsd/drm2/dist/drm/radeon/radeon_acpi.c: revision 1.6 sys/external/bsd/drm2/dist/drm/radeon/radeon.h: revision 1.12 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cik.c: revision 1.7 sys/dev/acpi/acpi_mcfg.c: revision 1.29 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acpi.c: revision 1.6 sys/external/bsd/drm2/dist/drm/radeon/radeon_r600.c: revision 1.7 sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c: revision 1.13 sys/modules/amdgpu/Makefile: revision 1.9 sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c: revision 1.14 sys/external/bsd/common/linux/linux_tasklet.c: revision 1.12 sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/device.h: revision 1.10 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_mman.c: revision 1.23 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h: revision 1.9 sys/external/bsd/drm2/include/linux/interval_tree.h: revision 1.14 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_mman.c: revision 1.26 sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_smu7_hwmgr.c: revision 1.5 sys/dev/pci/pci.c: revision 1.168 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_mman.c: revision 1.27 sys/external/bsd/drm2/dist/drm/radeon/radeon_si_dpm.c: revision 1.9 sys/external/bsd/drm2/pci/files.drmkms_pci: revision 1.18 sys/external/bsd/drm2/linux/linux_sync_file.c: revision 1.3 sys/external/bsd/drm2/amdgpu/files.amdgpu: revision 1.31 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_tegra.c: revision 1.4 sys/external/bsd/drm2/dist/drm/drm_gem.c: revision 1.24 sys/arch/xen/xen/xpci_xenbus.c: revision 1.29
drm: Eliminate __HAVE_ATOMIC_AS_MEMBAR conditionals. Discussed on tech-kern: https://mail-index.netbsd.org/tech-kern/2023/02/23/msg028729.html
linux asm/barrier.h: Fix !MULTIPROCESSOR build.
remove "nouveau" from a comment. noted by jmcneill.
drm: KASSERT(A && B) -> KASSERT(A); KASSERT(B) comment a function that has a clear overbounds read but it isn't used. found by GCC 12.
nix the NetBSD specific GEM_BUG_ON(). avoids GCC 12 warnings, and matches upstream closer. 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.
avoid a GCC 12 warning. there's a 1-element long array and a loop conditional that tries to see if indexes for it are not identical. as these indexes will always both be 0, the only valid index, the condition is always false. GCC 12 triggers a strange warning on this code that can never run (see below), so simply assert the array size is 1 and comment the rest. amdgpu_dc_stream.c:470:55: error: array subscript [0, 0] is outside array bounds of 'struct dc_writeback_info[1]' [-Werror=array-bounds] 470 | stream->writeback_info[j] = stream->writeback_info[i];
convert a KASSERT() into an if () panic() sequence to appease GCC 12. OK 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.)
drmkms: Fix module build. avoid an unlikely array bounds issue picked up by GCC 12. nvkm_pcie_speed() can return -1, which is then used as an array index, so make this default return PCIe 1.0 speeds.
drm: enable almost all PCIe functionality linux_pci.c revisions 1.24 and 1.25 implemented most of the remaining missing PCIe backends, but only enabled them for some amdgpu portions. this enables all code marked with "XXX amdgpu pcie", "XXX radeon pcie", and "XXX pcie speed". for most of it, simply removing #ifndefs __NetBSD__ to enable compliation was required, once the new "bus->max_bus_speed" member was added to struct pci_bus. add an "always fails" backend for pci_enable_atomic_ops_to_root() which seems to only be necessary for virtual GPU functionality (and could be implemented if needed.) tested on radeon 5450, 7750, R7 240 [radeon], and RX 550 [amdgpu], and nvidia 750 and 1030 [nouveau]. this still does not quite work on nvidia cards. there are two problems that remain: - the call to set the link speed is skipped because the speed is set to the default value of "-1". nvkm_pcie_set_link() will actually determine the right value for this and for some cards, calling this function if the current speed is -1 helps set the link speed. it may be that on linux other paths we don't have enabled properly would set this (there's one via debugfs, and a jetson specific one, though perhaps setting either AC or DC speed values as boot options (after hooking up these for netbsd) would currently work. - worse, cards newer than kepler - geforce 900, 1000, and newer, are all lacking the backing support to set pcie link speed. the GT 1030 card i have been testing with remains at pcie 1.0.
radeon: fix and enable ACPI methods for getting ROM BIOS The hacky way of getting the BIOS mapped only works on x86. ACPI should be preferred if available. Makes BIOS reading though VFCT work on aarch64 with EDK2. (But only if EDK2 has POSTed the GPU.) XXX amdgpu should get the same treatment.
drm: put_cpu() should enable preemption, not disable it again
drm(4): make pr_debug equivalent to aprint_debug significantly reduces the default spam from amdgpu(4).
drm: Set CONFIG_ACPI in linux/acpi.h and make it build.
Leave a little ACPI-related functionality disabled for now, like getting EDID out of ACPI -- needs a bit more work to make this work, and I don't have hardware to work on that. Should help with failures of the forms: - unable to locate a BIOS ROM - bios: unable to locate usable image on various machines.
radeon_acpi.c: ifdef out unused function on NetBSD. Should fix syzkaller build.
drm(4): Fix st_rdev in stat. dminor->index already has the 64*type adjustment, as allocated in drm_minor_alloc. PR kern/58180
linux_sync_file: Fix missing init/fini steps. Noted by rjs@. PR kern/58210
ttm: Sync ttm_bo_uvm_fault_idle better with Linux. PR xsrc/58133 ttm: Undo mistake in previous.
PR xsrc/58133 linux: Add a few more cases to pci_get_class. Should fix crash on boot with amdgpu now that the ACPI business is enabled.
i915: Fix dmabuf mmap object.
drm: Fix missing bounds checks in dma buf mmap.
drm_gem.c: Fix sense of assertion. This is the opposite of WARN_ON. Noted by rjs@.
drm_gem.c: Enable drm_gem_fence_array_add now that we emulate xa. linux_xa: Delete and replace collision in xa_store as intended. Don't free the colliding node that's still in the tree. Noted by rjs@.
i915_gem_mman.c: Apply mmap types via pmap flags. This way, userland gets buffers mapped write-combining or uncached as needed. PR xsrc/58307
x86: Teach bus_dmamem_map about BUS_DMA_PREFETCHABLE. PR port-amd64/58308
bus_dma(9): Document BUS_DMA_PREFETCHABLE. Like BUS_DMA_NOCACHE. Doesn't absolve you of the need for bus_dmamap_sync, but if you later pass the vaddr to bus_dmamap_load, the DMA map might notice the mapping is write-combining and use this to make bus_dmamap_sync cheaper. PR kern/58309
nouveau_nvkm_subdev_instmem_gk20a.c: Use BUS_DMA_PREFETCHABLE. Matches Linux's pgprot_writecombine. Unclear where the appropriate bus_dmamap_sync happens, or is supposed to happen -- not using it would be wrong, but asking for a prefetchable mapping may paper over symptoms, at least!
ttm: Sync more with Linux. Add the original copyright and attribution since this is now, intentionally, a modified copy of the original and not just roughly the same algorithm.
ttm: Respect PGO_ALLPAGES. Not sure this is useful but it reduces XXX's and makes this match udv_fault better so it's easier to understand.
ttm: Sync cacheability flag logic with Linux.
ttm: Add XXX about readahead fault failures.
pci: Pass cookie through pci_find_device, pci_enumerate_bus, take 2. New functions pci_find_device1 and pci_enumerate_bus1 have the cookie argument. Existing symbols pci_find_device and pci_enumerate_bus are now wrappers for the cookieless version. This will allow pci_find_device callers to pass a cookie through to the match function so they can keep state or pass in extra parameters like b/d/f numbers, which will allow us to nix some horrible kludges in the Linux PCI API emulation for drm (and, perhaps, Intel wifi). This change drops the symbol pci_probe_device, in favour of a new pci_probe_device1 with the cookie argument. But I don't think that requires a revbump because it's only called by MD pci_enumerate_bus1 implementations, which don't live in modules anyway. Take 2: Make sure to handle NULL match function. linux_pci: Nix pci enumeration kludges. Now that we can pass a cookie through, this stuff will be a little less fragile.
i915: Omit needless i915_gem_object_pin/unpin_pages cycle in fault. vm_fault_cpu and vm_fault_gtt, called by i915_gem_fault, already do the pinning and unpinning internally, so there is no need for i915_gem_fault to do it. No functional change intended, except that the transient pin count will be one lower than before during the fault routine (but it will still be positive).
i915: Match Linux fault routine return code actions. Omit needless EINTR interception -- this is now handled by i915_error_to_vmf_fault. Earlier revert was over a false alarm -- bisection shows the new warnings arose from linux_pci.c 1.29 here: https://mail-index.netbsd.org/source-changes/2024/06/23/msg151929.html
linux_pci: Fix shifto in pci_get_class. It looks like Linux's pci_get_class also matches the interface part of the PCI class register (but not the revision part), and I hadn't noticed that in the previous shim structured differently.
With GCC12 kernel ALL/amd64 triggers "'sor' may be used uninitialized". If "sublinks & 3" is zero GCC is right and sor[1] may be returned unitialized. Fix by initializing "sor" to zero to return -1 instead of uninitialized value. Ok: Taylor R Campbell <riastradh@>
amdgpu: Map BAR 2, not BAR 5, on pre-bonaire chips. PR kern/58384
amdgpu: Map consecutive pages, not the same one over and over again. PR kern/58385
linux/bitops: Fix overestimate for BITS_TO_LONGS(9) Fortunately, this seems harmless except for allocating excessive buffer memory. Pointed out by nonaka@, OK riastradh@.
|
1.15.4.1 | 24-Feb-2023 |
martin | Pull up following revision(s) (requested by riastradh in ticket #108):
sys/external/bsd/drm2/linux/linux_dma_buf.c: revision 1.16
drm: Teach dmabuf to handle lseek.
Needed by libdrm_amdgpu.
Based on patch from Jeff Frasca -- thanks!
|
1.42 | 01-Sep-2022 |
riastradh | drm: Fix dma fence stub fix so the lock is actually initialized.
Tested but forgot to amend change before exporting to CVS again.
|
1.41 | 01-Sep-2022 |
riastradh | drm: Fix dma fence stub so it works with locking operations.
|
1.40 | 09-Apr-2022 |
riastradh | drm: Convert membar_enter/exit stragglers to membar_acquire/release.
|
1.39 | 19-Dec-2021 |
riastradh | drm: Use atomic_load_consume/relaxed to simplify code.
|
1.38 | 19-Dec-2021 |
riastradh | drm: Support 64-bit fence context and sequence numbers.
|
1.37 | 19-Dec-2021 |
riastradh | drm: Make sure dma_fence_wait gets traced too. Deduplicate.
|
1.36 | 19-Dec-2021 |
riastradh | drm: Add dtrace probes to fences.
|
1.35 | 19-Dec-2021 |
riastradh | drm: Fix signalling return value if no enable_signaling op.
|
1.34 | 19-Dec-2021 |
riastradh | drm: Use atomic_load_relaxed for fence->flags when not locked.
Shouldn't make a semantic difference on any machines we run on, but will make sanitizers happier and emphasize to readers that the result may not be reliable at these points.
|
1.33 | 19-Dec-2021 |
riastradh | drm: Assert dma_fence_wait internal return value.
|
1.32 | 19-Dec-2021 |
riastradh | drm: Rework timeout return code logic.
|
1.31 | 19-Dec-2021 |
riastradh | drm: Rework dma_fence_wait_any_timeout.
- Yield the first index, not the most recently signalled one. - Check again after last wakeup. - Make sure to return positive for nontimeout. - Handle ip=null.
|
1.30 | 19-Dec-2021 |
riastradh | drm: Set fence->ops for stub fences too.
|
1.29 | 19-Dec-2021 |
riastradh | drm: set f_magic in the stub fence.
Author: phone <mrg@NetBSD.org> Committer: Taylor R Campbell <riastradh@NetBSD.org>
|
1.28 | 19-Dec-2021 |
riastradh | drm: In dma_fence_wait_timeout, allow MAX_SCHEDULE_TIMEOUT.
In the Linux API, this means wait forever.
|
1.27 | 19-Dec-2021 |
riastradh | drm: Print bad timeout in dma_fence_wait_timeout kasserts.
|
1.26 | 19-Dec-2021 |
riastradh | drm: dma_fence_get allows fence to be null; fix assertion.
While here, update comments about semantics for dma_fence_get and dma_fence_get_rcu (which does not allow null fence).
|
1.25 | 19-Dec-2021 |
riastradh | drm: Set fence timestamps -- i915 uses them.
|
1.24 | 19-Dec-2021 |
riastradh | drm: Sprinkle assertions about fence lifetime.
|
1.23 | 19-Dec-2021 |
riastradh | drm: Add a kassert for fence destruction.
|
1.22 | 19-Dec-2021 |
riastradh | drm: Skip enabling signalling for fence if already signalled.
|
1.21 | 19-Dec-2021 |
riastradh | drm: Ensure the fence callback is initialized on failure.
|
1.20 | 19-Dec-2021 |
riastradh | drm: Rework enable-signal logic to match Linux.
|
1.19 | 19-Dec-2021 |
riastradh | amdgpu_fb.c amdgpu_fence.c amdgpu_gart.c amdgpu_fixpt31_32.c amdgpu_fiji_smumgr.c amdgpu_gem.c amdgpu_gfx_v10_0.c amdgpu_gfx_v6_0.c through amdgpu_gfx_v9_0.c amdgpu_gmc.c amdgpu_gmc_v6_0.c through amdgpu_gmc_v10_0.c amdgpu_gtt_mgr.c some amdgpu_h* files some amdgpu_i* files some amdgpu_j* files amdgpu_kms.c some amdgpu_m* and amdgpu_n* files
|
1.18 | 19-Dec-2021 |
riastradh | i915: Defer destroying request lock and fence until page destruction.
|
1.17 | 19-Dec-2021 |
riastradh | Add missing unlock at exit
Author: Maya Rashish <maya@NetBSD.org> Committer: Taylor R Campbell <riastradh@NetBSD.org>
|
1.16 | 19-Dec-2021 |
riastradh | drm/dma-fence: Fix zero timeout semantics in dma_fence_default_wait.
|
1.15 | 19-Dec-2021 |
riastradh | linux dma-fence: Fix up more callback uses.
|
1.14 | 19-Dec-2021 |
riastradh | linux dma-fence: Use dma_fence_default_wait if .wait is null.
|
1.13 | 19-Dec-2021 |
riastradh | Fix typo.
|
1.12 | 19-Dec-2021 |
riastradh | Move grody i915 dma-fence hacks into dma-fence proper.
|
1.11 | 19-Dec-2021 |
riastradh | Teach dma_fence_any_wait_timeout to return index of signalled fence.
|
1.10 | 19-Dec-2021 |
riastradh | dma_fence_get_status
|
1.9 | 19-Dec-2021 |
riastradh | First approximation of dma_fence_get_stub.
|
1.8 | 19-Dec-2021 |
riastradh | Issue __insn_barrier in dma_fence_get_rcu.
This way it is safe to use as dma_fence_get_rcu(*p) when concurrent writes to *p might be happening, so that we load *p only once before using the value.
|
1.7 | 19-Dec-2021 |
riastradh | Allow const volatile fence pointer pointers in dma_fence_get_rcu_safe.
|
1.6 | 19-Dec-2021 |
riastradh | We spell it ELAST.
|
1.5 | 19-Dec-2021 |
riastradh | dma_fence_set_error
|
1.4 | 19-Dec-2021 |
riastradh | Linux wants to violate abstractions, so fine, let them.
|
1.3 | 19-Dec-2021 |
riastradh | Add dma_fence_get_rcu_safe.
|
1.2 | 19-Dec-2021 |
riastradh | Rename fence -> dma_fence, step 3 of 3: code.
|
1.1 | 19-Dec-2021 |
riastradh | Rename fence -> dma_fence, step 1: files.
|
1.4 | 19-Dec-2021 |
riastradh | drm: Make dma fence array name strings match Linux.
|
1.3 | 19-Dec-2021 |
riastradh | drm: Another missing spin_lock_destroy.
|
1.2 | 19-Dec-2021 |
riastradh | drm: Draft dma-fence-array.
|
1.1 | 19-Dec-2021 |
riastradh | linux: dma fence array stubs
|
1.4 | 09-Apr-2022 |
riastradh | drm: Convert membar_enter/exit stragglers to membar_acquire/release.
|
1.3 | 19-Dec-2021 |
riastradh | drm: Implement dma fence chains.
|
1.2 | 19-Dec-2021 |
riastradh | drm: Release fence in dma_fence_chain_walk.
|
1.1 | 19-Dec-2021 |
riastradh | dma fence chain stubs
|
1.22 | 15-Feb-2022 |
riastradh | drm: Use KM_SLEEP to allocate reservation fence arrays.
Except as a fast path in an RCU reader.
The array sizes appear to be reasonably small and not trivially controlled by userland, from what I can tell, so if my impression is accurate, it is reasonable to sleep for allocation here.
|
1.21 | 19-Dec-2021 |
riastradh | drm: Fix comment about dma_resv_lock_* return values.
|
1.20 | 19-Dec-2021 |
riastradh | drm: Paranoia: handle fencep=null, fence!=null, and 0 shared.
Not sure this is possible but I don't know the API well enough to prove it can't happen.
|
1.19 | 19-Dec-2021 |
riastradh | drm: Fix missing restart on race in dma_resv_get_fences_rcu.
|
1.18 | 19-Dec-2021 |
riastradh | drm: Support dma_resv_reserve_shared(..., num_fences>1).
|
1.17 | 19-Dec-2021 |
riastradh | drm: Implement drm_resv_get_fences_rcu with null fencep.
|
1.16 | 19-Dec-2021 |
riastradh | drm: Factor dma_fence_put out of multiple dma_resv_do_poll branches.
|
1.15 | 19-Dec-2021 |
riastradh | drm: Fix dma_resv_test_signaled_rcu and dma_resv_wait_timeout_rcu.
Make them implemented the semantics as documented like Linux does: only test the exclusive fence if there's no shared fences.
|
1.14 | 19-Dec-2021 |
riastradh | drm: Make sure to check read ticket after reading shared fences.
Not entirely sure it was a bug not to do that, but let's make it easy to prove that we got a consistent snapshot of the whole picture.
|
1.13 | 19-Dec-2021 |
riastradh | drm: Write comment for dma_resv_get_fences_rcu semantics.
|
1.12 | 19-Dec-2021 |
riastradh | drm: Factor out logic to read snapshot of fences in dma_resv.
Should make auditing a little easier.
|
1.11 | 19-Dec-2021 |
riastradh | amdgpu: Another pass through.
amdgpu_object.c amdgpu_pci.c amdgpu_pm.c amdgpu_polaris10_smumgr.c amdgpu_pp_psm.c amdgpu_ppatomctrl.c amdgpu_ppatomfwctrl.c amdgpu_process_pptables_v1_0.o amdgpu_psp.o amdgpu_psp_v10_0.c amdgpu_psp_v11_0.c amdgpu_psp_v12_0.c amdgpu_psp_v3_1.c amdgpu_ras.c amdgpu_ras_eeprom.c amdgpu_rc_calc.c amdgpu_rc_calc_dpi.c amdgpu_ring.c amdgpu_rlc.c amdgpu_rn_clk_mgr.c amdgpu_sdma_v3_0.c amdgpu_sdma_v4_0.c amdgpu_sdma_v5_0.c amdgpu_si.c amdgpu_si_dma.c amdgpu_si_dpm.c amdgpu_smu.c amdgpu_smu10_hwmgr.c amdgpu_smu7_hwmgr.c amdgpu_smu8_hwmgr.c amdgpu_smu8_smumgr.c amdgpu_smu_v11_0.c (and a sprinkling of consts) amdgpu_smu_v11_0_i2c.c amdgpu_soc15.c amdgpu_tonga_smumgr.c amdgpu_ttm.c amdgpu_ucode.c amdgpu_uvd.c amdgpu_uvd_v5_0.c amdgpu_uvd_v6_0.c amdgpu_uvd_v7_0.c amdgpu_vce.c amdgpu_vce_v2_0.c amdgpu_vce_v4_0.c amdgpu_vcn_v1_0.c amdgpu_vcn_v2_0.c amdgpu_vcn_v2_5.c amdgpu_vega10_hwmgr.c amdgpu_vega10_powertune.c amdgpu_vega10_processpptables.c amdgpu_vega10_reg_init.c amdgpu_vega12_hwmgr.c amdgpu_vega20_hwmgr.c amdgpu_vega20_ppt.c amdgpu_vega20_reg_init.c amdgpu_vi.c amdgpu_virt.c amdgpu_vram_mgr.c amdgpu_xgmi.c -- disable (for now?) amdgpufb.c
|
1.10 | 19-Dec-2021 |
riastradh | drm: Fence leak audit. No functional change intended.
Sprinkle nulling out variables, add kasserts to reflect them, and propagate their consequences to eliminate dead code. Should make it easier to detect similar leak bugs.
|
1.9 | 19-Dec-2021 |
riastradh | drm: Fix sense of conditional to avoid null pointer dereference.
|
1.8 | 19-Dec-2021 |
riastradh | drm: Paranoia: null out fence if unreferenceable.
|
1.7 | 19-Dec-2021 |
riastradh | drm: Membar audit for dma_resv.
Try to pacify kcsan (untested) and make it clearer what ordering matters.
|
1.6 | 19-Dec-2021 |
riastradh | drm: Use atomic_store_release/load_consume in linux_dma_resv.c.
At least, for robj->fence and robj->fence_excl. Need to review list->shared_count and list->shared[i] too.
|
1.5 | 19-Dec-2021 |
riastradh | drm: Plug fence leak
|
1.4 | 19-Dec-2021 |
riastradh | Implement dma_resv_locking_ctx more carefully.
|
1.3 | 19-Dec-2021 |
riastradh | dma_resv_reserve_shared takes one more argument, num_fences
Fortunately it's ~always 1, and (XXX) I assume our implementation assumes this, too. But assert it.
Author: Maya Rashish <maya@NetBSD.org>
|
1.2 | 19-Dec-2021 |
riastradh | Add slow path versions of to drm_resv_lock.
|
1.1 | 19-Dec-2021 |
riastradh | Rename reservation_object -> dma_resv.
|
1.2 | 27-Aug-2018 |
riastradh | Implement dmi_match.
|
1.1 | 25-Apr-2014 |
riastradh | branches: 1.1.2; 1.1.4; 1.1.6; 1.1.10; 1.1.34; 1.1.36; Implement Linux dmi_check_system API.
Use it to get a Thinkpad quirk for i915 graphics.
Patch from nonoka@, PR 48708.
|
1.1.36.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.1.34.1 | 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.1.10.2 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.1.10.1 | 25-Apr-2014 |
tls | file linux_dmi.c was added on branch tls-maxphys on 2014-08-20 00:04:22 +0000
|
1.1.6.2 | 10-Aug-2014 |
tls | Rebase.
|
1.1.6.1 | 25-Apr-2014 |
tls | file linux_dmi.c was added on branch tls-earlyentropy on 2014-08-10 06:55:40 +0000
|
1.1.4.2 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.1.4.1 | 25-Apr-2014 |
yamt | file linux_dmi.c was added on branch yamt-pagecache on 2014-05-22 11:40:56 +0000
|
1.1.2.2 | 18-May-2014 |
rmind | sync with head
|
1.1.2.1 | 25-Apr-2014 |
rmind | file linux_dmi.c was added on branch rmind-smpnet on 2014-05-18 17:46:01 +0000
|
1.17 | 19-Dec-2021 |
riastradh | Rename fence -> dma_fence, step 1: files.
|
1.16 | 03-Jul-2020 |
maxv | hardclock_ticks -> getticks()
|
1.15 | 16-Apr-2019 |
mrg | branches: 1.15.4; 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.
|
1.14 | 05-Jan-2019 |
tnn | fence_referenced_p(): mark as __diagused
|
1.13 | 01-Sep-2018 |
riastradh | branches: 1.13.2; Allow fence_get(NULL).
This is kind of silly: if the caller has exclusive access to the fence, they should be able to guarantee it's there, so this could serve to suppress legitimate bugs. But better to preserve Linux semantics here than to be picky about API design.
Bug by me, fix from Tobias Ulmer in PR kern/53565.
|
1.12 | 28-Aug-2018 |
riastradh | Issue __insn_barrier after loading hardclock_ticks.
For some reason this isn't volatile...
|
1.11 | 28-Aug-2018 |
riastradh | Assert EWOULDBLOCK happens only with timeout.
|
1.10 | 28-Aug-2018 |
riastradh | With no timeout, fence_default_wait must return 1 on success, never 0.
|
1.9 | 27-Aug-2018 |
riastradh | KASSERT -> KASSERTMSG, to help debug panic observed by mrg@.
|
1.8 | 27-Aug-2018 |
riastradh | Linux fence_put accepts NULL as noop. Match this.
From mrg@.
|
1.7 | 27-Aug-2018 |
riastradh | Make extremely noisy fence trace output conditional.
|
1.6 | 27-Aug-2018 |
riastradh | Lotsa kasserts about referencedness of frences.
|
1.5 | 27-Aug-2018 |
riastradh | Add fence_is_later and fence_wait_any_timeout.
|
1.4 | 27-Aug-2018 |
riastradh | Fix prototype of function in comment.
|
1.3 | 27-Aug-2018 |
riastradh | Fence release callback may be absent; default to fence_free.
|
1.2 | 27-Aug-2018 |
riastradh | Use atomics to manage fence->flags.
Outside users use this field too, and expect it to be managed with atomics.
|
1.1 | 27-Aug-2018 |
riastradh | Draft implementation of the Linux reservation and fence APIs.
|
1.13.2.3 | 18-Jan-2019 |
pgoyette | Synch with HEAD
|
1.13.2.2 | 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.13.2.1 | 01-Sep-2018 |
pgoyette | file linux_fence.c was added on branch pgoyette-compat on 2018-09-06 06:56:37 +0000
|
1.15.4.2 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.15.4.1 | 16-Apr-2019 |
christos | file linux_fence.c was added on branch phil-wifi on 2019-06-10 22:08:32 +0000
|
1.2 | 19-Dec-2021 |
riastradh | linux: request_firmware_direct
|
1.1 | 19-Dec-2021 |
riastradh | Move Linux firmware shims to their own .c file.
|
1.3 | 17-Jul-2014 |
riastradh | Remove needless linux_gfp.c.
Trying to make do with Linux's page allocation interface is pretty much always wrong: either we let uvm allocate pages in uvm objects for us, or we use bus_dma.
|
1.2 | 18-Mar-2014 |
riastradh | branches: 1.2.2; 1.2.4; 1.2.6; Merge riastradh-drm2 to HEAD.
|
1.1 | 24-Jul-2013 |
riastradh | branches: 1.1.2; file linux_gfp.c was initially added on branch riastradh-drm2.
|
1.1.2.1 | 24-Jul-2013 |
riastradh | Implement Linux alloc_page/__free_page and kmap_atomic/kunmap_atomic.
|
1.2.6.2 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.2.6.1 | 18-Mar-2014 |
yamt | file linux_gfp.c was added on branch yamt-pagecache on 2014-05-22 11:40:56 +0000
|
1.2.4.2 | 18-May-2014 |
rmind | sync with head
|
1.2.4.1 | 18-Mar-2014 |
rmind | file linux_gfp.c was added on branch rmind-smpnet on 2014-05-18 17:46:01 +0000
|
1.2.2.1 | 10-Aug-2014 |
tls | Rebase.
|
1.10 | 10-Jul-2022 |
riastradh | linux/hdmi: Fix size of product id.
|
1.9 | 10-Jul-2022 |
riastradh | linux/hdmi: Fix return value in unpack.
|
1.8 | 09-Jul-2022 |
riastradh | linux/hdmi: Fix hdmi_infoframe_unpack to record the unpacked header.
|
1.7 | 09-Jul-2022 |
riastradh | linux/hdmi: Handle audio infoframes in hdmi_infoframe_pack.
Sort cases by type number.
|
1.6 | 09-Jul-2022 |
riastradh | linux/hdmi: Convert failure branch to kassert for internal invariant.
|
1.5 | 09-Jul-2022 |
riastradh | linux/hdmi: Use ssize_t for all hdmi_*_infoframe_pack functions.
|
1.4 | 09-Jul-2022 |
riastradh | linux/hdmi: Zero entire union hdmi_infoframe on unpack.
Don't just zero the part that we're about to initialize -- i915 does memcmp on the whole structure.
|
1.3 | 09-Jul-2022 |
riastradh | linux/hdmi: Handle unpacking audio frames too. Sort by number.
|
1.2 | 09-Jul-2022 |
riastradh | linux/hdmi: Make some private functions static.
|
1.1 | 09-Jul-2022 |
riastradh | linux/hdmi.h: Split out logic into .c file.
Shoulda done this ages ago.
|
1.3 | 19-Dec-2021 |
riastradh | drm: Eliminate hrtimer_destroy and teardown_timer.
These are non-Linux shims added to the Linux API to pair with hrtimer_setup and setup_timer, but they really only serve to call callout_destroy, which is not strictly necessary in the NetBSD API. So although we lose a little bit of diagnostic help this way, we also reduce diffs a bit and save some trouble that bit us last week.
|
1.2 | 19-Dec-2021 |
riastradh | Add hrtimer_destroy
Author: Maya Rashish <maya@NetBSD.org> Committer: Taylor R Campbell <riastradh@NetBSD.org>
|
1.1 | 19-Dec-2021 |
riastradh | linux compat: Draft hrtimer shims.
(not actually high-resolution, just a wrapper around callout(9))
|
1.7 | 22-May-2022 |
riastradh | linux: Repeat i2c transfer if driver fails with EAGAIN.
The Intel GMBUS (graphics management bus, i2c controller) relies on this now to fall back from interrupt-driven xfers to bit-banging.
|
1.6 | 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.5 | 19-Dec-2021 |
riastradh | Provide a definition of I2C_M_STOP XXX
Author: Maya Rashish <maya@NetBSD.org>
|
1.4 | 19-Dec-2021 |
riastradh | Support i2c bus lock operations.
|
1.3 | 05-Mar-2015 |
riastradh | Reorganize Linux i2c header file and add a few more shims.
|
1.2 | 18-Mar-2014 |
riastradh | branches: 1.2.4; 1.2.6; 1.2.8; 1.2.10; 1.2.12; Merge riastradh-drm2 to HEAD.
|
1.1 | 24-Jul-2013 |
riastradh | branches: 1.1.2; file linux_i2c.c was initially added on branch riastradh-drm2.
|
1.1.2.1 | 24-Jul-2013 |
riastradh | Add partial Linux i2c shim.
Just the parts we need for i915drm for now -- well, most of them; more to come later.
|
1.2.12.1 | 06-Apr-2015 |
skrll | Sync with HEAD
|
1.2.10.3 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.2.10.2 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.2.10.1 | 18-Mar-2014 |
tls | file linux_i2c.c was added on branch tls-maxphys on 2014-08-20 00:04:22 +0000
|
1.2.8.1 | 06-Mar-2015 |
snj | Pull up following revision(s) (requested by mrg in ticket #573): sys/external/bsd/common/include/linux/kernel.h: 1.5, 1.6 sys/external/bsd/drm2/dist/drm/drm_ioctl.c: 1.4 sys/external/bsd/drm2/dist/drm/drm_irq.c: 1.6-1.8 sys/external/bsd/drm2/dist/drm/i915/i915_dma.c: 1.13-1.15 sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: 1.23-1.27 sys/external/bsd/drm2/dist/drm/i915/i915_gem_execbuffer.c: 1.5 sys/external/bsd/drm2/dist/drm/i915/intel_display.c: 1.14, 1.15 sys/external/bsd/drm2/dist/drm/i915/intel_dp.c: 1.10 sys/external/bsd/drm2/dist/drm/i915/intel_drv.h: 1.8 sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c: 1.8-1.13 sys/external/bsd/drm2/dist/drm/i915/intel_pm.c: 1.6 sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c: 1.5, 1.6 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c: 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/include/core/device.h: 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/include/subdev/mc.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/include/subdev/pwr.h: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/os.h: 1.4, 1.5 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_base.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_pll.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/clock/nouveau_subdev_clock_base.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/clock/nouveau_subdev_clock_nv50.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/fbmem.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/nouveau_subdev_devinit_nv04.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv50.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nvc0.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nv50.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nvc0.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/mc/nouveau_subdev_mc_base.c: 1.2, 1.3 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/mxm/nouveau_subdev_mxm_nv50.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/pwr/nouveau_subdev_pwr_base.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/therm/nouveau_subdev_therm_ic.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/timer/nouveau_subdev_timer_nv04.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_base.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv04.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv44.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nv04.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.h: 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c: 1.4, 1.5 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c: 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv84_fence.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.c: 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_vga.h: 1.2 sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c: 1.6-1.8 sys/external/bsd/drm2/dist/drm/radeon/radeon_pm.c: 1.3 sys/external/bsd/drm2/dist/drm/radeon/rs400.c: 1.3 sys/external/bsd/drm2/dist/drm/via/via_dmablit.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/via/via_drv.h: 1.3 sys/external/bsd/drm2/dist/drm/via/via_irq.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/via/via_video.c: 1.3, 1.4 sys/external/bsd/drm2/dist/include/drm/drmP.h: 1.10 sys/external/bsd/drm2/dist/include/drm/drm_crtc.h: 1.4 sys/external/bsd/drm2/dist/include/drm/drm_modes.h: 1.3 sys/external/bsd/drm2/dist/uapi/drm/i915_drm.h: 1.2 sys/external/bsd/drm2/drm/drm_cache.c: 1.4-1.6 sys/external/bsd/drm2/drm/drm_drv.c: 1.14 sys/external/bsd/drm2/drm/drm_module.c: 1.10 sys/external/bsd/drm2/drm/drm_sysctl.c: 1.5 sys/external/bsd/drm2/drm/drm_vma_manager.c: 1.2 sys/external/bsd/drm2/drm/drmfb.c: 1.1 sys/external/bsd/drm2/drm/files.drmkms: 1.10, 1.11 sys/external/bsd/drm2/i2c/drm_encoder_slave.c: 1.1 sys/external/bsd/drm2/i915drm/files.i915drmkms: 1.7, 1.10 sys/external/bsd/drm2/i915drm/intelfb.c: 1.11, 1.12 sys/external/bsd/drm2/include/asm/io.h: 1.4 sys/external/bsd/drm2/include/asm/unaligned.h: 1.2, 1.3 sys/external/bsd/drm2/include/drm/drm_encoder_slave.h: 1.1 sys/external/bsd/drm2/include/drm/drm_wait_netbsd.h: 1.7-1.11 sys/external/bsd/drm2/include/drm/drmfb.h: 1.1 sys/external/bsd/drm2/include/drm/drmfb_pci.h: 1.1, 1.2 sys/external/bsd/drm2/include/linux/bitops.h: 1.9 sys/external/bsd/drm2/include/linux/i2c.h: 1.7, 1.8 sys/external/bsd/drm2/include/linux/io-mapping.h: 1.5 sys/external/bsd/drm2/include/linux/moduleparam.h: 1.5 sys/external/bsd/drm2/include/linux/pci.h: 1.12-1.15 sys/external/bsd/drm2/include/linux/pm.h: 1.4 sys/external/bsd/drm2/include/linux/reboot.h: 1.2 sys/external/bsd/drm2/include/linux/slab.h: 1.5 sys/external/bsd/drm2/include/linux/string.h: 1.4 sys/external/bsd/drm2/include/linux/vgaarb.h: 1.3 sys/external/bsd/drm2/include/linux/ww_mutex.h: 1.10 sys/external/bsd/drm2/linux/files.drmkms_linux: 1.8 sys/external/bsd/drm2/linux/linux_i2c.c: 1.3 sys/external/bsd/drm2/linux/linux_ww_mutex.c: 1.1 sys/external/bsd/drm2/nouveau/files.nouveau: 1.5-1.8 sys/external/bsd/drm2/nouveau/nouveau_pci.c: 1.1-1.3 sys/external/bsd/drm2/nouveau/nouveau_pci.h: 1.1 sys/external/bsd/drm2/nouveau/nouveau_sysfs.c: 1.1 sys/external/bsd/drm2/nouveau/nouveau_vga.c: 1.1 sys/external/bsd/drm2/nouveau/nouveaufb.c: 1.1 sys/external/bsd/drm2/nouveau/nouveaufb.h: 1.1 sys/external/bsd/drm2/pci/drm_pci.c: 1.10-1.12 sys/external/bsd/drm2/pci/drm_pci_module.c: 1.4 sys/external/bsd/drm2/pci/drmfb_pci.c: 1.1-1.3 sys/external/bsd/drm2/pci/files.drmkms_pci: 1.5 sys/external/bsd/drm2/radeon/radeon_pci.c: 1.5-1.7 sys/modules/drmkms/Makefile: 1.8, 1.9 sys/modules/drmkms_linux/Makefile: 1.6 sys/modules/drmkms_pci/Makefile: 1.5 sync drm2 with HEAD.
|
1.2.6.2 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.2.6.1 | 18-Mar-2014 |
yamt | file linux_i2c.c was added on branch yamt-pagecache on 2014-05-22 11:40:56 +0000
|
1.2.4.2 | 18-May-2014 |
rmind | sync with head
|
1.2.4.1 | 18-Mar-2014 |
rmind | file linux_i2c.c was added on branch rmind-smpnet on 2014-05-18 17:46:01 +0000
|
1.15 | 19-Dec-2021 |
riastradh | linux/idr: Remove meaningless stray membar.
|
1.14 | 19-Dec-2021 |
riastradh | Teach idr_remove to accept failure.
But teach it to return the data if it succeeds too.
|
1.13 | 19-Dec-2021 |
riastradh | Define idr_init_base.
Nothing actually uses this at the moment, because callers already specify the base. Not really sure what the point is!
|
1.12 | 27-Aug-2018 |
riastradh | sdt probe naming style.
|
1.11 | 27-Aug-2018 |
riastradh | Work around broken empty expansion of SDT_PROBE* if !KDTRACE_HOOKS.
|
1.10 | 27-Aug-2018 |
riastradh | sdt dtrace probes for linux idr.
|
1.9 | 27-Aug-2018 |
riastradh | Zero-initialize idr cache.
|
1.8 | 27-Aug-2018 |
riastradh | Draft rewrite of idr preload.
Previous idr code assumed every caller would definitely call idr_preload, idr_alloc, idr_preload_end, but some callers skip idr_alloc if an intermediate failure happens first, and would therefore leak idr nodes.
Use a per-lwp single-node cache instead, and print warnings about leakers.
|
1.7 | 27-Aug-2018 |
riastradh | Add idr_get_next and idr_for_each_entry.
|
1.6 | 26-Jul-2017 |
riastradh | branches: 1.6.2; 1.6.4; Tweak slightly sketchy logic in linux_idr.
1. idr_preload can fail if you don't set __GFP_WAIT. 2. If idr_preload fails, it is wrong for idr_alloc to assert. 3. There is no way for idr_alloc to know what flags idr_preload got.
Probably won't *fix* any bugs, but if there is a bug with a missing __GFP_WAIT, then we will learn about a trifle sooner.
|
1.5 | 01-Jan-2015 |
mrg | branches: 1.5.10; 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.4 | 04-Nov-2014 |
jmcneill | branches: 1.4.2; This code should be MP-safe. Use IPL_SCHED in place of IPL_DRM/IPL_VM and set D_MPSAFE flag in cdevsw.
|
1.3 | 16-Jul-2014 |
riastradh | branches: 1.3.4; 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.2 | 18-Mar-2014 |
riastradh | branches: 1.2.2; 1.2.4; 1.2.6; Merge riastradh-drm2 to HEAD.
|
1.1 | 24-Jul-2013 |
riastradh | branches: 1.1.2; file linux_idr.c was initially added on branch riastradh-drm2.
|
1.1.2.12 | 15-Jan-2014 |
riastradh | Convert linux_idr(9) to use spin locks.
idr_for_each is unlocked; caller must exclude modifications.
Eventually this should be rewritten with pserialize and a fancy bitmap algorithm, but this *actually* works for now.
|
1.1.2.11 | 15-Jan-2014 |
riastradh | Revert "Rewrite idr to use a dumber algorithm that admits pserialized use."
This reverts commit 3a389a1cb20777fb73575f0514b96265052ac1ea.
I don't know what I was smoking with this; just need to change the rwlock to a spin lock and we'll be good!
|
1.1.2.10 | 30-Dec-2013 |
riastradh | Rewrite idr to use a dumber algorithm that admits pserialized use.
drm2 doesn't use them with RCU, but it does use them under spin locks, so an rwlock is not kosher.
This algorithm is super-dumb, but the idr API has changed upstream, and this is not performance-critical, so it's not worth investing time in a better algorithm at the moment.
|
1.1.2.9 | 24-Jul-2013 |
riastradh | Rework error branches of idr_get_new_above.
Return ENOSPC if we're about to overflow int.
|
1.1.2.8 | 24-Jul-2013 |
riastradh | Actually return the new id in idr_get_new_above.
|
1.1.2.7 | 24-Jul-2013 |
riastradh | Work around rb_tree_iterate API botch in linux_idr.c.
|
1.1.2.6 | 24-Jul-2013 |
riastradh | Tweak idr_pre_get.
. No need to test kmem_alloc(n, KM_SLEEP) for NULL. . Avoid kmem_free with lock held, out of paranoia.
|
1.1.2.5 | 24-Jul-2013 |
riastradh | Add idr_for_each to Linux idr abstraction.
|
1.1.2.4 | 24-Jul-2013 |
riastradh | Implement idr_replace.
|
1.1.2.3 | 24-Jul-2013 |
riastradh | Implement idr_remove_all.
|
1.1.2.2 | 24-Jul-2013 |
riastradh | In linux_idr, move idr_temp access under the write lock.
The atomic swaps were missing memory barriers, but using the rwlock is easier to understand for now. This should probably use passive serialization eventually anyway.
|
1.1.2.1 | 24-Jul-2013 |
riastradh | Dumb implementation of a subset of Linux's idr abstraction.
An idr maintains a mapping from integers to data, like file descriptors to struct file pointers.
|
1.2.6.2 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.2.6.1 | 18-Mar-2014 |
yamt | file linux_idr.c was added on branch yamt-pagecache on 2014-05-22 11:40:56 +0000
|
1.2.4.2 | 18-May-2014 |
rmind | sync with head
|
1.2.4.1 | 18-Mar-2014 |
rmind | file linux_idr.c was added on branch rmind-smpnet on 2014-05-18 17:46:01 +0000
|
1.2.2.1 | 10-Aug-2014 |
tls | Rebase.
|
1.3.4.3 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.3.4.2 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.3.4.1 | 16-Jul-2014 |
tls | file linux_idr.c was added on branch tls-maxphys on 2014-08-20 00:04:22 +0000
|
1.4.2.2 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.4.2.1 | 06-Apr-2015 |
skrll | Sync with HEAD
|
1.5.10.1 | 01-Sep-2018 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1003):
sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c: revision 1.8 sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c: revision 1.10 sys/external/bsd/drm2/drm/drm_scatter.c: revision 1.4 sys/external/bsd/drm2/dist/drm/i915/i915_reg.h: revision 1.2 sys/external/bsd/drm2/linux/linux_ww_mutex.c: revision 1.3 sys/external/bsd/drm2/linux/linux_ww_mutex.c: revision 1.4 sys/external/bsd/drm2/linux/linux_idr.c: revision 1.6
Pull in upstream commit: Author: Ville Syrj=E4l=E4 <ville.syrjala%linux.intel.com@localhost> Date: Mon Jun 9 16:20:46 2014 +0300 drm/i915: Avoid div-by-zero when pixel_multiplier is zero On certain platforms pixel_multiplier is read out in .get_pipe_config(), but it also gets used to calculate the pixel clock in intel_sdvo_get_config(). If the pipe is disabled but some SDVO outputs are active, we may end up dividing by zero in intel_sdvo_get_config(). Fixes https://bugs.freedesktop.org/show_bug.cgi?id=3D76520 Tweak slightly sketchy logic in linux_idr. 1. idr_preload can fail if you don't set __GFP_WAIT. 2. If idr_preload fails, it is wrong for idr_alloc to assert. 3. There is no way for idr_alloc to know what flags idr_preload got. Probably won't *fix* any bugs, but if there is a bug with a missing __GFP_WAIT, then we will learn about a trifle sooner. Fix error branch in ttm_dma_tt_init to avoid double-free. Should fix symptom of PR kern/52438, but who knows what underlying problem causes us to reach the error branch in the first place. Fix lockdebug_locked annotations. When thread A grants ownership to thread B waiting with a context, thread B needs to assert lockdebug_locked; otherwise, when it releases, lockdebug_unlocked thinks it's releasing an unlocked ww_mutex.
Fixes LOCKDEBUG failure with radeon noticed by martin@.
more const
XXX: add a NULL init to avoid a GCC 6 maybe uninit warning.
Remove UB from definition of symbols in i915_reg.h Kernel Undefined Behavior Sanitizer enforces more warnings in build time. This makes the build fatal in the drm/i915 code in: - intel_ddi_put_crtc_pll(), - intel_ddi_clock_get(), - intel_ddi_pll_enable(), - intel_ddi_setup_hw_pll_state(). The error message in all the cases says: error: case label does not reduce to an integer constant Set the type of the value left shifted to unsigned. This change is required to build NetBSD/amd64 with KUBSan.
|
1.6.4.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.6.2.1 | 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.1 | 19-Dec-2021 |
riastradh | drm: Move io_mapping to very own .c file.
|
1.2 | 19-Dec-2021 |
riastradh | linux: Use pointer indirection for irq_work_cpu.
Can't store locks in percpu since it moves around.
|
1.1 | 19-Dec-2021 |
riastradh | linux: Draft irq_work shims, in terms of a softint.
Doesn't actually run in hardirq context, but who's gonna notice...
|
1.16 | 27-Aug-2018 |
riastradh | Ifdef out label used only by !__HAVE_MM_MD_DIRECT_MAPPED_PHYS.
|
1.15 | 27-Aug-2018 |
riastradh | Work around `kmap' namespace clash another way.
|
1.14 | 27-Aug-2018 |
riastradh | Work around a namespacing clash between dtrace and linux symbol.
|
1.13 | 27-Aug-2018 |
riastradh | sdt dtrace probes for linux kmap.
|
1.12 | 01-Jan-2015 |
mrg | branches: 1.12.16; 1.12.18; 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.11 | 04-Nov-2014 |
jmcneill | branches: 1.11.2; This code should be MP-safe. Use IPL_SCHED in place of IPL_DRM/IPL_VM and set D_MPSAFE flag in cdevsw.
|
1.10 | 27-Aug-2014 |
riastradh | Use direct map if available in linux_kmap.
Yields 20% increase in glxgears framerate.
|
1.9 | 27-Aug-2014 |
riastradh | Tweak style.
No functional change intended. Assembly differences appear to be only related to kassert line numbers.
|
1.8 | 27-Aug-2014 |
riastradh | __diagused, not __unused.
|
1.7 | 27-Aug-2014 |
riastradh | Assert sleepable in Linux kmap/kunmap.
|
1.6 | 27-Aug-2014 |
riastradh | Simplify empty test for linux_kmap_entries.
|
1.5 | 27-Aug-2014 |
riastradh | Convert linux_kmap_lock to an adaptive lock.
kmap/kunmap can't be used in interrupt context anyway, so there is no need for this to be a spin lock.
|
1.4 | 28-Mar-2014 |
riastradh | branches: 1.4.4; 1.4.6; 1.4.8; 1.4.10; Don't leak KVA by forgetting to call uvm_km_free...oops!
From rmind@.
|
1.3 | 28-Mar-2014 |
riastradh | Remove needless splvm/splx calls.
From rmind@, who explained that the pmap(9) man page is wrong.
|
1.2 | 18-Mar-2014 |
riastradh | Merge riastradh-drm2 to HEAD.
|
1.1 | 24-Jul-2013 |
riastradh | branches: 1.1.2; file linux_kmap.c was initially added on branch riastradh-drm2.
|
1.1.2.4 | 21-Jan-2014 |
riastradh | Call uvm_vm_page_to_phys before taking a spin lock to ease debugging.
|
1.1.2.3 | 08-Sep-2013 |
riastradh | Fix kunmap: unlike kunmap_atomic, it takes a page, not a vaddr.
Unmapping the vaddr where the struct vm_page is stored makes for a rather confusing state of affairs!
|
1.1.2.2 | 24-Jul-2013 |
riastradh | Implement non-`atomic' kmap/kunmap in drm2 Linux shims.
Uses uvm_km_alloc and pmap_kenter_pa. Does not use direct mappings on architectures that support this (e.g., amd64).
|
1.1.2.1 | 24-Jul-2013 |
riastradh | Implement Linux alloc_page/__free_page and kmap_atomic/kunmap_atomic.
|
1.4.10.3 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.4.10.2 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.4.10.1 | 28-Mar-2014 |
tls | file linux_kmap.c was added on branch tls-maxphys on 2014-08-20 00:04:22 +0000
|
1.4.8.1 | 21-Sep-2014 |
snj | Pull up following revision(s) (requested by riastradh in ticket #101): sys/external/bsd/drm2/linux/linux_kmap.c: revisions 1.5-1.10 - Use an adaptive lock where a spin lock is not needed. - Tweak style. - Assert sleepable where appropriate. - Use __diagused, not __unused. - Use direct map where available.
|
1.4.6.2 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.4.6.1 | 28-Mar-2014 |
yamt | file linux_kmap.c was added on branch yamt-pagecache on 2014-05-22 11:40:56 +0000
|
1.4.4.2 | 18-May-2014 |
rmind | sync with head
|
1.4.4.1 | 28-Mar-2014 |
rmind | file linux_kmap.c was added on branch rmind-smpnet on 2014-05-18 17:46:01 +0000
|
1.11.2.1 | 06-Apr-2015 |
skrll | Sync with HEAD
|
1.12.18.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.12.16.1 | 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.9 | 19-Dec-2021 |
riastradh | drm: Work around busted kthread_join.
|
1.8 | 19-Dec-2021 |
riastradh | drm: Fix error return for kthread_run: error pointer, not null.
|
1.7 | 19-Dec-2021 |
riastradh | drm: Take advantage of kthread interlock to reduce diff.
|
1.6 | 19-Dec-2021 |
riastradh | drm: Rework Linux `kthread' abstraction to avoid race to sleep.
Requires passing in the caller's lock and condvar to kthread_run, but for the one user that appears not to be an onerous requirement.
|
1.5 | 19-Dec-2021 |
riastradh | drm: Trigger `spurious' wakeup for kthread_stop too.
|
1.4 | 19-Dec-2021 |
riastradh | linux: In kthread_park, wake thread to re-check kthread_shouldpark.
Otherwise, the thread to pakr may be sleeping on some condvar not noticing it has to notify kthread_park --> deadlock.
|
1.3 | 19-Dec-2021 |
riastradh | linux: Make kthread_park/stop work at IPL_VM.
Needed in order to hold spin locks around it.
|
1.2 | 19-Dec-2021 |
riastradh | linux: Paranoia: Don't read kt_shouldstop unlocked.
|
1.1 | 19-Dec-2021 |
riastradh | drm: linux kthread stubs
|
1.2 | 18-Mar-2014 |
riastradh | branches: 1.2.4; 1.2.6; 1.2.10; Merge riastradh-drm2 to HEAD.
|
1.1 | 24-Jul-2013 |
riastradh | branches: 1.1.2; file linux_list_sort.c was initially added on branch riastradh-drm2.
|
1.1.2.1 | 24-Jul-2013 |
riastradh | Add linux_list_sort.c implementing list_sort.
Algorithm is merge sort using binary counting in a temporary array of 64 elements on the stack, big enough for any list that'll fit into memory in a 64-bit address space, but small enough to fit comfortably on the stack.
|
1.2.10.2 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.2.10.1 | 18-Mar-2014 |
tls | file linux_list_sort.c was added on branch tls-maxphys on 2014-08-20 00:04:22 +0000
|
1.2.6.2 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.2.6.1 | 18-Mar-2014 |
yamt | file linux_list_sort.c was added on branch yamt-pagecache on 2014-05-22 11:40:56 +0000
|
1.2.4.2 | 18-May-2014 |
rmind | sync with head
|
1.2.4.1 | 18-Mar-2014 |
rmind | file linux_list_sort.c was added on branch rmind-smpnet on 2014-05-18 17:46:01 +0000
|
1.14 | 01-Sep-2022 |
riastradh | drm: Fix dma fence stub so it works with locking operations.
|
1.13 | 19-Dec-2021 |
riastradh | drm: linux kthread stubs
|
1.12 | 19-Dec-2021 |
riastradh | linux: Draft irq_work shims, in terms of a softint.
Doesn't actually run in hardirq context, but who's gonna notice...
|
1.11 | 19-Dec-2021 |
riastradh | linux/wait_bit.h
|
1.10 | 19-Dec-2021 |
riastradh | Draft Linux tasklet implementation.
|
1.9 | 27-Aug-2018 |
riastradh | Hash-locked atomic64 to give ports like powerpc32 a chance at radeon.
|
1.8 | 27-Aug-2018 |
riastradh | Draft implementation of the Linux reservation and fence APIs.
|
1.7 | 27-Aug-2018 |
riastradh | Implement some of the Linux RCU API.
|
1.6 | 13-Apr-2015 |
pgoyette | branches: 1.6.16; 1.6.18; Update module dependencies:
drmkms does not depend on iic drmkms_linux depends on i2cexec
|
1.5 | 11-Nov-2014 |
christos | branches: 1.5.2; finalize the idr code.
|
1.4 | 16-Jul-2014 |
riastradh | branches: 1.4.2; 1.4.4; First whack at radeon driver.
No hardware to test yet, but it builds.
|
1.3 | 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.2 | 18-Mar-2014 |
riastradh | branches: 1.2.2; 1.2.4; 1.2.6; Merge riastradh-drm2 to HEAD.
|
1.1 | 04-Mar-2014 |
riastradh | branches: 1.1.2; file linux_module.c was initially added on branch riastradh-drm2.
|
1.1.2.1 | 04-Mar-2014 |
riastradh | Rework drm2 configuration and modularization.
- Split drm2.kmod into drmkms_linux, drmkms, drmkms_pci. - Split up drmkms-related files.* similarly. - Make drm_agp_* routines hooks that the drmkms_pci module installs. - Reuse drm device major 180 for (old) drm and drmkms.
Now old drm and new drmkms can coexist happily in the same tree, with or without PCI, and require no changes to userland.
|
1.2.6.2 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.2.6.1 | 18-Mar-2014 |
yamt | file linux_module.c was added on branch yamt-pagecache on 2014-05-22 11:40:56 +0000
|
1.2.4.2 | 18-May-2014 |
rmind | sync with head
|
1.2.4.1 | 18-Mar-2014 |
rmind | file linux_module.c was added on branch rmind-smpnet on 2014-05-18 17:46:01 +0000
|
1.2.2.1 | 10-Aug-2014 |
tls | Rebase.
|
1.4.4.3 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.4.4.2 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.4.4.1 | 16-Jul-2014 |
tls | file linux_module.c was added on branch tls-maxphys on 2014-08-20 00:04:22 +0000
|
1.4.2.1 | 11-Jan-2015 |
snj | Pull up following revision(s) (requested by chs in ticket #401): distrib/sets/lists/modules/md.amd64: revisions 1.46, 1.47 via patch distrib/sets/lists/modules/md.i386: revisions 1.49, 1.50 sys/dev/ic/pcdisplayvar.h: revision 1.20 sys/dev/ic/vgavar.h: revision 1.32 sys/external/bsd/drm/dist/bsd-core/drm_drv.c: revision 1.26 sys/external/bsd/drm2/dist/drm/drm_agpsupport.c: revisions 1.5, 1.6 sys/external/bsd/drm2/dist/drm/drm_pci.c: revisions 1.4, 1.5 sys/external/bsd/drm2/dist/drm/drm_stub.c: revisions 1.6-1.8 sys/external/bsd/drm2/dist/drm/i915/i915_drv.h: revision 1.11 sys/external/bsd/drm2/dist/drm/radeon/cik.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/ni.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/si.c: revision 1.3 sys/external/bsd/drm2/dist/include/drm/drmP.h: revisions 1.8, 1.9 sys/external/bsd/drm2/dist/include/drm/drm_agpsupport.h: revisions 1.3, 1.4 sys/external/bsd/drm2/drm/drm_drv.c: revision 1.11 sys/external/bsd/drm2/drm/drm_module.c: revision 1.9 sys/external/bsd/drm2/drm/drm_sysctl.c: revisions 1.1-1.4 sys/external/bsd/drm2/drm/drm_vm.c: revision 1.7 sys/external/bsd/drm2/drm/files.drmkms: revisions 1.8, 1.9 sys/external/bsd/drm2/i915drm/files.i915drmkms: revision 1.9 sys/external/bsd/drm2/i915drm/i915_module.c: revisions 1.4, 1.5 sys/external/bsd/drm2/include/drm/drm_sysctl.h: revisions 1.1, 1.2 sys/external/bsd/drm2/include/linux/hdmi.h: revisions 1.3-1.5 sys/external/bsd/drm2/include/linux/module.h: revision 1.5 sys/external/bsd/drm2/include/linux/moduleparam.h: revisions 1.3, 1.4 sys/external/bsd/drm2/include/linux/pci.h: revision 1.11 sys/external/bsd/drm2/linux/linux_module.c: revision 1.5 sys/external/bsd/drm2/nouveau/files.nouveau: revision 1.4 sys/external/bsd/drm2/nouveau/nouveau_module.c: revision 1.3 sys/external/bsd/drm2/pci/drm_pci.c: revision 1.8 sys/external/bsd/drm2/pci/drm_pci_module.c: revision 1.3 sys/external/bsd/drm2/radeon/radeon_module.c: revision 1.3 sys/external/bsd/drm2/ttm/files.ttm: revision 1.1 sys/modules/drm2pci/Makefile: file removal sys/modules/drmkms/Makefile: revisions 1.4-1.7 sys/modules/drmkms_linux/Makefile: revision 1.5 sys/modules/drmkms_pci/Makefile: revisions 1.3, 1.4 sys/modules/i915drmkms/Makefile: revisions 1.5-1.7 Split drm ttm config into a separate file. -- Fix module build of drmkms_linux. -- Remove vestigial drm2pci module, replaced by drmkms_pci. -- fix the module class. -- add the drmkms modules -- make a drm_agp_destroy() function to resolve the circular dependency between drmkms and drmkms_pci -- finalize the idr code. -- add drm_agp_destroy -- fix drmkms module path for xen. -- fix build failure. /tmp/bracket/build/2014.11.10.22.43.46-i386/src/sys/external/bsd/drm2/include/linux/pci.h:36:20: fatal error: acpica.h: No such file or directory -- make this work: add agpsupport and sysctl code -- move agpsupport to drmkms to avoid circular dependencies. -- turn on dynamic ldscript creation to handle link set symbol definitions used in the automatic sysctl creation. -- Add __link_set based code to automatically convert the linux module parameters into sysctls. -- this module needs MKLDSCRIPT too now -- more _KERNEL_OPT -- prettify and add to all the modules that have it. -- fix description setting. -- Adjust flags to allow building with clang. -- Fix build with clang. -- Drop casts in favour of expressions that actually give the right pointer. -- Move all PCI/AGP code back to drmkms_pci module where it belongs. -- Use correct length for hdmi_infoframe_header_pack in <linux/hdmi.h>. Fixes PR kern/49411. -- Back out previous, fix PR kern/49411 correctly. frame->header.length is not initialized in the vendor packet case. Instead, make hdmi_infoframe_header_pack take the packet length and subtract the size of the header when packing the header. (Could make it take the payload length instead, but for callers it is more convenient to have a name for the whole packet length.) -- Fix bounds checking in hdmi_infoframe_header_pack (PR kern/49411). -- Trivial build fix for no options SYSCTL_INCLUDE_DESCR case, to avoid -Werror. OK christos@ and riastradh@ -- fix debugging compilation (ALL kernel) -- nouveau_nv50_fence.c needs -Wno-shadow. -- fix a confusion between dev_t and devmajor_t, and include the primary minor when calling makedev().
|
1.5.2.1 | 06-Jun-2015 |
skrll | Sync with HEAD
|
1.6.18.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.6.16.1 | 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.2 | 19-Dec-2021 |
riastradh | Match function name to code
Author: Maya Rashish <maya@NetBSD.org> Committer: Taylor R Campbell <riastradh@NetBSD.org>
|
1.1 | 19-Dec-2021 |
riastradh | i915: more work
|
1.30 | 24-Jun-2024 |
riastradh | linux_pci: Fix shifto in pci_get_class.
It looks like Linux's pci_get_class also matches the interface part of the PCI class register (but not the revision part), and I hadn't noticed that in the previous shim structured differently.
|
1.29 | 23-Jun-2024 |
riastradh | linux_pci: Nix pci enumeration kludges.
Now that we can pass a cookie through, this stuff will be a little less fragile.
|
1.28 | 19-May-2024 |
riastradh | linux: Add a few more cases to pci_get_class.
Should fix crash on boot with amdgpu now that the ACPI business is enabled.
|
1.27 | 30-Sep-2023 |
mrg | drm: enable almost all PCIe functionality
linux_pci.c revisions 1.24 and 1.25 implemented most of the remaining missing PCIe backends, but only enabled them for some amdgpu portions.
this enables all code marked with "XXX amdgpu pcie", "XXX radeon pcie", and "XXX pcie speed". for most of it, simply removing #ifndefs __NetBSD__ to enable compliation was required, once the new "bus->max_bus_speed" member was added to struct pci_bus. add an "always fails" backend for pci_enable_atomic_ops_to_root() which seems to only be necessary for virtual GPU functionality (and could be implemented if needed.)
tested on radeon 5450, 7750, R7 240 [radeon], and RX 550 [amdgpu], and nvidia 750 and 1030 [nouveau].
this still does not quite work on nvidia cards. there are two problems that remain:
- the call to set the link speed is skipped because the speed is set to the default value of "-1". nvkm_pcie_set_link() will actually determine the right value for this and for some cards, calling this function if the current speed is -1 helps set the link speed. it may be that on linux other paths we don't have enabled properly would set this (there's one via debugfs, and a jetson specific one, though perhaps setting either AC or DC speed values as boot options (after hooking up these for netbsd) would currently work.
- worse, cards newer than kepler - geforce 900, 1000, and newer, are all lacking the backing support to set pcie link speed. the GT 1030 card i have been testing with remains at pcie 1.0.
|
1.26 | 04-Sep-2023 |
mrg | convert a KASSERT() into an if () panic() sequence to appease GCC 12.
OK riastradh@.
|
1.25 | 17-Oct-2022 |
mrg | branches: 1.25.2; add pcie capability and read request size linux compat, some pci root support
implement support for: - pcie_capability_read_dword() - pcie_capability_read_word() - pcie_capability_write_dword() - pcie_capability_write_word() - pcie_get_readrq() - pcie_set_readrq()
implement the "struct pci_dev" bus->self member by creating a minimal fake "struct pci_dev" for the pci bus itself. this is kind of gross. it checks that the current device's parent is a netbsd "pci" device, and that it has a (grand) parent "ppb" device, and then fills in the fake device based upon the pci and ppb devices.
add some PCIE_LCSR2_TGT_LSPEED encodings, and map them to linux names. map several other PCIE_LCSR and PCIE_LCAP names.
uncomment several pcie code segments in radeon and amdgpu. (not sure that we can test the amdgpu_si.c change, as we use the radeon version and the amdgpu version hangs on the one machine i have.)
tested on amdgpu (RX550) and radeon (7750 & 3650).
ok @riastradh
|
1.24 | 20-Sep-2022 |
mrg | fill out more of the linux pci API compat
- implement pcie_get_speed_cap(), pcie_bandwidth_available(), and pci_is_root_bus(). - expand "enum pci_bus_speed" to add PCIe 5.x and 6.x speeds. - add "enum pcie_link_width". - add defines for PCIE_LCSR_LINKSPEED (PCIe generation) and PCIE_LCSR_NLW (negotiated lane width) to pcireg.h - enable amdgpu_device_get_pcie_info() code now it works.
ok riastradh@
|
1.23 | 20-Jul-2022 |
riastradh | drm: Use real pci segment number, not pciN device unit.
|
1.22 | 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.21 | 27-Feb-2022 |
riastradh | drm: Deconditionalize pci_get_segment.
|
1.20 | 19-Dec-2021 |
riastradh | linux: pci_name
|
1.19 | 19-Dec-2021 |
riastradh | i915: another whack at it
|
1.18 | 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.17 | 19-Dec-2021 |
riastradh | Include acpica.h for NACPICA.
|
1.16 | 19-Dec-2021 |
riastradh | Move acpi includes to linux_pci.c to avoid pollution.
|
1.15 | 19-Dec-2021 |
riastradh | Stub dev_is_pci
Author: Maya Rashish <maya@NetBSD.org>
|
1.14 | 19-Dec-2021 |
riastradh | Define pci_is_thunderbolt_attached (answer: no).
|
1.13 | 19-Dec-2021 |
riastradh | Update change to Linux struct resource members: end, not size.
|
1.12 | 19-Dec-2021 |
riastradh | Define pci_get/set_drvdata properly.
|
1.11 | 19-Dec-2021 |
riastradh | pci_get_bus_and_slot -> pci_get_domain_bus_and_slot
|
1.10 | 12-Feb-2020 |
jdolecek | re-enable MSI - this actually enables MSI only for intel/radeon/generic which are reported to work fine, while nouveau (which breaks with MSI) still uses INTx
see the thread http://mail-index.netbsd.org/current-users/2020/02/06/msg037661.html
|
1.9 | 07-Feb-2020 |
jmcneill | Turn MSI off again.
|
1.8 | 03-Feb-2020 |
jmcneill | Re-enable PCI MSI for DRM devices
|
1.7 | 18-Jan-2020 |
jmcneill | Use pci_get_segment if available
|
1.6 | 28-Aug-2018 |
riastradh | branches: 1.6.2; 1.6.6; 1.6.10; 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.5 | 27-Aug-2018 |
riastradh | Try agp_i810_borrow only if CONFIG_AGP is enabled.
|
1.4 | 27-Aug-2018 |
riastradh | Treat pre-enabled devices as 1 enablecnt.
|
1.3 | 27-Aug-2018 |
riastradh | Zero the whole thing for good measure.
|
1.2 | 27-Aug-2018 |
riastradh | Make sure the resources are marked unmapped initially.
|
1.1 | 27-Aug-2018 |
riastradh | Move the Linux PCI shim into its very own .c file.
The poor thing has deserved this for a very long time, even though it is full of kludges. Also I'm tired of recompiling everything every time I touch it.
|
1.6.10.2 | 29-Feb-2020 |
ad | Sync with head.
|
1.6.10.1 | 25-Jan-2020 |
ad | Sync with head.
|
1.6.6.3 | 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.6.6.2 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.6.6.1 | 28-Aug-2018 |
christos | file linux_pci.c was added on branch phil-wifi on 2019-06-10 22:08:33 +0000
|
1.6.2.2 | 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.6.2.1 | 28-Aug-2018 |
pgoyette | file linux_pci.c was added on branch pgoyette-compat on 2018-09-06 06:56:37 +0000
|
1.25.2.1 | 04-Oct-2024 |
martin | Pull up following revision(s) (requested by rin in ticket #928):
sys/external/bsd/drm2/dist/drm/drm_gem.c: revision 1.25 sys/external/bsd/drm2/dist/drm/radeon/radeon_ci_dpm.c: revision 1.7 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/priv.h: revision 1.4 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_acpi.c: revision 1.4 sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h: revision 1.6 sys/external/bsd/drm2/dist/drm/i915/i915_drv.h: revision 1.49 sys/external/bsd/drm2/include/linux/mxm-wmi.h: revision 1.1 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_pcie.c: revision 1.4 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c: revision 1.13 sys/external/bsd/common/include/linux/bitops.h: revision 1.17 sys/external/bsd/drm2/nouveau/files.nouveau: revision 1.40 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.30 sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.h: revision 1.5 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_pcie.c: revision 1.5 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm/nouveau_nvkm_subdev_mxm_base.c: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c: revision 1.12 sys/external/bsd/drm2/dist/drm/radeon/radeon_rv770.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp/nouveau_nvkm_engine_disp_sorgm200.c: revision 1.3 sys/external/bsd/common/include/linux/printk.h: revision 1.14 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_gk20a.c: revision 1.10 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vi.c: revision 1.4 sys/external/bsd/drm2/include/linux/acpi.h: revision 1.11 sys/external/bsd/drm2/drm/drm_cdevsw.c: revision 1.31 sys/external/bsd/drm2/dist/drm/radeon/radeon_si.c: revision 1.6 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.c: revision 1.5 sys/external/bsd/drm2/dist/drm/i915/display/intel_acpi.h: revision 1.5 sys/external/bsd/drm2/include/acpi/video.h: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen.c: revision 1.6 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.h: revision 1.4 sys/arch/sparc64/include/pci_machdep.h: revision 1.31 sys/arch/sparc64/dev/pci_machdep.c: revision 1.83 sys/external/bsd/drm2/include/linux/kref.h: revision 1.14 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c: revision 1.12 sys/external/bsd/drm2/linux/linux_dma_buf.c: revision 1.17 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadowacpi.c: revision 1.4 sys/external/bsd/drm2/drm/drm_module.c: revision 1.32 sys/external/bsd/drm2/dist/drm/i915/i915_gem.h: revision 1.8 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_dmabuf.c: revision 1.7 sys/external/bsd/drm2/include/linux/smp.h: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_si.c: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c: revision 1.20 sys/arch/x86/x86/bus_dma.c: revision 1.91 sys/external/bsd/drm2/radeon/files.radeon: revision 1.40 sys/external/bsd/drm2/include/acpi/acpi_bus.h: revision 1.1 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drv.h: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c: revision 1.21 sys/external/bsd/common/include/asm/barrier.h: revision 1.20 sys/external/bsd/drm2/include/linux/nbsd-namespace-acpi.h: revision 1.2 sys/external/bsd/common/include/asm/barrier.h: revision 1.21 sys/modules/drmkms/drmkms_pci.h: revision 1.1 sys/external/bsd/drm2/dist/drm/drm_dp_helper.c: revision 1.17 sys/external/bsd/drm2/radeon/radeon_pci.c: revision 1.23 sys/external/bsd/drm2/linux/linux_xa.c: revision 1.4 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.23 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.24 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.25 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.26 sys/dev/pci/pcivar.h: revision 1.120 sys/arch/xen/include/pci_machdep.h: revision 1.24 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.26 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.27 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.27 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.28 sys/external/bsd/drm2/dist/drm/radeon/radeon_cik.c: revision 1.8 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.28 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.29 sys/external/bsd/drm2/include/linux/pci.h: revision 1.57 sys/external/bsd/drm2/include/linux/pci.h: revision 1.58 sys/external/bsd/drm2/dist/drm/radeon/radeon_acpi.c: revision 1.5 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_display.c: revision 1.6 sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_hwmgr.c: revision 1.3 sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_stream.c: revision 1.3 share/man/man9/bus_dma.9: revision 1.69 sys/external/bsd/drm2/drm/drm_gem_cma_helper.c: revision 1.15 sys/external/bsd/drm2/dist/drm/radeon/radeon_acpi.c: revision 1.6 sys/external/bsd/drm2/dist/drm/radeon/radeon.h: revision 1.12 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cik.c: revision 1.7 sys/dev/acpi/acpi_mcfg.c: revision 1.29 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acpi.c: revision 1.6 sys/external/bsd/drm2/dist/drm/radeon/radeon_r600.c: revision 1.7 sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c: revision 1.13 sys/modules/amdgpu/Makefile: revision 1.9 sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c: revision 1.14 sys/external/bsd/common/linux/linux_tasklet.c: revision 1.12 sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/device.h: revision 1.10 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_mman.c: revision 1.23 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h: revision 1.9 sys/external/bsd/drm2/include/linux/interval_tree.h: revision 1.14 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_mman.c: revision 1.26 sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_smu7_hwmgr.c: revision 1.5 sys/dev/pci/pci.c: revision 1.168 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_mman.c: revision 1.27 sys/external/bsd/drm2/dist/drm/radeon/radeon_si_dpm.c: revision 1.9 sys/external/bsd/drm2/pci/files.drmkms_pci: revision 1.18 sys/external/bsd/drm2/linux/linux_sync_file.c: revision 1.3 sys/external/bsd/drm2/amdgpu/files.amdgpu: revision 1.31 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_tegra.c: revision 1.4 sys/external/bsd/drm2/dist/drm/drm_gem.c: revision 1.24 sys/arch/xen/xen/xpci_xenbus.c: revision 1.29
drm: Eliminate __HAVE_ATOMIC_AS_MEMBAR conditionals. Discussed on tech-kern: https://mail-index.netbsd.org/tech-kern/2023/02/23/msg028729.html
linux asm/barrier.h: Fix !MULTIPROCESSOR build.
remove "nouveau" from a comment. noted by jmcneill.
drm: KASSERT(A && B) -> KASSERT(A); KASSERT(B) comment a function that has a clear overbounds read but it isn't used. found by GCC 12.
nix the NetBSD specific GEM_BUG_ON(). avoids GCC 12 warnings, and matches upstream closer. 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.
avoid a GCC 12 warning. there's a 1-element long array and a loop conditional that tries to see if indexes for it are not identical. as these indexes will always both be 0, the only valid index, the condition is always false. GCC 12 triggers a strange warning on this code that can never run (see below), so simply assert the array size is 1 and comment the rest. amdgpu_dc_stream.c:470:55: error: array subscript [0, 0] is outside array bounds of 'struct dc_writeback_info[1]' [-Werror=array-bounds] 470 | stream->writeback_info[j] = stream->writeback_info[i];
convert a KASSERT() into an if () panic() sequence to appease GCC 12. OK 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.)
drmkms: Fix module build. avoid an unlikely array bounds issue picked up by GCC 12. nvkm_pcie_speed() can return -1, which is then used as an array index, so make this default return PCIe 1.0 speeds.
drm: enable almost all PCIe functionality linux_pci.c revisions 1.24 and 1.25 implemented most of the remaining missing PCIe backends, but only enabled them for some amdgpu portions. this enables all code marked with "XXX amdgpu pcie", "XXX radeon pcie", and "XXX pcie speed". for most of it, simply removing #ifndefs __NetBSD__ to enable compliation was required, once the new "bus->max_bus_speed" member was added to struct pci_bus. add an "always fails" backend for pci_enable_atomic_ops_to_root() which seems to only be necessary for virtual GPU functionality (and could be implemented if needed.) tested on radeon 5450, 7750, R7 240 [radeon], and RX 550 [amdgpu], and nvidia 750 and 1030 [nouveau]. this still does not quite work on nvidia cards. there are two problems that remain: - the call to set the link speed is skipped because the speed is set to the default value of "-1". nvkm_pcie_set_link() will actually determine the right value for this and for some cards, calling this function if the current speed is -1 helps set the link speed. it may be that on linux other paths we don't have enabled properly would set this (there's one via debugfs, and a jetson specific one, though perhaps setting either AC or DC speed values as boot options (after hooking up these for netbsd) would currently work. - worse, cards newer than kepler - geforce 900, 1000, and newer, are all lacking the backing support to set pcie link speed. the GT 1030 card i have been testing with remains at pcie 1.0.
radeon: fix and enable ACPI methods for getting ROM BIOS The hacky way of getting the BIOS mapped only works on x86. ACPI should be preferred if available. Makes BIOS reading though VFCT work on aarch64 with EDK2. (But only if EDK2 has POSTed the GPU.) XXX amdgpu should get the same treatment.
drm: put_cpu() should enable preemption, not disable it again
drm(4): make pr_debug equivalent to aprint_debug significantly reduces the default spam from amdgpu(4).
drm: Set CONFIG_ACPI in linux/acpi.h and make it build.
Leave a little ACPI-related functionality disabled for now, like getting EDID out of ACPI -- needs a bit more work to make this work, and I don't have hardware to work on that. Should help with failures of the forms: - unable to locate a BIOS ROM - bios: unable to locate usable image on various machines.
radeon_acpi.c: ifdef out unused function on NetBSD. Should fix syzkaller build.
drm(4): Fix st_rdev in stat. dminor->index already has the 64*type adjustment, as allocated in drm_minor_alloc. PR kern/58180
linux_sync_file: Fix missing init/fini steps. Noted by rjs@. PR kern/58210
ttm: Sync ttm_bo_uvm_fault_idle better with Linux. PR xsrc/58133 ttm: Undo mistake in previous.
PR xsrc/58133 linux: Add a few more cases to pci_get_class. Should fix crash on boot with amdgpu now that the ACPI business is enabled.
i915: Fix dmabuf mmap object.
drm: Fix missing bounds checks in dma buf mmap.
drm_gem.c: Fix sense of assertion. This is the opposite of WARN_ON. Noted by rjs@.
drm_gem.c: Enable drm_gem_fence_array_add now that we emulate xa. linux_xa: Delete and replace collision in xa_store as intended. Don't free the colliding node that's still in the tree. Noted by rjs@.
i915_gem_mman.c: Apply mmap types via pmap flags. This way, userland gets buffers mapped write-combining or uncached as needed. PR xsrc/58307
x86: Teach bus_dmamem_map about BUS_DMA_PREFETCHABLE. PR port-amd64/58308
bus_dma(9): Document BUS_DMA_PREFETCHABLE. Like BUS_DMA_NOCACHE. Doesn't absolve you of the need for bus_dmamap_sync, but if you later pass the vaddr to bus_dmamap_load, the DMA map might notice the mapping is write-combining and use this to make bus_dmamap_sync cheaper. PR kern/58309
nouveau_nvkm_subdev_instmem_gk20a.c: Use BUS_DMA_PREFETCHABLE. Matches Linux's pgprot_writecombine. Unclear where the appropriate bus_dmamap_sync happens, or is supposed to happen -- not using it would be wrong, but asking for a prefetchable mapping may paper over symptoms, at least!
ttm: Sync more with Linux. Add the original copyright and attribution since this is now, intentionally, a modified copy of the original and not just roughly the same algorithm.
ttm: Respect PGO_ALLPAGES. Not sure this is useful but it reduces XXX's and makes this match udv_fault better so it's easier to understand.
ttm: Sync cacheability flag logic with Linux.
ttm: Add XXX about readahead fault failures.
pci: Pass cookie through pci_find_device, pci_enumerate_bus, take 2. New functions pci_find_device1 and pci_enumerate_bus1 have the cookie argument. Existing symbols pci_find_device and pci_enumerate_bus are now wrappers for the cookieless version. This will allow pci_find_device callers to pass a cookie through to the match function so they can keep state or pass in extra parameters like b/d/f numbers, which will allow us to nix some horrible kludges in the Linux PCI API emulation for drm (and, perhaps, Intel wifi). This change drops the symbol pci_probe_device, in favour of a new pci_probe_device1 with the cookie argument. But I don't think that requires a revbump because it's only called by MD pci_enumerate_bus1 implementations, which don't live in modules anyway. Take 2: Make sure to handle NULL match function. linux_pci: Nix pci enumeration kludges. Now that we can pass a cookie through, this stuff will be a little less fragile.
i915: Omit needless i915_gem_object_pin/unpin_pages cycle in fault. vm_fault_cpu and vm_fault_gtt, called by i915_gem_fault, already do the pinning and unpinning internally, so there is no need for i915_gem_fault to do it. No functional change intended, except that the transient pin count will be one lower than before during the fault routine (but it will still be positive).
i915: Match Linux fault routine return code actions. Omit needless EINTR interception -- this is now handled by i915_error_to_vmf_fault. Earlier revert was over a false alarm -- bisection shows the new warnings arose from linux_pci.c 1.29 here: https://mail-index.netbsd.org/source-changes/2024/06/23/msg151929.html
linux_pci: Fix shifto in pci_get_class. It looks like Linux's pci_get_class also matches the interface part of the PCI class register (but not the revision part), and I hadn't noticed that in the previous shim structured differently.
With GCC12 kernel ALL/amd64 triggers "'sor' may be used uninitialized". If "sublinks & 3" is zero GCC is right and sor[1] may be returned unitialized. Fix by initializing "sor" to zero to return -1 instead of uninitialized value. Ok: Taylor R Campbell <riastradh@>
amdgpu: Map BAR 2, not BAR 5, on pre-bonaire chips. PR kern/58384
amdgpu: Map consecutive pages, not the same one over and over again. PR kern/58385
linux/bitops: Fix overestimate for BITS_TO_LONGS(9) Fortunately, this seems harmless except for allocating excessive buffer memory. Pointed out by nonaka@, OK riastradh@.
|
1.4 | 19-Dec-2021 |
riastradh | linux: GFP_ATOMIC, not GFP_NOWAIT
|
1.3 | 19-Dec-2021 |
riastradh | linux: membar_exit not needed if we use locks here.
|
1.2 | 19-Dec-2021 |
riastradh | linux: Kludgily make radix tree safe for RCU
Using a lock is completely stupid (gotta be cpu_simple_lock because there's no radix_tree_destroy or anything), and the nonsense to do unvolatile/unconst is garbage, but it will serve to make this safe for RCU until someone makes our radix tree code RCU-safe (which Someone^TM should totally do).
|
1.1 | 19-Dec-2021 |
riastradh | linux: Kludgey radix tree shims
|
1.9 | 19-Dec-2021 |
riastradh | Move Linux RCU to common.
|
1.8 | 19-Dec-2021 |
riastradh | Implement kfree_rcu.
|
1.7 | 19-Dec-2021 |
riastradh | Make sure the RCU GC thread processes all callbacks before dying.
|
1.6 | 19-Dec-2021 |
riastradh | Implement rcu_barrier to wait for call_rcu callbacks.
gc.cv has multiple purposes now, so use cv_broadcast instead of cv_signal.
|
1.5 | 21-Jul-2021 |
skrll | need <sys/param.h> for COHERENCY_UNIT
|
1.4 | 27-Aug-2018 |
riastradh | branches: 1.4.2; 1.4.6; 1.4.20; dtrace sdt probes for linux rcu.
|
1.3 | 27-Aug-2018 |
riastradh | Make gc static. No need to use this private state elsewhere.
|
1.2 | 27-Aug-2018 |
riastradh | Don't forget to call kthread_exit.
|
1.1 | 27-Aug-2018 |
riastradh | Implement some of the Linux RCU API.
|
1.4.20.1 | 01-Aug-2021 |
thorpej | Sync with HEAD.
|
1.4.6.2 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.4.6.1 | 27-Aug-2018 |
christos | file linux_rcu.c was added on branch phil-wifi on 2019-06-10 22:08:33 +0000
|
1.4.2.2 | 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.4.2.1 | 27-Aug-2018 |
pgoyette | file linux_rcu.c was added on branch pgoyette-compat on 2018-09-06 06:56:37 +0000
|
1.25 | 19-Dec-2021 |
riastradh | Rename reservation_object -> dma_resv.
|
1.24 | 19-Dec-2021 |
riastradh | Draft implementation of reservation_object_copy_fences.
|
1.23 | 19-Dec-2021 |
riastradh | Judiciously insert __insn_barrier into reservation logic.
Nothing is volatile here, so we must handle the barriers ourselves.
Also note where membar_producer is implied.
|
1.22 | 19-Dec-2021 |
riastradh | const const const const const reservations
|
1.21 | 19-Dec-2021 |
riastradh | Add some more reservation API.
Define reservation_object_assert_held.
Just declare reservation_object_copy_fences for now, will implement later.
|
1.20 | 19-Dec-2021 |
riastradh | Rename more fields that Linux treats as part of the API, not opaque.
|
1.19 | 19-Dec-2021 |
riastradh | Let's try spelling the member the same way Linux does.
|
1.18 | 19-Dec-2021 |
riastradh | Linux API wants seqcount exposed in reservation object, so do that.
|
1.17 | 19-Dec-2021 |
riastradh | reservation_object_lock/lock_interruptible/trylock/unlock
|
1.16 | 19-Dec-2021 |
riastradh | reservation_object_get_excl_rcu
|
1.15 | 19-Dec-2021 |
riastradh | fence -> dma_fence in linux_reservation.c.
|
1.14 | 02-Aug-2021 |
riastradh | drm: Plug another fence leak.
XXX pullup-9
|
1.13 | 02-Aug-2021 |
riastradh | drm: Release fence if we're about to return too.
Should fix another fence leak.
XXX pullup-9
|
1.12 | 27-Jun-2021 |
riastradh | drm: Release fence after use.
May plug the dreaded radeon kmem memory leak.
XXX pullup-9
|
1.11 | 03-Sep-2018 |
riastradh | branches: 1.11.2; 1.11.6; 1.11.8; 1.11.20; Preserve signedness to return failure from fence_wait_timeout.
From mrg@.
|
1.10 | 27-Aug-2018 |
riastradh | Expand docstring for reservation_object_poll.
|
1.9 | 27-Aug-2018 |
riastradh | Let's try not to step on each others' toes, shall we?
|
1.8 | 27-Aug-2018 |
riastradh | Implement poll for reservations and dma bufs.
|
1.7 | 27-Aug-2018 |
riastradh | Clarify with comments and assertions.
|
1.6 | 27-Aug-2018 |
riastradh | There may not be an old list.
Nihil ex nihilo -- don't dereference null.
|
1.5 | 27-Aug-2018 |
riastradh | Acquire references in add_shared/excl.
|
1.4 | 27-Aug-2018 |
riastradh | Draft reservation_object_get_fences_rcu.
|
1.3 | 27-Aug-2018 |
riastradh | Apparently one can reserve_shared only once in a row. Simplify.
|
1.2 | 27-Aug-2018 |
riastradh | Wait for the read to be valid!
|
1.1 | 27-Aug-2018 |
riastradh | Draft implementation of the Linux reservation and fence APIs.
|
1.11.20.1 | 01-Aug-2021 |
thorpej | Sync with HEAD.
|
1.11.8.2 | 08-Aug-2021 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1327):
sys/external/bsd/drm2/linux/linux_reservation.c: revision 1.13 sys/external/bsd/drm2/linux/linux_reservation.c: revision 1.14
drm: Release fence if we're about to return too.
Should fix another fence leak.
XXX pullup-9
-
drm: Plug another fence leak.
XXX pullup-9
|
1.11.8.1 | 08-Jul-2021 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1320):
sys/external/bsd/drm2/linux/linux_reservation.c: revision 1.12
drm: Release fence after use.
May plug the dreaded radeon kmem memory leak. XXX pullup-9
|
1.11.6.2 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.11.6.1 | 03-Sep-2018 |
christos | file linux_reservation.c was added on branch phil-wifi on 2019-06-10 22:08:33 +0000
|
1.11.2.2 | 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.11.2.1 | 03-Sep-2018 |
pgoyette | file linux_reservation.c was added on branch pgoyette-compat on 2018-09-06 06:56:37 +0000
|
1.4 | 19-Dec-2021 |
riastradh | linux/rwsem: Work around broken lockdebug macros.
|
1.3 | 19-Dec-2021 |
riastradh | linux: Teach rw semaphores about lockdebug.
|
1.2 | 19-Dec-2021 |
riastradh | linux: Use IPL_VM for lock inside rw_semaphore.
down_read_trylock needs to work under a spin lock.
|
1.1 | 19-Dec-2021 |
riastradh | linux: Draft rwsem with bodgy semantics.
|
1.5 | 19-Dec-2021 |
riastradh | linux: Rename linux_sg.c -> linux_sgt.c.
Avoids collision with compat_linux.
|
1.4 | 19-Dec-2021 |
riastradh | linux: Accept multipage segments in sg_alloc_table_from_bus_dmamem.
|
1.3 | 19-Dec-2021 |
riastradh | i915: another whack at it
|
1.2 | 19-Dec-2021 |
riastradh | drm: Another pass over i915. Most of i915 gem builds now.
|
1.1 | 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.4 | 24-Dec-2021 |
riastradh | drm: Sprinkle some assertions into sg dma logic.
|
1.3 | 19-Dec-2021 |
riastradh | drm: Destroy dma map in sg_table_free.
Helps to reduce a little diff.
|
1.2 | 19-Dec-2021 |
riastradh | linux: Fix dma mapping to set READ|WRITE if bidi; clarify cases.
|
1.1 | 19-Dec-2021 |
riastradh | linux: Rename linux_sg.c -> linux_sgt.c.
Avoids collision with compat_linux.
|
1.2 | 19-Dec-2021 |
riastradh | Move Linux SRCU to common.
|
1.1 | 19-Dec-2021 |
riastradh | Draft SRCU implementation.
|
1.4 | 09-Apr-2022 |
riastradh | sys: Use membar_release/acquire around reference drop.
This just goes through my recent reference count membar audit and changes membar_exit to membar_release and membar_enter to membar_acquire -- this should make everything cheaper on most CPUs without hurting correctness, because membar_acquire is generally cheaper than membar_enter.
|
1.3 | 12-Mar-2022 |
riastradh | sys: Membar audit around reference count releases.
If two threads are using an object that is freed when the reference count goes to zero, we need to ensure that all memory operations related to the object happen before freeing the object.
Using an atomic_dec_uint_nv(&refcnt) == 0 ensures that only one thread takes responsibility for freeing, but it's not enough to ensure that the other thread's memory operations happen before the freeing.
Consider:
Thread A Thread B obj->foo = 42; obj->baz = 73; mumble(&obj->bar); grumble(&obj->quux); /* membar_exit(); */ /* membar_exit(); */ atomic_dec -- not last atomic_dec -- last /* membar_enter(); */ KASSERT(invariant(obj->foo, obj->bar)); free_stuff(obj);
The memory barriers ensure that
obj->foo = 42; mumble(&obj->bar);
in thread A happens before
KASSERT(invariant(obj->foo, obj->bar)); free_stuff(obj);
in thread B. Without them, this ordering is not guaranteed.
So in general it is necessary to do
membar_exit(); if (atomic_dec_uint_nv(&obj->refcnt) != 0) return; membar_enter();
to release a reference, for the `last one out hit the lights' style of reference counting. (This is in contrast to the style where one thread blocks new references and then waits under a lock for existing ones to drain with a condvar -- no membar needed thanks to mutex(9).)
I searched for atomic_dec to find all these. Obviously we ought to have a better abstraction for this because there's so much copypasta. This is a stop-gap measure to fix actual bugs until we have that. It would be nice if an abstraction could gracefully handle the different styles of reference counting in use -- some years ago I drafted an API for this, but making it cover everything got a little out of hand (particularly with struct vnode::v_usecount) and I ended up setting it aside to work on psref/localcount instead for better scalability.
I got bored of adding #ifdef __HAVE_ATOMIC_AS_MEMBAR everywhere, so I only put it on things that look performance-critical on 5sec review. We should really adopt membar_enter_preatomic/membar_exit_postatomic or something (except they are applicable only to atomic r/m/w, not to atomic_load/store_*, making the naming annoying) and get rid of all the ifdefs.
|
1.2 | 19-Dec-2021 |
riastradh | Provisionally work around cycle in x86 header files.
|
1.1 | 19-Dec-2021 |
riastradh | Draft stop_machine. Hope the callback runs quickly under splhigh...
|
1.3 | 28-Apr-2024 |
riastradh | linux_sync_file: Fix missing init/fini steps.
Noted by rjs@.
PR kern/58210
|
1.2 | 12-Feb-2022 |
thorpej | branches: 1.2.4; Add inline functions to manipulate the klists that link up knotes via kn_selnext:
- klist_init() - klist_fini() - klist_insert() - klist_remove()
These provide some API insulation from the implementation details of these lists (but not completely; see vn_knote_attach() and vn_knote_detach()). Currently just a wrapper around SLIST(9).
This will make it significantly easier to switch kn_selnext linkage to a different kind of list.
|
1.1 | 19-Dec-2021 |
riastradh | Draft sync_file.
|
1.2.4.1 | 04-Oct-2024 |
martin | Pull up following revision(s) (requested by rin in ticket #928):
sys/external/bsd/drm2/dist/drm/drm_gem.c: revision 1.25 sys/external/bsd/drm2/dist/drm/radeon/radeon_ci_dpm.c: revision 1.7 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/priv.h: revision 1.4 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_acpi.c: revision 1.4 sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h: revision 1.6 sys/external/bsd/drm2/dist/drm/i915/i915_drv.h: revision 1.49 sys/external/bsd/drm2/include/linux/mxm-wmi.h: revision 1.1 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_pcie.c: revision 1.4 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c: revision 1.13 sys/external/bsd/common/include/linux/bitops.h: revision 1.17 sys/external/bsd/drm2/nouveau/files.nouveau: revision 1.40 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.30 sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.h: revision 1.5 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_pcie.c: revision 1.5 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm/nouveau_nvkm_subdev_mxm_base.c: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c: revision 1.12 sys/external/bsd/drm2/dist/drm/radeon/radeon_rv770.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp/nouveau_nvkm_engine_disp_sorgm200.c: revision 1.3 sys/external/bsd/common/include/linux/printk.h: revision 1.14 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_gk20a.c: revision 1.10 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vi.c: revision 1.4 sys/external/bsd/drm2/include/linux/acpi.h: revision 1.11 sys/external/bsd/drm2/drm/drm_cdevsw.c: revision 1.31 sys/external/bsd/drm2/dist/drm/radeon/radeon_si.c: revision 1.6 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.c: revision 1.5 sys/external/bsd/drm2/dist/drm/i915/display/intel_acpi.h: revision 1.5 sys/external/bsd/drm2/include/acpi/video.h: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen.c: revision 1.6 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.h: revision 1.4 sys/arch/sparc64/include/pci_machdep.h: revision 1.31 sys/arch/sparc64/dev/pci_machdep.c: revision 1.83 sys/external/bsd/drm2/include/linux/kref.h: revision 1.14 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c: revision 1.12 sys/external/bsd/drm2/linux/linux_dma_buf.c: revision 1.17 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadowacpi.c: revision 1.4 sys/external/bsd/drm2/drm/drm_module.c: revision 1.32 sys/external/bsd/drm2/dist/drm/i915/i915_gem.h: revision 1.8 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_dmabuf.c: revision 1.7 sys/external/bsd/drm2/include/linux/smp.h: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_si.c: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c: revision 1.20 sys/arch/x86/x86/bus_dma.c: revision 1.91 sys/external/bsd/drm2/radeon/files.radeon: revision 1.40 sys/external/bsd/drm2/include/acpi/acpi_bus.h: revision 1.1 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drv.h: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c: revision 1.21 sys/external/bsd/common/include/asm/barrier.h: revision 1.20 sys/external/bsd/drm2/include/linux/nbsd-namespace-acpi.h: revision 1.2 sys/external/bsd/common/include/asm/barrier.h: revision 1.21 sys/modules/drmkms/drmkms_pci.h: revision 1.1 sys/external/bsd/drm2/dist/drm/drm_dp_helper.c: revision 1.17 sys/external/bsd/drm2/radeon/radeon_pci.c: revision 1.23 sys/external/bsd/drm2/linux/linux_xa.c: revision 1.4 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.23 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.24 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.25 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.26 sys/dev/pci/pcivar.h: revision 1.120 sys/arch/xen/include/pci_machdep.h: revision 1.24 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.26 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.27 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.27 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.28 sys/external/bsd/drm2/dist/drm/radeon/radeon_cik.c: revision 1.8 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.28 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.29 sys/external/bsd/drm2/include/linux/pci.h: revision 1.57 sys/external/bsd/drm2/include/linux/pci.h: revision 1.58 sys/external/bsd/drm2/dist/drm/radeon/radeon_acpi.c: revision 1.5 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_display.c: revision 1.6 sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_hwmgr.c: revision 1.3 sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_stream.c: revision 1.3 share/man/man9/bus_dma.9: revision 1.69 sys/external/bsd/drm2/drm/drm_gem_cma_helper.c: revision 1.15 sys/external/bsd/drm2/dist/drm/radeon/radeon_acpi.c: revision 1.6 sys/external/bsd/drm2/dist/drm/radeon/radeon.h: revision 1.12 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cik.c: revision 1.7 sys/dev/acpi/acpi_mcfg.c: revision 1.29 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acpi.c: revision 1.6 sys/external/bsd/drm2/dist/drm/radeon/radeon_r600.c: revision 1.7 sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c: revision 1.13 sys/modules/amdgpu/Makefile: revision 1.9 sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c: revision 1.14 sys/external/bsd/common/linux/linux_tasklet.c: revision 1.12 sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/device.h: revision 1.10 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_mman.c: revision 1.23 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h: revision 1.9 sys/external/bsd/drm2/include/linux/interval_tree.h: revision 1.14 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_mman.c: revision 1.26 sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_smu7_hwmgr.c: revision 1.5 sys/dev/pci/pci.c: revision 1.168 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_mman.c: revision 1.27 sys/external/bsd/drm2/dist/drm/radeon/radeon_si_dpm.c: revision 1.9 sys/external/bsd/drm2/pci/files.drmkms_pci: revision 1.18 sys/external/bsd/drm2/linux/linux_sync_file.c: revision 1.3 sys/external/bsd/drm2/amdgpu/files.amdgpu: revision 1.31 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_tegra.c: revision 1.4 sys/external/bsd/drm2/dist/drm/drm_gem.c: revision 1.24 sys/arch/xen/xen/xpci_xenbus.c: revision 1.29
drm: Eliminate __HAVE_ATOMIC_AS_MEMBAR conditionals. Discussed on tech-kern: https://mail-index.netbsd.org/tech-kern/2023/02/23/msg028729.html
linux asm/barrier.h: Fix !MULTIPROCESSOR build.
remove "nouveau" from a comment. noted by jmcneill.
drm: KASSERT(A && B) -> KASSERT(A); KASSERT(B) comment a function that has a clear overbounds read but it isn't used. found by GCC 12.
nix the NetBSD specific GEM_BUG_ON(). avoids GCC 12 warnings, and matches upstream closer. 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.
avoid a GCC 12 warning. there's a 1-element long array and a loop conditional that tries to see if indexes for it are not identical. as these indexes will always both be 0, the only valid index, the condition is always false. GCC 12 triggers a strange warning on this code that can never run (see below), so simply assert the array size is 1 and comment the rest. amdgpu_dc_stream.c:470:55: error: array subscript [0, 0] is outside array bounds of 'struct dc_writeback_info[1]' [-Werror=array-bounds] 470 | stream->writeback_info[j] = stream->writeback_info[i];
convert a KASSERT() into an if () panic() sequence to appease GCC 12. OK 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.)
drmkms: Fix module build. avoid an unlikely array bounds issue picked up by GCC 12. nvkm_pcie_speed() can return -1, which is then used as an array index, so make this default return PCIe 1.0 speeds.
drm: enable almost all PCIe functionality linux_pci.c revisions 1.24 and 1.25 implemented most of the remaining missing PCIe backends, but only enabled them for some amdgpu portions. this enables all code marked with "XXX amdgpu pcie", "XXX radeon pcie", and "XXX pcie speed". for most of it, simply removing #ifndefs __NetBSD__ to enable compliation was required, once the new "bus->max_bus_speed" member was added to struct pci_bus. add an "always fails" backend for pci_enable_atomic_ops_to_root() which seems to only be necessary for virtual GPU functionality (and could be implemented if needed.) tested on radeon 5450, 7750, R7 240 [radeon], and RX 550 [amdgpu], and nvidia 750 and 1030 [nouveau]. this still does not quite work on nvidia cards. there are two problems that remain: - the call to set the link speed is skipped because the speed is set to the default value of "-1". nvkm_pcie_set_link() will actually determine the right value for this and for some cards, calling this function if the current speed is -1 helps set the link speed. it may be that on linux other paths we don't have enabled properly would set this (there's one via debugfs, and a jetson specific one, though perhaps setting either AC or DC speed values as boot options (after hooking up these for netbsd) would currently work. - worse, cards newer than kepler - geforce 900, 1000, and newer, are all lacking the backing support to set pcie link speed. the GT 1030 card i have been testing with remains at pcie 1.0.
radeon: fix and enable ACPI methods for getting ROM BIOS The hacky way of getting the BIOS mapped only works on x86. ACPI should be preferred if available. Makes BIOS reading though VFCT work on aarch64 with EDK2. (But only if EDK2 has POSTed the GPU.) XXX amdgpu should get the same treatment.
drm: put_cpu() should enable preemption, not disable it again
drm(4): make pr_debug equivalent to aprint_debug significantly reduces the default spam from amdgpu(4).
drm: Set CONFIG_ACPI in linux/acpi.h and make it build.
Leave a little ACPI-related functionality disabled for now, like getting EDID out of ACPI -- needs a bit more work to make this work, and I don't have hardware to work on that. Should help with failures of the forms: - unable to locate a BIOS ROM - bios: unable to locate usable image on various machines.
radeon_acpi.c: ifdef out unused function on NetBSD. Should fix syzkaller build.
drm(4): Fix st_rdev in stat. dminor->index already has the 64*type adjustment, as allocated in drm_minor_alloc. PR kern/58180
linux_sync_file: Fix missing init/fini steps. Noted by rjs@. PR kern/58210
ttm: Sync ttm_bo_uvm_fault_idle better with Linux. PR xsrc/58133 ttm: Undo mistake in previous.
PR xsrc/58133 linux: Add a few more cases to pci_get_class. Should fix crash on boot with amdgpu now that the ACPI business is enabled.
i915: Fix dmabuf mmap object.
drm: Fix missing bounds checks in dma buf mmap.
drm_gem.c: Fix sense of assertion. This is the opposite of WARN_ON. Noted by rjs@.
drm_gem.c: Enable drm_gem_fence_array_add now that we emulate xa. linux_xa: Delete and replace collision in xa_store as intended. Don't free the colliding node that's still in the tree. Noted by rjs@.
i915_gem_mman.c: Apply mmap types via pmap flags. This way, userland gets buffers mapped write-combining or uncached as needed. PR xsrc/58307
x86: Teach bus_dmamem_map about BUS_DMA_PREFETCHABLE. PR port-amd64/58308
bus_dma(9): Document BUS_DMA_PREFETCHABLE. Like BUS_DMA_NOCACHE. Doesn't absolve you of the need for bus_dmamap_sync, but if you later pass the vaddr to bus_dmamap_load, the DMA map might notice the mapping is write-combining and use this to make bus_dmamap_sync cheaper. PR kern/58309
nouveau_nvkm_subdev_instmem_gk20a.c: Use BUS_DMA_PREFETCHABLE. Matches Linux's pgprot_writecombine. Unclear where the appropriate bus_dmamap_sync happens, or is supposed to happen -- not using it would be wrong, but asking for a prefetchable mapping may paper over symptoms, at least!
ttm: Sync more with Linux. Add the original copyright and attribution since this is now, intentionally, a modified copy of the original and not just roughly the same algorithm.
ttm: Respect PGO_ALLPAGES. Not sure this is useful but it reduces XXX's and makes this match udv_fault better so it's easier to understand.
ttm: Sync cacheability flag logic with Linux.
ttm: Add XXX about readahead fault failures.
pci: Pass cookie through pci_find_device, pci_enumerate_bus, take 2. New functions pci_find_device1 and pci_enumerate_bus1 have the cookie argument. Existing symbols pci_find_device and pci_enumerate_bus are now wrappers for the cookieless version. This will allow pci_find_device callers to pass a cookie through to the match function so they can keep state or pass in extra parameters like b/d/f numbers, which will allow us to nix some horrible kludges in the Linux PCI API emulation for drm (and, perhaps, Intel wifi). This change drops the symbol pci_probe_device, in favour of a new pci_probe_device1 with the cookie argument. But I don't think that requires a revbump because it's only called by MD pci_enumerate_bus1 implementations, which don't live in modules anyway. Take 2: Make sure to handle NULL match function. linux_pci: Nix pci enumeration kludges. Now that we can pass a cookie through, this stuff will be a little less fragile.
i915: Omit needless i915_gem_object_pin/unpin_pages cycle in fault. vm_fault_cpu and vm_fault_gtt, called by i915_gem_fault, already do the pinning and unpinning internally, so there is no need for i915_gem_fault to do it. No functional change intended, except that the transient pin count will be one lower than before during the fault routine (but it will still be positive).
i915: Match Linux fault routine return code actions. Omit needless EINTR interception -- this is now handled by i915_error_to_vmf_fault. Earlier revert was over a false alarm -- bisection shows the new warnings arose from linux_pci.c 1.29 here: https://mail-index.netbsd.org/source-changes/2024/06/23/msg151929.html
linux_pci: Fix shifto in pci_get_class. It looks like Linux's pci_get_class also matches the interface part of the PCI class register (but not the revision part), and I hadn't noticed that in the previous shim structured differently.
With GCC12 kernel ALL/amd64 triggers "'sor' may be used uninitialized". If "sublinks & 3" is zero GCC is right and sor[1] may be returned unitialized. Fix by initializing "sor" to zero to return -1 instead of uninitialized value. Ok: Taylor R Campbell <riastradh@>
amdgpu: Map BAR 2, not BAR 5, on pre-bonaire chips. PR kern/58384
amdgpu: Map consecutive pages, not the same one over and over again. PR kern/58385
linux/bitops: Fix overestimate for BITS_TO_LONGS(9) Fortunately, this seems harmless except for allocating excessive buffer memory. Pointed out by nonaka@, OK riastradh@.
|
1.5 | 19-Dec-2021 |
riastradh | linux: Fix wait_bit semantics.
- wait_on_bit is supposed to wait until the bit is cleared, not set.
- wait_on_bit_timeout is supposed to return 0 on success, -EAGAIN on faiure.
Omit wake_up_bit; nothing uses it and clear_and_wake_up_bit is a more semantically coherent operation.
|
1.4 | 19-Dec-2021 |
riastradh | linux: Add clear_and_wake_up_bit.
|
1.3 | 19-Dec-2021 |
riastradh | wait_on_bit
|
1.2 | 19-Dec-2021 |
riastradh | Fix thinko: ERESTART, not EWOULDBLOCK.
|
1.1 | 19-Dec-2021 |
riastradh | linux/wait_bit.h
|
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
|
1.12 | 15-Nov-2015 |
jakllsch | Avoid NULL dereference in linux_worker_intr() in WORK_DELAYED_CANCELLED case.
Potentially fixes PR#49560.
|
1.11 | 17-Oct-2015 |
jmcneill | include sys/cpu.h for CPU_INFO_ITERATOR
|
1.10 | 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.9 | 04-Nov-2014 |
jmcneill | branches: 1.9.2; This code should be MP-safe. Use IPL_SCHED in place of IPL_DRM/IPL_VM and set D_MPSAFE flag in cdevsw.
|
1.8 | 29-Aug-2014 |
riastradh | Don't forget to lock wq_lock around handling wq_delayed.
|
1.7 | 29-Jul-2014 |
riastradh | branches: 1.7.2; 1.7.4; Linux wq locks are taken with spin locks held, so need IPL_VM.
|
1.6 | 27-Jul-2014 |
riastradh | Linux work is queued in intr context, so block intrs when locking.
(Yes, this getting out of hand.)
|
1.5 | 25-Jul-2014 |
riastradh | This case is not supposed to fall through!
|
1.4 | 16-Jul-2014 |
riastradh | First whack at radeon driver.
No hardware to test yet, but it builds.
|
1.3 | 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.2 | 18-Mar-2014 |
riastradh | branches: 1.2.2; 1.2.4; 1.2.6; Merge riastradh-drm2 to HEAD.
|
1.1 | 30-Dec-2013 |
riastradh | branches: 1.1.2; file linux_work.c was initially added on branch riastradh-drm2.
|
1.1.2.10 | 04-Mar-2014 |
riastradh | Rework drm2 configuration and modularization.
- Split drm2.kmod into drmkms_linux, drmkms, drmkms_pci. - Split up drmkms-related files.* similarly. - Make drm_agp_* routines hooks that the drmkms_pci module installs. - Reuse drm device major 180 for (old) drm and drmkms.
Now old drm and new drmkms can coexist happily in the same tree, with or without PCI, and require no changes to userland.
|
1.1.2.9 | 22-Jan-2014 |
riastradh | Fix queue_delayed_work edge cases.
- Copy the relevant part of queue_work in-line for ticks == 0, since queue_work itself will choke on a delayed work.
- Don't reschedule the callout if it is already scheduled -- let it fire when it was already scheduled to fire.
|
1.1.2.8 | 30-Dec-2013 |
riastradh | Don't put work flush items on the stack; worker kmem_frees them.
|
1.1.2.7 | 30-Dec-2013 |
riastradh | Initialize the workqueue flush structures correctly.
|
1.1.2.6 | 30-Dec-2013 |
riastradh | Make Linux workqueues at IPL_VM for now.
|
1.1.2.5 | 30-Dec-2013 |
riastradh | Pass the wq to linux_worker as it expects, not NULL.
|
1.1.2.4 | 30-Dec-2013 |
riastradh | Actually insert the delayed work into the workqueue.
|
1.1.2.3 | 30-Dec-2013 |
riastradh | Helps to actually allocate and free the workqueue memory!
|
1.1.2.2 | 30-Dec-2013 |
riastradh | Add flush_scheduled_work back.
|
1.1.2.1 | 30-Dec-2013 |
riastradh | First (plausible) draft of Linux workqueue implementation rework.
Untested, but this looks better than what was there before, or any of the drafts leading up to this which got torn out of the typewriter, crumpled up, and crudely tossed in frustration toward the wastepaper basket by my desk alongside the empty bottles of Jack Daniels that fueled them, or something like that.
Can't use multiple CPUs per workqueue. That requires some explicit management of per-CPU workqueue state, since NetBSD's workqueue(9) doesn't provide that or cancellation or flushing. Oops.
|
1.2.6.2 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.2.6.1 | 18-Mar-2014 |
yamt | file linux_work.c was added on branch yamt-pagecache on 2014-05-22 11:40:56 +0000
|
1.2.4.2 | 18-May-2014 |
rmind | sync with head
|
1.2.4.1 | 18-Mar-2014 |
rmind | file linux_work.c was added on branch rmind-smpnet on 2014-05-18 17:46:01 +0000
|
1.2.2.1 | 10-Aug-2014 |
tls | Rebase.
|
1.7.4.3 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.7.4.2 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.7.4.1 | 29-Jul-2014 |
tls | file linux_work.c was added on branch tls-maxphys on 2014-08-20 00:04:22 +0000
|
1.7.2.3 | 05-Apr-2017 |
snj | Pull up following revision(s) (requested by skrll in ticket #1395): share/man/man4/axe.4: netbsd-7-nhusb share/man/man4/axen.4: netbsd-7-nhusb share/man/man4/cdce.4: netbsd-7-nhusb share/man/man4/uaudio.4: netbsd-7-nhusb share/man/man4/ucom.4: netbsd-7-nhusb share/man/man4/uep.4: netbsd-7-nhusb share/man/man4/urtw.4: netbsd-7-nhusb share/man/man4/usb.4: netbsd-7-nhusb share/man/man4/uyap.4: netbsd-7-nhusb share/man/man4/xhci.4: netbsd-7-nhusb share/man/man9/usbdi.9: netbsd-7-nhusb sys/arch/amd64/conf/ALL: netbsd-7-nhusb sys/arch/amd64/conf/GENERIC: netbsd-7-nhusb sys/arch/amiga/dev/slhci_zbus.c: netbsd-7-nhusb sys/arch/arm/allwinner/awin_otg.c: netbsd-7-nhusb sys/arch/arm/allwinner/awin_usb.c: netbsd-7-nhusb sys/arch/arm/amlogic/amlogic_dwctwo.c: netbsd-7-nhusb sys/arch/arm/at91/at91ohci.c: netbsd-7-nhusb sys/arch/arm/broadcom/bcm2835_dwctwo.c: netbsd-7-nhusb sys/arch/arm/broadcom/bcm53xx_usb.c: netbsd-7-nhusb sys/arch/arm/ep93xx/epohci.c: netbsd-7-nhusb sys/arch/arm/gemini/obio_ehci.c: netbsd-7-nhusb sys/arch/arm/imx/files.imx23: netbsd-7-nhusb sys/arch/arm/imx/imxusb.c: netbsd-7-nhusb sys/arch/arm/imx/imxusbreg.h: netbsd-7-nhusb sys/arch/arm/omap/obio_ohci.c: netbsd-7-nhusb sys/arch/arm/omap/omap3_ehci.c: netbsd-7-nhusb sys/arch/arm/omap/omapl1x_ohci.c: netbsd-7-nhusb sys/arch/arm/omap/tiotg.c: netbsd-7-nhusb sys/arch/arm/s3c2xx0/ohci_s3c24x0.c: netbsd-7-nhusb sys/arch/arm/samsung/exynos_usb.c: netbsd-7-nhusb sys/arch/arm/xscale/pxa2x0_ohci.c: netbsd-7-nhusb sys/arch/arm/zynq/zynq_usb.c: netbsd-7-nhusb sys/arch/hpcarm/dev/nbp_slhci.c: netbsd-7-nhusb sys/arch/hpcmips/dev/plumohci.c: netbsd-7-nhusb sys/arch/i386/conf/ALL: netbsd-7-nhusb sys/arch/i386/conf/GENERIC: netbsd-7-nhusb sys/arch/i386/pci/gcscehci.c: netbsd-7-nhusb sys/arch/luna68k/conf/GENERIC: netbsd-7-nhusb sys/arch/mips/adm5120/dev/ahci.c: netbsd-7-nhusb sys/arch/mips/adm5120/dev/ahcivar.h: netbsd-7-nhusb sys/arch/mips/alchemy/dev/ohci_aubus.c: netbsd-7-nhusb sys/arch/mips/atheros/dev/ehci_arbus.c: netbsd-7-nhusb sys/arch/mips/atheros/dev/ohci_arbus.c: netbsd-7-nhusb sys/arch/mips/conf/files.adm5120: netbsd-7-nhusb sys/arch/mips/ralink/ralink_ehci.c: netbsd-7-nhusb sys/arch/mips/ralink/ralink_ohci.c: netbsd-7-nhusb sys/arch/mips/rmi/rmixl_ehci.c: netbsd-7-nhusb sys/arch/mips/rmi/rmixl_ohci.c: netbsd-7-nhusb sys/arch/playstation2/dev/ohci_sbus.c: netbsd-7-nhusb sys/arch/powerpc/booke/dev/pq3ehci.c: netbsd-7-nhusb sys/arch/powerpc/ibm4xx/dev/dwctwo_plb.c: netbsd-7-nhusb sys/arch/x68k/dev/slhci_intio.c: netbsd-7-nhusb sys/conf/files: netbsd-7-nhusb sys/dev/cardbus/ehci_cardbus.c: netbsd-7-nhusb sys/dev/cardbus/ohci_cardbus.c: netbsd-7-nhusb sys/dev/cardbus/uhci_cardbus.c: netbsd-7-nhusb sys/dev/ic/sl811hs.c: netbsd-7-nhusb sys/dev/ic/sl811hsvar.h: netbsd-7-nhusb sys/dev/isa/slhci_isa.c: netbsd-7-nhusb sys/dev/marvell/ehci_mv.c: netbsd-7-nhusb sys/dev/pci/ehci_pci.c: netbsd-7-nhusb sys/dev/pci/ohci_pci.c: netbsd-7-nhusb sys/dev/pci/uhci_pci.c: netbsd-7-nhusb sys/dev/pci/xhci_pci.c: netbsd-7-nhusb sys/dev/pcmcia/slhci_pcmcia.c: netbsd-7-nhusb sys/dev/usb/Makefile.usbdevs: netbsd-7-nhusb sys/dev/usb/TODO: netbsd-7-nhusb sys/dev/usb/TODO.usbmp: netbsd-7-nhusb sys/dev/usb/aubtfwl.c: netbsd-7-nhusb sys/dev/usb/auvitek.c: netbsd-7-nhusb sys/dev/usb/auvitek_audio.c: netbsd-7-nhusb sys/dev/usb/auvitek_dtv.c: netbsd-7-nhusb sys/dev/usb/auvitek_i2c.c: netbsd-7-nhusb sys/dev/usb/auvitek_video.c: netbsd-7-nhusb sys/dev/usb/auvitekvar.h: netbsd-7-nhusb sys/dev/usb/ehci.c: netbsd-7-nhusb sys/dev/usb/ehcireg.h: netbsd-7-nhusb sys/dev/usb/ehcivar.h: netbsd-7-nhusb sys/dev/usb/emdtv.c: netbsd-7-nhusb sys/dev/usb/emdtv_dtv.c: netbsd-7-nhusb sys/dev/usb/emdtv_ir.c: netbsd-7-nhusb sys/dev/usb/emdtvvar.h: netbsd-7-nhusb sys/dev/usb/ezload.c: netbsd-7-nhusb sys/dev/usb/ezload.h: netbsd-7-nhusb sys/dev/usb/files.usb: netbsd-7-nhusb sys/dev/usb/hid.c: netbsd-7-nhusb sys/dev/usb/hid.h: netbsd-7-nhusb sys/dev/usb/if_athn_usb.c: netbsd-7-nhusb sys/dev/usb/if_athn_usb.h: netbsd-7-nhusb sys/dev/usb/if_atu.c: netbsd-7-nhusb sys/dev/usb/if_atureg.h: netbsd-7-nhusb sys/dev/usb/if_aue.c: netbsd-7-nhusb sys/dev/usb/if_auereg.h: netbsd-7-nhusb sys/dev/usb/if_axe.c: netbsd-7-nhusb sys/dev/usb/if_axen.c: netbsd-7-nhusb sys/dev/usb/if_axenreg.h: netbsd-7-nhusb sys/dev/usb/if_axereg.h: netbsd-7-nhusb sys/dev/usb/if_cdce.c: netbsd-7-nhusb sys/dev/usb/if_cdcereg.h: netbsd-7-nhusb sys/dev/usb/if_cue.c: netbsd-7-nhusb sys/dev/usb/if_cuereg.h: netbsd-7-nhusb sys/dev/usb/if_kue.c: netbsd-7-nhusb sys/dev/usb/if_kuereg.h: netbsd-7-nhusb sys/dev/usb/if_otus.c: netbsd-7-nhusb sys/dev/usb/if_otusvar.h: netbsd-7-nhusb sys/dev/usb/if_rum.c: netbsd-7-nhusb sys/dev/usb/if_rumreg.h: netbsd-7-nhusb sys/dev/usb/if_rumvar.h: netbsd-7-nhusb sys/dev/usb/if_run.c: netbsd-7-nhusb sys/dev/usb/if_runvar.h: netbsd-7-nhusb sys/dev/usb/if_smsc.c: netbsd-7-nhusb sys/dev/usb/if_smscreg.h: netbsd-7-nhusb sys/dev/usb/if_smscvar.h: netbsd-7-nhusb sys/dev/usb/if_udav.c: netbsd-7-nhusb sys/dev/usb/if_udavreg.h: netbsd-7-nhusb sys/dev/usb/if_upgt.c: netbsd-7-nhusb sys/dev/usb/if_upgtvar.h: netbsd-7-nhusb sys/dev/usb/if_upl.c: netbsd-7-nhusb sys/dev/usb/if_ural.c: netbsd-7-nhusb sys/dev/usb/if_uralreg.h: netbsd-7-nhusb sys/dev/usb/if_uralvar.h: netbsd-7-nhusb sys/dev/usb/if_url.c: netbsd-7-nhusb sys/dev/usb/if_urlreg.h: netbsd-7-nhusb sys/dev/usb/if_urndis.c: netbsd-7-nhusb sys/dev/usb/if_urndisreg.h: netbsd-7-nhusb sys/dev/usb/if_urtw.c: netbsd-7-nhusb sys/dev/usb/if_urtwn.c: netbsd-7-nhusb sys/dev/usb/if_urtwn_data.h: netbsd-7-nhusb sys/dev/usb/if_urtwnreg.h: netbsd-7-nhusb sys/dev/usb/if_urtwnvar.h: netbsd-7-nhusb sys/dev/usb/if_urtwreg.h: netbsd-7-nhusb sys/dev/usb/if_zyd.c: netbsd-7-nhusb sys/dev/usb/if_zydreg.h: netbsd-7-nhusb sys/dev/usb/irmce.c: netbsd-7-nhusb sys/dev/usb/moscom.c: netbsd-7-nhusb sys/dev/usb/motg.c: netbsd-7-nhusb sys/dev/usb/motgvar.h: netbsd-7-nhusb sys/dev/usb/ohci.c: netbsd-7-nhusb sys/dev/usb/ohcireg.h: netbsd-7-nhusb sys/dev/usb/ohcivar.h: netbsd-7-nhusb sys/dev/usb/pseye.c: netbsd-7-nhusb sys/dev/usb/slurm.c: netbsd-7-nhusb sys/dev/usb/stuirda.c: netbsd-7-nhusb sys/dev/usb/u3g.c: netbsd-7-nhusb sys/dev/usb/uark.c: netbsd-7-nhusb sys/dev/usb/uatp.c: netbsd-7-nhusb sys/dev/usb/uaudio.c: netbsd-7-nhusb sys/dev/usb/uberry.c: netbsd-7-nhusb sys/dev/usb/ubsa.c: netbsd-7-nhusb sys/dev/usb/ubsa_common.c: netbsd-7-nhusb sys/dev/usb/ubsavar.h: netbsd-7-nhusb sys/dev/usb/ubt.c: netbsd-7-nhusb sys/dev/usb/uchcom.c: netbsd-7-nhusb sys/dev/usb/ucom.c: netbsd-7-nhusb sys/dev/usb/ucomvar.h: netbsd-7-nhusb sys/dev/usb/ucycom.c: netbsd-7-nhusb sys/dev/usb/udl.c: netbsd-7-nhusb sys/dev/usb/udl.h: netbsd-7-nhusb sys/dev/usb/udsbr.c: netbsd-7-nhusb sys/dev/usb/udsir.c: netbsd-7-nhusb sys/dev/usb/uep.c: netbsd-7-nhusb sys/dev/usb/uftdi.c: netbsd-7-nhusb sys/dev/usb/uftdireg.h: netbsd-7-nhusb sys/dev/usb/ugen.c: netbsd-7-nhusb sys/dev/usb/ugensa.c: netbsd-7-nhusb sys/dev/usb/uhci.c: netbsd-7-nhusb sys/dev/usb/uhcireg.h: netbsd-7-nhusb sys/dev/usb/uhcivar.h: netbsd-7-nhusb sys/dev/usb/uhid.c: netbsd-7-nhusb sys/dev/usb/uhidev.c: netbsd-7-nhusb sys/dev/usb/uhidev.h: netbsd-7-nhusb sys/dev/usb/uhmodem.c: netbsd-7-nhusb sys/dev/usb/uhso.c: netbsd-7-nhusb sys/dev/usb/uhub.c: netbsd-7-nhusb sys/dev/usb/uipad.c: netbsd-7-nhusb sys/dev/usb/uipaq.c: netbsd-7-nhusb sys/dev/usb/uirda.c: netbsd-7-nhusb sys/dev/usb/uirdavar.h: netbsd-7-nhusb sys/dev/usb/ukbd.c: netbsd-7-nhusb sys/dev/usb/ukbdmap.c: netbsd-7-nhusb sys/dev/usb/ukyopon.c: netbsd-7-nhusb sys/dev/usb/ukyopon.h: netbsd-7-nhusb sys/dev/usb/ulpt.c: netbsd-7-nhusb sys/dev/usb/umass.c: netbsd-7-nhusb sys/dev/usb/umass_isdata.c: netbsd-7-nhusb sys/dev/usb/umass_isdata.h: netbsd-7-nhusb sys/dev/usb/umass_quirks.c: netbsd-7-nhusb sys/dev/usb/umass_quirks.h: netbsd-7-nhusb sys/dev/usb/umass_scsipi.c: netbsd-7-nhusb sys/dev/usb/umass_scsipi.h: netbsd-7-nhusb sys/dev/usb/umassvar.h: netbsd-7-nhusb sys/dev/usb/umcs.c: netbsd-7-nhusb sys/dev/usb/umct.c: netbsd-7-nhusb sys/dev/usb/umidi.c: netbsd-7-nhusb sys/dev/usb/umidi_quirks.c: netbsd-7-nhusb sys/dev/usb/umidi_quirks.h: netbsd-7-nhusb sys/dev/usb/umodem.c: netbsd-7-nhusb sys/dev/usb/umodem_common.c: netbsd-7-nhusb sys/dev/usb/umodemvar.h: netbsd-7-nhusb sys/dev/usb/ums.c: netbsd-7-nhusb sys/dev/usb/uplcom.c: netbsd-7-nhusb sys/dev/usb/urio.c: netbsd-7-nhusb sys/dev/usb/urio.h: netbsd-7-nhusb sys/dev/usb/usb.c: netbsd-7-nhusb sys/dev/usb/usb.h: netbsd-7-nhusb sys/dev/usb/usb_mem.c: netbsd-7-nhusb sys/dev/usb/usb_mem.h: netbsd-7-nhusb sys/dev/usb/usb_quirks.c: netbsd-7-nhusb sys/dev/usb/usb_quirks.h: netbsd-7-nhusb sys/dev/usb/usb_subr.c: netbsd-7-nhusb sys/dev/usb/usbdevices.config: netbsd-7-nhusb sys/dev/usb/usbdevs: netbsd-7-nhusb sys/dev/usb/usbdevs.h: netbsd-7-nhusb sys/dev/usb/usbdevs_data.h: netbsd-7-nhusb sys/dev/usb/usbdi.c: netbsd-7-nhusb sys/dev/usb/usbdi.h: netbsd-7-nhusb sys/dev/usb/usbdi_util.c: netbsd-7-nhusb sys/dev/usb/usbdi_util.h: netbsd-7-nhusb sys/dev/usb/usbdivar.h: netbsd-7-nhusb sys/dev/usb/usbhid.h: netbsd-7-nhusb sys/dev/usb/usbhist.h: netbsd-7-nhusb sys/dev/usb/usbroothub.c: netbsd-7-nhusb sys/dev/usb/usbroothub.h: netbsd-7-nhusb sys/dev/usb/usbroothub_subr.c: delete sys/dev/usb/usbroothub_subr.h: delete sys/dev/usb/uscanner.c: netbsd-7-nhusb sys/dev/usb/uslsa.c: netbsd-7-nhusb sys/dev/usb/usscanner.c: netbsd-7-nhusb sys/dev/usb/ustir.c: netbsd-7-nhusb sys/dev/usb/uthum.c: netbsd-7-nhusb sys/dev/usb/utoppy.c: netbsd-7-nhusb sys/dev/usb/uts.c: netbsd-7-nhusb sys/dev/usb/uvideo.c: netbsd-7-nhusb sys/dev/usb/uvisor.c: netbsd-7-nhusb sys/dev/usb/uvscom.c: netbsd-7-nhusb sys/dev/usb/uyap.c: netbsd-7-nhusb sys/dev/usb/uyap_firmware.h: netbsd-7-nhusb sys/dev/usb/uyurex.c: netbsd-7-nhusb sys/dev/usb/x1input_rdesc.h: netbsd-7-nhusb sys/dev/usb/xhci.c: netbsd-7-nhusb sys/dev/usb/xhcireg.h: netbsd-7-nhusb sys/dev/usb/xhcivar.h: netbsd-7-nhusb sys/dev/usb/xinput_rdesc.h: netbsd-7-nhusb sys/external/bsd/common/conf/files.linux: netbsd-7-nhusb sys/external/bsd/common/include/linux/err.h: netbsd-7-nhusb sys/external/bsd/common/include/linux/kernel.h: netbsd-7-nhusb sys/external/bsd/common/include/linux/workqueue.h: netbsd-7-nhusb sys/external/bsd/common/linux/linux_work.c: netbsd-7-nhusb sys/external/bsd/drm2/dist/drm/radeon/atombios_encoders.c: netbsd-7-nhusb sys/external/bsd/drm2/dist/drm/radeon/radeon_legacy_encoders.c: netbsd-7-nhusb sys/external/bsd/drm2/drm/files.drmkms: netbsd-7-nhusb sys/external/bsd/drm2/i915drm/files.i915drmkms: netbsd-7-nhusb sys/external/bsd/drm2/include/linux/err.h: delete sys/external/bsd/drm2/include/linux/workqueue.h: delete sys/external/bsd/drm2/linux/files.drmkms_linux: netbsd-7-nhusb sys/external/bsd/drm2/linux/linux_work.c: delete sys/external/bsd/dwc2/dwc2.c: netbsd-7-nhusb sys/external/bsd/dwc2/dwc2.h: netbsd-7-nhusb sys/external/bsd/dwc2/dwc2var.h: netbsd-7-nhusb sys/external/bsd/dwc2/dwctwo2netbsd: netbsd-7-nhusb sys/external/bsd/dwc2/conf/files.dwc2: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_core.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_core.h: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_coreintr.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcd.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcd.h: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcdddma.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcdintr.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcdqueue.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hw.h: netbsd-7-nhusb sys/modules/drmkms_linux/Makefile: netbsd-7-nhusb sys/modules/i915drmkms/Makefile: netbsd-7-nhusb sys/rump/dev/lib/libugenhc/ugenhc.c: netbsd-7-nhusb sys/rump/dev/lib/libusb/Makefile: netbsd-7-nhusb sys/rump/dev/lib/libusb/USB.ioconf: netbsd-7-nhusb sys/rump/dev/lib/libusb/usb_at_ugenhc.c: delete sys/rump/dev/lib/libusb/opt/opt_usb.h: delete sys/rump/dev/lib/libusb/opt/opt_usbverbose.h: delete sys/sys/mbuf.h: netbsd-7-nhusb usr.sbin/usbdevs/usbdevs.8: netbsd-7-nhusb usr.sbin/usbdevs/usbdevs.c: netbsd-7-nhusb Merge netbsd-7-nhusb: - API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix - Change the SOFTINT level from NET to SERIAL for the USB softint handler. This gives the callback a chance of running when another softint handler at SOFTINT_NET has blocked holding a lock, e.g. softnet_lock and most of the network stack. - kern/49065 - ifconfig tun0 ... sequence locks up system / lockup: softnet_lock held across usb xfr - kern/50491 - unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2 - kern/51395 - USB Ethernet makes xhci hang - Various improvements to slhci(4) - Various improvements to dwc2(4)
|
1.7.2.2 | 11-Feb-2016 |
snj | branches: 1.7.2.2.2; Pull up following revision(s) (requested by riastradh in ticket #1086): sys/external/bsd/drm2/linux/linux_work.c: revision 1.12 Avoid NULL dereference in linux_worker_intr() in WORK_DELAYED_CANCELLED case. Potentially fixes PR#49560.
|
1.7.2.1 | 21-Sep-2014 |
snj | branches: 1.7.2.1.2; Pull up following revision(s) (requested by riastradh in ticket #98): sys/external/bsd/drm2/linux/linux_work.c: revision 1.8 Don't forget to lock wq_lock around handling wq_delayed.
|
1.7.2.2.2.1 | 06-Sep-2016 |
skrll | First pass at netbsd-7 updated with USB code from HEAD
|
1.7.2.1.2.1 | 11-Feb-2016 |
snj | Pull up following revision(s) (requested by riastradh in ticket #1086): sys/external/bsd/drm2/linux/linux_work.c: revision 1.12 Avoid NULL dereference in linux_worker_intr() in WORK_DELAYED_CANCELLED case. Potentially fixes PR#49560.
|
1.9.2.3 | 19-Mar-2016 |
skrll | Sync with HEAD
|
1.9.2.2 | 27-Dec-2015 |
skrll | Sync with HEAD (as of 26th Dec)
|
1.9.2.1 | 06-Apr-2015 |
skrll | Sync with HEAD
|
1.9 | 19-Dec-2021 |
riastradh | Misc stubs.
|
1.8 | 27-Aug-2018 |
riastradh | KASSERT -> KASSERTMSG
|
1.7 | 27-Aug-2018 |
riastradh | phys_wc_to_mtrr_index got renamed to arch_phys_wc_index upstream.
|
1.6 | 14-Aug-2018 |
riastradh | Initialize n before mtrr_set in arch_phys_wc_del.
From mrg@.
XXX pullup-7 XXX pullup-8
|
1.5 | 14-Aug-2018 |
riastradh | Exit, don't reenter, the mutex...!@#*@$!&.
From mrg@.
XXX pullup-7 XXX pullup-8
|
1.4 | 17-Oct-2015 |
jmcneill | branches: 1.4.16; 1.4.18; only use mtrr api if options MTRR is present and we are on x86
|
1.3 | 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.2 | 04-Nov-2014 |
jmcneill | branches: 1.2.2; This code should be MP-safe. Use IPL_SCHED in place of IPL_DRM/IPL_VM and set D_MPSAFE flag in cdevsw.
|
1.1 | 16-Jul-2014 |
riastradh | branches: 1.1.2; 1.1.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.1.6.3 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.1.6.2 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.1.6.1 | 16-Jul-2014 |
tls | file linux_writecomb.c was added on branch tls-maxphys on 2014-08-20 00:04:22 +0000
|
1.1.2.2 | 10-Aug-2014 |
tls | Rebase.
|
1.1.2.1 | 16-Jul-2014 |
tls | file linux_writecomb.c was added on branch tls-earlyentropy on 2014-08-10 06:55:40 +0000
|
1.2.2.2 | 27-Dec-2015 |
skrll | Sync with HEAD (as of 26th Dec)
|
1.2.2.1 | 06-Apr-2015 |
skrll | Sync with HEAD
|
1.4.18.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.4.16.1 | 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.16 | 29-Jul-2023 |
riastradh | drm/linux_ww_mutex: Fix ww acquire context ordering.
XXX pullup-8 XXX pullup-9 XXX pullup-10
|
1.15 | 29-Jul-2023 |
riastradh | drm/linux_ww_mutex: Fix wait loops.
If cv_wait_sig returns because a signal is delivered, we may nonetheless have been granted the lock. It is harmless for us to ignore this fact in three of the four paths, but in ww_mutex_state_wait_sig, we may now have ownership of the lock and MUST NOT return failure because the caller MUST release the lock before destroying the ww_acquire_ctx.
While here, restructure the other three loops for clarity, so they match the structure of the fourth and so they have a little less impenetrable negation.
PR kern/57537
XXX pullup-8 XXX pullup-9 XXX pullup-10
|
1.14 | 18-Mar-2022 |
riastradh | branches: 1.14.4; drm: In ww_mutex_unlock, do lockdebug check first.
This way we get a full lockdebug dump when LOCKDEBUG is enabled, instead of just the panic message (which includes the lock address you could pass to `show lock' in ddb, but let's get the dump by default even if you don't enter ddb).
Also in the KASSERT print the mutex.
|
1.13 | 26-Dec-2021 |
riastradh | drm: Allow ww_mutex_lock after ww_acquire_done if we already hold it.
In other words, if ww_mutex_lock would return -EALREADY, that's OK and does not warrant an assertion.
PR kern/56557
|
1.12 | 24-Dec-2021 |
riastradh | Revert "drm: Fix missing newline in DRM_WARN."
Accidentally included more than I intended here.
|
1.11 | 24-Dec-2021 |
riastradh | drm: Fix missing newline in DRM_WARN.
|
1.10 | 19-Dec-2021 |
riastradh | drm: Spruce up ww_mutex comments. Audit return values.
|
1.9 | 19-Dec-2021 |
riastradh | linux/ww_mutex: Disable locking-against-self asserts in trylock.
This seems to be done intentionally in Linux.
|
1.8 | 19-Dec-2021 |
riastradh | Implement dma_resv_locking_ctx more carefully.
|
1.7 | 09-May-2019 |
ozaki-r | branches: 1.7.2; Avoid prepending a timestamp to lock debug outputs on ddb
Lock printer functions (lockops_t#lo_dump) use printf_nolog to print, but printf_nolog now prepends a timestamp which is unnecessary for ddb:
db{0}> show all locks/t [Locks tracked through LWPs] Locks held by an LWP (iperf): Lock 0 (initialized at soinit) lock address : 0xffffedeb84b06080 type : sleep/adaptive initialized : 0xffffffff806d8c3f shared holds : 0 exclusive: 1 shares wanted: 0 exclusive: 11 current cpu : 0 last held: 1 current lwp : 0xffffedeb849ff040 last held: 0xffffedeb7dfdb240 last locked* : 0xffffffff806d8335 unlocked : 0xffffffff806d8385 [ 79103.0868574] owner field : 0xffffedeb7dfdb240 wait/spin: 1/0
Fix it by passing a printer function to lo_dump functions, i.e., make the functions use db_printf on ddb.
|
1.6 | 16-Apr-2019 |
mrg | 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.
|
1.5 | 27-Aug-2018 |
riastradh | Use Linux atomic64 for ww mutex class.
This way we can take advantage of the hash-locked atomic64 on platforms that lack native atomic_inc_64_nv.
|
1.4 | 16-Sep-2017 |
christos | branches: 1.4.2; 1.4.4; 1.4.6; more const
|
1.3 | 25-Aug-2017 |
riastradh | Fix lockdebug_locked annotations.
When thread A grants ownership to thread B waiting with a context, thread B needs to assert lockdebug_locked; otherwise, when it releases, lockdebug_unlocked thinks it's releasing an unlocked ww_mutex.
Fixes LOCKDEBUG failure with radeon noticed by martin@.
|
1.2 | 21-May-2015 |
riastradh | branches: 1.2.10; Adapt ww_mutex to use LOCKDEBUG.
Should help track down PR 49862.
|
1.1 | 08-Jan-2015 |
riastradh | branches: 1.1.2; 1.1.4; Move Linux ww_mutex code into a .c file where it belongs.
|
1.1.4.4 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.1.4.3 | 06-Jun-2015 |
skrll | Sync with HEAD
|
1.1.4.2 | 06-Apr-2015 |
skrll | Sync with HEAD
|
1.1.4.1 | 08-Jan-2015 |
skrll | file linux_ww_mutex.c was added on branch nick-nhusb on 2015-04-06 15:18:17 +0000
|
1.1.2.3 | 30-Jul-2015 |
snj | Pull up following revision(s) (requested by riastradh in ticket #907): sys/external/bsd/drm2/linux/linux_ww_mutex.c: revision 1.2 sys/external/bsd/drm2/include/linux/ww_mutex.h: revision 1.11 Adapt ww_mutex to use LOCKDEBUG. Should help track down PR 49862.
|
1.1.2.2 | 06-Mar-2015 |
snj | Pull up following revision(s) (requested by mrg in ticket #573): sys/external/bsd/common/include/linux/kernel.h: 1.5, 1.6 sys/external/bsd/drm2/dist/drm/drm_ioctl.c: 1.4 sys/external/bsd/drm2/dist/drm/drm_irq.c: 1.6-1.8 sys/external/bsd/drm2/dist/drm/i915/i915_dma.c: 1.13-1.15 sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: 1.23-1.27 sys/external/bsd/drm2/dist/drm/i915/i915_gem_execbuffer.c: 1.5 sys/external/bsd/drm2/dist/drm/i915/intel_display.c: 1.14, 1.15 sys/external/bsd/drm2/dist/drm/i915/intel_dp.c: 1.10 sys/external/bsd/drm2/dist/drm/i915/intel_drv.h: 1.8 sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c: 1.8-1.13 sys/external/bsd/drm2/dist/drm/i915/intel_pm.c: 1.6 sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c: 1.5, 1.6 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c: 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/include/core/device.h: 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/include/subdev/mc.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/include/subdev/pwr.h: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/os.h: 1.4, 1.5 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_base.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_pll.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/clock/nouveau_subdev_clock_base.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/clock/nouveau_subdev_clock_nv50.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/fbmem.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/nouveau_subdev_devinit_nv04.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv50.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nvc0.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nv50.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nvc0.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/mc/nouveau_subdev_mc_base.c: 1.2, 1.3 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/mxm/nouveau_subdev_mxm_nv50.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/pwr/nouveau_subdev_pwr_base.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/therm/nouveau_subdev_therm_ic.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/timer/nouveau_subdev_timer_nv04.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_base.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv04.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv44.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nv04.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.h: 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c: 1.4, 1.5 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c: 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv84_fence.c: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.c: 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.h: 1.2 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_vga.h: 1.2 sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c: 1.6-1.8 sys/external/bsd/drm2/dist/drm/radeon/radeon_pm.c: 1.3 sys/external/bsd/drm2/dist/drm/radeon/rs400.c: 1.3 sys/external/bsd/drm2/dist/drm/via/via_dmablit.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/via/via_drv.h: 1.3 sys/external/bsd/drm2/dist/drm/via/via_irq.c: 1.3, 1.4 sys/external/bsd/drm2/dist/drm/via/via_video.c: 1.3, 1.4 sys/external/bsd/drm2/dist/include/drm/drmP.h: 1.10 sys/external/bsd/drm2/dist/include/drm/drm_crtc.h: 1.4 sys/external/bsd/drm2/dist/include/drm/drm_modes.h: 1.3 sys/external/bsd/drm2/dist/uapi/drm/i915_drm.h: 1.2 sys/external/bsd/drm2/drm/drm_cache.c: 1.4-1.6 sys/external/bsd/drm2/drm/drm_drv.c: 1.14 sys/external/bsd/drm2/drm/drm_module.c: 1.10 sys/external/bsd/drm2/drm/drm_sysctl.c: 1.5 sys/external/bsd/drm2/drm/drm_vma_manager.c: 1.2 sys/external/bsd/drm2/drm/drmfb.c: 1.1 sys/external/bsd/drm2/drm/files.drmkms: 1.10, 1.11 sys/external/bsd/drm2/i2c/drm_encoder_slave.c: 1.1 sys/external/bsd/drm2/i915drm/files.i915drmkms: 1.7, 1.10 sys/external/bsd/drm2/i915drm/intelfb.c: 1.11, 1.12 sys/external/bsd/drm2/include/asm/io.h: 1.4 sys/external/bsd/drm2/include/asm/unaligned.h: 1.2, 1.3 sys/external/bsd/drm2/include/drm/drm_encoder_slave.h: 1.1 sys/external/bsd/drm2/include/drm/drm_wait_netbsd.h: 1.7-1.11 sys/external/bsd/drm2/include/drm/drmfb.h: 1.1 sys/external/bsd/drm2/include/drm/drmfb_pci.h: 1.1, 1.2 sys/external/bsd/drm2/include/linux/bitops.h: 1.9 sys/external/bsd/drm2/include/linux/i2c.h: 1.7, 1.8 sys/external/bsd/drm2/include/linux/io-mapping.h: 1.5 sys/external/bsd/drm2/include/linux/moduleparam.h: 1.5 sys/external/bsd/drm2/include/linux/pci.h: 1.12-1.15 sys/external/bsd/drm2/include/linux/pm.h: 1.4 sys/external/bsd/drm2/include/linux/reboot.h: 1.2 sys/external/bsd/drm2/include/linux/slab.h: 1.5 sys/external/bsd/drm2/include/linux/string.h: 1.4 sys/external/bsd/drm2/include/linux/vgaarb.h: 1.3 sys/external/bsd/drm2/include/linux/ww_mutex.h: 1.10 sys/external/bsd/drm2/linux/files.drmkms_linux: 1.8 sys/external/bsd/drm2/linux/linux_i2c.c: 1.3 sys/external/bsd/drm2/linux/linux_ww_mutex.c: 1.1 sys/external/bsd/drm2/nouveau/files.nouveau: 1.5-1.8 sys/external/bsd/drm2/nouveau/nouveau_pci.c: 1.1-1.3 sys/external/bsd/drm2/nouveau/nouveau_pci.h: 1.1 sys/external/bsd/drm2/nouveau/nouveau_sysfs.c: 1.1 sys/external/bsd/drm2/nouveau/nouveau_vga.c: 1.1 sys/external/bsd/drm2/nouveau/nouveaufb.c: 1.1 sys/external/bsd/drm2/nouveau/nouveaufb.h: 1.1 sys/external/bsd/drm2/pci/drm_pci.c: 1.10-1.12 sys/external/bsd/drm2/pci/drm_pci_module.c: 1.4 sys/external/bsd/drm2/pci/drmfb_pci.c: 1.1-1.3 sys/external/bsd/drm2/pci/files.drmkms_pci: 1.5 sys/external/bsd/drm2/radeon/radeon_pci.c: 1.5-1.7 sys/modules/drmkms/Makefile: 1.8, 1.9 sys/modules/drmkms_linux/Makefile: 1.6 sys/modules/drmkms_pci/Makefile: 1.5 sync drm2 with HEAD.
|
1.1.2.1 | 08-Jan-2015 |
snj | file linux_ww_mutex.c was added on branch netbsd-7 on 2015-03-06 21:39:10 +0000
|
1.2.10.6 | 01-Aug-2023 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1876):
sys/external/bsd/drm2/linux/linux_ww_mutex.c: revision 1.15
drm/linux_ww_mutex: Fix wait loops.
If cv_wait_sig returns because a signal is delivered, we may nonetheless have been granted the lock. It is harmless for us to ignore this fact in three of the four paths, but in ww_mutex_state_wait_sig, we may now have ownership of the lock and MUST NOT return failure because the caller MUST release the lock before destroying the ww_acquire_ctx.
While here, restructure the other three loops for clarity, so they match the structure of the fourth and so they have a little less impenetrable negation.
PR kern/57537
|
1.2.10.5 | 01-Aug-2023 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1875):
sys/external/bsd/drm2/linux/linux_ww_mutex.c: revision 1.10
drm: Spruce up ww_mutex comments. Audit return values.
|
1.2.10.4 | 01-Aug-2023 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1874):
sys/external/bsd/drm2/linux/linux_ww_mutex.c: revision 1.16
drm/linux_ww_mutex: Fix ww acquire context ordering.
|
1.2.10.3 | 23-Apr-2019 |
martin | Pull up following revision(s) via patch (requested by mrg in ticket #1242):
sys/external/bsd/common/include/linux/err.h: revision 1.3 sys/external/bsd/drm2/include/drm/drm_wait_netbsd.h: revision 1.15 sys/external/bsd/common/include/linux/errno.h: revision 1.4 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c: revision 1.17 sys/external/bsd/drm2/linux/linux_ww_mutex.c: revision 1.6 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c: revision 1.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.
|
1.2.10.2 | 27-Sep-2018 |
martin | Apply patch, requested by mrg in ticket #1036:
sys/external/bsd/drm2/linux/linux_ww_mutex.c (apply patch)
Fix LOCKDEBUG build error. Change not needed in -current.
|
1.2.10.1 | 01-Sep-2018 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1003):
sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c: revision 1.8 sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c: revision 1.10 sys/external/bsd/drm2/drm/drm_scatter.c: revision 1.4 sys/external/bsd/drm2/dist/drm/i915/i915_reg.h: revision 1.2 sys/external/bsd/drm2/linux/linux_ww_mutex.c: revision 1.3 sys/external/bsd/drm2/linux/linux_ww_mutex.c: revision 1.4 sys/external/bsd/drm2/linux/linux_idr.c: revision 1.6
Pull in upstream commit: Author: Ville Syrj=E4l=E4 <ville.syrjala%linux.intel.com@localhost> Date: Mon Jun 9 16:20:46 2014 +0300 drm/i915: Avoid div-by-zero when pixel_multiplier is zero On certain platforms pixel_multiplier is read out in .get_pipe_config(), but it also gets used to calculate the pixel clock in intel_sdvo_get_config(). If the pipe is disabled but some SDVO outputs are active, we may end up dividing by zero in intel_sdvo_get_config(). Fixes https://bugs.freedesktop.org/show_bug.cgi?id=3D76520 Tweak slightly sketchy logic in linux_idr. 1. idr_preload can fail if you don't set __GFP_WAIT. 2. If idr_preload fails, it is wrong for idr_alloc to assert. 3. There is no way for idr_alloc to know what flags idr_preload got. Probably won't *fix* any bugs, but if there is a bug with a missing __GFP_WAIT, then we will learn about a trifle sooner. Fix error branch in ttm_dma_tt_init to avoid double-free. Should fix symptom of PR kern/52438, but who knows what underlying problem causes us to reach the error branch in the first place. Fix lockdebug_locked annotations. When thread A grants ownership to thread B waiting with a context, thread B needs to assert lockdebug_locked; otherwise, when it releases, lockdebug_unlocked thinks it's releasing an unlocked ww_mutex.
Fixes LOCKDEBUG failure with radeon noticed by martin@.
more const
XXX: add a NULL init to avoid a GCC 6 maybe uninit warning.
Remove UB from definition of symbols in i915_reg.h Kernel Undefined Behavior Sanitizer enforces more warnings in build time. This makes the build fatal in the drm/i915 code in: - intel_ddi_put_crtc_pll(), - intel_ddi_clock_get(), - intel_ddi_pll_enable(), - intel_ddi_setup_hw_pll_state(). The error message in all the cases says: error: case label does not reduce to an integer constant Set the type of the value left shifted to unsigned. This change is required to build NetBSD/amd64 with KUBSan.
|
1.4.6.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.4.4.1 | 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.4.2.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.4.2.1 | 16-Sep-2017 |
jdolecek | file linux_ww_mutex.c was added on branch tls-maxphys on 2017-12-03 11:38:00 +0000
|
1.7.2.3 | 01-Aug-2023 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1696):
sys/external/bsd/drm2/linux/linux_ww_mutex.c: revision 1.15
drm/linux_ww_mutex: Fix wait loops.
If cv_wait_sig returns because a signal is delivered, we may nonetheless have been granted the lock. It is harmless for us to ignore this fact in three of the four paths, but in ww_mutex_state_wait_sig, we may now have ownership of the lock and MUST NOT return failure because the caller MUST release the lock before destroying the ww_acquire_ctx.
While here, restructure the other three loops for clarity, so they match the structure of the fourth and so they have a little less impenetrable negation.
PR kern/57537
|
1.7.2.2 | 01-Aug-2023 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1695): sys/external/bsd/drm2/linux/linux_ww_mutex.c: revision 1.10 drm: Spruce up ww_mutex comments. Audit return values.
|
1.7.2.1 | 01-Aug-2023 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1694):
sys/external/bsd/drm2/linux/linux_ww_mutex.c: revision 1.16
drm/linux_ww_mutex: Fix ww acquire context ordering.
|
1.14.4.2 | 01-Aug-2023 |
martin | Pull up following revision(s) (requested by riastradh in ticket #299):
sys/external/bsd/drm2/linux/linux_ww_mutex.c: revision 1.16
drm/linux_ww_mutex: Fix ww acquire context ordering.
|
1.14.4.1 | 01-Aug-2023 |
martin | Pull up following revision(s) (requested by riastradh in ticket #298):
sys/external/bsd/drm2/linux/linux_ww_mutex.c: revision 1.15
drm/linux_ww_mutex: Fix wait loops.
If cv_wait_sig returns because a signal is delivered, we may nonetheless have been granted the lock. It is harmless for us to ignore this fact in three of the four paths, but in ww_mutex_state_wait_sig, we may now have ownership of the lock and MUST NOT return failure because the caller MUST release the lock before destroying the ww_acquire_ctx.
While here, restructure the other three loops for clarity, so they match the structure of the fourth and so they have a little less impenetrable negation.
PR kern/57537
|
1.4 | 22-May-2024 |
riastradh | linux_xa: Delete and replace collision in xa_store as intended.
Don't free the colliding node that's still in the tree.
Noted by rjs@.
|
1.3 | 19-Dec-2021 |
riastradh | branches: 1.3.4; linux: Rework radix tree shims.
|
1.2 | 19-Dec-2021 |
riastradh | linux: Fix xa_find_after to actually find the entry _after_.
|
1.1 | 19-Dec-2021 |
riastradh | linux: Draft half-arsed xarray shims
|
1.3.4.1 | 04-Oct-2024 |
martin | Pull up following revision(s) (requested by rin in ticket #928):
sys/external/bsd/drm2/dist/drm/drm_gem.c: revision 1.25 sys/external/bsd/drm2/dist/drm/radeon/radeon_ci_dpm.c: revision 1.7 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/priv.h: revision 1.4 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_acpi.c: revision 1.4 sys/external/bsd/drm2/dist/drm/i915/display/intel_opregion.h: revision 1.6 sys/external/bsd/drm2/dist/drm/i915/i915_drv.h: revision 1.49 sys/external/bsd/drm2/include/linux/mxm-wmi.h: revision 1.1 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_pcie.c: revision 1.4 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c: revision 1.13 sys/external/bsd/common/include/linux/bitops.h: revision 1.17 sys/external/bsd/drm2/nouveau/files.nouveau: revision 1.40 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.30 sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.h: revision 1.5 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_pcie.c: revision 1.5 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm/nouveau_nvkm_subdev_mxm_base.c: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c: revision 1.12 sys/external/bsd/drm2/dist/drm/radeon/radeon_rv770.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp/nouveau_nvkm_engine_disp_sorgm200.c: revision 1.3 sys/external/bsd/common/include/linux/printk.h: revision 1.14 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_gk20a.c: revision 1.10 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vi.c: revision 1.4 sys/external/bsd/drm2/include/linux/acpi.h: revision 1.11 sys/external/bsd/drm2/drm/drm_cdevsw.c: revision 1.31 sys/external/bsd/drm2/dist/drm/radeon/radeon_si.c: revision 1.6 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.c: revision 1.5 sys/external/bsd/drm2/dist/drm/i915/display/intel_acpi.h: revision 1.5 sys/external/bsd/drm2/include/acpi/video.h: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen.c: revision 1.6 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_acpi.h: revision 1.4 sys/arch/sparc64/include/pci_machdep.h: revision 1.31 sys/arch/sparc64/dev/pci_machdep.c: revision 1.83 sys/external/bsd/drm2/include/linux/kref.h: revision 1.14 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c: revision 1.12 sys/external/bsd/drm2/linux/linux_dma_buf.c: revision 1.17 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadowacpi.c: revision 1.4 sys/external/bsd/drm2/drm/drm_module.c: revision 1.32 sys/external/bsd/drm2/dist/drm/i915/i915_gem.h: revision 1.8 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_dmabuf.c: revision 1.7 sys/external/bsd/drm2/include/linux/smp.h: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_si.c: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c: revision 1.20 sys/arch/x86/x86/bus_dma.c: revision 1.91 sys/external/bsd/drm2/radeon/files.radeon: revision 1.40 sys/external/bsd/drm2/include/acpi/acpi_bus.h: revision 1.1 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drv.h: revision 1.5 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c: revision 1.21 sys/external/bsd/common/include/asm/barrier.h: revision 1.20 sys/external/bsd/drm2/include/linux/nbsd-namespace-acpi.h: revision 1.2 sys/external/bsd/common/include/asm/barrier.h: revision 1.21 sys/modules/drmkms/drmkms_pci.h: revision 1.1 sys/external/bsd/drm2/dist/drm/drm_dp_helper.c: revision 1.17 sys/external/bsd/drm2/radeon/radeon_pci.c: revision 1.23 sys/external/bsd/drm2/linux/linux_xa.c: revision 1.4 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.23 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.24 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.25 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.26 sys/dev/pci/pcivar.h: revision 1.120 sys/arch/xen/include/pci_machdep.h: revision 1.24 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.26 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.27 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.27 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.28 sys/external/bsd/drm2/dist/drm/radeon/radeon_cik.c: revision 1.8 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.28 sys/external/bsd/drm2/linux/linux_pci.c: revision 1.29 sys/external/bsd/drm2/include/linux/pci.h: revision 1.57 sys/external/bsd/drm2/include/linux/pci.h: revision 1.58 sys/external/bsd/drm2/dist/drm/radeon/radeon_acpi.c: revision 1.5 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_display.c: revision 1.6 sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_hwmgr.c: revision 1.3 sys/external/bsd/drm2/dist/drm/amd/display/dc/core/amdgpu_dc_stream.c: revision 1.3 share/man/man9/bus_dma.9: revision 1.69 sys/external/bsd/drm2/drm/drm_gem_cma_helper.c: revision 1.15 sys/external/bsd/drm2/dist/drm/radeon/radeon_acpi.c: revision 1.6 sys/external/bsd/drm2/dist/drm/radeon/radeon.h: revision 1.12 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cik.c: revision 1.7 sys/dev/acpi/acpi_mcfg.c: revision 1.29 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_acpi.c: revision 1.6 sys/external/bsd/drm2/dist/drm/radeon/radeon_r600.c: revision 1.7 sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c: revision 1.13 sys/modules/amdgpu/Makefile: revision 1.9 sys/external/bsd/drm2/dist/drm/radeon/radeon_bios.c: revision 1.14 sys/external/bsd/common/linux/linux_tasklet.c: revision 1.12 sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/device.h: revision 1.10 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_mman.c: revision 1.23 sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu.h: revision 1.9 sys/external/bsd/drm2/include/linux/interval_tree.h: revision 1.14 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_mman.c: revision 1.26 sys/external/bsd/drm2/dist/drm/amd/powerplay/hwmgr/amdgpu_smu7_hwmgr.c: revision 1.5 sys/dev/pci/pci.c: revision 1.168 sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_mman.c: revision 1.27 sys/external/bsd/drm2/dist/drm/radeon/radeon_si_dpm.c: revision 1.9 sys/external/bsd/drm2/pci/files.drmkms_pci: revision 1.18 sys/external/bsd/drm2/linux/linux_sync_file.c: revision 1.3 sys/external/bsd/drm2/amdgpu/files.amdgpu: revision 1.31 sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_tegra.c: revision 1.4 sys/external/bsd/drm2/dist/drm/drm_gem.c: revision 1.24 sys/arch/xen/xen/xpci_xenbus.c: revision 1.29
drm: Eliminate __HAVE_ATOMIC_AS_MEMBAR conditionals. Discussed on tech-kern: https://mail-index.netbsd.org/tech-kern/2023/02/23/msg028729.html
linux asm/barrier.h: Fix !MULTIPROCESSOR build.
remove "nouveau" from a comment. noted by jmcneill.
drm: KASSERT(A && B) -> KASSERT(A); KASSERT(B) comment a function that has a clear overbounds read but it isn't used. found by GCC 12.
nix the NetBSD specific GEM_BUG_ON(). avoids GCC 12 warnings, and matches upstream closer. 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.
avoid a GCC 12 warning. there's a 1-element long array and a loop conditional that tries to see if indexes for it are not identical. as these indexes will always both be 0, the only valid index, the condition is always false. GCC 12 triggers a strange warning on this code that can never run (see below), so simply assert the array size is 1 and comment the rest. amdgpu_dc_stream.c:470:55: error: array subscript [0, 0] is outside array bounds of 'struct dc_writeback_info[1]' [-Werror=array-bounds] 470 | stream->writeback_info[j] = stream->writeback_info[i];
convert a KASSERT() into an if () panic() sequence to appease GCC 12. OK 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.)
drmkms: Fix module build. avoid an unlikely array bounds issue picked up by GCC 12. nvkm_pcie_speed() can return -1, which is then used as an array index, so make this default return PCIe 1.0 speeds.
drm: enable almost all PCIe functionality linux_pci.c revisions 1.24 and 1.25 implemented most of the remaining missing PCIe backends, but only enabled them for some amdgpu portions. this enables all code marked with "XXX amdgpu pcie", "XXX radeon pcie", and "XXX pcie speed". for most of it, simply removing #ifndefs __NetBSD__ to enable compliation was required, once the new "bus->max_bus_speed" member was added to struct pci_bus. add an "always fails" backend for pci_enable_atomic_ops_to_root() which seems to only be necessary for virtual GPU functionality (and could be implemented if needed.) tested on radeon 5450, 7750, R7 240 [radeon], and RX 550 [amdgpu], and nvidia 750 and 1030 [nouveau]. this still does not quite work on nvidia cards. there are two problems that remain: - the call to set the link speed is skipped because the speed is set to the default value of "-1". nvkm_pcie_set_link() will actually determine the right value for this and for some cards, calling this function if the current speed is -1 helps set the link speed. it may be that on linux other paths we don't have enabled properly would set this (there's one via debugfs, and a jetson specific one, though perhaps setting either AC or DC speed values as boot options (after hooking up these for netbsd) would currently work. - worse, cards newer than kepler - geforce 900, 1000, and newer, are all lacking the backing support to set pcie link speed. the GT 1030 card i have been testing with remains at pcie 1.0.
radeon: fix and enable ACPI methods for getting ROM BIOS The hacky way of getting the BIOS mapped only works on x86. ACPI should be preferred if available. Makes BIOS reading though VFCT work on aarch64 with EDK2. (But only if EDK2 has POSTed the GPU.) XXX amdgpu should get the same treatment.
drm: put_cpu() should enable preemption, not disable it again
drm(4): make pr_debug equivalent to aprint_debug significantly reduces the default spam from amdgpu(4).
drm: Set CONFIG_ACPI in linux/acpi.h and make it build.
Leave a little ACPI-related functionality disabled for now, like getting EDID out of ACPI -- needs a bit more work to make this work, and I don't have hardware to work on that. Should help with failures of the forms: - unable to locate a BIOS ROM - bios: unable to locate usable image on various machines.
radeon_acpi.c: ifdef out unused function on NetBSD. Should fix syzkaller build.
drm(4): Fix st_rdev in stat. dminor->index already has the 64*type adjustment, as allocated in drm_minor_alloc. PR kern/58180
linux_sync_file: Fix missing init/fini steps. Noted by rjs@. PR kern/58210
ttm: Sync ttm_bo_uvm_fault_idle better with Linux. PR xsrc/58133 ttm: Undo mistake in previous.
PR xsrc/58133 linux: Add a few more cases to pci_get_class. Should fix crash on boot with amdgpu now that the ACPI business is enabled.
i915: Fix dmabuf mmap object.
drm: Fix missing bounds checks in dma buf mmap.
drm_gem.c: Fix sense of assertion. This is the opposite of WARN_ON. Noted by rjs@.
drm_gem.c: Enable drm_gem_fence_array_add now that we emulate xa. linux_xa: Delete and replace collision in xa_store as intended. Don't free the colliding node that's still in the tree. Noted by rjs@.
i915_gem_mman.c: Apply mmap types via pmap flags. This way, userland gets buffers mapped write-combining or uncached as needed. PR xsrc/58307
x86: Teach bus_dmamem_map about BUS_DMA_PREFETCHABLE. PR port-amd64/58308
bus_dma(9): Document BUS_DMA_PREFETCHABLE. Like BUS_DMA_NOCACHE. Doesn't absolve you of the need for bus_dmamap_sync, but if you later pass the vaddr to bus_dmamap_load, the DMA map might notice the mapping is write-combining and use this to make bus_dmamap_sync cheaper. PR kern/58309
nouveau_nvkm_subdev_instmem_gk20a.c: Use BUS_DMA_PREFETCHABLE. Matches Linux's pgprot_writecombine. Unclear where the appropriate bus_dmamap_sync happens, or is supposed to happen -- not using it would be wrong, but asking for a prefetchable mapping may paper over symptoms, at least!
ttm: Sync more with Linux. Add the original copyright and attribution since this is now, intentionally, a modified copy of the original and not just roughly the same algorithm.
ttm: Respect PGO_ALLPAGES. Not sure this is useful but it reduces XXX's and makes this match udv_fault better so it's easier to understand.
ttm: Sync cacheability flag logic with Linux.
ttm: Add XXX about readahead fault failures.
pci: Pass cookie through pci_find_device, pci_enumerate_bus, take 2. New functions pci_find_device1 and pci_enumerate_bus1 have the cookie argument. Existing symbols pci_find_device and pci_enumerate_bus are now wrappers for the cookieless version. This will allow pci_find_device callers to pass a cookie through to the match function so they can keep state or pass in extra parameters like b/d/f numbers, which will allow us to nix some horrible kludges in the Linux PCI API emulation for drm (and, perhaps, Intel wifi). This change drops the symbol pci_probe_device, in favour of a new pci_probe_device1 with the cookie argument. But I don't think that requires a revbump because it's only called by MD pci_enumerate_bus1 implementations, which don't live in modules anyway. Take 2: Make sure to handle NULL match function. linux_pci: Nix pci enumeration kludges. Now that we can pass a cookie through, this stuff will be a little less fragile.
i915: Omit needless i915_gem_object_pin/unpin_pages cycle in fault. vm_fault_cpu and vm_fault_gtt, called by i915_gem_fault, already do the pinning and unpinning internally, so there is no need for i915_gem_fault to do it. No functional change intended, except that the transient pin count will be one lower than before during the fault routine (but it will still be positive).
i915: Match Linux fault routine return code actions. Omit needless EINTR interception -- this is now handled by i915_error_to_vmf_fault. Earlier revert was over a false alarm -- bisection shows the new warnings arose from linux_pci.c 1.29 here: https://mail-index.netbsd.org/source-changes/2024/06/23/msg151929.html
linux_pci: Fix shifto in pci_get_class. It looks like Linux's pci_get_class also matches the interface part of the PCI class register (but not the revision part), and I hadn't noticed that in the previous shim structured differently.
With GCC12 kernel ALL/amd64 triggers "'sor' may be used uninitialized". If "sublinks & 3" is zero GCC is right and sor[1] may be returned unitialized. Fix by initializing "sor" to zero to return -1 instead of uninitialized value. Ok: Taylor R Campbell <riastradh@>
amdgpu: Map BAR 2, not BAR 5, on pre-bonaire chips. PR kern/58384
amdgpu: Map consecutive pages, not the same one over and over again. PR kern/58385
linux/bitops: Fix overestimate for BITS_TO_LONGS(9) Fortunately, this seems harmless except for allocating excessive buffer memory. Pointed out by nonaka@, OK riastradh@.
|