[2/3] drm/i915/selftests: Distinguish mock device from no wakeref

Submitted by Chris Wilson on Sept. 27, 2019, 9:17 p.m.

Details

Message ID 20190927211749.2181-2-chris@chris-wilson.co.uk
State Accepted
Commit 4e18ca703f2167d8bcb7f736271744131e3c390b
Headers show
Series "Series without cover letter" ( rev: 1 ) in Intel GFX

Not browsing as part of any series.

Commit Message

Chris Wilson Sept. 27, 2019, 9:17 p.m.
On systems that have no runtime-pm, we mark the wakeref as being -1. We
therefore cannot use that value for the mock-gt indicator, so opt for
-ENODEV instead. The wakeref should never be an error value -- one
hopes!

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Andi Shyti <andi.shyti@intel.com>
---
 drivers/gpu/drm/i915/gt/intel_gt_pm.h            | 2 +-
 drivers/gpu/drm/i915/selftests/mock_gem_device.c | 3 +--
 2 files changed, 2 insertions(+), 3 deletions(-)

Patch hide | download patch | download mbox

diff --git a/drivers/gpu/drm/i915/gt/intel_gt_pm.h b/drivers/gpu/drm/i915/gt/intel_gt_pm.h
index ab794e853356..997770d3a968 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt_pm.h
+++ b/drivers/gpu/drm/i915/gt/intel_gt_pm.h
@@ -57,7 +57,7 @@  int intel_gt_runtime_resume(struct intel_gt *gt);
 
 static inline bool is_mock_gt(const struct intel_gt *gt)
 {
-	return I915_SELFTEST_ONLY(gt->awake == -1);
+	return I915_SELFTEST_ONLY(gt->awake == -ENODEV);
 }
 
 #endif /* INTEL_GT_PM_H */
diff --git a/drivers/gpu/drm/i915/selftests/mock_gem_device.c b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
index 91f15fa728cd..2448067822af 100644
--- a/drivers/gpu/drm/i915/selftests/mock_gem_device.c
+++ b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
@@ -182,6 +182,7 @@  struct drm_i915_private *mock_gem_device(void)
 	i915_gem_init__mm(i915);
 	intel_gt_init_early(&i915->gt, i915);
 	atomic_inc(&i915->gt.wakeref.count); /* disable; no hw support */
+	i915->gt.awake = -ENODEV;
 
 	i915->wq = alloc_ordered_workqueue("mock", 0);
 	if (!i915->wq)
@@ -192,8 +193,6 @@  struct drm_i915_private *mock_gem_device(void)
 	INIT_DELAYED_WORK(&i915->gem.retire_work, mock_retire_work_handler);
 	INIT_WORK(&i915->gem.idle_work, mock_idle_work_handler);
 
-	i915->gt.awake = -1;
-
 	intel_timelines_init(i915);
 
 	mutex_lock(&i915->drm.struct_mutex);

Comments

On Fri, Sep 27, 2019 at 10:17:48PM +0100, Chris Wilson wrote:
> On systems that have no runtime-pm, we mark the wakeref as being -1. We
> therefore cannot use that value for the mock-gt indicator, so opt for
> -ENODEV instead. The wakeref should never be an error value -- one
> hopes!

-1 (EPERM) is an error value as well, -ENODEV looks cleaner and
more appropriate, in any case:

Reviewed-by: Andi Shyti <andi.shyti@intel.com>

Thanks,
Andi


> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Andi Shyti <andi.shyti@intel.com>
> ---
>  drivers/gpu/drm/i915/gt/intel_gt_pm.h            | 2 +-
>  drivers/gpu/drm/i915/selftests/mock_gem_device.c | 3 +--
>  2 files changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_gt_pm.h b/drivers/gpu/drm/i915/gt/intel_gt_pm.h
> index ab794e853356..997770d3a968 100644
> --- a/drivers/gpu/drm/i915/gt/intel_gt_pm.h
> +++ b/drivers/gpu/drm/i915/gt/intel_gt_pm.h
> @@ -57,7 +57,7 @@ int intel_gt_runtime_resume(struct intel_gt *gt);
>  
>  static inline bool is_mock_gt(const struct intel_gt *gt)
>  {
> -	return I915_SELFTEST_ONLY(gt->awake == -1);
> +	return I915_SELFTEST_ONLY(gt->awake == -ENODEV);
>  }
>  
>  #endif /* INTEL_GT_PM_H */
> diff --git a/drivers/gpu/drm/i915/selftests/mock_gem_device.c b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
> index 91f15fa728cd..2448067822af 100644
> --- a/drivers/gpu/drm/i915/selftests/mock_gem_device.c
> +++ b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
> @@ -182,6 +182,7 @@ struct drm_i915_private *mock_gem_device(void)
>  	i915_gem_init__mm(i915);
>  	intel_gt_init_early(&i915->gt, i915);
>  	atomic_inc(&i915->gt.wakeref.count); /* disable; no hw support */
> +	i915->gt.awake = -ENODEV;
>  
>  	i915->wq = alloc_ordered_workqueue("mock", 0);
>  	if (!i915->wq)
> @@ -192,8 +193,6 @@ struct drm_i915_private *mock_gem_device(void)
>  	INIT_DELAYED_WORK(&i915->gem.retire_work, mock_retire_work_handler);
>  	INIT_WORK(&i915->gem.idle_work, mock_idle_work_handler);
>  
> -	i915->gt.awake = -1;
> -
>  	intel_timelines_init(i915);
>  
>  	mutex_lock(&i915->drm.struct_mutex);
> -- 
> 2.23.0