drm/xe: Fix application of LRC tunings
LRC tunings were added after the gt ones and didn't add the call in xe_gt_record_default_lrcs() to process them like is done for workarounds. Add such a function and call it from xe_gt_record_default_lrcs(). Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> Reviewed-by: Matthew Auld <matthew.auld@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
committed by
Rodrigo Vivi
parent
671ca05d7c
commit
3dbec4703e
@ -320,6 +320,7 @@ int xe_gt_record_default_lrcs(struct xe_gt *gt)
|
|||||||
|
|
||||||
xe_reg_sr_init(&hwe->reg_lrc, "LRC", xe);
|
xe_reg_sr_init(&hwe->reg_lrc, "LRC", xe);
|
||||||
xe_wa_process_lrc(hwe);
|
xe_wa_process_lrc(hwe);
|
||||||
|
xe_tuning_process_lrc(hwe);
|
||||||
|
|
||||||
default_lrc = drmm_kzalloc(&xe->drm,
|
default_lrc = drmm_kzalloc(&xe->drm,
|
||||||
xe_lrc_size(xe, hwe->class),
|
xe_lrc_size(xe, hwe->class),
|
||||||
|
@ -24,7 +24,7 @@ static const struct xe_rtp_entry gt_tunings[] = {
|
|||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct xe_rtp_entry context_tunings[] = {
|
static const struct xe_rtp_entry lrc_tunings[] = {
|
||||||
{ XE_RTP_NAME("1604555607"),
|
{ XE_RTP_NAME("1604555607"),
|
||||||
XE_RTP_RULES(GRAPHICS_VERSION(1200)),
|
XE_RTP_RULES(GRAPHICS_VERSION(1200)),
|
||||||
XE_RTP_ACTIONS(FIELD_SET_NO_READ_MASK(XEHP_FF_MODE2,
|
XE_RTP_ACTIONS(FIELD_SET_NO_READ_MASK(XEHP_FF_MODE2,
|
||||||
@ -38,3 +38,16 @@ void xe_tuning_process_gt(struct xe_gt *gt)
|
|||||||
{
|
{
|
||||||
xe_rtp_process(gt_tunings, >->reg_sr, gt, NULL);
|
xe_rtp_process(gt_tunings, >->reg_sr, gt, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* xe_tuning_process_lrc - process lrc tunings
|
||||||
|
* @hwe: engine instance to process tunings for
|
||||||
|
*
|
||||||
|
* Process LRC table for this platform, saving in @hwe all the tunings that need
|
||||||
|
* to be applied on context restore. These are tunings touching registers that
|
||||||
|
* are part of the HW context image.
|
||||||
|
*/
|
||||||
|
void xe_tuning_process_lrc(struct xe_hw_engine *hwe)
|
||||||
|
{
|
||||||
|
xe_rtp_process(lrc_tunings, &hwe->reg_lrc, hwe->gt, hwe);
|
||||||
|
}
|
||||||
|
@ -7,7 +7,9 @@
|
|||||||
#define _XE_TUNING_
|
#define _XE_TUNING_
|
||||||
|
|
||||||
struct xe_gt;
|
struct xe_gt;
|
||||||
|
struct xe_hw_engine;
|
||||||
|
|
||||||
void xe_tuning_process_gt(struct xe_gt *gt);
|
void xe_tuning_process_gt(struct xe_gt *gt);
|
||||||
|
void xe_tuning_process_lrc(struct xe_hw_engine *hwe);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user