From: Matthew Auld <matthew.auld@intel.com>
To: intel-xe@lists.freedesktop.org
Subject: [CI v3 18/18] drm/xe/display: move device_remove over to drmm
Date: Wed, 22 May 2024 11:22:01 +0100 [thread overview]
Message-ID: <20240522102143.128069-36-matthew.auld@intel.com> (raw)
In-Reply-To: <20240522102143.128069-19-matthew.auld@intel.com>
i915 display calls this when releasing the drm_device, match this also
in xe by using drmm. intel_display_device_remove() is freeing purely
software state for the drm_device.
v2: fix build error
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Andrzej Hajda <andrzej.hajda@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com>
---
drivers/gpu/drm/xe/display/xe_display.c | 20 ++++++++++++++++----
drivers/gpu/drm/xe/display/xe_display.h | 4 ++--
drivers/gpu/drm/xe/xe_pci.c | 4 +++-
3 files changed, 21 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
index 7065e34a460e..386c356967b4 100644
--- a/drivers/gpu/drm/xe/display/xe_display.c
+++ b/drivers/gpu/drm/xe/display/xe_display.c
@@ -231,8 +231,6 @@ void xe_display_driver_remove(struct xe_device *xe)
return;
intel_display_driver_remove(xe);
-
- intel_display_device_remove(xe);
}
/* IRQ-related functions */
@@ -374,17 +372,31 @@ void xe_display_pm_resume(struct xe_device *xe)
intel_power_domains_enable(xe);
}
-void xe_display_probe(struct xe_device *xe)
+static void display_device_remove(struct drm_device *dev, void *arg)
+{
+ struct xe_device *xe = arg;
+
+ intel_display_device_remove(xe);
+}
+
+int xe_display_probe(struct xe_device *xe)
{
+ int err;
+
if (!xe->info.enable_display)
goto no_display;
intel_display_device_probe(xe);
+ err = drmm_add_action_or_reset(&xe->drm, display_device_remove, xe);
+ if (err)
+ return err;
+
if (has_display(xe))
- return;
+ return 0;
no_display:
xe->info.enable_display = false;
unset_display_features(xe);
+ return 0;
}
diff --git a/drivers/gpu/drm/xe/display/xe_display.h b/drivers/gpu/drm/xe/display/xe_display.h
index 710e56180b52..e4085f841aa7 100644
--- a/drivers/gpu/drm/xe/display/xe_display.h
+++ b/drivers/gpu/drm/xe/display/xe_display.h
@@ -18,7 +18,7 @@ void xe_display_driver_remove(struct xe_device *xe);
int xe_display_create(struct xe_device *xe);
-void xe_display_probe(struct xe_device *xe);
+int xe_display_probe(struct xe_device *xe);
int xe_display_init_nommio(struct xe_device *xe);
int xe_display_init_noirq(struct xe_device *xe);
@@ -47,7 +47,7 @@ static inline void xe_display_driver_remove(struct xe_device *xe) {}
static inline int xe_display_create(struct xe_device *xe) { return 0; }
-static inline void xe_display_probe(struct xe_device *xe) { }
+static inline int xe_display_probe(struct xe_device *xe) { return 0; }
static inline int xe_display_init_nommio(struct xe_device *xe) { return 0; }
static inline int xe_display_init_noirq(struct xe_device *xe) { return 0; }
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index 682eafd84901..93c8407de759 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -769,7 +769,9 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (err)
return err;
- xe_display_probe(xe);
+ err = xe_display_probe(xe);
+ if (err)
+ return err;
drm_dbg(&xe->drm, "%s %s %04x:%04x dgfx:%d gfx:%s (%d.%02d) media:%s (%d.%02d) display:%s dma_m_s:%d tc:%d gscfi:%d",
desc->platform_name,
--
2.45.1
next prev parent reply other threads:[~2024-05-22 10:22 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-22 10:21 [CI v3 01/18] drm/xe/pci: remove broken driver_release Matthew Auld
2024-05-22 10:21 ` [CI v3 02/18] drm/xe: covert sysfs over to devm Matthew Auld
2024-05-22 10:21 ` [CI v3 03/18] drm/xe/ggtt: use drm_dev_enter to mark device section Matthew Auld
2024-05-22 10:21 ` [CI v3 04/18] drm/xe/guc: move guc_fini over to devm Matthew Auld
2024-05-22 10:21 ` [CI v3 05/18] drm/xe/guc: s/guc_fini/guc_fini_hw/ Matthew Auld
2024-05-22 10:21 ` [CI v3 06/18] drm/xe/guc_pc: move pc_fini to devm Matthew Auld
2024-05-22 10:21 ` [CI v3 07/18] drm/xe/guc_pc: s/pc_fini/pc_fini_hw/ Matthew Auld
2024-05-22 10:21 ` [CI v3 08/18] drm/xe/irq: move irq_uninstall over to devm Matthew Auld
2024-05-22 10:21 ` [CI v3 09/18] drm/xe/device: move flr " Matthew Auld
2024-05-22 10:21 ` [CI v3 10/18] drm/xe/device: move xe_device_sanitize over " Matthew Auld
2024-05-22 10:21 ` [CI v3 11/18] drm/xe/coredump: move " Matthew Auld
2024-05-22 10:21 ` [CI v3 12/18] drm/xe/gt: break out gt_fini into sw vs hw state Matthew Auld
2024-05-22 10:21 ` [CI v3 13/18] drm/xe: make gt_remove use devm Matthew Auld
2024-05-22 10:21 ` [CI v3 14/18] drm/xe/mmio: move mmio_fini over to devm Matthew Auld
2024-05-22 10:21 ` [CI v3 15/18] drm/xe: reset mmio mappings with devm Matthew Auld
2024-05-22 10:21 ` [CI v3 16/18] drm/xe/display: move display fini stuff to devm Matthew Auld
2024-05-22 10:22 ` [CI v3 17/18] drm/xe/display: stop calling domains_driver_remove twice Matthew Auld
2024-05-22 10:22 ` Matthew Auld [this message]
2024-05-22 10:28 ` ✓ CI.Patch_applied: success for series starting with [CI,v3,01/18] drm/xe/pci: remove broken driver_release Patchwork
2024-05-22 10:28 ` ✗ CI.checkpatch: warning " Patchwork
2024-05-22 10:29 ` ✓ CI.KUnit: success " Patchwork
2024-05-22 10:41 ` ✓ CI.Build: " Patchwork
2024-05-22 10:43 ` ✗ CI.Hooks: failure " Patchwork
2024-05-22 10:45 ` ✓ CI.checksparse: success " Patchwork
2024-05-22 11:36 ` ✗ CI.BAT: failure " Patchwork
2024-05-22 13:44 ` ✗ CI.FULL: " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240522102143.128069-36-matthew.auld@intel.com \
--to=matthew.auld@intel.com \
--cc=intel-xe@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox