From: Matt Atwood Date: Fri, 6 Oct 2023 16:11:47 +0000 (-0700) Subject: drm/xe: Add infrastructure for per engine tuning X-Git-Tag: v6.8-rc1~111^2~7^2~317 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a617b3048abea1cb424963f4354941b335d5a911;p=thirdparty%2Fkernel%2Flinux.git drm/xe: Add infrastructure for per engine tuning Add the infrastructure for per engine tuning in preparation for disable indirect state. v3: Rebase v4: Fix rebasing issues Reviewed-by: Matt Roper Signed-off-by: Matt Atwood Signed-off-by: Rodrigo Vivi --- diff --git a/drivers/gpu/drm/xe/xe_hw_engine.c b/drivers/gpu/drm/xe/xe_hw_engine.c index f63c821baeb77..b5b0845908887 100644 --- a/drivers/gpu/drm/xe/xe_hw_engine.c +++ b/drivers/gpu/drm/xe/xe_hw_engine.c @@ -25,6 +25,7 @@ #include "xe_reg_sr.h" #include "xe_rtp.h" #include "xe_sched_job.h" +#include "xe_tuning.h" #include "xe_wa.h" #define MAX_MMIO_BASES 3 @@ -405,6 +406,7 @@ static void hw_engine_init_early(struct xe_gt *gt, struct xe_hw_engine *hwe, } xe_reg_sr_init(&hwe->reg_sr, hwe->name, gt_to_xe(gt)); + xe_tuning_process_engine(hwe); xe_wa_process_engine(hwe); hw_engine_setup_default_state(hwe); diff --git a/drivers/gpu/drm/xe/xe_tuning.c b/drivers/gpu/drm/xe/xe_tuning.c index 08174dda9bc73..3ad11c2593003 100644 --- a/drivers/gpu/drm/xe/xe_tuning.c +++ b/drivers/gpu/drm/xe/xe_tuning.c @@ -27,6 +27,10 @@ static const struct xe_rtp_entry_sr gt_tunings[] = { {} }; +static const struct xe_rtp_entry_sr engine_tunings[] = { + {} +}; + static const struct xe_rtp_entry_sr lrc_tunings[] = { { XE_RTP_NAME("Tuning: ganged timer, also known as 16011163337"), XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1200, 1210), ENGINE_CLASS(RENDER)), @@ -65,6 +69,14 @@ void xe_tuning_process_gt(struct xe_gt *gt) } EXPORT_SYMBOL_IF_KUNIT(xe_tuning_process_gt); +void xe_tuning_process_engine(struct xe_hw_engine *hwe) +{ + struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe); + + xe_rtp_process_to_sr(&ctx, engine_tunings, &hwe->reg_sr); +} +EXPORT_SYMBOL_IF_KUNIT(xe_tuning_process_engine); + /** * xe_tuning_process_lrc - process lrc tunings * @hwe: engine instance to process tunings for diff --git a/drivers/gpu/drm/xe/xe_tuning.h b/drivers/gpu/drm/xe/xe_tuning.h index 2b95b0c8effc4..4f9c3ac3b5162 100644 --- a/drivers/gpu/drm/xe/xe_tuning.h +++ b/drivers/gpu/drm/xe/xe_tuning.h @@ -10,6 +10,7 @@ struct xe_gt; struct xe_hw_engine; void xe_tuning_process_gt(struct xe_gt *gt); +void xe_tuning_process_engine(struct xe_hw_engine *hwe); void xe_tuning_process_lrc(struct xe_hw_engine *hwe); #endif