drm/xe/uc: Extract xe_uc_sanitize_reset
Earlier GuC load will require more fine-grained control over reset. Extract it outside of xe_uc_init_hw. Signed-off-by: Michał Winiarski <michal.winiarski@intel.com> Reviewed-by: Matthew Brost <matthew.brost@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
parent
bf2d0d88c3
commit
7704f32c93
@ -542,6 +542,10 @@ static int do_gt_restart(struct xe_gt *gt)
|
||||
for_each_hw_engine(hwe, gt, id)
|
||||
xe_hw_engine_enable_ring(hwe);
|
||||
|
||||
err = xe_uc_sanitize_reset(>->uc);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
err = xe_uc_init_hw(>->uc);
|
||||
if (err)
|
||||
return err;
|
||||
|
@ -80,6 +80,10 @@ int xe_uc_init_post_hwconfig(struct xe_uc *uc)
|
||||
if (!xe_device_uc_enabled(uc_to_xe(uc)))
|
||||
return 0;
|
||||
|
||||
err = xe_uc_sanitize_reset(uc);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
err = xe_guc_init_post_hwconfig(&uc->guc);
|
||||
if (err)
|
||||
return err;
|
||||
@ -101,13 +105,13 @@ static int uc_reset(struct xe_uc *uc)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void xe_uc_sanitize(struct xe_uc *uc)
|
||||
static void xe_uc_sanitize(struct xe_uc *uc)
|
||||
{
|
||||
xe_huc_sanitize(&uc->huc);
|
||||
xe_guc_sanitize(&uc->guc);
|
||||
}
|
||||
|
||||
static int xe_uc_sanitize_reset(struct xe_uc *uc)
|
||||
int xe_uc_sanitize_reset(struct xe_uc *uc)
|
||||
{
|
||||
xe_uc_sanitize(uc);
|
||||
|
||||
@ -147,10 +151,6 @@ int xe_uc_init_hw(struct xe_uc *uc)
|
||||
if (!xe_device_uc_enabled(uc_to_xe(uc)))
|
||||
return 0;
|
||||
|
||||
ret = xe_uc_sanitize_reset(uc);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = xe_huc_upload(&uc->huc);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
@ -19,6 +19,6 @@ void xe_uc_stop_prepare(struct xe_uc *uc);
|
||||
int xe_uc_stop(struct xe_uc *uc);
|
||||
int xe_uc_start(struct xe_uc *uc);
|
||||
int xe_uc_suspend(struct xe_uc *uc);
|
||||
void xe_uc_sanitize(struct xe_uc *uc);
|
||||
int xe_uc_sanitize_reset(struct xe_uc *uc);
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user