diff options
| author | Dave Airlie <[email protected]> | 2022-11-04 17:20:12 +1000 | 
|---|---|---|
| committer | Dave Airlie <[email protected]> | 2022-11-04 17:33:34 +1000 | 
| commit | 60ba8c5bd94e17ab4b024f5cecf8b48e2cf36412 (patch) | |
| tree | 7e03a3b457f942c7eb3b865f535bcbe55bb72d11 /drivers/gpu/drm/i915/gt/sysfs_engines.c | |
| parent | 441f0ec0ae1ef7350fa546e03c12cc93082e11c6 (diff) | |
| parent | 8f956e9a2c9bdb22ac50c8b7656e2ea29c2e656c (diff) | |
Merge tag 'drm-intel-gt-next-2022-11-03' of git://anongit.freedesktop.org/drm/drm-intel into drm-next
Driver Changes:
- Fix for #7306: [Arc A380] white flickering when using arc as a
  secondary gpu (Matt A)
- Add Wa_18017747507 for DG2 (Wayne)
- Avoid spurious WARN on DG1 due to incorrect cache_dirty flag
  (Niranjana, Matt A)
- Corrections to CS timestamp support for Gen5 and earlier (Ville)
- Fix a build error used with clang compiler on hwmon (GG)
- Improvements to LMEM handling with RPM (Anshuman, Matt A)
- Cleanups in dmabuf code (Mike)
- Selftest improvements (Matt A)
Signed-off-by: Dave Airlie <[email protected]>
From: Joonas Lahtinen <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
Diffstat (limited to 'drivers/gpu/drm/i915/gt/sysfs_engines.c')
| -rw-r--r-- | drivers/gpu/drm/i915/gt/sysfs_engines.c | 25 | 
1 files changed, 15 insertions, 10 deletions
| diff --git a/drivers/gpu/drm/i915/gt/sysfs_engines.c b/drivers/gpu/drm/i915/gt/sysfs_engines.c index 967031056202..f2d9858d827c 100644 --- a/drivers/gpu/drm/i915/gt/sysfs_engines.c +++ b/drivers/gpu/drm/i915/gt/sysfs_engines.c @@ -144,7 +144,7 @@ max_spin_store(struct kobject *kobj, struct kobj_attribute *attr,  	       const char *buf, size_t count)  {  	struct intel_engine_cs *engine = kobj_to_engine(kobj); -	unsigned long long duration; +	unsigned long long duration, clamped;  	int err;  	/* @@ -168,7 +168,8 @@ max_spin_store(struct kobject *kobj, struct kobj_attribute *attr,  	if (err)  		return err; -	if (duration > jiffies_to_nsecs(2)) +	clamped = intel_clamp_max_busywait_duration_ns(engine, duration); +	if (duration != clamped)  		return -EINVAL;  	WRITE_ONCE(engine->props.max_busywait_duration_ns, duration); @@ -203,7 +204,7 @@ timeslice_store(struct kobject *kobj, struct kobj_attribute *attr,  		const char *buf, size_t count)  {  	struct intel_engine_cs *engine = kobj_to_engine(kobj); -	unsigned long long duration; +	unsigned long long duration, clamped;  	int err;  	/* @@ -218,7 +219,8 @@ timeslice_store(struct kobject *kobj, struct kobj_attribute *attr,  	if (err)  		return err; -	if (duration > jiffies_to_msecs(MAX_SCHEDULE_TIMEOUT)) +	clamped = intel_clamp_timeslice_duration_ms(engine, duration); +	if (duration != clamped)  		return -EINVAL;  	WRITE_ONCE(engine->props.timeslice_duration_ms, duration); @@ -256,7 +258,7 @@ stop_store(struct kobject *kobj, struct kobj_attribute *attr,  	   const char *buf, size_t count)  {  	struct intel_engine_cs *engine = kobj_to_engine(kobj); -	unsigned long long duration; +	unsigned long long duration, clamped;  	int err;  	/* @@ -272,7 +274,8 @@ stop_store(struct kobject *kobj, struct kobj_attribute *attr,  	if (err)  		return err; -	if (duration > jiffies_to_msecs(MAX_SCHEDULE_TIMEOUT)) +	clamped = intel_clamp_stop_timeout_ms(engine, duration); +	if (duration != clamped)  		return -EINVAL;  	WRITE_ONCE(engine->props.stop_timeout_ms, duration); @@ -306,7 +309,7 @@ preempt_timeout_store(struct kobject *kobj, struct kobj_attribute *attr,  		      const char *buf, size_t count)  {  	struct intel_engine_cs *engine = kobj_to_engine(kobj); -	unsigned long long timeout; +	unsigned long long timeout, clamped;  	int err;  	/* @@ -322,7 +325,8 @@ preempt_timeout_store(struct kobject *kobj, struct kobj_attribute *attr,  	if (err)  		return err; -	if (timeout > jiffies_to_msecs(MAX_SCHEDULE_TIMEOUT)) +	clamped = intel_clamp_preempt_timeout_ms(engine, timeout); +	if (timeout != clamped)  		return -EINVAL;  	WRITE_ONCE(engine->props.preempt_timeout_ms, timeout); @@ -362,7 +366,7 @@ heartbeat_store(struct kobject *kobj, struct kobj_attribute *attr,  		const char *buf, size_t count)  {  	struct intel_engine_cs *engine = kobj_to_engine(kobj); -	unsigned long long delay; +	unsigned long long delay, clamped;  	int err;  	/* @@ -379,7 +383,8 @@ heartbeat_store(struct kobject *kobj, struct kobj_attribute *attr,  	if (err)  		return err; -	if (delay >= jiffies_to_msecs(MAX_SCHEDULE_TIMEOUT)) +	clamped = intel_clamp_heartbeat_interval_ms(engine, delay); +	if (delay != clamped)  		return -EINVAL;  	err = intel_engine_set_heartbeat(engine, delay); |