All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
To: Maciej Falkowski <maciej.falkowski@linux.intel.com>,
	dri-devel@lists.freedesktop.org
Cc: oded.gabbay@gmail.com, quic_jhugo@quicinc.com, lizhi.hou@amd.com,
	Karol Wachowski <karol.wachowski@intel.com>
Subject: Re: [PATCH] accel/ivpu: Correct DCT interrupt handling
Date: Fri, 25 Apr 2025 10:51:24 +0200	[thread overview]
Message-ID: <1f899e90-51e5-49f1-a621-4b0997aabfdf@linux.intel.com> (raw)
In-Reply-To: <20250416102616.384577-1-maciej.falkowski@linux.intel.com>

Applied to drm-misc-fixes

On 4/16/2025 12:26 PM, Maciej Falkowski wrote:
> From: Karol Wachowski <karol.wachowski@intel.com>
> 
> Fix improper use of dct_active_percent field in DCT interrupt handler
> causing DCT to never get enabled. Set dct_active_percent internally before
> IPC to ensure correct driver value even if IPC fails.
> Set default DCT value to 30 accordingly to HW architecture specification.
> 
> Fixes: a19bffb10c46 ("accel/ivpu: Implement DCT handling")
> Signed-off-by: Karol Wachowski <karol.wachowski@intel.com>
> Signed-off-by: Maciej Falkowski <maciej.falkowski@linux.intel.com>
> ---
>  drivers/accel/ivpu/ivpu_hw_btrs.h |  2 +-
>  drivers/accel/ivpu/ivpu_pm.c      | 18 ++++++++++--------
>  2 files changed, 11 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/accel/ivpu/ivpu_hw_btrs.h b/drivers/accel/ivpu/ivpu_hw_btrs.h
> index 300f749971d4..d2d82651976d 100644
> --- a/drivers/accel/ivpu/ivpu_hw_btrs.h
> +++ b/drivers/accel/ivpu/ivpu_hw_btrs.h
> @@ -14,7 +14,7 @@
>  #define PLL_PROFILING_FREQ_DEFAULT   38400000
>  #define PLL_PROFILING_FREQ_HIGH      400000000
>  
> -#define DCT_DEFAULT_ACTIVE_PERCENT 15u
> +#define DCT_DEFAULT_ACTIVE_PERCENT 30u
>  #define DCT_PERIOD_US		   35300u
>  
>  int ivpu_hw_btrs_info_init(struct ivpu_device *vdev);
> diff --git a/drivers/accel/ivpu/ivpu_pm.c b/drivers/accel/ivpu/ivpu_pm.c
> index 1fe03fc16bbc..ea30db181cd7 100644
> --- a/drivers/accel/ivpu/ivpu_pm.c
> +++ b/drivers/accel/ivpu/ivpu_pm.c
> @@ -448,16 +448,17 @@ int ivpu_pm_dct_enable(struct ivpu_device *vdev, u8 active_percent)
>  	active_us = (DCT_PERIOD_US * active_percent) / 100;
>  	inactive_us = DCT_PERIOD_US - active_us;
>  
> +	vdev->pm->dct_active_percent = active_percent;
> +
> +	ivpu_dbg(vdev, PM, "DCT requested %u%% (D0: %uus, D0i2: %uus)\n",
> +		 active_percent, active_us, inactive_us);
> +
>  	ret = ivpu_jsm_dct_enable(vdev, active_us, inactive_us);
>  	if (ret) {
>  		ivpu_err_ratelimited(vdev, "Failed to enable DCT: %d\n", ret);
>  		return ret;
>  	}
>  
> -	vdev->pm->dct_active_percent = active_percent;
> -
> -	ivpu_dbg(vdev, PM, "DCT set to %u%% (D0: %uus, D0i2: %uus)\n",
> -		 active_percent, active_us, inactive_us);
>  	return 0;
>  }
>  
> @@ -465,15 +466,16 @@ int ivpu_pm_dct_disable(struct ivpu_device *vdev)
>  {
>  	int ret;
>  
> +	vdev->pm->dct_active_percent = 0;
> +
> +	ivpu_dbg(vdev, PM, "DCT requested to be disabled\n");
> +
>  	ret = ivpu_jsm_dct_disable(vdev);
>  	if (ret) {
>  		ivpu_err_ratelimited(vdev, "Failed to disable DCT: %d\n", ret);
>  		return ret;
>  	}
>  
> -	vdev->pm->dct_active_percent = 0;
> -
> -	ivpu_dbg(vdev, PM, "DCT disabled\n");
>  	return 0;
>  }
>  
> @@ -486,7 +488,7 @@ void ivpu_pm_irq_dct_work_fn(struct work_struct *work)
>  	if (ivpu_hw_btrs_dct_get_request(vdev, &enable))
>  		return;
>  
> -	if (vdev->pm->dct_active_percent)
> +	if (enable)
>  		ret = ivpu_pm_dct_enable(vdev, DCT_DEFAULT_ACTIVE_PERCENT);
>  	else
>  		ret = ivpu_pm_dct_disable(vdev);


      parent reply	other threads:[~2025-04-25  8:51 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-16 10:26 [PATCH] accel/ivpu: Correct DCT interrupt handling Maciej Falkowski
2025-04-18 15:29 ` Jeff Hugo
2025-04-25  8:51 ` Jacek Lawrynowicz [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1f899e90-51e5-49f1-a621-4b0997aabfdf@linux.intel.com \
    --to=jacek.lawrynowicz@linux.intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=karol.wachowski@intel.com \
    --cc=lizhi.hou@amd.com \
    --cc=maciej.falkowski@linux.intel.com \
    --cc=oded.gabbay@gmail.com \
    --cc=quic_jhugo@quicinc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.