Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: maarten.lankhorst@linux.intel.com
To: intel-xe@lists.freedesktop.org
Subject: [Intel-xe] [PATCH 08/14] ALSA: hda/i915: Add an allow_modprobe argument to snd_hdac_i915_init
Date: Tue,  3 Oct 2023 14:00:27 +0200	[thread overview]
Message-ID: <20231003120033.3505-9-maarten.lankhorst@linux.intel.com> (raw)
In-Reply-To: <20231003120033.3505-1-maarten.lankhorst@linux.intel.com>

From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>

Xe is a new GPU driver that re-uses the display (and sound) code from
i915. It's no longer possible to load i915, as the GPU can be driven
by the xe driver instead.

The new behavior will return -EPROBE_DEFER, and wait for a compatible
driver to be loaded instead of modprobing i915.

Converting all drivers at the same time is a lot of work, instead we
will convert each user one by one.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
 include/sound/hda_i915.h        | 4 ++--
 sound/hda/hdac_i915.c           | 8 ++++----
 sound/pci/hda/hda_intel.c       | 2 +-
 sound/soc/intel/avs/core.c      | 2 +-
 sound/soc/intel/skylake/skl.c   | 2 +-
 sound/soc/sof/intel/hda-codec.c | 2 +-
 6 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/include/sound/hda_i915.h b/include/sound/hda_i915.h
index 6b79614a893b..f91bd6636086 100644
--- a/include/sound/hda_i915.h
+++ b/include/sound/hda_i915.h
@@ -9,12 +9,12 @@
 
 #ifdef CONFIG_SND_HDA_I915
 void snd_hdac_i915_set_bclk(struct hdac_bus *bus);
-int snd_hdac_i915_init(struct hdac_bus *bus);
+int snd_hdac_i915_init(struct hdac_bus *bus, bool allow_modprobe);
 #else
 static inline void snd_hdac_i915_set_bclk(struct hdac_bus *bus)
 {
 }
-static inline int snd_hdac_i915_init(struct hdac_bus *bus)
+static inline int snd_hdac_i915_init(struct hdac_bus *bus, bool allow_modprobe)
 {
 	return -ENODEV;
 }
diff --git a/sound/hda/hdac_i915.c b/sound/hda/hdac_i915.c
index 961d99422bc5..9f77cec65a21 100644
--- a/sound/hda/hdac_i915.c
+++ b/sound/hda/hdac_i915.c
@@ -175,7 +175,7 @@ static bool dg1_gfx_present(void)
  *
  * Returns zero for success or a negative error code.
  */
