[PATCH 5/6] drm/xe/vf: Custom hardware config load step if VF
Piotr Piórkowski
piotr.piorkowski at intel.com
Thu May 16 10:11:16 UTC 2024
Michal Wajdeczko <michal.wajdeczko at intel.com> wrote on nie [2024-maj-12 17:49:14 +0200]:
> The VF drivers may immediately communicate with the GuC to obtain
> the hardware config since the firmware shall already be running.
>
> With the GuC communication established, VFs can also obtain the
> values of the runtime registers (fuses) from the PF driver.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
> ---
> drivers/gpu/drm/xe/xe_guc.c | 36 ++++++++++++++++++++++++++++++++++++
> 1 file changed, 36 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
> index 0c9938e0ab8c..762fab403b86 100644
> --- a/drivers/gpu/drm/xe/xe_guc.c
> +++ b/drivers/gpu/drm/xe/xe_guc.c
> @@ -19,6 +19,7 @@
> #include "xe_force_wake.h"
> #include "xe_gt.h"
> #include "xe_gt_printk.h"
> +#include "xe_gt_sriov_vf.h"
> #include "xe_guc_ads.h"
> #include "xe_guc_ct.h"
> #include "xe_guc_hwconfig.h"
> @@ -538,6 +539,38 @@ static int __xe_guc_upload(struct xe_guc *guc)
> return 0 /* FIXME: ret, don't want to stop load currently */;
> }
>
> +static int vf_guc_min_load_for_hwconfig(struct xe_guc *guc)
> +{
> + struct xe_gt *gt = guc_to_gt(guc);
> + int ret;
> +
> + ret = xe_gt_sriov_vf_bootstrap(gt);
> + if (ret)
> + return ret;
> +
> + ret = xe_gt_sriov_vf_query_config(gt);
> + if (ret)
> + return ret;
> +
> + ret = xe_guc_hwconfig_init(guc);
> + if (ret)
> + return ret;
> +
> + ret = xe_guc_enable_communication(guc);
> + if (ret)
> + return ret;
> +
> + ret = xe_gt_sriov_vf_connect(gt);
> + if (ret)
> + return ret;
> +
> + ret = xe_gt_sriov_vf_query_runtime(gt);
> + if (ret)
> + return ret;
> +
> + return 0;
> +}
> +
> /**
> * xe_guc_min_load_for_hwconfig - load minimal GuC and read hwconfig table
> * @guc: The GuC object
> @@ -553,6 +586,9 @@ int xe_guc_min_load_for_hwconfig(struct xe_guc *guc)
> {
> int ret;
>
> + if (IS_SRIOV_VF(guc_to_xe(guc)))
> + return vf_guc_min_load_for_hwconfig(guc);
> +
> xe_guc_ads_populate_minimal(&guc->ads);
>
> /* Raise GT freq to speed up HuC/GuC load */
LGTM:
Reviewed-by: Piotr Piórkowski <piotr.piorkowski at intel.com>
> --
> 2.43.0
>
--
More information about the Intel-xe
mailing list