summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.demarchi@intel.com>2025-02-21 16:10:47 -0800
committerLucas De Marchi <lucas.demarchi@intel.com>2025-02-25 14:32:02 -0800
commitd41d048043c47a5fce1879e8e95dc93a573d3708 (patch)
tree5124668310760da89febe461532a18586a5a3502
parentd01bdc00254c2d12d36b0dbb5d098286edeb00ea (diff)
downloadlinux-d41d048043c47a5fce1879e8e95dc93a573d3708.tar.gz
linux-d41d048043c47a5fce1879e8e95dc93a573d3708.tar.bz2
linux-d41d048043c47a5fce1879e8e95dc93a573d3708.zip
drm/xe/display: Drop xe_display_driver_remove()
Handle it as part of xe_display_fini(). The error handling was already calling it if a step after xe_display_init() failed. Just re-use the same xe_display_fini() for driver remove. Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Cc: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20250222001051.3012936-8-lucas.demarchi@intel.com Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
-rw-r--r--drivers/gpu/drm/xe/display/xe_display.c11
-rw-r--r--drivers/gpu/drm/xe/display/xe_display.h1
-rw-r--r--drivers/gpu/drm/xe/xe_device.c8
3 files changed, 3 insertions, 17 deletions
diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
index 1909effd35a9..279b786d64dc 100644
--- a/drivers/gpu/drm/xe/display/xe_display.c
+++ b/drivers/gpu/drm/xe/display/xe_display.c
@@ -170,6 +170,7 @@ static void xe_display_fini(void *arg)
intel_hpd_poll_fini(xe);
intel_hdcp_component_fini(display);
intel_audio_deinit(xe);
+ intel_display_driver_remove(display);
}
int xe_display_init(struct xe_device *xe)
@@ -209,16 +210,6 @@ void xe_display_unregister(struct xe_device *xe)
intel_display_driver_unregister(display);
}
-void xe_display_driver_remove(struct xe_device *xe)
-{
- struct intel_display *display = &xe->display;
-
- if (!xe->info.probe_display)
- return;
-
- intel_display_driver_remove(display);
-}
-
/* IRQ-related functions */
void xe_display_irq_handler(struct xe_device *xe, u32 master_ctl)
diff --git a/drivers/gpu/drm/xe/display/xe_display.h b/drivers/gpu/drm/xe/display/xe_display.h
index 685dc74402fb..46e14f8dee28 100644
--- a/drivers/gpu/drm/xe/display/xe_display.h
+++ b/drivers/gpu/drm/xe/display/xe_display.h
@@ -14,7 +14,6 @@ struct drm_driver;
bool xe_display_driver_probe_defer(struct pci_dev *pdev);
void xe_display_driver_set_hooks(struct drm_driver *driver);
-void xe_display_driver_remove(struct xe_device *xe);
int xe_display_create(struct xe_device *xe);
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 858b3e5da9c5..d50ac3d43511 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -868,11 +868,11 @@ int xe_device_probe(struct xe_device *xe)
err = xe_pxp_init(xe);
if (err)
- goto err_remove_display;
+ return err;
err = drm_dev_register(&xe->drm, 0);
if (err)
- goto err_remove_display;
+ return err;
xe_display_register(xe);
@@ -899,8 +899,6 @@ int xe_device_probe(struct xe_device *xe)
err_unregister_display:
xe_display_unregister(xe);
-err_remove_display:
- xe_display_driver_remove(xe);
return err;
}
@@ -911,8 +909,6 @@ void xe_device_remove(struct xe_device *xe)
drm_dev_unplug(&xe->drm);
- xe_display_driver_remove(xe);
-
xe_heci_gsc_fini(xe);
}