History log of /src/sys/external/bsd/drm2/include/drm/drm_wait_netbsd.h |
Revision | | Date | Author | Comments |
1.19 |
| 19-Dec-2021 |
riastradh | drm: Fix comments about wait return values.
|
1.18 |
| 19-Dec-2021 |
riastradh | drm: Ensure DRM_*WAIT* never counts down from MAX_SCHEDULE_TIMEOUT.
This faux timeout means `wait forever'.
|
1.17 |
| 03-Jul-2020 |
maxv | hardclock_ticks -> getticks()
|
1.16 |
| 14-Feb-2020 |
riastradh | DRM_HZ -> HZ, to reduce diffs.
|
1.15 |
| 16-Apr-2019 |
mrg | branches: 1.15.6; 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 |
| 13-May-2016 |
christos | branches: 1.14.10; 1.14.18; We now use cpu_intr_p() all the time.
|
1.13 |
| 12-Apr-2015 |
riastradh | Don't break when hardclock_ticks wraps around.
Since we now only count time spent in wait, rather than determining the end time and checking whether we've passed it, timeouts might be marginally longer in effect. Unlikely to be an issue.
|
1.12 |
| 04-Apr-2015 |
riastradh | In DRM_SPIN_WAIT_ON, don't stop after waiting only one tick.
Continue the loop to recheck the condition and count the whole duration.
|
1.11 |
| 28-Feb-2015 |
riastradh | Actually poll every tick as advertised.
|
1.10 |
| 28-Feb-2015 |
riastradh | Remove extraneous blank line.
|
1.9 |
| 28-Feb-2015 |
riastradh | New macro DRM_SPIN_WAIT_ON better reflects DRM_WAIT_ON.
We still need to adapt all waits from upstream to use an interlock, so we can't implement DRM_WAIT_ON verbatim, but this more closely reflects the API of DRM_WAIT_ON than DRM_*WAIT*_UNTIL do.
Major difference is that this polls every tick, like DRM_WAIT_ON, unlike DRM_*WAIT*_UNTIL. So it will mask missing wakeups, but it wouldn't surprise me if there were such things upstream.
|
1.8 |
| 28-Feb-2015 |
riastradh | Elaborate on essay about DRM_*WAIT*_UNTIL reutrn convention.
|
1.7 |
| 28-Feb-2015 |
riastradh | Write an essay to remind myself about (timed) wait return values.
|
1.6 |
| 26-Feb-2015 |
riastradh | Another attempt to fix the drm timed wait blarf blugh blahhh.
|
1.5 |
| 26-Aug-2014 |
riastradh | branches: 1.5.2; Return 0, not uninitialized, if the condition is already true.
|
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 |
| 24-Jul-2013 |
riastradh | branches: 1.1.2; file drm_wait_netbsd.h was initially added on branch riastradh-drm2.
|
1.1.2.9 |
| 05-Mar-2014 |
riastradh | Implement and use non-interruptible DRM_WAIT_* gizmos.
|
1.1.2.8 |
| 08-Sep-2013 |
riastradh | Fix DRM_WAIT_UNTIL to initialize (RET) on every exit.
|
1.1.2.7 |
| 08-Sep-2013 |
riastradh | Fix result of DRM_TIMED_WAIT_UNTIL.
This has to return a positive number of ticks left if we haven't timed out in order to match the semantics of Linux waitqueues.
This also fixes the amount of time for timeout if we ever wait for more than one iteration.
Now we can actually wait for results from the ring buffers!
|
1.1.2.6 |
| 24-Jul-2013 |
riastradh | Add DRM_WAITERS_P and DRM_SPIN_WAITERS_P to drm_wait_netbsd.h.
|
1.1.2.5 |
| 24-Jul-2013 |
riastradh | Add DRM_DESTROY_WAITQUEUE to drm_wait_netbsd.h.
|
1.1.2.4 |
| 24-Jul-2013 |
riastradh | Define DRM_HZ to be hz (super-kludgey!) in drm_wait_netbsd.h.
|
1.1.2.3 |
| 24-Jul-2013 |
riastradh | Add variants of drm wait/wakeup for spin locks in drm_wait_netbsd.h.
|
1.1.2.2 |
| 24-Jul-2013 |
riastradh | Tweak drm waitqueue compatibility interface.
Use (Linux) struct mutex for drm_interlock_t, and split DRM_WAKEUP into DRM_WAKEUP_ONE (cv_signal) and DRM_WAKEUP_ALL (cv_broadcast).
|
1.1.2.1 |
| 24-Jul-2013 |
riastradh | Implement drm waitqueues with condvars. Include in drm_os_netbsd.h.
|
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 drm_wait_netbsd.h 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 drm_wait_netbsd.h 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 drm_wait_netbsd.h was added on branch tls-maxphys on 2014-08-20 00:04:21 +0000
|
1.4.2.5 |
| 12-Dec-2016 |
msaitoh | Pull up following revision(s) (requested by snj in ticket #1280): sys/external/bsd/drm2/ttm/ttm_bus_dma.c: revision 1.2 sys/external/bsd/drm2/include/drm/drm_wait_netbsd.h: revision 1.14 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_dp.c: revision 1.2 sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c: revision 1.7 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c: revision 1.11 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nv40.c: revision 1.2 sys/external/bsd/drm2/dist/include/drm/ttm/ttm_bo_driver.h: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c: revision 1.8 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_gem.c: revision 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/nouveau_subdev_devinit_nv04.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c: revision 1.7 sys/external/bsd/drm2/dist/drm/nouveau/core/core/nouveau_core_object.c: revision 1.3 sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.c: revision 1.4 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/mxm/nouveau_subdev_mxm_mxms.c: revision 1.2 sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/mxm/nouveau_subdev_mxm_nv50.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_nvd0.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_base.c: revision 1.5 sys/external/bsd/drm2/include/drm/ttm/ttm_page_alloc.h: revision 1.2 sys/external/bsd/drm2/drm/drm_vma_manager.c: revision 1.4 sys/external/bsd/drm2/nouveau/nouveau_pci.c: revision 1.8 - fix non-debug build - Use %"PRIx8", not %hx, for uint8_t. %hx is for unsigned short. - Flush unused function. Found by joerg. - Make sure rbtrees are empty on desctruction. If related to PR kern/51076, might help catch the bug a bit earlier. - revert rev 1.6. we don't have access to those files as normal files and possible will get them directly elsewhere soon. (if i hack my nouveau to ignore fireware failure, it end up having a vaguely working console and slowly working X, which is better than the current situation.) - Avoid possible null pointer dereference. Found by Coverity, CID 709895. - Mark fallthrough to suppress Coverity complaints. CID 143119 CID 143120 CID 143121 CID 143122 CID 143123 CID 143124 - Sanity-check that the encoder we found is not null. I think the previous code guarantees that finding this encoder should work, so this should be a moot point. CID 145720. - Mark intended fallthrough to suppress Coverity CID 201378. - Mark fallthrough with a comment to appease Coverity, CID 703385. - Make it clearer to Coverity that there's no array overrun. CID 989067. - Rework ttm tt swapin/swapout logic. Rather than handling `swapping in/out' here, per se, we let uvm do that, we interpret `swap out' as `deactivate pages', and we add generic ttm operations to wire and unwire pages, for the ttm_tt driver to use. This fixes certain graphics buffer eviction logic, which enables nouveau to suspend/resume on one of my machines. (The machine doesn't resume overall for other reasons, but the nouveau device suspends and resumes in isolation.) - Use bus_space_subregion to get fifo channels out of mmio registers. Evidently it is not enough to just map them separately. Ran out of time to investigate why, last time I poked at this and confirmed this change works. - Avoid taking locks during interrupts and explain why we are doing it this way. - We now use cpu_intr_p() all the time.
|
1.4.2.4 |
| 23-Apr-2015 |
snj | branches: 1.4.2.4.4; Pull up following revision(s) (requested by mrg in ticket #718): sys/arch/x86/include/pmap.h: revision 1.56 sys/arch/x86/x86/pmap.c: revision 1.188 sys/dev/pci/agp_amd64.c: revision 1.8 sys/dev/pci/agp_i810.c: revision 1.118 sys/external/bsd/drm2/dist/drm/i915/i915_dma.c: revision 1.16 sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: revision 1.29 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_agp.c: revision 1.3 sys/external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.c: revision 1.4 sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/radeon_agp.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/radeon_legacy_crtc.c: revision 1.2 sys/external/bsd/drm2/dist/drm/radeon/radeon_object.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c: revision 1.7 sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c: revisions 1.7-1.10 sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c: revision 1.5 sys/external/bsd/drm2/i915drm/intelfb.c: revision 1.13 sys/external/bsd/drm2/include/drm/drm_wait_netbsd.h: revisions 1.12, 1.13 sys/external/bsd/drm2/include/linux/mm.h: revision 1.5 sys/external/bsd/drm2/include/linux/pci.h: revisions 1.16, 1.17 sys/external/bsd/drm2/nouveau/nouveaufb.c: revision 1.2 sys/external/bsd/drm2/radeon/radeon_pci.c: revisions 1.8, 1.9 sys/uvm/uvm_init.c: revision 1.46 Hack against the blank console problem: Leave the CLUT alone on ancient cards. At least this leaves us with a semi working console (red and blue are flipped). Leave an example of what seems to be happening but disable it because colors are better than 444 bit greyscale. -- Initialize P->V tracking for unmanaged device pages in uvm_init.
Conditional on __HAVE_PMAP_PV_TRACK until we add it to all pmaps.
MI part of pmap_pv(9) change proposed on tech-kern:
https://mail-index.netbsd.org/tech-kern/2015/03/26/msg018561.html -- Implement pmap_pv(9) for x86 for P->V tracking of unmanaged pages.
Proposed on tech-kern with no objections:
https://mail-index.netbsd.org/tech-kern/2015/03/26/msg018561.html -- Use pmap_pv(9) to remove mappings of Intel graphics aperture pages.
Proposed on tech-kern with no objections:
https://mail-index.netbsd.org/tech-kern/2015/03/26/msg018561.html
Further background at:
https://mail-index.netbsd.org/tech-kern/2014/07/23/msg017392.html -- Use pmap_pv(9) to remove mappings of device pages in TTM.
Adapt nouveau and radeon to do pmap_pv_track for their device pages.
Proposed on tech-kern with no objections:
https://mail-index.netbsd.org/tech-kern/2015/03/26/msg018561.html
Further background at:
https://mail-index.netbsd.org/tech-kern/2014/07/23/msg017392.html -- Fix error branches in agp_amd64.c.
- agp_generic_detach always. - Free asc if it was allocated. (Found by Brainy, noted by maxv@.) - Free the GATT if it was allocated. -- pmf_device_register returns false on failure, not true -- In DRM_SPIN_WAIT_ON, don't stop after waiting only one tick.
Continue the loop to recheck the condition and count the whole duration. -- Don't use the video BIOS memory as an i915 flush page! -- Don't let anyone else allocate the video BIOS either. -- Missed a zero: it's 0x100000, not 0x10000. -- Don't reserve if atomic -- caller must have pre-pinned the buffer. -- Don't reserve if atomic -- caller must have pre-pinned the buffer. -- almost add radeondrmkms suspend/resume support. it unfortunately doesn't work. -- Need the page's uvm object lock to do pmap_page_protect. -- Use KASSERTMSG to show bad base/offset. -- KASSERT about page-alignment on initialization too. -- Don't break when hardclock_ticks wraps around.
Since we now only count time spent in wait, rather than determining the end time and checking whether we've passed it, timeouts might be marginally longer in effect. Unlikely to be an issue. -- Remove broken drm2 vm_mmap stub. Can't possibly have ever worked. -- apply some of the additional changes from Arto Huusko in PR#49645: - call pmf_device_deregister on detach.
i've kept the "resume = true" for radeon_resume_kms() call as it seems to work for me (indeed, code inspection shows it is unused on netbsd :-)
my old nforce4 box that can resume old drm (or could, last i tried several years ago) while X and GL apps were running, can at least survive a resume if X hasn't started. my one attempt so far with X exited, but having run, did not work. -- First attempt to make ttm_buffer_object_transfer less bogus. -- Make sure mem.bus.is_iomem is initialized. PR 49833
|
1.4.2.3 |
| 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.4.2.2 |
| 27-Feb-2015 |
martin | Pull up following revision(s) (requested by snj in ticket #553): sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: revision 1.20 sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: revision 1.21 sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: revision 1.22 sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c: revision 1.5 sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c: revision 1.6 sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c: revision 1.7 sys/external/bsd/drm2/include/drm/drm_wait_netbsd.h: revision 1.6 Fix returned timeout in wait_seqno: remaining time, not time slept. - Fix return code of __wait_seqno. - MAX(ret, 0) is 0 if ret is negative, but if ret is negative we want to return that negative value, meaning error. Should've been MIN(ret, 0), but I'll just rewrite it to clarify a wee bit. - If the GPU reset, call i915_gem_check_wedge and always return failure like Linux does. Caller must retry in that case. - Limit scope of ret and omit needless use of it to reduce confusion. - Make gmbus_wait_hw_status consistently use 50ms timeout like Linux. - Another attempt to fix the drm timed wait blarf blugh blahhh. ...aaaaand one more fix for __wait_seqno return value. - Also get the sense of the condition to wait until right.
|
1.4.2.1 |
| 21-Sep-2014 |
snj | Pull up following revision(s) (requested by riastradh in ticket #98): sys/external/bsd/drm2/include/drm/drm_wait_netbsd.h: revision 1.5 Return 0, not uninitialized, if the condition is already true.
|
1.4.2.4.4.1 |
| 18-Jan-2017 |
skrll | Sync with netbsd-5
|
1.5.2.3 |
| 29-May-2016 |
skrll | Sync with HEAD
|
1.5.2.2 |
| 06-Jun-2015 |
skrll | Sync with HEAD
|
1.5.2.1 |
| 06-Apr-2015 |
skrll | Sync with HEAD
|
1.14.18.2 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.14.18.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.14.10.1 |
| 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.15.6.1 |
| 29-Feb-2020 |
ad | Sync with head.
|