[PATCH v3 5/5] drm/xe/vf: Ignore force-wake requests if VF

Nirmoy Das nirmoy.das at linux.intel.com
Wed Jun 12 10:15:15 UTC 2024


On 6/11/2024 6:35 PM, Michal Wajdeczko wrote:
> The control and ack force-wake registers are not accessible for
> the VF drivers. To avoid changing existing code logic that tracks
> woken domains, simply ignore all attempts to access control or ack
> registers if we are running as a VF driver.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
Reviewed-by: Nirmoy Das <nirmoy.das at intel.com>
> ---
>   drivers/gpu/drm/xe/xe_force_wake.c | 7 +++++++
>   1 file changed, 7 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_force_wake.c b/drivers/gpu/drm/xe/xe_force_wake.c
> index 468aabd72d6b..5db6926120c3 100644
> --- a/drivers/gpu/drm/xe/xe_force_wake.c
> +++ b/drivers/gpu/drm/xe/xe_force_wake.c
> @@ -12,6 +12,7 @@
>   #include "xe_gt.h"
>   #include "xe_gt_printk.h"
>   #include "xe_mmio.h"
> +#include "xe_sriov.h"
>   
>   #define XE_FORCE_WAKE_ACK_TIMEOUT_MS	50
>   
> @@ -96,6 +97,9 @@ void xe_force_wake_init_engines(struct xe_gt *gt, struct xe_force_wake *fw)
>   
>   static void __domain_ctl(struct xe_gt *gt, struct xe_force_wake_domain *domain, bool wake)
>   {
> +	if (IS_SRIOV(gt_to_xe(gt)))
> +		return;
> +
>   	xe_mmio_write32(gt, domain->reg_ctl, domain->mask | (wake ? domain->val : 0));
>   }
>   
> @@ -104,6 +108,9 @@ static int __domain_wait(struct xe_gt *gt, struct xe_force_wake_domain *domain,
>   	u32 value;
>   	int ret;
>   
> +	if (IS_SRIOV(gt_to_xe(gt)))
> +		return 0;
> +
>   	ret = xe_mmio_wait32(gt, domain->reg_ack, domain->val, wake ? domain->val : 0,
>   			     XE_FORCE_WAKE_ACK_TIMEOUT_MS * USEC_PER_MSEC,
>   			     &value, true);


More information about the Intel-xe mailing list