Module Name: src Committed By: riastradh Date: Mon Aug 27 06:38:36 UTC 2018
Modified Files: src/sys/external/bsd/drm2/dist/drm/radeon: cik.c radeon.h radeon_fence.c Log Message: Expose fence wakeup subroutine to cik.c. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/dist/drm/radeon/cik.c \ src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h cvs rdiff -u -r1.9 -r1.10 \ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/external/bsd/drm2/dist/drm/radeon/cik.c diff -u src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.5 --- src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.4 Mon Aug 27 04:58:35 2018 +++ src/sys/external/bsd/drm2/dist/drm/radeon/cik.c Mon Aug 27 06:38:36 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: cik.c,v 1.4 2018/08/27 04:58:35 riastradh Exp $ */ +/* $NetBSD: cik.c,v 1.5 2018/08/27 06:38:36 riastradh Exp $ */ /* * Copyright 2012 Advanced Micro Devices, Inc. @@ -24,7 +24,7 @@ * Authors: Alex Deucher */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: cik.c,v 1.4 2018/08/27 04:58:35 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cik.c,v 1.5 2018/08/27 06:38:36 riastradh Exp $"); #include <linux/firmware.h> #include <linux/slab.h> @@ -8508,8 +8508,15 @@ restart_ih: if (queue_hotplug) schedule_delayed_work(&rdev->hotplug_work, 0); if (queue_reset) { +#ifdef __NetBSD__ + spin_lock(&rdev->fence_lock); + rdev->needs_reset = true; + radeon_fence_wakeup_locked(rdev); + spin_unlock(&rdev->fence_lock); +#else rdev->needs_reset = true; wake_up_all(&rdev->fence_queue); +#endif } if (queue_thermal) schedule_work(&rdev->pm.dpm.thermal.work); Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.5 --- src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.4 Mon Aug 27 04:58:36 2018 +++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h Mon Aug 27 06:38:36 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: radeon.h,v 1.4 2018/08/27 04:58:36 riastradh Exp $ */ +/* $NetBSD: radeon.h,v 1.5 2018/08/27 06:38:36 riastradh Exp $ */ /* * Copyright 2008 Advanced Micro Devices, Inc. @@ -400,6 +400,7 @@ int radeon_fence_driver_init(struct rade void radeon_fence_driver_fini(struct radeon_device *rdev); void radeon_fence_driver_force_completion(struct radeon_device *rdev, int ring); int radeon_fence_emit(struct radeon_device *rdev, struct radeon_fence **fence, int ring); +void radeon_fence_wakeup_locked(struct radeon_device *rdev); void radeon_fence_process(struct radeon_device *rdev, int ring); bool radeon_fence_signaled(struct radeon_fence *fence); int radeon_fence_wait(struct radeon_fence *fence, bool interruptible); Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.9 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.10 --- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.9 Mon Aug 27 04:58:36 2018 +++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c Mon Aug 27 06:38:36 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: radeon_fence.c,v 1.9 2018/08/27 04:58:36 riastradh Exp $ */ +/* $NetBSD: radeon_fence.c,v 1.10 2018/08/27 06:38:36 riastradh Exp $ */ /* * Copyright 2009 Jerome Glisse. @@ -31,7 +31,7 @@ * Dave Airlie */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: radeon_fence.c,v 1.9 2018/08/27 04:58:36 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: radeon_fence.c,v 1.10 2018/08/27 06:38:36 riastradh Exp $"); #include <linux/seq_file.h> #include <linux/atomic.h> @@ -203,8 +203,8 @@ static int radeon_fence_check_signaled(w } #ifdef __NetBSD__ -static void -radeon_wakeup(struct radeon_device *rdev) +void +radeon_fence_wakeup_locked(struct radeon_device *rdev) { struct radeon_fence *fence, *next;