/* Embed the line number into the parameter name so that we can order tests */ #define selftest(n, func) selftest_0(n, func, param(n)) #define param(n) __PASTE(igt__, __PASTE(__LINE__, __mock_##n)) #define selftest_0(n, func, id) \
module_param_named(id, mock_selftests[mock_##n].enabled, bool, 0400); #include"i915_mock_selftests.h" #undef selftest_0 #undef param
staticvoid
__wait_gsc_proxy_completed(struct drm_i915_private *i915)
{ bool need_to_wait = (IS_ENABLED(CONFIG_INTEL_MEI_GSC_PROXY) &&
i915->media_gt &&
HAS_ENGINE(i915->media_gt, GSC0) &&
intel_uc_fw_is_loadable(&i915->media_gt->uc.gsc.fw)); /* * The gsc proxy component depends on the kernel component driver load ordering * and in corner cases (the first time after an IFWI flash), init-completion * firmware flows take longer.
*/ unsignedlong timeout_ms = 8000;
if (need_to_wait && wait_for(!__gsc_proxy_init_progressing(&i915->media_gt->uc.gsc),
timeout_ms))
pr_warn(DRIVER_NAME "Timed out waiting for gsc_proxy_completion!\n");
}
staticvoid
__wait_gsc_huc_load_completed(struct drm_i915_private *i915)
{ /* this only applies to DG2, so we only care about GT0 */ struct intel_huc *huc = &to_gt(i915)->uc.huc; bool need_to_wait = (IS_ENABLED(CONFIG_INTEL_MEI_PXP) &&
intel_huc_wait_required(huc)); /* * The GSC and PXP mei bringup depends on the kernel boot ordering, so * to account for the worst case scenario the HuC code waits for up to * 10s for the GSC driver to load and then another 5s for the PXP * component to bind before giving up, even though those steps normally * complete in less than a second from the i915 load. We match that * timeout here, but we expect to bail early due to the fence being * signalled even in a failure case, as it is extremely unlikely that * both components will use their full timeout.
*/ unsignedlong timeout_ms = 15000;
if (need_to_wait &&
wait_for(i915_sw_fence_done(&huc->delayed_load.fence), timeout_ms))
pr_warn(DRIVER_NAME "Timed out waiting for huc load via GSC!\n");
}
/* * FIXME Disable render powergating, this is temporary wa and should be removed * after fixing real cause of forcewake timeouts.
*/
with_intel_runtime_pm(uncore->rpm, wakeref) { if (IS_GFX_GT_IP_RANGE(to_gt(i915), IP_VER(12, 00), IP_VER(12, 74))) {
pg_enable = intel_uncore_read(uncore, GEN9_PG_ENABLE); if (pg_enable & GEN9_RENDER_PG_ENABLE)
intel_uncore_write_fw(uncore, GEN9_PG_ENABLE,
pg_enable & ~GEN9_RENDER_PG_ENABLE);
}
}
module_param_named_unsafe(mock_selftests, i915_selftest.mock, int, 0400);
MODULE_PARM_DESC(mock_selftests, "Run selftests before loading, using mock hardware (0:disabled [default], 1:run tests then load driver, -1:run tests then leave dummy module)");
module_param_named_unsafe(live_selftests, i915_selftest.live, int, 0400);
MODULE_PARM_DESC(live_selftests, "Run selftests after driver initialisation on the live system (0:disabled [default], 1:run tests then continue, -1:run tests then exit module)");
module_param_named_unsafe(perf_selftests, i915_selftest.perf, int, 0400);
MODULE_PARM_DESC(perf_selftests, "Run performance orientated selftests after driver initialisation on the live system (0:disabled [default], 1:run tests then continue, -1:run tests then exit module)");
Messung V0.5
¤ Dauer der Verarbeitung: 0.20 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.