[PATCH 6/9] drm/xe/vf: Don't support gtidle if VF
Piotr Piórkowski
piotr.piorkowski at intel.com
Thu Jun 20 09:38:46 UTC 2024
Michal Wajdeczko <michal.wajdeczko at intel.com> wrote on śro [2024-cze-19 23:45:54 +0200]:
> VF drivers can't access any of gtidle control registers as this
> functionality is owned by the PF driver.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
> ---
> drivers/gpu/drm/xe/xe_gt_idle.c | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_gt_idle.c b/drivers/gpu/drm/xe/xe_gt_idle.c
> index 5d6181117ab2..67aba4140510 100644
> --- a/drivers/gpu/drm/xe/xe_gt_idle.c
> +++ b/drivers/gpu/drm/xe/xe_gt_idle.c
> @@ -15,6 +15,7 @@
> #include "xe_macros.h"
> #include "xe_mmio.h"
> #include "xe_pm.h"
> +#include "xe_sriov.h"
>
> /**
> * DOC: Xe GT Idle
> @@ -100,6 +101,9 @@ void xe_gt_idle_enable_pg(struct xe_gt *gt)
> u32 pg_enable;
> int i, j;
>
> + if (IS_SRIOV_VF(xe))
> + return;
> +
> /* Disable CPG for PVC */
> if (xe->info.platform == XE_PVC)
> return;
> @@ -130,6 +134,9 @@ void xe_gt_idle_enable_pg(struct xe_gt *gt)
>
> void xe_gt_idle_disable_pg(struct xe_gt *gt)
> {
> + if (IS_SRIOV_VF(gt_to_xe(gt)))
> + return;
> +
> xe_device_assert_mem_access(gt_to_xe(gt));
> XE_WARN_ON(xe_force_wake_get(gt_to_fw(gt), XE_FW_GT));
>
> @@ -214,6 +221,9 @@ int xe_gt_idle_init(struct xe_gt_idle *gtidle)
> struct kobject *kobj;
> int err;
>
> + if (IS_SRIOV_VF(xe))
> + return 0;
> +
> kobj = kobject_create_and_add("gtidle", gt->sysfs);
> if (!kobj)
> return -ENOMEM;
> @@ -246,6 +256,9 @@ void xe_gt_idle_enable_c6(struct xe_gt *gt)
> xe_device_assert_mem_access(gt_to_xe(gt));
> xe_force_wake_assert_held(gt_to_fw(gt), XE_FW_GT);
>
> + if (IS_SRIOV_VF(gt_to_xe(gt)))
> + return;
> +
> /* Units of 1280 ns for a total of 5s */
> xe_mmio_write32(gt, RC_IDLE_HYSTERSIS, 0x3B9ACA);
> /* Enable RC6 */
> @@ -258,6 +271,9 @@ void xe_gt_idle_disable_c6(struct xe_gt *gt)
> xe_device_assert_mem_access(gt_to_xe(gt));
> xe_force_wake_assert_held(gt_to_fw(gt), XE_FW_GT);
>
> + if (IS_SRIOV_VF(gt_to_xe(gt)))
> + return;
> +
> xe_mmio_write32(gt, RC_CONTROL, 0);
> xe_mmio_write32(gt, RC_STATE, 0);
> }
Reviewed-by: Piotr Piórkowski <piotr.piorkowski at intel.com>
> --
> 2.43.0
>
--
More information about the Intel-xe
mailing list