-int snd_hdac_i915_init(struct hdac_bus *bus)
+int snd_hdac_i915_init(struct hdac_bus *bus, bool allow_modprobe)
 {
 	struct drm_audio_component *acomp;
 	int err;
@@ -194,7 +194,7 @@ int snd_hdac_i915_init(struct hdac_bus *bus)
 	acomp = bus->audio_component;
 	if (!acomp)
 		return -ENODEV;
-	if (!acomp->ops) {
+	if (allow_modprobe && !acomp->ops) {
 		if (!IS_ENABLED(CONFIG_MODULES) ||
 		    !request_module("i915")) {
 			/* 60s timeout */
@@ -203,9 +203,9 @@ int snd_hdac_i915_init(struct hdac_bus *bus)
 		}
 	}
 	if (!acomp->ops) {
-		dev_info(bus->dev, "couldn't bind with audio component\n");
+		int err = allow_modprobe ? -ENODEV : -EPROBE_DEFER;
 		snd_hdac_acomp_exit(bus);
-		return -ENODEV;
+		return dev_err_probe(bus->dev, err, "couldn't bind with audio component\n");
 	}
 	return 0;
 }
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 12caabf54c63..e42ad0e816e1 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -2266,7 +2266,7 @@ static int azx_probe_continue(struct azx *chip)
 
 	/* bind with i915 if needed */
 	if (chip->driver_caps & AZX_DCAPS_I915_COMPONENT) {
-		err = snd_hdac_i915_init(bus);
+		err = snd_hdac_i915_init(bus, true);
 		if (err < 0) {
 			/* if the controller is bound only with HDMI/DP
 			 * (for HSW and BDW), we need to abort the probe;
diff --git a/sound/soc/intel/avs/core.c b/sound/soc/intel/avs/core.c
index 859b217fc761..bbb40339c75f 100644
--- a/sound/soc/intel/avs/core.c
+++ b/sound/soc/intel/avs/core.c
@@ -191,7 +191,7 @@ static void avs_hda_probe_work(struct work_struct *work)
 
 	pm_runtime_set_active(bus->dev); /* clear runtime_error flag */
 
-	ret = snd_hdac_i915_init(bus);
+	ret = snd_hdac_i915_init(bus, true);
 	if (ret < 0)
 		dev_info(bus->dev, "i915 init unsuccessful: %d\n", ret);
 
diff --git a/sound/soc/intel/skylake/skl.c b/sound/soc/intel/skylake/skl.c
index 77408a981b97..4f7acb4f6680 100644
--- a/sound/soc/intel/skylake/skl.c
+++ b/sound/soc/intel/skylake/skl.c
@@ -791,7 +791,7 @@ static int skl_i915_init(struct hdac_bus *bus)
 	 * The HDMI codec is in GPU so we need to ensure that it is powered
 	 * up and ready for probe
 	 */
-	err = snd_hdac_i915_init(bus);
+	err = snd_hdac_i915_init(bus, true);
 	if (err < 0)
 		return err;
 
diff --git a/sound/soc/sof/intel/hda-codec.c b/sound/soc/sof/intel/hda-codec.c
index 8a5e99a898ec..f1fd5b44aaac 100644
--- a/sound/soc/sof/intel/hda-codec.c
+++ b/sound/soc/sof/intel/hda-codec.c
@@ -415,7 +415,7 @@ int hda_codec_i915_init(struct snd_sof_dev *sdev)
 		return 0;
 
 	/* i915 exposes a HDA codec for HDMI audio */
-	ret = snd_hdac_i915_init(bus);
+	ret = snd_hdac_i915_init(bus, true);
 	if (ret < 0)
 		return ret;
 
-- 
2.40.1


  parent reply	other threads:[~2023-10-03 12:02 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-03 12:00 [Intel-xe] [PATCH 00/14] Update sound patches to upstreamable versions maarten.lankhorst
2023-10-03 12:00 ` [Intel-xe] [PATCH 01/14] Revert "sound/soc/sof: Remove deferred probe for SOF" maarten.lankhorst
2023-10-03 12:00 ` [Intel-xe] [PATCH 02/14] Revert "sound/hda: Allow XE as i915 replacement for sound" maarten.lankhorst
2023-10-03 12:00 ` [Intel-xe] [PATCH 03/14] ASoC/SOF/core: Ensure sof_ops_free() is still called when probe never ran maarten.lankhorst
2023-10-03 12:00 ` [Intel-xe] [PATCH 04/14] ASoC: SOF: core: Add probe_early and remove_late callbacks maarten.lankhorst
2023-10-03 12:00 ` [Intel-xe] [PATCH 05/14] ASoC: SOF: Intel: hda: start splitting the probe maarten.lankhorst
2023-10-03 12:00 ` [Intel-xe] [PATCH 06/14] ALSA: hda/intel: Fix error handling in azx_probe() maarten.lankhorst
2023-10-03 12:00 ` [Intel-xe] [PATCH 07/14] ALSA: hda/i915: Allow override of gpu binding maarten.lankhorst
2023-10-03 12:00 ` maarten.lankhorst [this message]
2023-10-03 12:00 ` [Intel-xe] [PATCH 09/14] ALSA: hda/i915: Allow xe as match for i915_component_master_match maarten.lankhorst
2023-10-03 12:00 ` [Intel-xe] [PATCH 10/14] ASoC: Intel: avs: Move snd_hdac_i915_init to before probe_work maarten.lankhorst
2023-10-03 12:00 ` [Intel-xe] [PATCH 11/14] ALSA: hda/intel: " maarten.lankhorst
2023-10-03 12:00 ` [Intel-xe] [PATCH 12/14] ASoC: Intel: Skylake: " maarten.lankhorst
2023-10-03 12:00 ` [Intel-xe] [PATCH 13/14] ASoC: SOF: Intel: Move binding to display driver outside of deferred probe maarten.lankhorst
2023-10-03 12:00 ` [Intel-xe] [PATCH 14/14] ALSA: hda/i915: Remove extra argument from snd_hdac_i915_init maarten.lankhorst
2023-10-03 12:18 ` [Intel-xe] ✓ CI.Patch_applied: success for Update sound patches to upstreamable versions Patchwork
2023-10-03 12:18 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
2023-10-03 12:20 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
2023-10-03 12:27 ` [Intel-xe] ✓ CI.Build: " Patchwork
2023-10-03 12:27 ` [Intel-xe] ✓ CI.Hooks: " Patchwork
2023-10-03 12:29 ` [Intel-xe] ✓ CI.checksparse: " Patchwork
2023-10-03 12:40 ` [Intel-xe] [PATCH 00/14] " Jani Nikula
2023-10-03 13:05 ` [Intel-xe] ✓ CI.BAT: success for " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2023-10-02 19:38 [Intel-xe] [PATCH 01/14] Revert "sound/soc/sof: Remove deferred probe for SOF" maarten.lankhorst
2023-10-02 19:38 ` [Intel-xe] [PATCH 08/14] ALSA: hda/i915: Add an allow_modprobe argument to snd_hdac_i915_init maarten.lankhorst

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=20231003120033.3505-9-maarten.lankhorst@linux.intel.com \
    --to=maarten.lankhorst@linux.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