From: Imre Deak <imre.deak@intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: [Intel-gfx] [PATCH 2/4] drm/i915/opregion: Cleanup opregion after errors during driver loading
Date: Tue, 21 Feb 2023 14:57:35 +0200 [thread overview]
Message-ID: <20230221125737.1813187-2-imre.deak@intel.com> (raw)
In-Reply-To: <20230221125737.1813187-1-imre.deak@intel.com>
Clean up the opregion state if something fails after
intel_opregion_setup() is called.
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
drivers/gpu/drm/i915/display/intel_opregion.c | 8 ++++++++
drivers/gpu/drm/i915/display/intel_opregion.h | 1 +
drivers/gpu/drm/i915/i915_driver.c | 6 +++++-
3 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
index bbcc2142d7df5..b7973a05d022d 100644
--- a/drivers/gpu/drm/i915/display/intel_opregion.c
+++ b/drivers/gpu/drm/i915/display/intel_opregion.c
@@ -1237,6 +1237,14 @@ void intel_opregion_unregister(struct drm_i915_private *i915)
unregister_acpi_notifier(&opregion->acpi_notifier);
opregion->acpi_notifier.notifier_call = NULL;
}
+}
+
+void intel_opregion_cleanup(struct drm_i915_private *i915)
+{
+ struct intel_opregion *opregion = &i915->display.opregion;
+
+ if (!opregion->header)
+ return;
/* just clear all opregion memory pointers now */
memunmap(opregion->header);
diff --git a/drivers/gpu/drm/i915/display/intel_opregion.h b/drivers/gpu/drm/i915/display/intel_opregion.h
index d02e6696a050e..181eb3e9abbf3 100644
--- a/drivers/gpu/drm/i915/display/intel_opregion.h
+++ b/drivers/gpu/drm/i915/display/intel_opregion.h
@@ -60,6 +60,7 @@ struct intel_opregion {
#ifdef CONFIG_ACPI
int intel_opregion_setup(struct drm_i915_private *dev_priv);
+void intel_opregion_cleanup(struct drm_i915_private *i915);
void intel_opregion_register(struct drm_i915_private *dev_priv);
void intel_opregion_unregister(struct drm_i915_private *dev_priv);
diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index e3244972521cb..471a2db70d69c 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -532,7 +532,7 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
ret = i915_pcode_init(dev_priv);
if (ret)
- goto err_msi;
+ goto err_opregion;
/*
* Fill the dram structure to get the system dram info. This will be
@@ -553,6 +553,8 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
return 0;
+err_opregion:
+ intel_opregion_cleanup(dev_priv);
err_msi:
if (pdev->msi_enabled)
pci_disable_msi(pdev);
@@ -578,6 +580,8 @@ static void i915_driver_hw_remove(struct drm_i915_private *dev_priv)
i915_perf_fini(dev_priv);
+ intel_opregion_cleanup(dev_priv);
+
if (pdev->msi_enabled)
pci_disable_msi(pdev);
--
2.37.1
next prev parent reply other threads:[~2023-02-21 12:57 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-21 12:57 [Intel-gfx] [PATCH 1/4] drm/i915/opregion: Fix opregion setup during system resume on platforms without display Imre Deak
2023-02-21 12:57 ` Imre Deak [this message]
2023-02-21 12:57 ` [Intel-gfx] [PATCH 3/4] drm/i915/opregion: Register display debugfs later, after initialization steps Imre Deak
2023-03-07 8:51 ` Jani Nikula
2023-02-21 12:57 ` [Intel-gfx] [PATCH 4/4] drm/i915/opregion: Register/unregister opregion on platforms without display Imre Deak
2023-03-07 8:50 ` Jani Nikula
2023-03-07 22:06 ` Imre Deak
2023-02-21 13:56 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/4] drm/i915/opregion: Fix opregion setup during system resume " Patchwork
2023-02-21 18:07 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2023-03-14 11:00 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for series starting with [1/4] drm/i915/opregion: Fix opregion setup during system resume on platforms without display (rev2) 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=20230221125737.1813187-2-imre.deak@intel.com \
--to=imre.deak@intel.com \
--cc=intel-gfx@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