diff options
| author | Lucas De Marchi <lucas.demarchi@intel.com> | 2025-02-21 16:10:47 -0800 |
|---|---|---|
| committer | Lucas De Marchi <lucas.demarchi@intel.com> | 2025-02-25 14:32:02 -0800 |
| commit | d41d048043c47a5fce1879e8e95dc93a573d3708 (patch) | |
| tree | 5124668310760da89febe461532a18586a5a3502 | |
| parent | d01bdc00254c2d12d36b0dbb5d098286edeb00ea (diff) | |
| download | linux-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.c | 11 | ||||
| -rw-r--r-- | drivers/gpu/drm/xe/display/xe_display.h | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/xe/xe_device.c | 8 |
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); } |
