diff mbox series

[v6,2/4] drm/i915: Introduce the intel_gt_resume_early()

Message ID 20230927210357.17461-2-nirmoy.das@intel.com (mailing list archive)
State New, archived
Headers show
Series [v6,1/4] drm/i915: Introduce intel_gt_mcr_lock_reset() | expand

Commit Message

Nirmoy Das Sept. 27, 2023, 9:03 p.m. UTC
Move early resume functions of gt to a proper file.

Signed-off-by: Nirmoy Das <nirmoy.das@intel.com>
---
 drivers/gpu/drm/i915/gt/intel_gt_pm.c | 6 ++++++
 drivers/gpu/drm/i915/gt/intel_gt_pm.h | 1 +
 drivers/gpu/drm/i915/i915_driver.c    | 6 ++----
 3 files changed, 9 insertions(+), 4 deletions(-)

Comments

Andi Shyti Sept. 28, 2023, 7:24 a.m. UTC | #1
Hi Nirmoy,

On Wed, Sep 27, 2023 at 11:03:55PM +0200, Nirmoy Das wrote:
> Move early resume functions of gt to a proper file.
> 
> Signed-off-by: Nirmoy Das <nirmoy.das@intel.com>
> ---
>  drivers/gpu/drm/i915/gt/intel_gt_pm.c | 6 ++++++
>  drivers/gpu/drm/i915/gt/intel_gt_pm.h | 1 +
>  drivers/gpu/drm/i915/i915_driver.c    | 6 ++----
>  3 files changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_gt_pm.c b/drivers/gpu/drm/i915/gt/intel_gt_pm.c
> index 5a942af0a14e..dab73980c9f1 100644
> --- a/drivers/gpu/drm/i915/gt/intel_gt_pm.c
> +++ b/drivers/gpu/drm/i915/gt/intel_gt_pm.c
> @@ -216,6 +216,12 @@ void intel_gt_pm_fini(struct intel_gt *gt)
>  	intel_rc6_fini(&gt->rc6);
>  }
>  
> +void intel_gt_resume_early(struct intel_gt *gt)
> +{
> +	intel_uncore_resume_early(gt->uncore);
> +	intel_gt_check_and_clear_faults(gt);
> +}
> +

should this go into the gt/ directory? Besides, if we don't need
spinlocks in the whole reset function, we could directly have the

   intel_uncore_write_fw(gt->uncore, MTL_STEER_SEMAPHORE, 0x1);

here, so that we avoid having one line functions.

Andi
Nirmoy Das Sept. 28, 2023, 8:30 a.m. UTC | #2
Hi Andi,

On 9/28/2023 9:24 AM, Andi Shyti wrote:
> Hi Nirmoy,
>
> On Wed, Sep 27, 2023 at 11:03:55PM +0200, Nirmoy Das wrote:
>> Move early resume functions of gt to a proper file.
>>
>> Signed-off-by: Nirmoy Das <nirmoy.das@intel.com>
>> ---
>>   drivers/gpu/drm/i915/gt/intel_gt_pm.c | 6 ++++++
>>   drivers/gpu/drm/i915/gt/intel_gt_pm.h | 1 +
>>   drivers/gpu/drm/i915/i915_driver.c    | 6 ++----
>>   3 files changed, 9 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/gt/intel_gt_pm.c b/drivers/gpu/drm/i915/gt/intel_gt_pm.c
>> index 5a942af0a14e..dab73980c9f1 100644
>> --- a/drivers/gpu/drm/i915/gt/intel_gt_pm.c
>> +++ b/drivers/gpu/drm/i915/gt/intel_gt_pm.c
>> @@ -216,6 +216,12 @@ void intel_gt_pm_fini(struct intel_gt *gt)
>>   	intel_rc6_fini(&gt->rc6);
>>   }
>>   
>> +void intel_gt_resume_early(struct intel_gt *gt)
>> +{
>> +	intel_uncore_resume_early(gt->uncore);
>> +	intel_gt_check_and_clear_faults(gt);
>> +}
>> +
> should this go into the gt/ directory?


Don't wanted to add anything new to i915_driver which can be done at 
lower levels as suggested by Jani and this seems like it

should go to gt dir.

> Besides, if we don't need
> spinlocks in the whole reset function, we could directly have the
>
>     intel_uncore_write_fw(gt->uncore, MTL_STEER_SEMAPHORE, 0x1);
>
> here, so that we avoid having one line functions.

I think steer specific functions should stay in one file/header.


Thanks,

Nirmoy


>
> Andi
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/gt/intel_gt_pm.c b/drivers/gpu/drm/i915/gt/intel_gt_pm.c
index 5a942af0a14e..dab73980c9f1 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt_pm.c
+++ b/drivers/gpu/drm/i915/gt/intel_gt_pm.c
@@ -216,6 +216,12 @@  void intel_gt_pm_fini(struct intel_gt *gt)
 	intel_rc6_fini(&gt->rc6);
 }
 
+void intel_gt_resume_early(struct intel_gt *gt)
+{
+	intel_uncore_resume_early(gt->uncore);
+	intel_gt_check_and_clear_faults(gt);
+}
+
 int intel_gt_resume(struct intel_gt *gt)
 {
 	struct intel_engine_cs *engine;
diff --git a/drivers/gpu/drm/i915/gt/intel_gt_pm.h b/drivers/gpu/drm/i915/gt/intel_gt_pm.h
index 6c9a46452364..b1eeb5b33918 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt_pm.h
+++ b/drivers/gpu/drm/i915/gt/intel_gt_pm.h
@@ -78,6 +78,7 @@  void intel_gt_pm_fini(struct intel_gt *gt);
 void intel_gt_suspend_prepare(struct intel_gt *gt);
 void intel_gt_suspend_late(struct intel_gt *gt);
 int intel_gt_resume(struct intel_gt *gt);
+void intel_gt_resume_early(struct intel_gt *gt);
 
 void intel_gt_runtime_suspend(struct intel_gt *gt);
 int intel_gt_runtime_resume(struct intel_gt *gt);
diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index d50347e5773a..78501a83ba10 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -1327,10 +1327,8 @@  static int i915_drm_resume_early(struct drm_device *dev)
 		drm_err(&dev_priv->drm,
 			"Resume prepare failed: %d, continuing anyway\n", ret);
 
-	for_each_gt(gt, dev_priv, i) {
-		intel_uncore_resume_early(gt->uncore);
-		intel_gt_check_and_clear_faults(gt);
-	}
+	for_each_gt(gt, dev_priv, i)
+		intel_gt_resume_early(gt);
 
 	intel_display_power_resume_early(dev_priv);