[PATCH] drm: Ensure Proper Unload/Reload Order of MEI Modules for i915/Xe Driver
Bommu, Krishnaiah
krishnaiah.bommu at intel.com
Mon Sep 2 14:24:48 UTC 2024
old patch: https://patchwork.freedesktop.org/series/137343/
On 02-09-2024 19:40, Bommu Krishnaiah wrote:
> This update addresses the unload/reload sequence of MEI modules in relation to
> the i915/Xe graphics driver. On platforms where the MEI hardware is integrated
> with the graphics device (e.g., DG2/BMG), the MEI modules depend on the i915/Xe
> driver. Conversely, on newer platforms like CLS, where the MEI hardware is
> separate, this dependency does not exist.
>
> The changes introduced ensure that MEI modules are unloaded and reloaded in the
> correct order based on platform-specific dependencies. This is achieved by adding
> a MODULE_SOFTDEP directive to the i915 and Xe module code.
>
> These changes enhance the robustness of MEI module handling across different hardware
> platforms, ensuring that the i915/Xe driver can be cleanly unloaded and reloaded
> without issues.
>
> Signed-off-by: Bommu Krishnaiah <krishnaiah.bommu at intel.com>
> Cc: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
> Cc: Lucas De Marchi <lucas.demarchi at intel.com>
> ---
> drivers/gpu/drm/i915/i915_module.c | 2 ++
> drivers/gpu/drm/xe/xe_module.c | 2 ++
> 2 files changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_module.c b/drivers/gpu/drm/i915/i915_module.c
> index 65acd7bf75d0..2ad079ad35db 100644
> --- a/drivers/gpu/drm/i915/i915_module.c
> +++ b/drivers/gpu/drm/i915/i915_module.c
> @@ -75,6 +75,8 @@ static const struct {
> };
> static int init_progress;
>
> +MODULE_SOFTDEP("pre: mei_gsc_proxy mei_gsc");
> +
> static int __init i915_init(void)
> {
> int err, i;
> diff --git a/drivers/gpu/drm/xe/xe_module.c b/drivers/gpu/drm/xe/xe_module.c
> index bfc3deebdaa2..5633ea1841b7 100644
> --- a/drivers/gpu/drm/xe/xe_module.c
> +++ b/drivers/gpu/drm/xe/xe_module.c
> @@ -127,6 +127,8 @@ static void xe_call_exit_func(unsigned int i)
> init_funcs[i].exit();
> }
>
> +MODULE_SOFTDEP("pre: mei_gsc_proxy mei_gsc");
> +
> static int __init xe_init(void)
> {
> int err, i;
More information about the Intel-xe
mailing list