All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/2] Let userspace know when snd-hda-intel needs i915
@ 2022-04-30 13:41 ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 27+ messages in thread
From: Mauro Carvalho Chehab @ 2022-04-30 13:41 UTC (permalink / raw)
  To: Luis Chamberlain
  Cc: Mauro Carvalho Chehab, mauro.chehab, Greg KH, intel-gfx,
	dri-devel, Lucas De Marchi, Kai Vehmanen, Pierre-Louis Bossart,
	Jaroslav Kysela, Takashi Iwai, alsa-devel, linux-kernel,
	linux-modules, Daniel Vetter, David Airlie

Currently, kernel/module annotates module dependencies when
request_symbol is used, but it doesn't cover more complex inter-driver
dependencies that are subsystem and/or driver-specific.

In the case of hdmi sound, depending on the CPU/GPU, sometimes the
snd_hda_driver can talk directly with the hardware, but sometimes, it
uses the i915 driver. When the snd_hda_driver uses i915, it should
first be unbind/rmmod, as otherwise trying to unbind/rmmod the i915
driver cause driver issues, as as reported by CI tools with different
GPU models:

	https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6415/fi-tgl-1115g4/igt@core_hotunplug@unbind-rebind.html
	https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11495/bat-adlm-1/igt@i915_module_load@reload.html

In the past, just a few CPUs were doing such bindings, but this issue now
applies to all "modern" Intel CPUs  that have onboard graphics, as well as
to the  newer discrete GPUs.

With the discrete GPU case, the HDA controller is physically separate and
requires i915 to power on the hardware for all hardware  access. In this
case, the issue is hit basicly 100% of the time.

With on-board graphics, i915 driver is needed only when the display
codec is accessed. If i915 is unbind during runtime suspend, while
snd-hda-intel is still bound, nothing bad happens, but unbinding i915
on other situations may also cause issues.

So, add support at kernel/modules to allow snd-hda drivers to properly
annotate when a dependency on a DRM driver dependencies exists,
and add a call to such new function at the snd-hda driver when it
successfully binds into the DRM driver.

This would allow userspace tools to check and properly remove the
audio driver before trying to remove or unbind the GPU driver.

It should be noticed that this series conveys the hidden module
dependencies. Other changes are needed in order to allow
removing or unbinding the i915 driver while keeping the snd-hda-intel
driver loaded/bound. With that regards, there are some discussions on
how to improve this at alsa-devel a while  back:

https://mailman.alsa-project.org/pipermail/alsa-devel/2021-September/190099.html

So, future improvements on both in i915 and the audio drivers could be made.
E.g. with  discrete GPUs, it's the only codec of the card, so it seems feasible
to detach the ALSA card if i915 is bound (using infra made for VGA
switcheroo), but,  until these improvements are done and land in
upstream, audio drivers needs to be unbound if i915 driver goes unbind.

Yet, even if such fixes got merged, this series is still needed, as it makes
such dependencies more explicit and easier to debug.

PS.: This series was generated against next-20220428.

---

v3: minor fixes:
 - fixed a checkpatch warning;
 - use a single line for the new function prototype.

v2: 
 - the dependencies are now handled directly at try_module_get().


Mauro Carvalho Chehab (2):
  module: update dependencies at try_module_get()
  ALSA: hda - identify when audio is provided by a video driver

 include/linux/module.h     |  4 +++-
 kernel/module/main.c       | 33 +++++++++++++++++++++++++++++++--
 sound/hda/hdac_component.c |  2 +-
 3 files changed, 35 insertions(+), 4 deletions(-)

-- 
2.35.1



^ permalink raw reply	[flat|nested] 27+ messages in thread

* [PATCH v3 0/2] Let userspace know when snd-hda-intel needs i915
@ 2022-04-30 13:41 ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 27+ messages in thread
From: Mauro Carvalho Chehab @ 2022-04-30 13:41 UTC (permalink / raw)
  To: Luis Chamberlain
  Cc: mauro.chehab, alsa-devel, Kai Vehmanen, Greg KH, intel-gfx,
	Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela,
	David Airlie, linux-modules, Mauro Carvalho Chehab, linux-kernel,
	Pierre-Louis Bossart

Currently, kernel/module annotates module dependencies when
request_symbol is used, but it doesn't cover more complex inter-driver
dependencies that are subsystem and/or driver-specific.

In the case of hdmi sound, depending on the CPU/GPU, sometimes the
snd_hda_driver can talk directly with the hardware, but sometimes, it
uses the i915 driver. When the snd_hda_driver uses i915, it should
first be unbind/rmmod, as otherwise trying to unbind/rmmod the i915
driver cause driver issues, as as reported by CI tools with different
GPU models:

	https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6415/fi-tgl-1115g4/igt@core_hotunplug@unbind-rebind.html
	https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11495/bat-adlm-1/igt@i915_module_load@reload.html

In the past, just a few CPUs were doing such bindings, but this issue now
applies to all "modern" Intel CPUs  that have onboard graphics, as well as
to the  newer discrete GPUs.

With the discrete GPU case, the HDA controller is physically separate and
requires i915 to power on the hardware for all hardware  access. In this
case, the issue is hit basicly 100% of the time.

With on-board graphics, i915 driver is needed only when the display
codec is accessed. If i915 is unbind during runtime suspend, while
snd-hda-intel is still bound, nothing bad happens, but unbinding i915
on other situations may also cause issues.

So, add support at kernel/modules to allow snd-hda drivers to properly
annotate when a dependency on a DRM driver dependencies exists,
and add a call to such new function at the snd-hda driver when it
successfully binds into the DRM driver.

This would allow userspace tools to check and properly remove the
audio driver before trying to remove or unbind the GPU driver.

It should be noticed that this series conveys the hidden module
dependencies. Other changes are needed in order to allow
removing or unbinding the i915 driver while keeping the snd-hda-intel
driver loaded/bound. With that regards, there are some discussions on
how to improve this at alsa-devel a while  back:

https://mailman.alsa-project.org/pipermail/alsa-devel/2021-September/190099.html

So, future improvements on both in i915 and the audio drivers could be made.
E.g. with  discrete GPUs, it's the only codec of the card, so it seems feasible
to detach the ALSA card if i915 is bound (using infra made for VGA
switcheroo), but,  until these improvements are done and land in
upstream, audio drivers needs to be unbound if i915 driver goes unbind.

Yet, even if such fixes got merged, this series is still needed, as it makes
such dependencies more explicit and easier to debug.

PS.: This series was generated against next-20220428.

---

v3: minor fixes:
 - fixed a checkpatch warning;
 - use a single line for the new function prototype.

v2: 
 - the dependencies are now handled directly at try_module_get().


Mauro Carvalho Chehab (2):
  module: update dependencies at try_module_get()
  ALSA: hda - identify when audio is provided by a video driver

 include/linux/module.h     |  4 +++-
 kernel/module/main.c       | 33 +++++++++++++++++++++++++++++++--
 sound/hda/hdac_component.c |  2 +-
 3 files changed, 35 insertions(+), 4 deletions(-)

-- 
2.35.1



^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Intel-gfx] [PATCH v3 0/2] Let userspace know when snd-hda-intel needs i915
@ 2022-04-30 13:41 ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 27+ messages in thread
From: Mauro Carvalho Chehab @ 2022-04-30 13:41 UTC (permalink / raw)
  To: Luis Chamberlain
  Cc: mauro.chehab, alsa-devel, Kai Vehmanen, Greg KH, intel-gfx,
	Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela,
	David Airlie, linux-modules, Mauro Carvalho Chehab, linux-kernel,
	Pierre-Louis Bossart

Currently, kernel/module annotates module dependencies when
request_symbol is used, but it doesn't cover more complex inter-driver
dependencies that are subsystem and/or driver-specific.

In the case of hdmi sound, depending on the CPU/GPU, sometimes the
snd_hda_driver can talk directly with the hardware, but sometimes, it
uses the i915 driver. When the snd_hda_driver uses i915, it should
first be unbind/rmmod, as otherwise trying to unbind/rmmod the i915
driver cause driver issues, as as reported by CI tools with different
GPU models:

	https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6415/fi-tgl-1115g4/igt@core_hotunplug@unbind-rebind.html
	https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11495/bat-adlm-1/igt@i915_module_load@reload.html

In the past, just a few CPUs were doing such bindings, but this issue now
applies to all "modern" Intel CPUs  that have onboard graphics, as well as
to the  newer discrete GPUs.

With the discrete GPU case, the HDA controller is physically separate and
requires i915 to power on the hardware for all hardware  access. In this
case, the issue is hit basicly 100% of the time.

With on-board graphics, i915 driver is needed only when the display
codec is accessed. If i915 is unbind during runtime suspend, while
snd-hda-intel is still bound, nothing bad happens, but unbinding i915
on other situations may also cause issues.

So, add support at kernel/modules to allow snd-hda drivers to properly
annotate when a dependency on a DRM driver dependencies exists,
and add a call to such new function at the snd-hda driver when it
successfully binds into the DRM driver.

This would allow userspace tools to check and properly remove the
audio driver before trying to remove or unbind the GPU driver.

It should be noticed that this series conveys the hidden module
dependencies. Other changes are needed in order to allow
removing or unbinding the i915 driver while keeping the snd-hda-intel
driver loaded/bound. With that regards, there are some discussions on
how to improve this at alsa-devel a while  back:

https://mailman.alsa-project.org/pipermail/alsa-devel/2021-September/190099.html

So, future improvements on both in i915 and the audio drivers could be made.
E.g. with  discrete GPUs, it's the only codec of the card, so it seems feasible
to detach the ALSA card if i915 is bound (using infra made for VGA
switcheroo), but,  until these improvements are done and land in
upstream, audio drivers needs to be unbound if i915 driver goes unbind.

Yet, even if such fixes got merged, this series is still needed, as it makes
such dependencies more explicit and easier to debug.

PS.: This series was generated against next-20220428.

---

v3: minor fixes:
 - fixed a checkpatch warning;
 - use a single line for the new function prototype.

v2: 
 - the dependencies are now handled directly at try_module_get().


Mauro Carvalho Chehab (2):
  module: update dependencies at try_module_get()
  ALSA: hda - identify when audio is provided by a video driver

 include/linux/module.h     |  4 +++-
 kernel/module/main.c       | 33 +++++++++++++++++++++++++++++++--
 sound/hda/hdac_component.c |  2 +-
 3 files changed, 35 insertions(+), 4 deletions(-)

-- 
2.35.1



^ permalink raw reply	[flat|nested] 27+ messages in thread

* [PATCH v3 0/2] Let userspace know when snd-hda-intel needs i915
@ 2022-04-30 13:41 ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 27+ messages in thread
From: Mauro Carvalho Chehab @ 2022-04-30 13:41 UTC (permalink / raw)
  To: Luis Chamberlain
  Cc: mauro.chehab, alsa-devel, Kai Vehmanen, Greg KH, intel-gfx,
	Lucas De Marchi, Takashi Iwai, dri-devel, David Airlie,
	linux-modules, Daniel Vetter, Mauro Carvalho Chehab,
	linux-kernel, Pierre-Louis Bossart

Currently, kernel/module annotates module dependencies when
request_symbol is used, but it doesn't cover more complex inter-driver
dependencies that are subsystem and/or driver-specific.

In the case of hdmi sound, depending on the CPU/GPU, sometimes the
snd_hda_driver can talk directly with the hardware, but sometimes, it
uses the i915 driver. When the snd_hda_driver uses i915, it should
first be unbind/rmmod, as otherwise trying to unbind/rmmod the i915
driver cause driver issues, as as reported by CI tools with different
GPU models:

	https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6415/fi-tgl-1115g4/igt@core_hotunplug@unbind-rebind.html
	https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11495/bat-adlm-1/igt@i915_module_load@reload.html

In the past, just a few CPUs were doing such bindings, but this issue now
applies to all "modern" Intel CPUs  that have onboard graphics, as well as
to the  newer discrete GPUs.

With the discrete GPU case, the HDA controller is physically separate and
requires i915 to power on the hardware for all hardware  access. In this
case, the issue is hit basicly 100% of the time.

With on-board graphics, i915 driver is needed only when the display
codec is accessed. If i915 is unbind during runtime suspend, while
snd-hda-intel is still bound, nothing bad happens, but unbinding i915
on other situations may also cause issues.

So, add support at kernel/modules to allow snd-hda drivers to properly
annotate when a dependency on a DRM driver dependencies exists,
and add a call to such new function at the snd-hda driver when it
successfully binds into the DRM driver.

This would allow userspace tools to check and properly remove the
audio driver before trying to remove or unbind the GPU driver.

It should be noticed that this series conveys the hidden module
dependencies. Other changes are needed in order to allow
removing or unbinding the i915 driver while keeping the snd-hda-intel
driver loaded/bound. With that regards, there are some discussions on
how to improve this at alsa-devel a while  back:

https://mailman.alsa-project.org/pipermail/alsa-devel/2021-September/190099.html

So, future improvements on both in i915 and the audio drivers could be made.
E.g. with  discrete GPUs, it's the only codec of the card, so it seems feasible
to detach the ALSA card if i915 is bound (using infra made for VGA
switcheroo), but,  until these improvements are done and land in
upstream, audio drivers needs to be unbound if i915 driver goes unbind.

Yet, even if such fixes got merged, this series is still needed, as it makes
such dependencies more explicit and easier to debug.

PS.: This series was generated against next-20220428.

---

v3: minor fixes:
 - fixed a checkpatch warning;
 - use a single line for the new function prototype.

v2: 
 - the dependencies are now handled directly at try_module_get().


Mauro Carvalho Chehab (2):
  module: update dependencies at try_module_get()
  ALSA: hda - identify when audio is provided by a video driver

 include/linux/module.h     |  4 +++-
 kernel/module/main.c       | 33 +++++++++++++++++++++++++++++++--
 sound/hda/hdac_component.c |  2 +-
 3 files changed, 35 insertions(+), 4 deletions(-)

-- 
2.35.1



^ permalink raw reply	[flat|nested] 27+ messages in thread

* [PATCH v3 1/2] module: update dependencies at try_module_get()
  2022-04-30 13:41 ` Mauro Carvalho Chehab
  (?)
  (?)
@ 2022-04-30 13:41   ` Mauro Carvalho Chehab
  -1 siblings, 0 replies; 27+ messages in thread
From: Mauro Carvalho Chehab @ 2022-04-30 13:41 UTC (permalink / raw)
  To: Luis Chamberlain
  Cc: Mauro Carvalho Chehab, Daniel Vetter, David Airlie, Greg KH,
	Jaroslav Kysela, Kai Vehmanen, Lucas De Marchi,
	Pierre-Louis Bossart, Takashi Iwai, alsa-devel, dri-devel,
	intel-gfx, linux-kernel, linux-modules, mauro.chehab,
	Dan Williams

Sometimes, device drivers are bound into each other via try_module_get(),
making such references invisible when looking at /proc/modules or lsmod.

Add a function to allow setting up module references for such
cases, and call it when try_module_get() is used.

Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---

See [PATCH v3 0/2] at: https://lore.kernel.org/all/cover.1651326000.git.mchehab@kernel.org/

 include/linux/module.h |  4 +++-
 kernel/module/main.c   | 33 +++++++++++++++++++++++++++++++--
 2 files changed, 34 insertions(+), 3 deletions(-)

diff --git a/include/linux/module.h b/include/linux/module.h
index 46d4d5f2516e..836851baaad4 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -620,7 +620,9 @@ extern void __module_get(struct module *module);
 
 /* This is the Right Way to get a module: if it fails, it's being removed,
  * so pretend it's not there. */
-extern bool try_module_get(struct module *module);
+extern bool __try_module_get(struct module *module, struct module *this);
+
+#define try_module_get(mod) __try_module_get(mod, THIS_MODULE)
 
 extern void module_put(struct module *module);
 
diff --git a/kernel/module/main.c b/kernel/module/main.c
index 05a42d8fcd7a..d63ebf52392b 100644
--- a/kernel/module/main.c
+++ b/kernel/module/main.c
@@ -631,6 +631,33 @@ static int ref_module(struct module *a, struct module *b)
 	return 0;
 }
 
+static int ref_module_dependency(struct module *mod, struct module *this)
+{
+	int ret;
+
+	if (!this || !this->name)
+		return -EINVAL;
+
+	if (mod == this)
+		return 0;
+
+	mutex_lock(&module_mutex);
+
+	ret = ref_module(this, mod);
+
+#ifdef CONFIG_MODULE_UNLOAD
+	if (ret)
+		goto ret;
+
+	ret = sysfs_create_link(mod->holders_dir,
+				&this->mkobj.kobj, this->name);
+#endif
+
+ret:
+	mutex_unlock(&module_mutex);
+	return ret;
+}
+
 /* Clear the unload stuff of the module. */
 static void module_unload_free(struct module *mod)
 {
@@ -841,7 +868,7 @@ void __module_get(struct module *module)
 }
 EXPORT_SYMBOL(__module_get);
 
-bool try_module_get(struct module *module)
+bool __try_module_get(struct module *module, struct module *this)
 {
 	bool ret = true;
 
@@ -856,9 +883,11 @@ bool try_module_get(struct module *module)
 
 		preempt_enable();
 	}
+	if (ret)
+		ref_module_dependency(module, this);
 	return ret;
 }
-EXPORT_SYMBOL(try_module_get);
+EXPORT_SYMBOL(__try_module_get);
 
 void module_put(struct module *module)
 {
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v3 1/2] module: update dependencies at try_module_get()
@ 2022-04-30 13:41   ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 27+ messages in thread
From: Mauro Carvalho Chehab @ 2022-04-30 13:41 UTC (permalink / raw)
  To: Luis Chamberlain
  Cc: alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx,
	Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela,
	Kai Vehmanen, linux-modules, Dan Williams, Mauro Carvalho Chehab,
	linux-kernel, Pierre-Louis Bossart

Sometimes, device drivers are bound into each other via try_module_get(),
making such references invisible when looking at /proc/modules or lsmod.

Add a function to allow setting up module references for such
cases, and call it when try_module_get() is used.

Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---

See [PATCH v3 0/2] at: https://lore.kernel.org/all/cover.1651326000.git.mchehab@kernel.org/

 include/linux/module.h |  4 +++-
 kernel/module/main.c   | 33 +++++++++++++++++++++++++++++++--
 2 files changed, 34 insertions(+), 3 deletions(-)

diff --git a/include/linux/module.h b/include/linux/module.h
index 46d4d5f2516e..836851baaad4 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -620,7 +620,9 @@ extern void __module_get(struct module *module);
 
 /* This is the Right Way to get a module: if it fails, it's being removed,
  * so pretend it's not there. */
-extern bool try_module_get(struct module *module);
+extern bool __try_module_get(struct module *module, struct module *this);
+
+#define try_module_get(mod) __try_module_get(mod, THIS_MODULE)
 
 extern void module_put(struct module *module);
 
diff --git a/kernel/module/main.c b/kernel/module/main.c
index 05a42d8fcd7a..d63ebf52392b 100644
--- a/kernel/module/main.c
+++ b/kernel/module/main.c
@@ -631,6 +631,33 @@ static int ref_module(struct module *a, struct module *b)
 	return 0;
 }
 
+static int ref_module_dependency(struct module *mod, struct module *this)
+{
+	int ret;
+
+	if (!this || !this->name)
+		return -EINVAL;
+
+	if (mod == this)
+		return 0;
+
+	mutex_lock(&module_mutex);
+
+	ret = ref_module(this, mod);
+
+#ifdef CONFIG_MODULE_UNLOAD
+	if (ret)
+		goto ret;
+
+	ret = sysfs_create_link(mod->holders_dir,
+				&this->mkobj.kobj, this->name);
+#endif
+
+ret:
+	mutex_unlock(&module_mutex);
+	return ret;
+}
+
 /* Clear the unload stuff of the module. */
 static void module_unload_free(struct module *mod)
 {
@@ -841,7 +868,7 @@ void __module_get(struct module *module)
 }
 EXPORT_SYMBOL(__module_get);
 
-bool try_module_get(struct module *module)
+bool __try_module_get(struct module *module, struct module *this)
 {
 	bool ret = true;
 
@@ -856,9 +883,11 @@ bool try_module_get(struct module *module)
 
 		preempt_enable();
 	}
+	if (ret)
+		ref_module_dependency(module, this);
 	return ret;
 }
-EXPORT_SYMBOL(try_module_get);
+EXPORT_SYMBOL(__try_module_get);
 
 void module_put(struct module *module)
 {
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Intel-gfx] [PATCH v3 1/2] module: update dependencies at try_module_get()
@ 2022-04-30 13:41   ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 27+ messages in thread
From: Mauro Carvalho Chehab @ 2022-04-30 13:41 UTC (permalink / raw)
  To: Luis Chamberlain
  Cc: alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx,
	Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela,
	Kai Vehmanen, linux-modules, Dan Williams, Mauro Carvalho Chehab,
	linux-kernel, Pierre-Louis Bossart

Sometimes, device drivers are bound into each other via try_module_get(),
making such references invisible when looking at /proc/modules or lsmod.

Add a function to allow setting up module references for such
cases, and call it when try_module_get() is used.

Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---

See [PATCH v3 0/2] at: https://lore.kernel.org/all/cover.1651326000.git.mchehab@kernel.org/

 include/linux/module.h |  4 +++-
 kernel/module/main.c   | 33 +++++++++++++++++++++++++++++++--
 2 files changed, 34 insertions(+), 3 deletions(-)

diff --git a/include/linux/module.h b/include/linux/module.h
index 46d4d5f2516e..836851baaad4 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -620,7 +620,9 @@ extern void __module_get(struct module *module);
 
 /* This is the Right Way to get a module: if it fails, it's being removed,
  * so pretend it's not there. */
-extern bool try_module_get(struct module *module);
+extern bool __try_module_get(struct module *module, struct module *this);
+
+#define try_module_get(mod) __try_module_get(mod, THIS_MODULE)
 
 extern void module_put(struct module *module);
 
diff --git a/kernel/module/main.c b/kernel/module/main.c
index 05a42d8fcd7a..d63ebf52392b 100644
--- a/kernel/module/main.c
+++ b/kernel/module/main.c
@@ -631,6 +631,33 @@ static int ref_module(struct module *a, struct module *b)
 	return 0;
 }
 
+static int ref_module_dependency(struct module *mod, struct module *this)
+{
+	int ret;
+
+	if (!this || !this->name)
+		return -EINVAL;
+
+	if (mod == this)
+		return 0;
+
+	mutex_lock(&module_mutex);
+
+	ret = ref_module(this, mod);
+
+#ifdef CONFIG_MODULE_UNLOAD
+	if (ret)
+		goto ret;
+
+	ret = sysfs_create_link(mod->holders_dir,
+				&this->mkobj.kobj, this->name);
+#endif
+
+ret:
+	mutex_unlock(&module_mutex);
+	return ret;
+}
+
 /* Clear the unload stuff of the module. */
 static void module_unload_free(struct module *mod)
 {
@@ -841,7 +868,7 @@ void __module_get(struct module *module)
 }
 EXPORT_SYMBOL(__module_get);
 
-bool try_module_get(struct module *module)
+bool __try_module_get(struct module *module, struct module *this)
 {
 	bool ret = true;
 
@@ -856,9 +883,11 @@ bool try_module_get(struct module *module)
 
 		preempt_enable();
 	}
+	if (ret)
+		ref_module_dependency(module, this);
 	return ret;
 }
-EXPORT_SYMBOL(try_module_get);
+EXPORT_SYMBOL(__try_module_get);
 
 void module_put(struct module *module)
 {
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v3 1/2] module: update dependencies at try_module_get()
@ 2022-04-30 13:41   ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 27+ messages in thread
From: Mauro Carvalho Chehab @ 2022-04-30 13:41 UTC (permalink / raw)
  To: Luis Chamberlain
  Cc: alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx,
	Lucas De Marchi, Takashi Iwai, dri-devel, Kai Vehmanen,
	linux-modules, Daniel Vetter, Dan Williams,
	Mauro Carvalho Chehab, linux-kernel, Pierre-Louis Bossart

Sometimes, device drivers are bound into each other via try_module_get(),
making such references invisible when looking at /proc/modules or lsmod.

Add a function to allow setting up module references for such
cases, and call it when try_module_get() is used.

Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---

See [PATCH v3 0/2] at: https://lore.kernel.org/all/cover.1651326000.git.mchehab@kernel.org/

 include/linux/module.h |  4 +++-
 kernel/module/main.c   | 33 +++++++++++++++++++++++++++++++--
 2 files changed, 34 insertions(+), 3 deletions(-)

diff --git a/include/linux/module.h b/include/linux/module.h
index 46d4d5f2516e..836851baaad4 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -620,7 +620,9 @@ extern void __module_get(struct module *module);
 
 /* This is the Right Way to get a module: if it fails, it's being removed,
  * so pretend it's not there. */
-extern bool try_module_get(struct module *module);
+extern bool __try_module_get(struct module *module, struct module *this);
+
+#define try_module_get(mod) __try_module_get(mod, THIS_MODULE)
 
 extern void module_put(struct module *module);
 
diff --git a/kernel/module/main.c b/kernel/module/main.c
index 05a42d8fcd7a..d63ebf52392b 100644
--- a/kernel/module/main.c
+++ b/kernel/module/main.c
@@ -631,6 +631,33 @@ static int ref_module(struct module *a, struct module *b)
 	return 0;
 }
 
+static int ref_module_dependency(struct module *mod, struct module *this)
+{
+	int ret;
+
+	if (!this || !this->name)
+		return -EINVAL;
+
+	if (mod == this)
+		return 0;
+
+	mutex_lock(&module_mutex);
+
+	ret = ref_module(this, mod);
+
+#ifdef CONFIG_MODULE_UNLOAD
+	if (ret)
+		goto ret;
+
+	ret = sysfs_create_link(mod->holders_dir,
+				&this->mkobj.kobj, this->name);
+#endif
+
+ret:
+	mutex_unlock(&module_mutex);
+	return ret;
+}
+
 /* Clear the unload stuff of the module. */
 static void module_unload_free(struct module *mod)
 {
@@ -841,7 +868,7 @@ void __module_get(struct module *module)
 }
 EXPORT_SYMBOL(__module_get);
 
-bool try_module_get(struct module *module)
+bool __try_module_get(struct module *module, struct module *this)
 {
 	bool ret = true;
 
@@ -856,9 +883,11 @@ bool try_module_get(struct module *module)
 
 		preempt_enable();
 	}
+	if (ret)
+		ref_module_dependency(module, this);
 	return ret;
 }
-EXPORT_SYMBOL(try_module_get);
+EXPORT_SYMBOL(__try_module_get);
 
 void module_put(struct module *module)
 {
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v3 2/2] ALSA: hda - identify when audio is provided by a video driver
  2022-04-30 13:41 ` Mauro Carvalho Chehab
  (?)
  (?)
@ 2022-04-30 13:41   ` Mauro Carvalho Chehab
  -1 siblings, 0 replies; 27+ messages in thread
From: Mauro Carvalho Chehab @ 2022-04-30 13:41 UTC (permalink / raw)
  To: Luis Chamberlain
  Cc: Mauro Carvalho Chehab, Daniel Vetter, David Airlie, Greg KH,
	Jaroslav Kysela, Kai Vehmanen, Lucas De Marchi,
	Pierre-Louis Bossart, Takashi Iwai, alsa-devel, dri-devel,
	intel-gfx, linux-kernel, linux-modules, mauro.chehab

On some devices, the hda driver needs to hook into a video driver,
in order to be able to properly access the audio hardware and/or
the power management function.

That's the case of several snd_hda_intel devices that depends on
i915 driver.

Ensure that a proper reference between the snd-hda driver needing
such binding is shown at /proc/modules, in order to allow userspace
to know about such binding.

Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---

See [PATCH v3 0/2] at: https://lore.kernel.org/all/cover.1651326000.git.mchehab@kernel.org/

 sound/hda/hdac_component.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/hda/hdac_component.c b/sound/hda/hdac_component.c
index bb37e7e0bd79..30e130457272 100644
--- a/sound/hda/hdac_component.c
+++ b/sound/hda/hdac_component.c
@@ -199,7 +199,7 @@ static int hdac_component_master_bind(struct device *dev)
 	}
 
 	/* pin the module to avoid dynamic unbinding, but only if given */
-	if (!try_module_get(acomp->ops->owner)) {
+	if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
 		ret = -ENODEV;
 		goto out_unbind;
 	}
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v3 2/2] ALSA: hda - identify when audio is provided by a video driver
@ 2022-04-30 13:41   ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 27+ messages in thread
From: Mauro Carvalho Chehab @ 2022-04-30 13:41 UTC (permalink / raw)
  To: Luis Chamberlain
  Cc: alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx,
	Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela,
	Kai Vehmanen, linux-modules, Mauro Carvalho Chehab, linux-kernel,
	Pierre-Louis Bossart

On some devices, the hda driver needs to hook into a video driver,
in order to be able to properly access the audio hardware and/or
the power management function.

That's the case of several snd_hda_intel devices that depends on
i915 driver.

Ensure that a proper reference between the snd-hda driver needing
such binding is shown at /proc/modules, in order to allow userspace
to know about such binding.

Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---

See [PATCH v3 0/2] at: https://lore.kernel.org/all/cover.1651326000.git.mchehab@kernel.org/

 sound/hda/hdac_component.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/hda/hdac_component.c b/sound/hda/hdac_component.c
index bb37e7e0bd79..30e130457272 100644
--- a/sound/hda/hdac_component.c
+++ b/sound/hda/hdac_component.c
@@ -199,7 +199,7 @@ static int hdac_component_master_bind(struct device *dev)
 	}
 
 	/* pin the module to avoid dynamic unbinding, but only if given */
-	if (!try_module_get(acomp->ops->owner)) {
+	if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
 		ret = -ENODEV;
 		goto out_unbind;
 	}
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Intel-gfx] [PATCH v3 2/2] ALSA: hda - identify when audio is provided by a video driver
@ 2022-04-30 13:41   ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 27+ messages in thread
From: Mauro Carvalho Chehab @ 2022-04-30 13:41 UTC (permalink / raw)
  To: Luis Chamberlain
  Cc: alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx,
	Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela,
	Kai Vehmanen, linux-modules, Mauro Carvalho Chehab, linux-kernel,
	Pierre-Louis Bossart

On some devices, the hda driver needs to hook into a video driver,
in order to be able to properly access the audio hardware and/or
the power management function.

That's the case of several snd_hda_intel devices that depends on
i915 driver.

Ensure that a proper reference between the snd-hda driver needing
such binding is shown at /proc/modules, in order to allow userspace
to know about such binding.

Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---

See [PATCH v3 0/2] at: https://lore.kernel.org/all/cover.1651326000.git.mchehab@kernel.org/

 sound/hda/hdac_component.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/hda/hdac_component.c b/sound/hda/hdac_component.c
index bb37e7e0bd79..30e130457272 100644
--- a/sound/hda/hdac_component.c
+++ b/sound/hda/hdac_component.c
@@ -199,7 +199,7 @@ static int hdac_component_master_bind(struct device *dev)
 	}
 
 	/* pin the module to avoid dynamic unbinding, but only if given */
-	if (!try_module_get(acomp->ops->owner)) {
+	if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
 		ret = -ENODEV;
 		goto out_unbind;
 	}
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [PATCH v3 2/2] ALSA: hda - identify when audio is provided by a video driver
@ 2022-04-30 13:41   ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 27+ messages in thread
From: Mauro Carvalho Chehab @ 2022-04-30 13:41 UTC (permalink / raw)
  To: Luis Chamberlain
  Cc: alsa-devel, mauro.chehab, David Airlie, Greg KH, intel-gfx,
	Lucas De Marchi, Takashi Iwai, dri-devel, Kai Vehmanen,
	linux-modules, Daniel Vetter, Mauro Carvalho Chehab,
	linux-kernel, Pierre-Louis Bossart

On some devices, the hda driver needs to hook into a video driver,
in order to be able to properly access the audio hardware and/or
the power management function.

That's the case of several snd_hda_intel devices that depends on
i915 driver.

Ensure that a proper reference between the snd-hda driver needing
such binding is shown at /proc/modules, in order to allow userspace
to know about such binding.

Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---

See [PATCH v3 0/2] at: https://lore.kernel.org/all/cover.1651326000.git.mchehab@kernel.org/

 sound/hda/hdac_component.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/hda/hdac_component.c b/sound/hda/hdac_component.c
index bb37e7e0bd79..30e130457272 100644
--- a/sound/hda/hdac_component.c
+++ b/sound/hda/hdac_component.c
@@ -199,7 +199,7 @@ static int hdac_component_master_bind(struct device *dev)
 	}
 
 	/* pin the module to avoid dynamic unbinding, but only if given */
-	if (!try_module_get(acomp->ops->owner)) {
+	if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
 		ret = -ENODEV;
 		goto out_unbind;
 	}
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Let userspace know when snd-hda-intel needs i915 (rev3)
  2022-04-30 13:41 ` Mauro Carvalho Chehab
                   ` (4 preceding siblings ...)
  (?)
@ 2022-04-30 14:03 ` Patchwork
  -1 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2022-04-30 14:03 UTC (permalink / raw)
  To: Mauro Carvalho Chehab; +Cc: intel-gfx

== Series Details ==

Series: Let userspace know when snd-hda-intel needs i915 (rev3)
URL   : https://patchwork.freedesktop.org/series/103315/
State : warning

== Summary ==

Error: dim checkpatch failed
91b18bc0af7a module: update dependencies at try_module_get()
-:24: CHECK:AVOID_EXTERNS: extern prototypes should be avoided in .h files
#24: FILE: include/linux/module.h:615:
+extern bool __try_module_get(struct module *module, struct module *this);

total: 0 errors, 0 warnings, 1 checks, 63 lines checked
0dc826692eef ALSA: hda - identify when audio is provided by a video driver



^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Intel-gfx] ✓ Fi.CI.BAT: success for Let userspace know when snd-hda-intel needs i915 (rev3)
  2022-04-30 13:41 ` Mauro Carvalho Chehab
                   ` (5 preceding siblings ...)
  (?)
@ 2022-04-30 14:35 ` Patchwork
  -1 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2022-04-30 14:35 UTC (permalink / raw)
  To: Mauro Carvalho Chehab; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 13158 bytes --]

== Series Details ==

Series: Let userspace know when snd-hda-intel needs i915 (rev3)
URL   : https://patchwork.freedesktop.org/series/103315/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_11584 -> Patchwork_103315v3
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/index.html

Participating hosts (44 -> 42)
------------------------------

  Additional (3): bat-rpls-1 fi-rkl-11600 bat-dg1-5 
  Missing    (5): fi-bdw-5557u bat-adlm-1 fi-bsw-cyan fi-kbl-8809g fi-bsw-nick 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_103315v3:

### IGT changes ###

#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@gem_exec_suspend@basic-s3@smem:
    - {bat-rpls-1}:       NOTRUN -> [INCOMPLETE][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-rpls-1/igt@gem_exec_suspend@basic-s3@smem.html

  
Known issues
------------

  Here are the changes found in Patchwork_103315v3 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@fbdev@write:
    - bat-dg1-5:          NOTRUN -> [SKIP][2] ([i915#2582]) +4 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-dg1-5/igt@fbdev@write.html

  * igt@gem_huc_copy@huc-copy:
    - fi-rkl-11600:       NOTRUN -> [SKIP][3] ([i915#2190])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/fi-rkl-11600/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@basic:
    - fi-rkl-11600:       NOTRUN -> [SKIP][4] ([i915#4613]) +3 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/fi-rkl-11600/igt@gem_lmem_swapping@basic.html

  * igt@gem_mmap@basic:
    - bat-dg1-5:          NOTRUN -> [SKIP][5] ([i915#4083])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-dg1-5/igt@gem_mmap@basic.html

  * igt@gem_tiled_fence_blits@basic:
    - bat-dg1-5:          NOTRUN -> [SKIP][6] ([i915#4077]) +2 similar issues
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-dg1-5/igt@gem_tiled_fence_blits@basic.html

  * igt@gem_tiled_pread_basic:
    - bat-dg1-5:          NOTRUN -> [SKIP][7] ([i915#4079]) +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-dg1-5/igt@gem_tiled_pread_basic.html
    - fi-rkl-11600:       NOTRUN -> [SKIP][8] ([i915#3282])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/fi-rkl-11600/igt@gem_tiled_pread_basic.html

  * igt@i915_pm_backlight@basic-brightness:
    - bat-dg1-5:          NOTRUN -> [SKIP][9] ([i915#1155])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-dg1-5/igt@i915_pm_backlight@basic-brightness.html
    - fi-rkl-11600:       NOTRUN -> [SKIP][10] ([i915#3012])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/fi-rkl-11600/igt@i915_pm_backlight@basic-brightness.html

  * igt@i915_selftest@live@gt_engines:
    - bat-dg1-5:          NOTRUN -> [INCOMPLETE][11] ([i915#4418])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-dg1-5/igt@i915_selftest@live@gt_engines.html

  * igt@i915_selftest@live@hangcheck:
    - fi-hsw-g3258:       [PASS][12] -> [INCOMPLETE][13] ([i915#4785])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/fi-hsw-g3258/igt@i915_selftest@live@hangcheck.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/fi-hsw-g3258/igt@i915_selftest@live@hangcheck.html

  * igt@kms_addfb_basic@basic-y-tiled-legacy:
    - bat-dg1-5:          NOTRUN -> [SKIP][14] ([i915#4215])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-dg1-5/igt@kms_addfb_basic@basic-y-tiled-legacy.html

  * igt@kms_addfb_basic@tile-pitch-mismatch:
    - bat-dg1-5:          NOTRUN -> [SKIP][15] ([i915#4212]) +7 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-dg1-5/igt@kms_addfb_basic@tile-pitch-mismatch.html

  * igt@kms_busy@basic:
    - bat-dg1-5:          NOTRUN -> [SKIP][16] ([i915#4303])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-dg1-5/igt@kms_busy@basic.html

  * igt@kms_chamelium@dp-crc-fast:
    - fi-rkl-11600:       NOTRUN -> [SKIP][17] ([fdo#111827]) +8 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/fi-rkl-11600/igt@kms_chamelium@dp-crc-fast.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - bat-dg1-5:          NOTRUN -> [SKIP][18] ([fdo#111827]) +7 similar issues
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-dg1-5/igt@kms_chamelium@hdmi-hpd-fast.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - fi-rkl-11600:       NOTRUN -> [SKIP][19] ([i915#4070] / [i915#4103]) +1 similar issue
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/fi-rkl-11600/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - bat-dg1-5:          NOTRUN -> [SKIP][20] ([i915#4103] / [i915#4213]) +1 similar issue
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-dg1-5/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_flip@basic-flip-vs-dpms:
    - bat-dg1-5:          NOTRUN -> [SKIP][21] ([i915#4078]) +23 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-dg1-5/igt@kms_flip@basic-flip-vs-dpms.html

  * igt@kms_force_connector_basic@force-load-detect:
    - fi-rkl-11600:       NOTRUN -> [SKIP][22] ([fdo#109285] / [i915#4098])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/fi-rkl-11600/igt@kms_force_connector_basic@force-load-detect.html
    - bat-dg1-5:          NOTRUN -> [SKIP][23] ([fdo#109285])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-dg1-5/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d:
    - fi-rkl-11600:       NOTRUN -> [SKIP][24] ([i915#4070] / [i915#533])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/fi-rkl-11600/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d.html

  * igt@kms_psr@primary_mmap_gtt:
    - fi-rkl-11600:       NOTRUN -> [SKIP][25] ([i915#1072]) +3 similar issues
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/fi-rkl-11600/igt@kms_psr@primary_mmap_gtt.html

  * igt@kms_psr@primary_page_flip:
    - bat-dg1-5:          NOTRUN -> [SKIP][26] ([i915#1072] / [i915#4078]) +3 similar issues
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-dg1-5/igt@kms_psr@primary_page_flip.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - fi-rkl-11600:       NOTRUN -> [SKIP][27] ([i915#3555] / [i915#4098])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/fi-rkl-11600/igt@kms_setmode@basic-clone-single-crtc.html
    - bat-dg1-5:          NOTRUN -> [SKIP][28] ([i915#3555])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-dg1-5/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@prime_vgem@basic-fence-mmap:
    - bat-dg1-5:          NOTRUN -> [SKIP][29] ([i915#3708] / [i915#4077]) +1 similar issue
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-dg1-5/igt@prime_vgem@basic-fence-mmap.html

  * igt@prime_vgem@basic-userptr:
    - fi-rkl-11600:       NOTRUN -> [SKIP][30] ([i915#3301] / [i915#3708])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/fi-rkl-11600/igt@prime_vgem@basic-userptr.html
    - bat-dg1-5:          NOTRUN -> [SKIP][31] ([i915#3708] / [i915#4873])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-dg1-5/igt@prime_vgem@basic-userptr.html

  * igt@prime_vgem@basic-write:
    - bat-dg1-5:          NOTRUN -> [SKIP][32] ([i915#3708]) +3 similar issues
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-dg1-5/igt@prime_vgem@basic-write.html
    - fi-rkl-11600:       NOTRUN -> [SKIP][33] ([i915#3291] / [i915#3708]) +2 similar issues
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/fi-rkl-11600/igt@prime_vgem@basic-write.html

  * igt@runner@aborted:
    - bat-dg1-5:          NOTRUN -> [FAIL][34] ([i915#4312] / [i915#5257])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-dg1-5/igt@runner@aborted.html
    - fi-hsw-g3258:       NOTRUN -> [FAIL][35] ([fdo#109271] / [i915#4312])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/fi-hsw-g3258/igt@runner@aborted.html

  
#### Possible fixes ####

  * igt@core_auth@basic-auth:
    - fi-kbl-soraka:      [DMESG-WARN][36] ([i915#1982]) -> [PASS][37]
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/fi-kbl-soraka/igt@core_auth@basic-auth.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/fi-kbl-soraka/igt@core_auth@basic-auth.html

  * igt@i915_pm_rpm@module-reload:
    - fi-cfl-8109u:       [DMESG-WARN][38] ([i915#62]) -> [PASS][39] +16 similar issues
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/fi-cfl-8109u/igt@i915_pm_rpm@module-reload.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/fi-cfl-8109u/igt@i915_pm_rpm@module-reload.html

  * igt@kms_flip@basic-flip-vs-modeset@b-edp1:
    - {bat-adlp-6}:       [DMESG-WARN][40] ([i915#3576]) -> [PASS][41] +1 similar issue
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/bat-adlp-6/igt@kms_flip@basic-flip-vs-modeset@b-edp1.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/bat-adlp-6/igt@kms_flip@basic-flip-vs-modeset@b-edp1.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3576]: https://gitlab.freedesktop.org/drm/intel/issues/3576
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
  [i915#4303]: https://gitlab.freedesktop.org/drm/intel/issues/4303
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4418]: https://gitlab.freedesktop.org/drm/intel/issues/4418
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785
  [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
  [i915#5257]: https://gitlab.freedesktop.org/drm/intel/issues/5257
  [i915#5270]: https://gitlab.freedesktop.org/drm/intel/issues/5270
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5356]: https://gitlab.freedesktop.org/drm/intel/issues/5356
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62


Build changes
-------------

  * Linux: CI_DRM_11584 -> Patchwork_103315v3

  CI-20190529: 20190529
  CI_DRM_11584: 3ae2e00290c290713e21118220a817a24b44d39f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_6464: eddc67c5c85b8ee6eb4d13752ca43da5073dc985 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_103315v3: 3ae2e00290c290713e21118220a817a24b44d39f @ git://anongit.freedesktop.org/gfx-ci/linux


### Linux commits

6383765d070a ALSA: hda - identify when audio is provided by a video driver
f552c2aa0527 module: update dependencies at try_module_get()

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/index.html

[-- Attachment #2: Type: text/html, Size: 15475 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH v3 1/2] module: update dependencies at try_module_get()
  2022-04-30 13:41   ` Mauro Carvalho Chehab
  (?)
  (?)
@ 2022-04-30 15:01     ` Greg KH
  -1 siblings, 0 replies; 27+ messages in thread
From: Greg KH @ 2022-04-30 15:01 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Luis Chamberlain, Daniel Vetter, David Airlie, Jaroslav Kysela,
	Kai Vehmanen, Lucas De Marchi, Pierre-Louis Bossart,
	Takashi Iwai, alsa-devel, dri-devel, intel-gfx, linux-kernel,
	linux-modules, mauro.chehab, Dan Williams

On Sat, Apr 30, 2022 at 02:41:47PM +0100, Mauro Carvalho Chehab wrote:
> Sometimes, device drivers are bound into each other via try_module_get(),
> making such references invisible when looking at /proc/modules or lsmod.
> 
> Add a function to allow setting up module references for such
> cases, and call it when try_module_get() is used.
> 
> Reviewed-by: Dan Williams <dan.j.williams@intel.com>
> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH v3 1/2] module: update dependencies at try_module_get()
@ 2022-04-30 15:01     ` Greg KH
  0 siblings, 0 replies; 27+ messages in thread
From: Greg KH @ 2022-04-30 15:01 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: alsa-devel, mauro.chehab, David Airlie, linux-kernel, intel-gfx,
	Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela,
	Kai Vehmanen, Luis Chamberlain, Dan Williams, linux-modules,
	Pierre-Louis Bossart

On Sat, Apr 30, 2022 at 02:41:47PM +0100, Mauro Carvalho Chehab wrote:
> Sometimes, device drivers are bound into each other via try_module_get(),
> making such references invisible when looking at /proc/modules or lsmod.
> 
> Add a function to allow setting up module references for such
> cases, and call it when try_module_get() is used.
> 
> Reviewed-by: Dan Williams <dan.j.williams@intel.com>
> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [Intel-gfx] [PATCH v3 1/2] module: update dependencies at try_module_get()
@ 2022-04-30 15:01     ` Greg KH
  0 siblings, 0 replies; 27+ messages in thread
From: Greg KH @ 2022-04-30 15:01 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: alsa-devel, mauro.chehab, David Airlie, linux-kernel, intel-gfx,
	Lucas De Marchi, Takashi Iwai, dri-devel, Jaroslav Kysela,
	Kai Vehmanen, Luis Chamberlain, Dan Williams, linux-modules,
	Pierre-Louis Bossart

On Sat, Apr 30, 2022 at 02:41:47PM +0100, Mauro Carvalho Chehab wrote:
> Sometimes, device drivers are bound into each other via try_module_get(),
> making such references invisible when looking at /proc/modules or lsmod.
> 
> Add a function to allow setting up module references for such
> cases, and call it when try_module_get() is used.
> 
> Reviewed-by: Dan Williams <dan.j.williams@intel.com>
> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH v3 1/2] module: update dependencies at try_module_get()
@ 2022-04-30 15:01     ` Greg KH
  0 siblings, 0 replies; 27+ messages in thread
From: Greg KH @ 2022-04-30 15:01 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: alsa-devel, mauro.chehab, David Airlie, linux-kernel, intel-gfx,
	Lucas De Marchi, Takashi Iwai, dri-devel, Kai Vehmanen,
	Luis Chamberlain, Daniel Vetter, Dan Williams, linux-modules,
	Pierre-Louis Bossart

On Sat, Apr 30, 2022 at 02:41:47PM +0100, Mauro Carvalho Chehab wrote:
> Sometimes, device drivers are bound into each other via try_module_get(),
> making such references invisible when looking at /proc/modules or lsmod.
> 
> Add a function to allow setting up module references for such
> cases, and call it when try_module_get() is used.
> 
> Reviewed-by: Dan Williams <dan.j.williams@intel.com>
> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH v3 2/2] ALSA: hda - identify when audio is provided by a video driver
  2022-04-30 13:41   ` Mauro Carvalho Chehab
  (?)
  (?)
@ 2022-04-30 16:30     ` kernel test robot
  -1 siblings, 0 replies; 27+ messages in thread
From: kernel test robot @ 2022-04-30 16:30 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Luis Chamberlain
  Cc: kbuild-all, linux-media, Mauro Carvalho Chehab, Daniel Vetter,
	David Airlie, Greg KH, Jaroslav Kysela, Kai Vehmanen,
	Lucas De Marchi, Pierre-Louis Bossart, Takashi Iwai, alsa-devel,
	dri-devel, intel-gfx, linux-kernel, linux-modules, mauro.chehab

Hi Mauro,

I love your patch! Yet something to improve:

[auto build test ERROR on mcgrof/modules-next]
[also build test ERROR on linus/master v5.18-rc4 next-20220429]
[cannot apply to tiwai-sound/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/Mauro-Carvalho-Chehab/Let-userspace-know-when-snd-hda-intel-needs-i915/20220430-214332
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git modules-next
config: ia64-randconfig-r023-20220428 (https://download.01.org/0day-ci/archive/20220501/202205010035.FAx0YtE1-lkp@intel.com/config)
compiler: ia64-linux-gcc (GCC) 11.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel-lab-lkp/linux/commit/32f6557b5cc77c3cc2fcf6e68f11d989e31c954d
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Mauro-Carvalho-Chehab/Let-userspace-know-when-snd-hda-intel-needs-i915/20220430-214332
        git checkout 32f6557b5cc77c3cc2fcf6e68f11d989e31c954d
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=ia64 SHELL=/bin/bash sound/hda/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from arch/ia64/include/asm/pgtable.h:153,
                    from include/linux/pgtable.h:6,
                    from arch/ia64/include/asm/uaccess.h:40,
                    from include/linux/uaccess.h:11,
                    from arch/ia64/include/asm/sections.h:11,
                    from include/linux/interrupt.h:21,
                    from include/linux/pci.h:38,
                    from sound/hda/hdac_component.c:6:
   arch/ia64/include/asm/mmu_context.h: In function 'reload_context':
   arch/ia64/include/asm/mmu_context.h:127:48: warning: variable 'old_rr4' set but not used [-Wunused-but-set-variable]
     127 |         unsigned long rr0, rr1, rr2, rr3, rr4, old_rr4;
         |                                                ^~~~~~~
   sound/hda/hdac_component.c: In function 'hdac_component_master_bind':
>> sound/hda/hdac_component.c:202:14: error: implicit declaration of function '__try_module_get'; did you mean 'try_module_get'? [-Werror=implicit-function-declaration]
     202 |         if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
         |              ^~~~~~~~~~~~~~~~
         |              try_module_get
   cc1: some warnings being treated as errors


vim +202 sound/hda/hdac_component.c

     3	
     4	#include <linux/init.h>
     5	#include <linux/module.h>
   > 6	#include <linux/pci.h>
     7	#include <linux/component.h>
     8	#include <sound/core.h>
     9	#include <sound/hdaudio.h>
    10	#include <sound/hda_component.h>
    11	#include <sound/hda_register.h>
    12	
    13	static void hdac_acomp_release(struct device *dev, void *res)
    14	{
    15	}
    16	
    17	static struct drm_audio_component *hdac_get_acomp(struct device *dev)
    18	{
    19		return devres_find(dev, hdac_acomp_release, NULL, NULL);
    20	}
    21	
    22	/**
    23	 * snd_hdac_set_codec_wakeup - Enable / disable HDMI/DP codec wakeup
    24	 * @bus: HDA core bus
    25	 * @enable: enable or disable the wakeup
    26	 *
    27	 * This function is supposed to be used only by a HD-audio controller
    28	 * driver that needs the interaction with graphics driver.
    29	 *
    30	 * This function should be called during the chip reset, also called at
    31	 * resume for updating STATESTS register read.
    32	 *
    33	 * Returns zero for success or a negative error code.
    34	 */
    35	int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable)
    36	{
    37		struct drm_audio_component *acomp = bus->audio_component;
    38	
    39		if (!acomp || !acomp->ops)
    40			return -ENODEV;
    41	
    42		if (!acomp->ops->codec_wake_override)
    43			return 0;
    44	
    45		dev_dbg(bus->dev, "%s codec wakeup\n",
    46			enable ? "enable" : "disable");
    47	
    48		acomp->ops->codec_wake_override(acomp->dev, enable);
    49	
    50		return 0;
    51	}
    52	EXPORT_SYMBOL_GPL(snd_hdac_set_codec_wakeup);
    53	
    54	/**
    55	 * snd_hdac_display_power - Power up / down the power refcount
    56	 * @bus: HDA core bus
    57	 * @idx: HDA codec address, pass HDA_CODEC_IDX_CONTROLLER for controller
    58	 * @enable: power up or down
    59	 *
    60	 * This function is used by either HD-audio controller or codec driver that
    61	 * needs the interaction with graphics driver.
    62	 *
    63	 * This function updates the power status, and calls the get_power() and
    64	 * put_power() ops accordingly, toggling the codec wakeup, too.
    65	 */
    66	void snd_hdac_display_power(struct hdac_bus *bus, unsigned int idx, bool enable)
    67	{
    68		struct drm_audio_component *acomp = bus->audio_component;
    69	
    70		dev_dbg(bus->dev, "display power %s\n",
    71			enable ? "enable" : "disable");
    72	
    73		mutex_lock(&bus->lock);
    74		if (enable)
    75			set_bit(idx, &bus->display_power_status);
    76		else
    77			clear_bit(idx, &bus->display_power_status);
    78	
    79		if (!acomp || !acomp->ops)
    80			goto unlock;
    81	
    82		if (bus->display_power_status) {
    83			if (!bus->display_power_active) {
    84				unsigned long cookie = -1;
    85	
    86				if (acomp->ops->get_power)
    87					cookie = acomp->ops->get_power(acomp->dev);
    88	
    89				snd_hdac_set_codec_wakeup(bus, true);
    90				snd_hdac_set_codec_wakeup(bus, false);
    91				bus->display_power_active = cookie;
    92			}
    93		} else {
    94			if (bus->display_power_active) {
    95				unsigned long cookie = bus->display_power_active;
    96	
    97				if (acomp->ops->put_power)
    98					acomp->ops->put_power(acomp->dev, cookie);
    99	
   100				bus->display_power_active = 0;
   101			}
   102		}
   103	 unlock:
   104		mutex_unlock(&bus->lock);
   105	}
   106	EXPORT_SYMBOL_GPL(snd_hdac_display_power);
   107	
   108	/**
   109	 * snd_hdac_sync_audio_rate - Set N/CTS based on the sample rate
   110	 * @codec: HDA codec
   111	 * @nid: the pin widget NID
   112	 * @dev_id: device identifier
   113	 * @rate: the sample rate to set
   114	 *
   115	 * This function is supposed to be used only by a HD-audio controller
   116	 * driver that needs the interaction with graphics driver.
   117	 *
   118	 * This function sets N/CTS value based on the given sample rate.
   119	 * Returns zero for success, or a negative error code.
   120	 */
   121	int snd_hdac_sync_audio_rate(struct hdac_device *codec, hda_nid_t nid,
   122				     int dev_id, int rate)
   123	{
   124		struct hdac_bus *bus = codec->bus;
   125		struct drm_audio_component *acomp = bus->audio_component;
   126		int port, pipe;
   127	
   128		if (!acomp || !acomp->ops || !acomp->ops->sync_audio_rate)
   129			return -ENODEV;
   130		port = nid;
   131		if (acomp->audio_ops && acomp->audio_ops->pin2port) {
   132			port = acomp->audio_ops->pin2port(codec, nid);
   133			if (port < 0)
   134				return -EINVAL;
   135		}
   136		pipe = dev_id;
   137		return acomp->ops->sync_audio_rate(acomp->dev, port, pipe, rate);
   138	}
   139	EXPORT_SYMBOL_GPL(snd_hdac_sync_audio_rate);
   140	
   141	/**
   142	 * snd_hdac_acomp_get_eld - Get the audio state and ELD via component
   143	 * @codec: HDA codec
   144	 * @nid: the pin widget NID
   145	 * @dev_id: device identifier
   146	 * @audio_enabled: the pointer to store the current audio state
   147	 * @buffer: the buffer pointer to store ELD bytes
   148	 * @max_bytes: the max bytes to be stored on @buffer
   149	 *
   150	 * This function is supposed to be used only by a HD-audio controller
   151	 * driver that needs the interaction with graphics driver.
   152	 *
   153	 * This function queries the current state of the audio on the given
   154	 * digital port and fetches the ELD bytes onto the given buffer.
   155	 * It returns the number of bytes for the total ELD data, zero for
   156	 * invalid ELD, or a negative error code.
   157	 *
   158	 * The return size is the total bytes required for the whole ELD bytes,
   159	 * thus it may be over @max_bytes.  If it's over @max_bytes, it implies
   160	 * that only a part of ELD bytes have been fetched.
   161	 */
   162	int snd_hdac_acomp_get_eld(struct hdac_device *codec, hda_nid_t nid, int dev_id,
   163				   bool *audio_enabled, char *buffer, int max_bytes)
   164	{
   165		struct hdac_bus *bus = codec->bus;
   166		struct drm_audio_component *acomp = bus->audio_component;
   167		int port, pipe;
   168	
   169		if (!acomp || !acomp->ops || !acomp->ops->get_eld)
   170			return -ENODEV;
   171	
   172		port = nid;
   173		if (acomp->audio_ops && acomp->audio_ops->pin2port) {
   174			port = acomp->audio_ops->pin2port(codec, nid);
   175			if (port < 0)
   176				return -EINVAL;
   177		}
   178		pipe = dev_id;
   179		return acomp->ops->get_eld(acomp->dev, port, pipe, audio_enabled,
   180					   buffer, max_bytes);
   181	}
   182	EXPORT_SYMBOL_GPL(snd_hdac_acomp_get_eld);
   183	
   184	static int hdac_component_master_bind(struct device *dev)
   185	{
   186		struct drm_audio_component *acomp = hdac_get_acomp(dev);
   187		int ret;
   188	
   189		if (WARN_ON(!acomp))
   190			return -EINVAL;
   191	
   192		ret = component_bind_all(dev, acomp);
   193		if (ret < 0)
   194			return ret;
   195	
   196		if (WARN_ON(!(acomp->dev && acomp->ops))) {
   197			ret = -EINVAL;
   198			goto out_unbind;
   199		}
   200	
   201		/* pin the module to avoid dynamic unbinding, but only if given */
 > 202		if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
   203			ret = -ENODEV;
   204			goto out_unbind;
   205		}
   206	
   207		if (acomp->audio_ops && acomp->audio_ops->master_bind) {
   208			ret = acomp->audio_ops->master_bind(dev, acomp);
   209			if (ret < 0)
   210				goto module_put;
   211		}
   212	
   213		complete_all(&acomp->master_bind_complete);
   214		return 0;
   215	
   216	 module_put:
   217		module_put(acomp->ops->owner);
   218	out_unbind:
   219		component_unbind_all(dev, acomp);
   220		complete_all(&acomp->master_bind_complete);
   221	
   222		return ret;
   223	}
   224	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH v3 2/2] ALSA: hda - identify when audio is provided by a video driver
@ 2022-04-30 16:30     ` kernel test robot
  0 siblings, 0 replies; 27+ messages in thread
From: kernel test robot @ 2022-04-30 16:30 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Luis Chamberlain
  Cc: alsa-devel, kbuild-all, mauro.chehab, David Airlie, Greg KH,
	intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel,
	Jaroslav Kysela, Kai Vehmanen, linux-modules,
	Pierre-Louis Bossart, Mauro Carvalho Chehab, linux-kernel,
	linux-media

Hi Mauro,

I love your patch! Yet something to improve:

[auto build test ERROR on mcgrof/modules-next]
[also build test ERROR on linus/master v5.18-rc4 next-20220429]
[cannot apply to tiwai-sound/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/Mauro-Carvalho-Chehab/Let-userspace-know-when-snd-hda-intel-needs-i915/20220430-214332
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git modules-next
config: ia64-randconfig-r023-20220428 (https://download.01.org/0day-ci/archive/20220501/202205010035.FAx0YtE1-lkp@intel.com/config)
compiler: ia64-linux-gcc (GCC) 11.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel-lab-lkp/linux/commit/32f6557b5cc77c3cc2fcf6e68f11d989e31c954d
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Mauro-Carvalho-Chehab/Let-userspace-know-when-snd-hda-intel-needs-i915/20220430-214332
        git checkout 32f6557b5cc77c3cc2fcf6e68f11d989e31c954d
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=ia64 SHELL=/bin/bash sound/hda/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from arch/ia64/include/asm/pgtable.h:153,
                    from include/linux/pgtable.h:6,
                    from arch/ia64/include/asm/uaccess.h:40,
                    from include/linux/uaccess.h:11,
                    from arch/ia64/include/asm/sections.h:11,
                    from include/linux/interrupt.h:21,
                    from include/linux/pci.h:38,
                    from sound/hda/hdac_component.c:6:
   arch/ia64/include/asm/mmu_context.h: In function 'reload_context':
   arch/ia64/include/asm/mmu_context.h:127:48: warning: variable 'old_rr4' set but not used [-Wunused-but-set-variable]
     127 |         unsigned long rr0, rr1, rr2, rr3, rr4, old_rr4;
         |                                                ^~~~~~~
   sound/hda/hdac_component.c: In function 'hdac_component_master_bind':
>> sound/hda/hdac_component.c:202:14: error: implicit declaration of function '__try_module_get'; did you mean 'try_module_get'? [-Werror=implicit-function-declaration]
     202 |         if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
         |              ^~~~~~~~~~~~~~~~
         |              try_module_get
   cc1: some warnings being treated as errors


vim +202 sound/hda/hdac_component.c

     3	
     4	#include <linux/init.h>
     5	#include <linux/module.h>
   > 6	#include <linux/pci.h>
     7	#include <linux/component.h>
     8	#include <sound/core.h>
     9	#include <sound/hdaudio.h>
    10	#include <sound/hda_component.h>
    11	#include <sound/hda_register.h>
    12	
    13	static void hdac_acomp_release(struct device *dev, void *res)
    14	{
    15	}
    16	
    17	static struct drm_audio_component *hdac_get_acomp(struct device *dev)
    18	{
    19		return devres_find(dev, hdac_acomp_release, NULL, NULL);
    20	}
    21	
    22	/**
    23	 * snd_hdac_set_codec_wakeup - Enable / disable HDMI/DP codec wakeup
    24	 * @bus: HDA core bus
    25	 * @enable: enable or disable the wakeup
    26	 *
    27	 * This function is supposed to be used only by a HD-audio controller
    28	 * driver that needs the interaction with graphics driver.
    29	 *
    30	 * This function should be called during the chip reset, also called at
    31	 * resume for updating STATESTS register read.
    32	 *
    33	 * Returns zero for success or a negative error code.
    34	 */
    35	int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable)
    36	{
    37		struct drm_audio_component *acomp = bus->audio_component;
    38	
    39		if (!acomp || !acomp->ops)
    40			return -ENODEV;
    41	
    42		if (!acomp->ops->codec_wake_override)
    43			return 0;
    44	
    45		dev_dbg(bus->dev, "%s codec wakeup\n",
    46			enable ? "enable" : "disable");
    47	
    48		acomp->ops->codec_wake_override(acomp->dev, enable);
    49	
    50		return 0;
    51	}
    52	EXPORT_SYMBOL_GPL(snd_hdac_set_codec_wakeup);
    53	
    54	/**
    55	 * snd_hdac_display_power - Power up / down the power refcount
    56	 * @bus: HDA core bus
    57	 * @idx: HDA codec address, pass HDA_CODEC_IDX_CONTROLLER for controller
    58	 * @enable: power up or down
    59	 *
    60	 * This function is used by either HD-audio controller or codec driver that
    61	 * needs the interaction with graphics driver.
    62	 *
    63	 * This function updates the power status, and calls the get_power() and
    64	 * put_power() ops accordingly, toggling the codec wakeup, too.
    65	 */
    66	void snd_hdac_display_power(struct hdac_bus *bus, unsigned int idx, bool enable)
    67	{
    68		struct drm_audio_component *acomp = bus->audio_component;
    69	
    70		dev_dbg(bus->dev, "display power %s\n",
    71			enable ? "enable" : "disable");
    72	
    73		mutex_lock(&bus->lock);
    74		if (enable)
    75			set_bit(idx, &bus->display_power_status);
    76		else
    77			clear_bit(idx, &bus->display_power_status);
    78	
    79		if (!acomp || !acomp->ops)
    80			goto unlock;
    81	
    82		if (bus->display_power_status) {
    83			if (!bus->display_power_active) {
    84				unsigned long cookie = -1;
    85	
    86				if (acomp->ops->get_power)
    87					cookie = acomp->ops->get_power(acomp->dev);
    88	
    89				snd_hdac_set_codec_wakeup(bus, true);
    90				snd_hdac_set_codec_wakeup(bus, false);
    91				bus->display_power_active = cookie;
    92			}
    93		} else {
    94			if (bus->display_power_active) {
    95				unsigned long cookie = bus->display_power_active;
    96	
    97				if (acomp->ops->put_power)
    98					acomp->ops->put_power(acomp->dev, cookie);
    99	
   100				bus->display_power_active = 0;
   101			}
   102		}
   103	 unlock:
   104		mutex_unlock(&bus->lock);
   105	}
   106	EXPORT_SYMBOL_GPL(snd_hdac_display_power);
   107	
   108	/**
   109	 * snd_hdac_sync_audio_rate - Set N/CTS based on the sample rate
   110	 * @codec: HDA codec
   111	 * @nid: the pin widget NID
   112	 * @dev_id: device identifier
   113	 * @rate: the sample rate to set
   114	 *
   115	 * This function is supposed to be used only by a HD-audio controller
   116	 * driver that needs the interaction with graphics driver.
   117	 *
   118	 * This function sets N/CTS value based on the given sample rate.
   119	 * Returns zero for success, or a negative error code.
   120	 */
   121	int snd_hdac_sync_audio_rate(struct hdac_device *codec, hda_nid_t nid,
   122				     int dev_id, int rate)
   123	{
   124		struct hdac_bus *bus = codec->bus;
   125		struct drm_audio_component *acomp = bus->audio_component;
   126		int port, pipe;
   127	
   128		if (!acomp || !acomp->ops || !acomp->ops->sync_audio_rate)
   129			return -ENODEV;
   130		port = nid;
   131		if (acomp->audio_ops && acomp->audio_ops->pin2port) {
   132			port = acomp->audio_ops->pin2port(codec, nid);
   133			if (port < 0)
   134				return -EINVAL;
   135		}
   136		pipe = dev_id;
   137		return acomp->ops->sync_audio_rate(acomp->dev, port, pipe, rate);
   138	}
   139	EXPORT_SYMBOL_GPL(snd_hdac_sync_audio_rate);
   140	
   141	/**
   142	 * snd_hdac_acomp_get_eld - Get the audio state and ELD via component
   143	 * @codec: HDA codec
   144	 * @nid: the pin widget NID
   145	 * @dev_id: device identifier
   146	 * @audio_enabled: the pointer to store the current audio state
   147	 * @buffer: the buffer pointer to store ELD bytes
   148	 * @max_bytes: the max bytes to be stored on @buffer
   149	 *
   150	 * This function is supposed to be used only by a HD-audio controller
   151	 * driver that needs the interaction with graphics driver.
   152	 *
   153	 * This function queries the current state of the audio on the given
   154	 * digital port and fetches the ELD bytes onto the given buffer.
   155	 * It returns the number of bytes for the total ELD data, zero for
   156	 * invalid ELD, or a negative error code.
   157	 *
   158	 * The return size is the total bytes required for the whole ELD bytes,
   159	 * thus it may be over @max_bytes.  If it's over @max_bytes, it implies
   160	 * that only a part of ELD bytes have been fetched.
   161	 */
   162	int snd_hdac_acomp_get_eld(struct hdac_device *codec, hda_nid_t nid, int dev_id,
   163				   bool *audio_enabled, char *buffer, int max_bytes)
   164	{
   165		struct hdac_bus *bus = codec->bus;
   166		struct drm_audio_component *acomp = bus->audio_component;
   167		int port, pipe;
   168	
   169		if (!acomp || !acomp->ops || !acomp->ops->get_eld)
   170			return -ENODEV;
   171	
   172		port = nid;
   173		if (acomp->audio_ops && acomp->audio_ops->pin2port) {
   174			port = acomp->audio_ops->pin2port(codec, nid);
   175			if (port < 0)
   176				return -EINVAL;
   177		}
   178		pipe = dev_id;
   179		return acomp->ops->get_eld(acomp->dev, port, pipe, audio_enabled,
   180					   buffer, max_bytes);
   181	}
   182	EXPORT_SYMBOL_GPL(snd_hdac_acomp_get_eld);
   183	
   184	static int hdac_component_master_bind(struct device *dev)
   185	{
   186		struct drm_audio_component *acomp = hdac_get_acomp(dev);
   187		int ret;
   188	
   189		if (WARN_ON(!acomp))
   190			return -EINVAL;
   191	
   192		ret = component_bind_all(dev, acomp);
   193		if (ret < 0)
   194			return ret;
   195	
   196		if (WARN_ON(!(acomp->dev && acomp->ops))) {
   197			ret = -EINVAL;
   198			goto out_unbind;
   199		}
   200	
   201		/* pin the module to avoid dynamic unbinding, but only if given */
 > 202		if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
   203			ret = -ENODEV;
   204			goto out_unbind;
   205		}
   206	
   207		if (acomp->audio_ops && acomp->audio_ops->master_bind) {
   208			ret = acomp->audio_ops->master_bind(dev, acomp);
   209			if (ret < 0)
   210				goto module_put;
   211		}
   212	
   213		complete_all(&acomp->master_bind_complete);
   214		return 0;
   215	
   216	 module_put:
   217		module_put(acomp->ops->owner);
   218	out_unbind:
   219		component_unbind_all(dev, acomp);
   220		complete_all(&acomp->master_bind_complete);
   221	
   222		return ret;
   223	}
   224	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [Intel-gfx] [PATCH v3 2/2] ALSA: hda - identify when audio is provided by a video driver
@ 2022-04-30 16:30     ` kernel test robot
  0 siblings, 0 replies; 27+ messages in thread
From: kernel test robot @ 2022-04-30 16:30 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Luis Chamberlain
  Cc: alsa-devel, kbuild-all, mauro.chehab, David Airlie, Greg KH,
	intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel,
	Jaroslav Kysela, Kai Vehmanen, linux-modules,
	Pierre-Louis Bossart, Mauro Carvalho Chehab, linux-kernel,
	linux-media

Hi Mauro,

I love your patch! Yet something to improve:

[auto build test ERROR on mcgrof/modules-next]
[also build test ERROR on linus/master v5.18-rc4 next-20220429]
[cannot apply to tiwai-sound/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/Mauro-Carvalho-Chehab/Let-userspace-know-when-snd-hda-intel-needs-i915/20220430-214332
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git modules-next
config: ia64-randconfig-r023-20220428 (https://download.01.org/0day-ci/archive/20220501/202205010035.FAx0YtE1-lkp@intel.com/config)
compiler: ia64-linux-gcc (GCC) 11.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel-lab-lkp/linux/commit/32f6557b5cc77c3cc2fcf6e68f11d989e31c954d
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Mauro-Carvalho-Chehab/Let-userspace-know-when-snd-hda-intel-needs-i915/20220430-214332
        git checkout 32f6557b5cc77c3cc2fcf6e68f11d989e31c954d
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=ia64 SHELL=/bin/bash sound/hda/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from arch/ia64/include/asm/pgtable.h:153,
                    from include/linux/pgtable.h:6,
                    from arch/ia64/include/asm/uaccess.h:40,
                    from include/linux/uaccess.h:11,
                    from arch/ia64/include/asm/sections.h:11,
                    from include/linux/interrupt.h:21,
                    from include/linux/pci.h:38,
                    from sound/hda/hdac_component.c:6:
   arch/ia64/include/asm/mmu_context.h: In function 'reload_context':
   arch/ia64/include/asm/mmu_context.h:127:48: warning: variable 'old_rr4' set but not used [-Wunused-but-set-variable]
     127 |         unsigned long rr0, rr1, rr2, rr3, rr4, old_rr4;
         |                                                ^~~~~~~
   sound/hda/hdac_component.c: In function 'hdac_component_master_bind':
>> sound/hda/hdac_component.c:202:14: error: implicit declaration of function '__try_module_get'; did you mean 'try_module_get'? [-Werror=implicit-function-declaration]
     202 |         if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
         |              ^~~~~~~~~~~~~~~~
         |              try_module_get
   cc1: some warnings being treated as errors


vim +202 sound/hda/hdac_component.c

     3	
     4	#include <linux/init.h>
     5	#include <linux/module.h>
   > 6	#include <linux/pci.h>
     7	#include <linux/component.h>
     8	#include <sound/core.h>
     9	#include <sound/hdaudio.h>
    10	#include <sound/hda_component.h>
    11	#include <sound/hda_register.h>
    12	
    13	static void hdac_acomp_release(struct device *dev, void *res)
    14	{
    15	}
    16	
    17	static struct drm_audio_component *hdac_get_acomp(struct device *dev)
    18	{
    19		return devres_find(dev, hdac_acomp_release, NULL, NULL);
    20	}
    21	
    22	/**
    23	 * snd_hdac_set_codec_wakeup - Enable / disable HDMI/DP codec wakeup
    24	 * @bus: HDA core bus
    25	 * @enable: enable or disable the wakeup
    26	 *
    27	 * This function is supposed to be used only by a HD-audio controller
    28	 * driver that needs the interaction with graphics driver.
    29	 *
    30	 * This function should be called during the chip reset, also called at
    31	 * resume for updating STATESTS register read.
    32	 *
    33	 * Returns zero for success or a negative error code.
    34	 */
    35	int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable)
    36	{
    37		struct drm_audio_component *acomp = bus->audio_component;
    38	
    39		if (!acomp || !acomp->ops)
    40			return -ENODEV;
    41	
    42		if (!acomp->ops->codec_wake_override)
    43			return 0;
    44	
    45		dev_dbg(bus->dev, "%s codec wakeup\n",
    46			enable ? "enable" : "disable");
    47	
    48		acomp->ops->codec_wake_override(acomp->dev, enable);
    49	
    50		return 0;
    51	}
    52	EXPORT_SYMBOL_GPL(snd_hdac_set_codec_wakeup);
    53	
    54	/**
    55	 * snd_hdac_display_power - Power up / down the power refcount
    56	 * @bus: HDA core bus
    57	 * @idx: HDA codec address, pass HDA_CODEC_IDX_CONTROLLER for controller
    58	 * @enable: power up or down
    59	 *
    60	 * This function is used by either HD-audio controller or codec driver that
    61	 * needs the interaction with graphics driver.
    62	 *
    63	 * This function updates the power status, and calls the get_power() and
    64	 * put_power() ops accordingly, toggling the codec wakeup, too.
    65	 */
    66	void snd_hdac_display_power(struct hdac_bus *bus, unsigned int idx, bool enable)
    67	{
    68		struct drm_audio_component *acomp = bus->audio_component;
    69	
    70		dev_dbg(bus->dev, "display power %s\n",
    71			enable ? "enable" : "disable");
    72	
    73		mutex_lock(&bus->lock);
    74		if (enable)
    75			set_bit(idx, &bus->display_power_status);
    76		else
    77			clear_bit(idx, &bus->display_power_status);
    78	
    79		if (!acomp || !acomp->ops)
    80			goto unlock;
    81	
    82		if (bus->display_power_status) {
    83			if (!bus->display_power_active) {
    84				unsigned long cookie = -1;
    85	
    86				if (acomp->ops->get_power)
    87					cookie = acomp->ops->get_power(acomp->dev);
    88	
    89				snd_hdac_set_codec_wakeup(bus, true);
    90				snd_hdac_set_codec_wakeup(bus, false);
    91				bus->display_power_active = cookie;
    92			}
    93		} else {
    94			if (bus->display_power_active) {
    95				unsigned long cookie = bus->display_power_active;
    96	
    97				if (acomp->ops->put_power)
    98					acomp->ops->put_power(acomp->dev, cookie);
    99	
   100				bus->display_power_active = 0;
   101			}
   102		}
   103	 unlock:
   104		mutex_unlock(&bus->lock);
   105	}
   106	EXPORT_SYMBOL_GPL(snd_hdac_display_power);
   107	
   108	/**
   109	 * snd_hdac_sync_audio_rate - Set N/CTS based on the sample rate
   110	 * @codec: HDA codec
   111	 * @nid: the pin widget NID
   112	 * @dev_id: device identifier
   113	 * @rate: the sample rate to set
   114	 *
   115	 * This function is supposed to be used only by a HD-audio controller
   116	 * driver that needs the interaction with graphics driver.
   117	 *
   118	 * This function sets N/CTS value based on the given sample rate.
   119	 * Returns zero for success, or a negative error code.
   120	 */
   121	int snd_hdac_sync_audio_rate(struct hdac_device *codec, hda_nid_t nid,
   122				     int dev_id, int rate)
   123	{
   124		struct hdac_bus *bus = codec->bus;
   125		struct drm_audio_component *acomp = bus->audio_component;
   126		int port, pipe;
   127	
   128		if (!acomp || !acomp->ops || !acomp->ops->sync_audio_rate)
   129			return -ENODEV;
   130		port = nid;
   131		if (acomp->audio_ops && acomp->audio_ops->pin2port) {
   132			port = acomp->audio_ops->pin2port(codec, nid);
   133			if (port < 0)
   134				return -EINVAL;
   135		}
   136		pipe = dev_id;
   137		return acomp->ops->sync_audio_rate(acomp->dev, port, pipe, rate);
   138	}
   139	EXPORT_SYMBOL_GPL(snd_hdac_sync_audio_rate);
   140	
   141	/**
   142	 * snd_hdac_acomp_get_eld - Get the audio state and ELD via component
   143	 * @codec: HDA codec
   144	 * @nid: the pin widget NID
   145	 * @dev_id: device identifier
   146	 * @audio_enabled: the pointer to store the current audio state
   147	 * @buffer: the buffer pointer to store ELD bytes
   148	 * @max_bytes: the max bytes to be stored on @buffer
   149	 *
   150	 * This function is supposed to be used only by a HD-audio controller
   151	 * driver that needs the interaction with graphics driver.
   152	 *
   153	 * This function queries the current state of the audio on the given
   154	 * digital port and fetches the ELD bytes onto the given buffer.
   155	 * It returns the number of bytes for the total ELD data, zero for
   156	 * invalid ELD, or a negative error code.
   157	 *
   158	 * The return size is the total bytes required for the whole ELD bytes,
   159	 * thus it may be over @max_bytes.  If it's over @max_bytes, it implies
   160	 * that only a part of ELD bytes have been fetched.
   161	 */
   162	int snd_hdac_acomp_get_eld(struct hdac_device *codec, hda_nid_t nid, int dev_id,
   163				   bool *audio_enabled, char *buffer, int max_bytes)
   164	{
   165		struct hdac_bus *bus = codec->bus;
   166		struct drm_audio_component *acomp = bus->audio_component;
   167		int port, pipe;
   168	
   169		if (!acomp || !acomp->ops || !acomp->ops->get_eld)
   170			return -ENODEV;
   171	
   172		port = nid;
   173		if (acomp->audio_ops && acomp->audio_ops->pin2port) {
   174			port = acomp->audio_ops->pin2port(codec, nid);
   175			if (port < 0)
   176				return -EINVAL;
   177		}
   178		pipe = dev_id;
   179		return acomp->ops->get_eld(acomp->dev, port, pipe, audio_enabled,
   180					   buffer, max_bytes);
   181	}
   182	EXPORT_SYMBOL_GPL(snd_hdac_acomp_get_eld);
   183	
   184	static int hdac_component_master_bind(struct device *dev)
   185	{
   186		struct drm_audio_component *acomp = hdac_get_acomp(dev);
   187		int ret;
   188	
   189		if (WARN_ON(!acomp))
   190			return -EINVAL;
   191	
   192		ret = component_bind_all(dev, acomp);
   193		if (ret < 0)
   194			return ret;
   195	
   196		if (WARN_ON(!(acomp->dev && acomp->ops))) {
   197			ret = -EINVAL;
   198			goto out_unbind;
   199		}
   200	
   201		/* pin the module to avoid dynamic unbinding, but only if given */
 > 202		if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
   203			ret = -ENODEV;
   204			goto out_unbind;
   205		}
   206	
   207		if (acomp->audio_ops && acomp->audio_ops->master_bind) {
   208			ret = acomp->audio_ops->master_bind(dev, acomp);
   209			if (ret < 0)
   210				goto module_put;
   211		}
   212	
   213		complete_all(&acomp->master_bind_complete);
   214		return 0;
   215	
   216	 module_put:
   217		module_put(acomp->ops->owner);
   218	out_unbind:
   219		component_unbind_all(dev, acomp);
   220		complete_all(&acomp->master_bind_complete);
   221	
   222		return ret;
   223	}
   224	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH v3 2/2] ALSA: hda - identify when audio is provided by a video driver
@ 2022-04-30 16:30     ` kernel test robot
  0 siblings, 0 replies; 27+ messages in thread
From: kernel test robot @ 2022-04-30 16:30 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Luis Chamberlain
  Cc: alsa-devel, kbuild-all, mauro.chehab, David Airlie, Greg KH,
	intel-gfx, Lucas De Marchi, Takashi Iwai, dri-devel,
	Kai Vehmanen, linux-modules, Daniel Vetter, Pierre-Louis Bossart,
	Mauro Carvalho Chehab, linux-kernel, linux-media

Hi Mauro,

I love your patch! Yet something to improve:

[auto build test ERROR on mcgrof/modules-next]
[also build test ERROR on linus/master v5.18-rc4 next-20220429]
[cannot apply to tiwai-sound/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/Mauro-Carvalho-Chehab/Let-userspace-know-when-snd-hda-intel-needs-i915/20220430-214332
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git modules-next
config: ia64-randconfig-r023-20220428 (https://download.01.org/0day-ci/archive/20220501/202205010035.FAx0YtE1-lkp@intel.com/config)
compiler: ia64-linux-gcc (GCC) 11.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel-lab-lkp/linux/commit/32f6557b5cc77c3cc2fcf6e68f11d989e31c954d
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Mauro-Carvalho-Chehab/Let-userspace-know-when-snd-hda-intel-needs-i915/20220430-214332
        git checkout 32f6557b5cc77c3cc2fcf6e68f11d989e31c954d
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=ia64 SHELL=/bin/bash sound/hda/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from arch/ia64/include/asm/pgtable.h:153,
                    from include/linux/pgtable.h:6,
                    from arch/ia64/include/asm/uaccess.h:40,
                    from include/linux/uaccess.h:11,
                    from arch/ia64/include/asm/sections.h:11,
                    from include/linux/interrupt.h:21,
                    from include/linux/pci.h:38,
                    from sound/hda/hdac_component.c:6:
   arch/ia64/include/asm/mmu_context.h: In function 'reload_context':
   arch/ia64/include/asm/mmu_context.h:127:48: warning: variable 'old_rr4' set but not used [-Wunused-but-set-variable]
     127 |         unsigned long rr0, rr1, rr2, rr3, rr4, old_rr4;
         |                                                ^~~~~~~
   sound/hda/hdac_component.c: In function 'hdac_component_master_bind':
>> sound/hda/hdac_component.c:202:14: error: implicit declaration of function '__try_module_get'; did you mean 'try_module_get'? [-Werror=implicit-function-declaration]
     202 |         if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
         |              ^~~~~~~~~~~~~~~~
         |              try_module_get
   cc1: some warnings being treated as errors


vim +202 sound/hda/hdac_component.c

     3	
     4	#include <linux/init.h>
     5	#include <linux/module.h>
   > 6	#include <linux/pci.h>
     7	#include <linux/component.h>
     8	#include <sound/core.h>
     9	#include <sound/hdaudio.h>
    10	#include <sound/hda_component.h>
    11	#include <sound/hda_register.h>
    12	
    13	static void hdac_acomp_release(struct device *dev, void *res)
    14	{
    15	}
    16	
    17	static struct drm_audio_component *hdac_get_acomp(struct device *dev)
    18	{
    19		return devres_find(dev, hdac_acomp_release, NULL, NULL);
    20	}
    21	
    22	/**
    23	 * snd_hdac_set_codec_wakeup - Enable / disable HDMI/DP codec wakeup
    24	 * @bus: HDA core bus
    25	 * @enable: enable or disable the wakeup
    26	 *
    27	 * This function is supposed to be used only by a HD-audio controller
    28	 * driver that needs the interaction with graphics driver.
    29	 *
    30	 * This function should be called during the chip reset, also called at
    31	 * resume for updating STATESTS register read.
    32	 *
    33	 * Returns zero for success or a negative error code.
    34	 */
    35	int snd_hdac_set_codec_wakeup(struct hdac_bus *bus, bool enable)
    36	{
    37		struct drm_audio_component *acomp = bus->audio_component;
    38	
    39		if (!acomp || !acomp->ops)
    40			return -ENODEV;
    41	
    42		if (!acomp->ops->codec_wake_override)
    43			return 0;
    44	
    45		dev_dbg(bus->dev, "%s codec wakeup\n",
    46			enable ? "enable" : "disable");
    47	
    48		acomp->ops->codec_wake_override(acomp->dev, enable);
    49	
    50		return 0;
    51	}
    52	EXPORT_SYMBOL_GPL(snd_hdac_set_codec_wakeup);
    53	
    54	/**
    55	 * snd_hdac_display_power - Power up / down the power refcount
    56	 * @bus: HDA core bus
    57	 * @idx: HDA codec address, pass HDA_CODEC_IDX_CONTROLLER for controller
    58	 * @enable: power up or down
    59	 *
    60	 * This function is used by either HD-audio controller or codec driver that
    61	 * needs the interaction with graphics driver.
    62	 *
    63	 * This function updates the power status, and calls the get_power() and
    64	 * put_power() ops accordingly, toggling the codec wakeup, too.
    65	 */
    66	void snd_hdac_display_power(struct hdac_bus *bus, unsigned int idx, bool enable)
    67	{
    68		struct drm_audio_component *acomp = bus->audio_component;
    69	
    70		dev_dbg(bus->dev, "display power %s\n",
    71			enable ? "enable" : "disable");
    72	
    73		mutex_lock(&bus->lock);
    74		if (enable)
    75			set_bit(idx, &bus->display_power_status);
    76		else
    77			clear_bit(idx, &bus->display_power_status);
    78	
    79		if (!acomp || !acomp->ops)
    80			goto unlock;
    81	
    82		if (bus->display_power_status) {
    83			if (!bus->display_power_active) {
    84				unsigned long cookie = -1;
    85	
    86				if (acomp->ops->get_power)
    87					cookie = acomp->ops->get_power(acomp->dev);
    88	
    89				snd_hdac_set_codec_wakeup(bus, true);
    90				snd_hdac_set_codec_wakeup(bus, false);
    91				bus->display_power_active = cookie;
    92			}
    93		} else {
    94			if (bus->display_power_active) {
    95				unsigned long cookie = bus->display_power_active;
    96	
    97				if (acomp->ops->put_power)
    98					acomp->ops->put_power(acomp->dev, cookie);
    99	
   100				bus->display_power_active = 0;
   101			}
   102		}
   103	 unlock:
   104		mutex_unlock(&bus->lock);
   105	}
   106	EXPORT_SYMBOL_GPL(snd_hdac_display_power);
   107	
   108	/**
   109	 * snd_hdac_sync_audio_rate - Set N/CTS based on the sample rate
   110	 * @codec: HDA codec
   111	 * @nid: the pin widget NID
   112	 * @dev_id: device identifier
   113	 * @rate: the sample rate to set
   114	 *
   115	 * This function is supposed to be used only by a HD-audio controller
   116	 * driver that needs the interaction with graphics driver.
   117	 *
   118	 * This function sets N/CTS value based on the given sample rate.
   119	 * Returns zero for success, or a negative error code.
   120	 */
   121	int snd_hdac_sync_audio_rate(struct hdac_device *codec, hda_nid_t nid,
   122				     int dev_id, int rate)
   123	{
   124		struct hdac_bus *bus = codec->bus;
   125		struct drm_audio_component *acomp = bus->audio_component;
   126		int port, pipe;
   127	
   128		if (!acomp || !acomp->ops || !acomp->ops->sync_audio_rate)
   129			return -ENODEV;
   130		port = nid;
   131		if (acomp->audio_ops && acomp->audio_ops->pin2port) {
   132			port = acomp->audio_ops->pin2port(codec, nid);
   133			if (port < 0)
   134				return -EINVAL;
   135		}
   136		pipe = dev_id;
   137		return acomp->ops->sync_audio_rate(acomp->dev, port, pipe, rate);
   138	}
   139	EXPORT_SYMBOL_GPL(snd_hdac_sync_audio_rate);
   140	
   141	/**
   142	 * snd_hdac_acomp_get_eld - Get the audio state and ELD via component
   143	 * @codec: HDA codec
   144	 * @nid: the pin widget NID
   145	 * @dev_id: device identifier
   146	 * @audio_enabled: the pointer to store the current audio state
   147	 * @buffer: the buffer pointer to store ELD bytes
   148	 * @max_bytes: the max bytes to be stored on @buffer
   149	 *
   150	 * This function is supposed to be used only by a HD-audio controller
   151	 * driver that needs the interaction with graphics driver.
   152	 *
   153	 * This function queries the current state of the audio on the given
   154	 * digital port and fetches the ELD bytes onto the given buffer.
   155	 * It returns the number of bytes for the total ELD data, zero for
   156	 * invalid ELD, or a negative error code.
   157	 *
   158	 * The return size is the total bytes required for the whole ELD bytes,
   159	 * thus it may be over @max_bytes.  If it's over @max_bytes, it implies
   160	 * that only a part of ELD bytes have been fetched.
   161	 */
   162	int snd_hdac_acomp_get_eld(struct hdac_device *codec, hda_nid_t nid, int dev_id,
   163				   bool *audio_enabled, char *buffer, int max_bytes)
   164	{
   165		struct hdac_bus *bus = codec->bus;
   166		struct drm_audio_component *acomp = bus->audio_component;
   167		int port, pipe;
   168	
   169		if (!acomp || !acomp->ops || !acomp->ops->get_eld)
   170			return -ENODEV;
   171	
   172		port = nid;
   173		if (acomp->audio_ops && acomp->audio_ops->pin2port) {
   174			port = acomp->audio_ops->pin2port(codec, nid);
   175			if (port < 0)
   176				return -EINVAL;
   177		}
   178		pipe = dev_id;
   179		return acomp->ops->get_eld(acomp->dev, port, pipe, audio_enabled,
   180					   buffer, max_bytes);
   181	}
   182	EXPORT_SYMBOL_GPL(snd_hdac_acomp_get_eld);
   183	
   184	static int hdac_component_master_bind(struct device *dev)
   185	{
   186		struct drm_audio_component *acomp = hdac_get_acomp(dev);
   187		int ret;
   188	
   189		if (WARN_ON(!acomp))
   190			return -EINVAL;
   191	
   192		ret = component_bind_all(dev, acomp);
   193		if (ret < 0)
   194			return ret;
   195	
   196		if (WARN_ON(!(acomp->dev && acomp->ops))) {
   197			ret = -EINVAL;
   198			goto out_unbind;
   199		}
   200	
   201		/* pin the module to avoid dynamic unbinding, but only if given */
 > 202		if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
   203			ret = -ENODEV;
   204			goto out_unbind;
   205		}
   206	
   207		if (acomp->audio_ops && acomp->audio_ops->master_bind) {
   208			ret = acomp->audio_ops->master_bind(dev, acomp);
   209			if (ret < 0)
   210				goto module_put;
   211		}
   212	
   213		complete_all(&acomp->master_bind_complete);
   214		return 0;
   215	
   216	 module_put:
   217		module_put(acomp->ops->owner);
   218	out_unbind:
   219		component_unbind_all(dev, acomp);
   220		complete_all(&acomp->master_bind_complete);
   221	
   222		return ret;
   223	}
   224	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Intel-gfx] ✗ Fi.CI.IGT: failure for Let userspace know when snd-hda-intel needs i915 (rev3)
  2022-04-30 13:41 ` Mauro Carvalho Chehab
                   ` (6 preceding siblings ...)
  (?)
@ 2022-04-30 16:32 ` Patchwork
  -1 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2022-04-30 16:32 UTC (permalink / raw)
  To: Mauro Carvalho Chehab; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 62954 bytes --]

== Series Details ==

Series: Let userspace know when snd-hda-intel needs i915 (rev3)
URL   : https://patchwork.freedesktop.org/series/103315/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_11584_full -> Patchwork_103315v3_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_103315v3_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_103315v3_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (13 -> 13)
------------------------------

  No changes in participating hosts

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_103315v3_full:

### CI changes ###

#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * boot:
    - {shard-tglu}:       ([PASS][1], [PASS][2], [PASS][3], [PASS][4], [PASS][5], [PASS][6], [PASS][7], [PASS][8], [PASS][9], [PASS][10], [PASS][11], [PASS][12], [PASS][13], [PASS][14], [PASS][15], [PASS][16], [PASS][17], [PASS][18], [PASS][19]) -> ([PASS][20], [PASS][21], [PASS][22], [PASS][23], [PASS][24], [PASS][25], [PASS][26], [PASS][27], [PASS][28], [PASS][29], [PASS][30], [PASS][31], [PASS][32], [PASS][33], [PASS][34], [PASS][35], [PASS][36], [PASS][37], [FAIL][38], [PASS][39], [PASS][40])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-8/boot.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-8/boot.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-8/boot.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-6/boot.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-6/boot.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-5/boot.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-5/boot.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-4/boot.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-4/boot.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-4/boot.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-4/boot.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-3/boot.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-3/boot.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-3/boot.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-2/boot.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-2/boot.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-2/boot.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-1/boot.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-1/boot.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-8/boot.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-8/boot.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-6/boot.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-6/boot.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-6/boot.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-5/boot.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-5/boot.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-5/boot.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-4/boot.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-4/boot.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-4/boot.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-3/boot.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-3/boot.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-3/boot.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-2/boot.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-2/boot.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-8/boot.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-1/boot.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-1/boot.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-1/boot.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-1/boot.html

  

### IGT changes ###

#### Possible regressions ####

  * igt@gem_eio@in-flight-contexts-1us:
    - shard-glk:          [PASS][41] -> [TIMEOUT][42]
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-glk6/igt@gem_eio@in-flight-contexts-1us.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-glk7/igt@gem_eio@in-flight-contexts-1us.html

  * {igt@kms_concurrent@pipe-a@hdmi-a-3} (NEW):
    - {shard-dg1}:        NOTRUN -> [CRASH][43]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-dg1-18/igt@kms_concurrent@pipe-a@hdmi-a-3.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_pm_rpm@system-suspend-devices:
    - {shard-dg1}:        NOTRUN -> [INCOMPLETE][44] +2 similar issues
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-dg1-18/igt@i915_pm_rpm@system-suspend-devices.html

  

### Piglit changes ###

#### Possible regressions ####

  * spec@ext_transform_feedback@change-size base-grow (NEW):
    - pig-kbl-iris:       NOTRUN -> [INCOMPLETE][45]
   [45]: None

  
New tests
---------

  New tests have been introduced between CI_DRM_11584_full and Patchwork_103315v3_full:

### New IGT tests (1) ###

  * igt@kms_concurrent@pipe-a@hdmi-a-3:
    - Statuses : 1 crash(s)
    - Exec time: [0.03] s

  


### New Piglit tests (1) ###

  * spec@ext_transform_feedback@change-size base-grow:
    - Statuses : 1 incomplete(s)
    - Exec time: [0.0] s

  

Known issues
------------

  Here are the changes found in Patchwork_103315v3_full that come from known issues:

### CI changes ###

#### Issues hit ####

  * boot:
    - shard-snb:          ([PASS][46], [PASS][47], [PASS][48], [PASS][49], [PASS][50], [PASS][51], [PASS][52], [PASS][53], [PASS][54], [PASS][55], [PASS][56], [PASS][57], [PASS][58], [PASS][59], [PASS][60], [PASS][61], [PASS][62], [PASS][63], [PASS][64], [PASS][65], [PASS][66], [PASS][67], [PASS][68], [PASS][69], [PASS][70]) -> ([PASS][71], [PASS][72], [PASS][73], [PASS][74], [PASS][75], [PASS][76], [PASS][77], [PASS][78], [PASS][79], [PASS][80], [PASS][81], [PASS][82], [PASS][83], [PASS][84], [FAIL][85], [PASS][86], [PASS][87], [PASS][88], [PASS][89], [PASS][90], [PASS][91], [PASS][92], [PASS][93], [PASS][94], [PASS][95]) ([i915#4338])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb4/boot.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb4/boot.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb4/boot.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb4/boot.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb2/boot.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb2/boot.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb2/boot.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb2/boot.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb2/boot.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb7/boot.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb7/boot.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb7/boot.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb7/boot.html
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb7/boot.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb6/boot.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb6/boot.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb6/boot.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb6/boot.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb6/boot.html
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb6/boot.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb5/boot.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb5/boot.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb5/boot.html
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb5/boot.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb4/boot.html
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb7/boot.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb7/boot.html
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb7/boot.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb7/boot.html
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb6/boot.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb6/boot.html
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb6/boot.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb6/boot.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb6/boot.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb5/boot.html
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb5/boot.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb5/boot.html
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb5/boot.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb5/boot.html
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb5/boot.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb4/boot.html
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb4/boot.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb4/boot.html
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb4/boot.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb4/boot.html
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb2/boot.html
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb2/boot.html
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb2/boot.html
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb2/boot.html
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb2/boot.html

  

### IGT changes ###

#### Issues hit ####

  * igt@drm_buddy@all@buddy_alloc_smoke:
    - shard-skl:          [PASS][96] -> [INCOMPLETE][97] ([i915#5800])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-skl9/igt@drm_buddy@all@buddy_alloc_smoke.html
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-skl6/igt@drm_buddy@all@buddy_alloc_smoke.html

  * igt@gem_ccs@ctrl-surf-copy:
    - shard-iclb:         NOTRUN -> [SKIP][98] ([i915#5327])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb5/igt@gem_ccs@ctrl-surf-copy.html

  * igt@gem_eio@unwedge-stress:
    - shard-tglb:         [PASS][99] -> [FAIL][100] ([i915#5784]) +1 similar issue
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglb6/igt@gem_eio@unwedge-stress.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglb3/igt@gem_eio@unwedge-stress.html
    - shard-iclb:         [PASS][101] -> [TIMEOUT][102] ([i915#3070])
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb3/igt@gem_eio@unwedge-stress.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb4/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_balancer@parallel-keep-in-fence:
    - shard-kbl:          NOTRUN -> [DMESG-WARN][103] ([i915#5076] / [i915#5614])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl4/igt@gem_exec_balancer@parallel-keep-in-fence.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-iclb:         [PASS][104] -> [FAIL][105] ([i915#2842])
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb7/igt@gem_exec_fair@basic-none-share@rcs0.html
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb1/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gem_exec_fair@basic-none@vcs1:
    - shard-iclb:         NOTRUN -> [FAIL][106] ([i915#2842])
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb4/igt@gem_exec_fair@basic-none@vcs1.html

  * igt@gem_exec_fair@basic-none@vecs0:
    - shard-glk:          [PASS][107] -> [FAIL][108] ([i915#2842])
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-glk1/igt@gem_exec_fair@basic-none@vecs0.html
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-glk6/igt@gem_exec_fair@basic-none@vecs0.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - shard-kbl:          NOTRUN -> [FAIL][109] ([i915#2842])
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl4/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  * igt@gem_exec_flush@basic-uc-rw-default:
    - shard-snb:          [PASS][110] -> [SKIP][111] ([fdo#109271]) +2 similar issues
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb7/igt@gem_exec_flush@basic-uc-rw-default.html
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb6/igt@gem_exec_flush@basic-uc-rw-default.html

  * igt@gem_lmem_swapping@heavy-random:
    - shard-iclb:         NOTRUN -> [SKIP][112] ([i915#4613])
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb7/igt@gem_lmem_swapping@heavy-random.html

  * igt@gem_lmem_swapping@parallel-random:
    - shard-apl:          NOTRUN -> [SKIP][113] ([fdo#109271] / [i915#4613]) +1 similar issue
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-apl3/igt@gem_lmem_swapping@parallel-random.html

  * igt@gem_lmem_swapping@parallel-random-verify:
    - shard-kbl:          NOTRUN -> [SKIP][114] ([fdo#109271] / [i915#4613]) +2 similar issues
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl3/igt@gem_lmem_swapping@parallel-random-verify.html

  * igt@gem_pwrite@basic-exhaustion:
    - shard-iclb:         NOTRUN -> [WARN][115] ([i915#2658])
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb7/igt@gem_pwrite@basic-exhaustion.html
    - shard-apl:          NOTRUN -> [WARN][116] ([i915#2658])
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-apl6/igt@gem_pwrite@basic-exhaustion.html

  * igt@gem_pxp@verify-pxp-stale-buf-execution:
    - shard-iclb:         NOTRUN -> [SKIP][117] ([i915#4270]) +1 similar issue
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb5/igt@gem_pxp@verify-pxp-stale-buf-execution.html

  * igt@gem_render_copy@y-tiled-to-vebox-x-tiled:
    - shard-iclb:         NOTRUN -> [SKIP][118] ([i915#768])
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb7/igt@gem_render_copy@y-tiled-to-vebox-x-tiled.html

  * igt@gem_userptr_blits@coherency-sync:
    - shard-iclb:         NOTRUN -> [SKIP][119] ([fdo#109290])
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb7/igt@gem_userptr_blits@coherency-sync.html

  * igt@gem_userptr_blits@unsync-unmap:
    - shard-iclb:         NOTRUN -> [SKIP][120] ([i915#3297]) +1 similar issue
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb5/igt@gem_userptr_blits@unsync-unmap.html

  * igt@gen7_exec_parse@oacontrol-tracking:
    - shard-iclb:         NOTRUN -> [SKIP][121] ([fdo#109289])
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb5/igt@gen7_exec_parse@oacontrol-tracking.html

  * igt@gen9_exec_parse@bb-start-out:
    - shard-iclb:         NOTRUN -> [SKIP][122] ([i915#2856])
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb7/igt@gen9_exec_parse@bb-start-out.html

  * igt@i915_pm_dc@dc3co-vpb-simulation:
    - shard-iclb:         NOTRUN -> [SKIP][123] ([i915#658]) +1 similar issue
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb7/igt@i915_pm_dc@dc3co-vpb-simulation.html

  * igt@i915_pm_dc@dc6-dpms:
    - shard-kbl:          NOTRUN -> [FAIL][124] ([i915#454])
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl4/igt@i915_pm_dc@dc6-dpms.html

  * igt@i915_pm_rc6_residency@rc6-idle:
    - shard-iclb:         NOTRUN -> [WARN][125] ([i915#2684])
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb3/igt@i915_pm_rc6_residency@rc6-idle.html

  * igt@i915_pm_rpm@gem-execbuf-stress-pc8:
    - shard-iclb:         NOTRUN -> [SKIP][126] ([fdo#109293] / [fdo#109506])
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb7/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html

  * igt@kms_addfb_basic@invalid-smem-bo-on-discrete:
    - shard-iclb:         NOTRUN -> [SKIP][127] ([i915#3826])
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb7/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html

  * igt@kms_async_flips@alternate-sync-async-flip:
    - shard-skl:          [PASS][128] -> [FAIL][129] ([i915#2521])
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-skl10/igt@kms_async_flips@alternate-sync-async-flip.html
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-skl1/igt@kms_async_flips@alternate-sync-async-flip.html

  * igt@kms_big_fb@linear-16bpp-rotate-90:
    - shard-iclb:         NOTRUN -> [SKIP][130] ([fdo#110725] / [fdo#111614]) +2 similar issues
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb5/igt@kms_big_fb@linear-16bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
    - shard-iclb:         NOTRUN -> [SKIP][131] ([fdo#110723]) +1 similar issue
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb7/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html

  * igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_gen12_mc_ccs:
    - shard-kbl:          NOTRUN -> [SKIP][132] ([fdo#109271] / [i915#3886]) +5 similar issues
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl4/igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs:
    - shard-iclb:         NOTRUN -> [SKIP][133] ([fdo#109278] / [i915#3886]) +3 similar issues
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb7/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-b-bad-aux-stride-y_tiled_gen12_rc_ccs_cc:
    - shard-skl:          NOTRUN -> [SKIP][134] ([fdo#109271] / [i915#3886]) +1 similar issue
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-skl1/igt@kms_ccs@pipe-b-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_ccs:
    - shard-glk:          NOTRUN -> [SKIP][135] ([fdo#109271]) +5 similar issues
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-glk7/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_ccs.html

  * igt@kms_ccs@pipe-c-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc:
    - shard-apl:          NOTRUN -> [SKIP][136] ([fdo#109271] / [i915#3886]) +7 similar issues
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-apl1/igt@kms_ccs@pipe-c-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_rc_ccs:
    - shard-apl:          NOTRUN -> [SKIP][137] ([fdo#109271]) +82 similar issues
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-apl3/igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_rc_ccs.html

  * igt@kms_ccs@pipe-d-bad-pixel-format-y_tiled_gen12_mc_ccs:
    - shard-iclb:         NOTRUN -> [SKIP][138] ([fdo#109278]) +16 similar issues
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb5/igt@kms_ccs@pipe-d-bad-pixel-format-y_tiled_gen12_mc_ccs.html

  * igt@kms_chamelium@dp-audio-edid:
    - shard-snb:          NOTRUN -> [SKIP][139] ([fdo#109271] / [fdo#111827])
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb6/igt@kms_chamelium@dp-audio-edid.html

  * igt@kms_chamelium@hdmi-hpd-for-each-pipe:
    - shard-kbl:          NOTRUN -> [SKIP][140] ([fdo#109271] / [fdo#111827]) +8 similar issues
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl3/igt@kms_chamelium@hdmi-hpd-for-each-pipe.html

  * igt@kms_chamelium@vga-hpd-after-suspend:
    - shard-apl:          NOTRUN -> [SKIP][141] ([fdo#109271] / [fdo#111827]) +5 similar issues
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-apl6/igt@kms_chamelium@vga-hpd-after-suspend.html

  * igt@kms_color@pipe-a-deep-color:
    - shard-iclb:         NOTRUN -> [SKIP][142] ([fdo#109278] / [i915#3555])
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb5/igt@kms_color@pipe-a-deep-color.html

  * igt@kms_color@pipe-d-gamma:
    - shard-iclb:         NOTRUN -> [SKIP][143] ([fdo#109278] / [i915#1149])
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb3/igt@kms_color@pipe-d-gamma.html

  * igt@kms_color_chamelium@pipe-c-gamma:
    - shard-iclb:         NOTRUN -> [SKIP][144] ([fdo#109284] / [fdo#111827]) +4 similar issues
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb7/igt@kms_color_chamelium@pipe-c-gamma.html

  * igt@kms_color_chamelium@pipe-d-ctm-green-to-red:
    - shard-skl:          NOTRUN -> [SKIP][145] ([fdo#109271] / [fdo#111827]) +3 similar issues
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-skl1/igt@kms_color_chamelium@pipe-d-ctm-green-to-red.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-kbl:          NOTRUN -> [TIMEOUT][146] ([i915#1319])
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl4/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_content_protection@dp-mst-lic-type-1:
    - shard-iclb:         NOTRUN -> [SKIP][147] ([i915#3116])
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb7/igt@kms_content_protection@dp-mst-lic-type-1.html

  * igt@kms_cursor_crc@pipe-a-cursor-256x85-sliding:
    - shard-snb:          NOTRUN -> [SKIP][148] ([fdo#109271]) +20 similar issues
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb6/igt@kms_cursor_crc@pipe-a-cursor-256x85-sliding.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-kbl:          [PASS][149] -> [DMESG-WARN][150] ([i915#180]) +4 similar issues
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl1/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl7/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  * igt@kms_cursor_crc@pipe-b-cursor-suspend:
    - shard-apl:          [PASS][151] -> [DMESG-WARN][152] ([i915#180]) +1 similar issue
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-apl2/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-apl1/igt@kms_cursor_crc@pipe-b-cursor-suspend.html

  * igt@kms_cursor_crc@pipe-c-cursor-512x170-sliding:
    - shard-apl:          NOTRUN -> [SKIP][153] ([fdo#109271] / [i915#5691])
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-apl3/igt@kms_cursor_crc@pipe-c-cursor-512x170-sliding.html
    - shard-kbl:          NOTRUN -> [SKIP][154] ([fdo#109271] / [i915#5691])
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl4/igt@kms_cursor_crc@pipe-c-cursor-512x170-sliding.html

  * igt@kms_cursor_crc@pipe-c-cursor-512x512-onscreen:
    - shard-iclb:         NOTRUN -> [SKIP][155] ([fdo#109278] / [fdo#109279])
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb5/igt@kms_cursor_crc@pipe-c-cursor-512x512-onscreen.html

  * igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
    - shard-iclb:         NOTRUN -> [SKIP][156] ([fdo#109274] / [fdo#109278])
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb5/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html

  * igt@kms_cursor_legacy@pipe-d-torture-bo:
    - shard-kbl:          NOTRUN -> [SKIP][157] ([fdo#109271] / [i915#533]) +1 similar issue
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl4/igt@kms_cursor_legacy@pipe-d-torture-bo.html

  * igt@kms_cursor_legacy@pipe-d-torture-move:
    - shard-skl:          NOTRUN -> [SKIP][158] ([fdo#109271]) +44 similar issues
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-skl1/igt@kms_cursor_legacy@pipe-d-torture-move.html

  * igt@kms_draw_crc@draw-method-xrgb2101010-blt-4tiled:
    - shard-iclb:         NOTRUN -> [SKIP][159] ([i915#5287])
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb5/igt@kms_draw_crc@draw-method-xrgb2101010-blt-4tiled.html

  * igt@kms_flip@2x-flip-vs-wf_vblank:
    - shard-iclb:         NOTRUN -> [SKIP][160] ([fdo#109274]) +5 similar issues
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb7/igt@kms_flip@2x-flip-vs-wf_vblank.html

  * igt@kms_flip@flip-vs-suspend@b-edp1:
    - shard-skl:          [PASS][161] -> [INCOMPLETE][162] ([i915#4839])
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-skl4/igt@kms_flip@flip-vs-suspend@b-edp1.html
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-skl7/igt@kms_flip@flip-vs-suspend@b-edp1.html

  * igt@kms_flip@plain-flip-ts-check-interruptible@b-edp1:
    - shard-skl:          [PASS][163] -> [FAIL][164] ([i915#2122]) +1 similar issue
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-skl1/igt@kms_flip@plain-flip-ts-check-interruptible@b-edp1.html
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-skl4/igt@kms_flip@plain-flip-ts-check-interruptible@b-edp1.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-snb:          [PASS][165] -> [INCOMPLETE][166] ([i915#5815])
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb4/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb6/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-move:
    - shard-iclb:         NOTRUN -> [SKIP][167] ([fdo#109280]) +16 similar issues
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb7/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-move.html

  * igt@kms_hdr@bpc-switch@bpc-switch-edp-1-pipe-a:
    - shard-skl:          [PASS][168] -> [FAIL][169] ([i915#1188])
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-skl9/igt@kms_hdr@bpc-switch@bpc-switch-edp-1-pipe-a.html
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-skl6/igt@kms_hdr@bpc-switch@bpc-switch-edp-1-pipe-a.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-d:
    - shard-skl:          NOTRUN -> [SKIP][170] ([fdo#109271] / [i915#533])
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-skl1/igt@kms_pipe_crc_basic@read-crc-pipe-d.html

  * igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb:
    - shard-apl:          NOTRUN -> [FAIL][171] ([fdo#108145] / [i915#265])
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-apl1/igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb.html
    - shard-kbl:          NOTRUN -> [FAIL][172] ([fdo#108145] / [i915#265]) +1 similar issue
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl4/igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb.html

  * igt@kms_plane_alpha_blend@pipe-c-alpha-basic:
    - shard-glk:          NOTRUN -> [FAIL][173] ([fdo#108145] / [i915#265])
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-glk7/igt@kms_plane_alpha_blend@pipe-c-alpha-basic.html
    - shard-skl:          NOTRUN -> [FAIL][174] ([fdo#108145] / [i915#265])
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-skl7/igt@kms_plane_alpha_blend@pipe-c-alpha-basic.html

  * igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min:
    - shard-skl:          [PASS][175] -> [FAIL][176] ([fdo#108145] / [i915#265])
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-skl10/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-skl4/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html

  * igt@kms_plane_lowres@pipe-a-tiling-x:
    - shard-iclb:         NOTRUN -> [SKIP][177] ([i915#3536]) +1 similar issue
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb5/igt@kms_plane_lowres@pipe-a-tiling-x.html

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-a-dp-1-downscale-with-rotation:
    - shard-kbl:          NOTRUN -> [SKIP][178] ([fdo#109271]) +106 similar issues
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl4/igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-a-dp-1-downscale-with-rotation.html

  * igt@kms_psr2_su@frontbuffer-xrgb8888:
    - shard-kbl:          NOTRUN -> [SKIP][179] ([fdo#109271] / [i915#658])
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl4/igt@kms_psr2_su@frontbuffer-xrgb8888.html

  * igt@kms_psr2_su@page_flip-xrgb8888:
    - shard-apl:          NOTRUN -> [SKIP][180] ([fdo#109271] / [i915#658]) +1 similar issue
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-apl6/igt@kms_psr2_su@page_flip-xrgb8888.html
    - shard-iclb:         NOTRUN -> [SKIP][181] ([fdo#109642] / [fdo#111068] / [i915#658])
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb7/igt@kms_psr2_su@page_flip-xrgb8888.html

  * igt@kms_psr@psr2_suspend:
    - shard-iclb:         NOTRUN -> [SKIP][182] ([fdo#109441])
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb5/igt@kms_psr@psr2_suspend.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-iclb:         [PASS][183] -> [SKIP][184] ([i915#5519])
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb8/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb5/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@kms_writeback@writeback-check-output:
    - shard-apl:          NOTRUN -> [SKIP][185] ([fdo#109271] / [i915#2437])
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-apl1/igt@kms_writeback@writeback-check-output.html

  * igt@kms_writeback@writeback-fb-id:
    - shard-kbl:          NOTRUN -> [SKIP][186] ([fdo#109271] / [i915#2437])
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl3/igt@kms_writeback@writeback-fb-id.html

  * igt@nouveau_crc@pipe-b-source-outp-inactive:
    - shard-iclb:         NOTRUN -> [SKIP][187] ([i915#2530]) +1 similar issue
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb5/igt@nouveau_crc@pipe-b-source-outp-inactive.html

  * igt@nouveau_crc@pipe-d-ctx-flip-detection:
    - shard-iclb:         NOTRUN -> [SKIP][188] ([fdo#109278] / [i915#2530])
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb7/igt@nouveau_crc@pipe-d-ctx-flip-detection.html

  * igt@perf@polling-parameterized:
    - shard-glk:          [PASS][189] -> [FAIL][190] ([i915#5639])
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-glk4/igt@perf@polling-parameterized.html
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-glk2/igt@perf@polling-parameterized.html

  * igt@prime_udl:
    - shard-iclb:         NOTRUN -> [SKIP][191] ([fdo#109291]) +2 similar issues
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb7/igt@prime_udl.html

  * igt@syncobj_timeline@transfer-timeline-point:
    - shard-kbl:          NOTRUN -> [DMESG-FAIL][192] ([i915#5098])
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl1/igt@syncobj_timeline@transfer-timeline-point.html
    - shard-skl:          NOTRUN -> [DMESG-FAIL][193] ([i915#5098])
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-skl1/igt@syncobj_timeline@transfer-timeline-point.html

  * igt@sysfs_clients@fair-3:
    - shard-iclb:         NOTRUN -> [SKIP][194] ([i915#2994])
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb5/igt@sysfs_clients@fair-3.html

  * igt@sysfs_clients@sema-10:
    - shard-kbl:          NOTRUN -> [SKIP][195] ([fdo#109271] / [i915#2994])
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl4/igt@sysfs_clients@sema-10.html

  
#### Possible fixes ####

  * igt@fbdev@unaligned-read:
    - {shard-rkl}:        [SKIP][196] ([i915#2582]) -> [PASS][197]
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-4/igt@fbdev@unaligned-read.html
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-rkl-6/igt@fbdev@unaligned-read.html

  * igt@gem_ctx_persistence@many-contexts:
    - {shard-rkl}:        [FAIL][198] ([i915#2410]) -> [PASS][199]
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-5/igt@gem_ctx_persistence@many-contexts.html
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-rkl-5/igt@gem_ctx_persistence@many-contexts.html

  * igt@gem_eio@kms:
    - {shard-tglu}:       [INCOMPLETE][200] ([i915#5182]) -> [PASS][201]
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglu-4/igt@gem_eio@kms.html
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglu-1/igt@gem_eio@kms.html

  * igt@gem_exec_balancer@parallel-balancer:
    - shard-iclb:         [SKIP][202] ([i915#4525]) -> [PASS][203]
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb6/igt@gem_exec_balancer@parallel-balancer.html
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb2/igt@gem_exec_balancer@parallel-balancer.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-tglb:         [FAIL][204] ([i915#2842]) -> [PASS][205]
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-tglb8/igt@gem_exec_fair@basic-none-share@rcs0.html
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-tglb5/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-glk:          [DMESG-WARN][206] ([i915#5566] / [i915#716]) -> [PASS][207]
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-glk6/igt@gen9_exec_parse@allowed-single.html
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-glk7/igt@gen9_exec_parse@allowed-single.html
    - shard-skl:          [DMESG-WARN][208] ([i915#5566] / [i915#716]) -> [PASS][209]
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-skl10/igt@gen9_exec_parse@allowed-single.html
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-skl7/igt@gen9_exec_parse@allowed-single.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         [FAIL][210] ([i915#454]) -> [PASS][211]
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb4/igt@i915_pm_dc@dc6-psr.html
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb6/igt@i915_pm_dc@dc6-psr.html

  * igt@i915_selftest@live@gt_engines:
    - {shard-dg1}:        [INCOMPLETE][212] ([i915#4418]) -> [PASS][213]
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-dg1-12/igt@i915_selftest@live@gt_engines.html
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-dg1-15/igt@i915_selftest@live@gt_engines.html

  * igt@i915_selftest@live@hangcheck:
    - shard-snb:          [INCOMPLETE][214] ([i915#3921]) -> [PASS][215]
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb7/igt@i915_selftest@live@hangcheck.html
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb6/igt@i915_selftest@live@hangcheck.html

  * igt@kms_async_flips@alternate-sync-async-flip:
    - shard-glk:          [FAIL][216] ([i915#2521]) -> [PASS][217]
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-glk3/igt@kms_async_flips@alternate-sync-async-flip.html
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-glk5/igt@kms_async_flips@alternate-sync-async-flip.html

  * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc:
    - {shard-rkl}:        [SKIP][218] ([i915#1845] / [i915#4098]) -> [PASS][219] +14 similar issues
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-4/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-rkl-6/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_color@pipe-a-ctm-negative:
    - {shard-rkl}:        [SKIP][220] ([i915#1149] / [i915#1849] / [i915#4070] / [i915#4098]) -> [PASS][221] +1 similar issue
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-5/igt@kms_color@pipe-a-ctm-negative.html
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-rkl-6/igt@kms_color@pipe-a-ctm-negative.html

  * igt@kms_cursor_crc@pipe-a-cursor-64x64-random:
    - {shard-rkl}:        [SKIP][222] ([fdo#112022] / [i915#4070]) -> [PASS][223] +5 similar issues
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-5/igt@kms_cursor_crc@pipe-a-cursor-64x64-random.html
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-rkl-6/igt@kms_cursor_crc@pipe-a-cursor-64x64-random.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-snb:          [SKIP][224] ([fdo#109271]) -> [PASS][225] +2 similar issues
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-snb6/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-snb5/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  * igt@kms_cursor_edge_walk@pipe-a-128x128-top-edge:
    - {shard-rkl}:        [SKIP][226] ([i915#1849] / [i915#4070] / [i915#4098]) -> [PASS][227] +1 similar issue
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-5/igt@kms_cursor_edge_walk@pipe-a-128x128-top-edge.html
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-rkl-6/igt@kms_cursor_edge_walk@pipe-a-128x128-top-edge.html

  * igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size:
    - shard-iclb:         [FAIL][228] ([i915#5072]) -> [PASS][229]
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb7/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb1/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html

  * igt@kms_draw_crc@draw-method-rgb565-mmap-cpu-ytiled:
    - {shard-rkl}:        [SKIP][230] ([fdo#111314] / [i915#4098] / [i915#4369]) -> [PASS][231] +2 similar issues
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-5/igt@kms_draw_crc@draw-method-rgb565-mmap-cpu-ytiled.html
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-rkl-6/igt@kms_draw_crc@draw-method-rgb565-mmap-cpu-ytiled.html

  * igt@kms_draw_crc@draw-method-rgb565-mmap-wc-ytiled:
    - {shard-rkl}:        [SKIP][232] ([i915#4098] / [i915#4369]) -> [PASS][233] +2 similar issues
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-4/igt@kms_draw_crc@draw-method-rgb565-mmap-wc-ytiled.html
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-rkl-6/igt@kms_draw_crc@draw-method-rgb565-mmap-wc-ytiled.html

  * igt@kms_flip@plain-flip-fb-recreate-interruptible@b-edp1:
    - shard-skl:          [FAIL][234] ([i915#2122]) -> [PASS][235] +1 similar issue
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-skl6/igt@kms_flip@plain-flip-fb-recreate-interruptible@b-edp1.html
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-skl10/igt@kms_flip@plain-flip-fb-recreate-interruptible@b-edp1.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render:
    - {shard-rkl}:        [SKIP][236] ([i915#1849] / [i915#4098]) -> [PASS][237] +21 similar issues
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-4/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render.html
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-kbl:          [DMESG-WARN][238] ([i915#180]) -> [PASS][239] +4 similar issues
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl1/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
    - {shard-rkl}:        [SKIP][240] ([i915#4098]) -> [PASS][241] +2 similar issues
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-4/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-rkl-6/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html

  * igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes:
    - shard-apl:          [DMESG-WARN][242] ([i915#180]) -> [PASS][243] +2 similar issues
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-apl7/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes.html
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-apl6/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes.html

  * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
    - shard-skl:          [FAIL][244] ([fdo#108145] / [i915#265]) -> [PASS][245]
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-skl10/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-skl1/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html

  * igt@kms_psr@cursor_render:
    - {shard-rkl}:        [SKIP][246] ([i915#1072]) -> [PASS][247]
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-rkl-4/igt@kms_psr@cursor_render.html
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-rkl-6/igt@kms_psr@cursor_render.html

  * igt@kms_psr@psr2_cursor_render:
    - shard-iclb:         [SKIP][248] ([fdo#109441]) -> [PASS][249]
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb6/igt@kms_psr@psr2_cursor_render.html
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb2/igt@kms_psr@psr2_cursor_render.html

  * igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend:
    - shard-skl:          [INCOMPLETE][250] ([i915#4939]) -> [PASS][251]
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-skl6/igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend.html
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-skl1/igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend.html

  
#### Warnings ####

  * igt@gem_exec_balancer@parallel-contexts:
    - shard-iclb:         [SKIP][252] ([i915#4525]) -> [DMESG-WARN][253] ([i915#5614]) +1 similar issue
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb3/igt@gem_exec_balancer@parallel-contexts.html
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb1/igt@gem_exec_balancer@parallel-contexts.html

  * igt@gem_exec_balancer@parallel-out-fence:
    - shard-iclb:         [DMESG-WARN][254] ([i915#5614]) -> [SKIP][255] ([i915#4525]) +2 similar issues
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb1/igt@gem_exec_balancer@parallel-out-fence.html
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb7/igt@gem_exec_balancer@parallel-out-fence.html

  * igt@gem_exec_fair@basic-none-rrul@rcs0:
    - shard-iclb:         [FAIL][256] ([i915#2842]) -> [FAIL][257] ([i915#2852])
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb5/igt@gem_exec_fair@basic-none-rrul@rcs0.html
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb7/igt@gem_exec_fair@basic-none-rrul@rcs0.html

  * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs:
    - shard-skl:          [SKIP][258] ([fdo#109271] / [i915#1888]) -> [SKIP][259] ([fdo#109271])
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-skl6/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs.html
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-skl10/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs.html

  * igt@kms_cursor_crc@pipe-a-cursor-512x512-rapid-movement:
    - shard-iclb:         [SKIP][260] ([fdo#109278] / [fdo#109279] / [i915#1888]) -> [SKIP][261] ([fdo#109278] / [fdo#109279])
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb7/igt@kms_cursor_crc@pipe-a-cursor-512x512-rapid-movement.html
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb8/igt@kms_cursor_crc@pipe-a-cursor-512x512-rapid-movement.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-kbl:          [FAIL][262] ([i915#4767]) -> [INCOMPLETE][263] ([i915#180])
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl1/igt@kms_fbcon_fbt@fbc-suspend.html
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl7/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_psr2_sf@plane-move-sf-dmg-area:
    - shard-iclb:         [SKIP][264] ([i915#2920]) -> [SKIP][265] ([fdo#111068] / [i915#658])
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-iclb2/igt@kms_psr2_sf@plane-move-sf-dmg-area.html
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-iclb3/igt@kms_psr2_sf@plane-move-sf-dmg-area.html

  * igt@runner@aborted:
    - shard-kbl:          ([FAIL][266], [FAIL][267], [FAIL][268], [FAIL][269], [FAIL][270], [FAIL][271], [FAIL][272], [FAIL][273], [FAIL][274], [FAIL][275], [FAIL][276], [FAIL][277], [FAIL][278], [FAIL][279], [FAIL][280]) ([fdo#109271] / [i915#180] / [i915#3002] / [i915#4312] / [i915#5257]) -> ([FAIL][281], [FAIL][282], [FAIL][283], [FAIL][284], [FAIL][285], [FAIL][286], [FAIL][287], [FAIL][288], [FAIL][289], [FAIL][290], [FAIL][291], [FAIL][292], [FAIL][293], [FAIL][294], [FAIL][295]) ([i915#180] / [i915#3002] / [i915#4312] / [i915#5257] / [i915#92])
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl1/igt@runner@aborted.html
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl6/igt@runner@aborted.html
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl6/igt@runner@aborted.html
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl1/igt@runner@aborted.html
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl6/igt@runner@aborted.html
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl6/igt@runner@aborted.html
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl7/igt@runner@aborted.html
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl6/igt@runner@aborted.html
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl7/igt@runner@aborted.html
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl3/igt@runner@aborted.html
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl6/igt@runner@aborted.html
   [277]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl7/igt@runner@aborted.html
   [278]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl7/igt@runner@aborted.html
   [279]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl7/igt@runner@aborted.html
   [280]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11584/shard-kbl7/igt@runner@aborted.html
   [281]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl7/igt@runner@aborted.html
   [282]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl7/igt@runner@aborted.html
   [283]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl6/igt@runner@aborted.html
   [284]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl6/igt@runner@aborted.html
   [285]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl4/igt@runner@aborted.html
   [286]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl7/igt@runner@aborted.html
   [287]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl7/igt@runner@aborted.html
   [288]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl6/igt@runner@aborted.html
   [289]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl3/igt@runner@aborted.html
   [290]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl6/igt@runner@aborted.html
   [291]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl7/igt@runner@aborted.html
   [292]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl3/igt@runner@aborted.html
   [293]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl3/igt@runner@aborted.html
   [294]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl1/igt@runner@aborted.html
   [295]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/shard-kbl1/igt@runner@aborted.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109290]: https://bugs.freedesktop.org/show_bug.cgi?id=109290
  [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
  [fdo#109293]: https://bugs.freedesktop.org/show_bug.cgi?id=109293
  [fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
  [fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303
  [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#110725]: https://bugs.freedesktop.org/show_bug.cgi?id=110725
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111314]: https://bugs.freedesktop.org/show_bug.cgi?id=111314
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112022]: https://bugs.freedesktop.org/show_bug.cgi?id=112022
  [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
  [i915#1063]: https://gitlab.freedesktop.org/drm/intel/issues/1063
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1149]: https://gitlab.freedesktop.org/drm/intel/issues/1149
  [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
  [i915#1188]: https://gitlab.freedesktop.org/drm/intel/issues/1188
  [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
  [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
  [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
  [i915#1911]: https://gitlab.freedesktop.org/drm/intel/issues/1911
  [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
  [i915#2410]: https://gitlab.freedesktop.org/drm/intel/issues/2410
  [i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2530]: https://gitlab.freedesktop.org/drm/intel/issues/2530
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
  [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
  [i915#2684]: https://gitlab.freedesktop.org/drm/intel/issues/2684
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2852]: https://gitlab.freedesktop.org/drm/intel/issues/2852
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
  [i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
  [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002
  [i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012
  [i915#3063]: https://gitlab.freedesktop.org/drm/intel/issues/3063
  [i915#3070]: https://gitlab.freedesktop.org/drm/intel/issues/3070
  [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3319]: https://gitlab.freedesktop.org/drm/intel/issues/3319
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469
  [i915#3536]: https://gitlab.freedesktop.org/drm/intel/issues/3536
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3701]: https://gitlab.freedesktop.org/drm/intel/issues/3701
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
  [i915#3826]: https://gitlab.freedesktop.org/drm/intel/issues/3826
  [i915#3828]: https://gitlab.freedesktop.org/drm/intel/issues/3828
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3921]: https://gitlab.freedesktop.org/drm/intel/issues/3921
  [i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
  [i915#3987]: https://gitlab.freedesktop.org/drm/intel/issues/3987
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4338]: https://gitlab.freedesktop.org/drm/intel/issues/4338
  [i915#4369]: https://gitlab.freedesktop.org/drm/intel/issues/4369
  [i915#4418]: https://gitlab.freedesktop.org/drm/intel/issues/4418
  [i915#4494]: https://gitlab.freedesktop.org/drm/intel/issues/4494
  [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767
  [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4839]: https://gitlab.freedesktop.org/drm/intel/issues/4839
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4853]: https://gitlab.freedesktop.org/drm/intel/issues/4853
  [i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
  [i915#4877]: https://gitlab.freedesktop.org/drm/intel/issues/4877
  [i915#4893]: https://gitlab.freedesktop.org/drm/intel/issues/4893
  [i915#4939]: https://gitlab.freedesktop.org/drm/intel/issues/4939
  [i915#4957]: https://gitlab.freedesktop.org/drm/intel/issues/4957
  [i915#5072]: https://gitlab.freedesktop.org/drm/intel/issues/5072
  [i915#5076]: https://gitlab.freedesktop.org/drm/intel/issues/5076
  [i915#5098]: https://gitlab.freedesktop.org/drm/intel/issues/5098
  [i915#5174]: https://gitlab.freedesktop.org/drm/intel/issues/5174
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5182]: https://gitlab.freedesktop.org/drm/intel/issues/5182
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5257]: https://gitlab.freedesktop.org/drm/intel/issues/5257
  [i915#5264]: https://gitlab.freedesktop.org/drm/intel/issues/5264
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5287]: https://gitlab.freedesktop.org/drm/intel/issues/5287
  [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
  [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
  [i915#5327]: https://gitlab.freedesktop.org/drm/intel/issues/5327
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
  [i915#5519]: https://gitlab.freedesktop.org/drm/intel/issues/5519
  [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
  [i915#5608]: https://gitlab.freedesktop.org/drm/intel/issues/5608
  [i915#5614]: https://gitlab.freedesktop.org/drm/intel/issues/5614
  [i915#5639]: https://gitlab.freedesktop.org/drm/intel/issues/5639
  [i915#5691]: https://gitlab.freedesktop.org/drm/intel/issues/5691
  [i915#5775]: https://gitlab.freedesktop.org/drm/intel/issues/5775
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#5800]: https://gitlab.freedesktop.org/drm/intel/issues/5800
  [i915#5815]: https://gitlab.freedesktop.org/drm/intel/issues/5815
  [i915#5849]: https://gitlab.freedesktop.org/drm/intel/issues/5849
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
  [i915#768]: https://gitlab.freedesktop.org/drm/intel/issues/768
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92


Build changes
-------------

  * Linux: CI_DRM_11584 -> Patchwork_103315v3

  CI-20190529: 20190529
  CI_DRM_11584: 3ae2e00290c290713e21118220a817a24b44d39f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_6464: eddc67c5c85b8ee6eb4d13752ca43da5073dc985 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_103315v3: 3ae2e00290c290713e21118220a817a24b44d39f @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_103315v3/index.html

[-- Attachment #2: Type: text/html, Size: 69732 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH v3 2/2] ALSA: hda - identify when audio is provided by a video driver
  2022-04-30 13:41   ` Mauro Carvalho Chehab
  (?)
  (?)
@ 2022-04-30 18:42     ` kernel test robot
  -1 siblings, 0 replies; 27+ messages in thread
From: kernel test robot @ 2022-04-30 18:42 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Luis Chamberlain
  Cc: alsa-devel, kbuild-all, mauro.chehab, David Airlie, Greg KH,
	intel-gfx, llvm, Lucas De Marchi, Takashi Iwai, dri-devel,
	Jaroslav Kysela, Kai Vehmanen, linux-modules,
	Pierre-Louis Bossart, Mauro Carvalho Chehab, linux-kernel,
	linux-media

Hi Mauro,

I love your patch! Yet something to improve:

[auto build test ERROR on mcgrof/modules-next]
[also build test ERROR on linus/master v5.18-rc4 next-20220429]
[cannot apply to tiwai-sound/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/Mauro-Carvalho-Chehab/Let-userspace-know-when-snd-hda-intel-needs-i915/20220430-214332
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git modules-next
config: riscv-buildonly-randconfig-r003-20220428 (https://download.01.org/0day-ci/archive/20220501/202205010257.ZFhZYEG9-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 400775649969b9baf3bc2a510266e7912bb16ae9)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # https://github.com/intel-lab-lkp/linux/commit/32f6557b5cc77c3cc2fcf6e68f11d989e31c954d
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Mauro-Carvalho-Chehab/Let-userspace-know-when-snd-hda-intel-needs-i915/20220430-214332
        git checkout 32f6557b5cc77c3cc2fcf6e68f11d989e31c954d
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash sound/hda/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> sound/hda/hdac_component.c:202:7: error: call to undeclared function '__try_module_get'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
           if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
                ^
   sound/hda/hdac_component.c:202:7: note: did you mean 'try_module_get'?
   include/linux/module.h:759:20: note: 'try_module_get' declared here
   static inline bool try_module_get(struct module *module)
                      ^
   1 error generated.


vim +/__try_module_get +202 sound/hda/hdac_component.c

   183	
   184	static int hdac_component_master_bind(struct device *dev)
   185	{
   186		struct drm_audio_component *acomp = hdac_get_acomp(dev);
   187		int ret;
   188	
   189		if (WARN_ON(!acomp))
   190			return -EINVAL;
   191	
   192		ret = component_bind_all(dev, acomp);
   193		if (ret < 0)
   194			return ret;
   195	
   196		if (WARN_ON(!(acomp->dev && acomp->ops))) {
   197			ret = -EINVAL;
   198			goto out_unbind;
   199		}
   200	
   201		/* pin the module to avoid dynamic unbinding, but only if given */
 > 202		if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
   203			ret = -ENODEV;
   204			goto out_unbind;
   205		}
   206	
   207		if (acomp->audio_ops && acomp->audio_ops->master_bind) {
   208			ret = acomp->audio_ops->master_bind(dev, acomp);
   209			if (ret < 0)
   210				goto module_put;
   211		}
   212	
   213		complete_all(&acomp->master_bind_complete);
   214		return 0;
   215	
   216	 module_put:
   217		module_put(acomp->ops->owner);
   218	out_unbind:
   219		component_unbind_all(dev, acomp);
   220		complete_all(&acomp->master_bind_complete);
   221	
   222		return ret;
   223	}
   224	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH v3 2/2] ALSA: hda - identify when audio is provided by a video driver
@ 2022-04-30 18:42     ` kernel test robot
  0 siblings, 0 replies; 27+ messages in thread
From: kernel test robot @ 2022-04-30 18:42 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Luis Chamberlain
  Cc: llvm, kbuild-all, linux-media, Mauro Carvalho Chehab,
	Daniel Vetter, David Airlie, Greg KH, Jaroslav Kysela,
	Kai Vehmanen, Lucas De Marchi, Pierre-Louis Bossart,
	Takashi Iwai, alsa-devel, dri-devel, intel-gfx, linux-kernel,
	linux-modules, mauro.chehab

Hi Mauro,

I love your patch! Yet something to improve:

[auto build test ERROR on mcgrof/modules-next]
[also build test ERROR on linus/master v5.18-rc4 next-20220429]
[cannot apply to tiwai-sound/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/Mauro-Carvalho-Chehab/Let-userspace-know-when-snd-hda-intel-needs-i915/20220430-214332
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git modules-next
config: riscv-buildonly-randconfig-r003-20220428 (https://download.01.org/0day-ci/archive/20220501/202205010257.ZFhZYEG9-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 400775649969b9baf3bc2a510266e7912bb16ae9)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # https://github.com/intel-lab-lkp/linux/commit/32f6557b5cc77c3cc2fcf6e68f11d989e31c954d
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Mauro-Carvalho-Chehab/Let-userspace-know-when-snd-hda-intel-needs-i915/20220430-214332
        git checkout 32f6557b5cc77c3cc2fcf6e68f11d989e31c954d
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash sound/hda/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> sound/hda/hdac_component.c:202:7: error: call to undeclared function '__try_module_get'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
           if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
                ^
   sound/hda/hdac_component.c:202:7: note: did you mean 'try_module_get'?
   include/linux/module.h:759:20: note: 'try_module_get' declared here
   static inline bool try_module_get(struct module *module)
                      ^
   1 error generated.


vim +/__try_module_get +202 sound/hda/hdac_component.c

   183	
   184	static int hdac_component_master_bind(struct device *dev)
   185	{
   186		struct drm_audio_component *acomp = hdac_get_acomp(dev);
   187		int ret;
   188	
   189		if (WARN_ON(!acomp))
   190			return -EINVAL;
   191	
   192		ret = component_bind_all(dev, acomp);
   193		if (ret < 0)
   194			return ret;
   195	
   196		if (WARN_ON(!(acomp->dev && acomp->ops))) {
   197			ret = -EINVAL;
   198			goto out_unbind;
   199		}
   200	
   201		/* pin the module to avoid dynamic unbinding, but only if given */
 > 202		if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
   203			ret = -ENODEV;
   204			goto out_unbind;
   205		}
   206	
   207		if (acomp->audio_ops && acomp->audio_ops->master_bind) {
   208			ret = acomp->audio_ops->master_bind(dev, acomp);
   209			if (ret < 0)
   210				goto module_put;
   211		}
   212	
   213		complete_all(&acomp->master_bind_complete);
   214		return 0;
   215	
   216	 module_put:
   217		module_put(acomp->ops->owner);
   218	out_unbind:
   219		component_unbind_all(dev, acomp);
   220		complete_all(&acomp->master_bind_complete);
   221	
   222		return ret;
   223	}
   224	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [Intel-gfx] [PATCH v3 2/2] ALSA: hda - identify when audio is provided by a video driver
@ 2022-04-30 18:42     ` kernel test robot
  0 siblings, 0 replies; 27+ messages in thread
From: kernel test robot @ 2022-04-30 18:42 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Luis Chamberlain
  Cc: alsa-devel, kbuild-all, mauro.chehab, David Airlie, Greg KH,
	intel-gfx, llvm, Lucas De Marchi, Takashi Iwai, dri-devel,
	Jaroslav Kysela, Kai Vehmanen, linux-modules,
	Pierre-Louis Bossart, Mauro Carvalho Chehab, linux-kernel,
	linux-media

Hi Mauro,

I love your patch! Yet something to improve:

[auto build test ERROR on mcgrof/modules-next]
[also build test ERROR on linus/master v5.18-rc4 next-20220429]
[cannot apply to tiwai-sound/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/Mauro-Carvalho-Chehab/Let-userspace-know-when-snd-hda-intel-needs-i915/20220430-214332
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git modules-next
config: riscv-buildonly-randconfig-r003-20220428 (https://download.01.org/0day-ci/archive/20220501/202205010257.ZFhZYEG9-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 400775649969b9baf3bc2a510266e7912bb16ae9)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # https://github.com/intel-lab-lkp/linux/commit/32f6557b5cc77c3cc2fcf6e68f11d989e31c954d
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Mauro-Carvalho-Chehab/Let-userspace-know-when-snd-hda-intel-needs-i915/20220430-214332
        git checkout 32f6557b5cc77c3cc2fcf6e68f11d989e31c954d
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash sound/hda/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> sound/hda/hdac_component.c:202:7: error: call to undeclared function '__try_module_get'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
           if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
                ^
   sound/hda/hdac_component.c:202:7: note: did you mean 'try_module_get'?
   include/linux/module.h:759:20: note: 'try_module_get' declared here
   static inline bool try_module_get(struct module *module)
                      ^
   1 error generated.


vim +/__try_module_get +202 sound/hda/hdac_component.c

   183	
   184	static int hdac_component_master_bind(struct device *dev)
   185	{
   186		struct drm_audio_component *acomp = hdac_get_acomp(dev);
   187		int ret;
   188	
   189		if (WARN_ON(!acomp))
   190			return -EINVAL;
   191	
   192		ret = component_bind_all(dev, acomp);
   193		if (ret < 0)
   194			return ret;
   195	
   196		if (WARN_ON(!(acomp->dev && acomp->ops))) {
   197			ret = -EINVAL;
   198			goto out_unbind;
   199		}
   200	
   201		/* pin the module to avoid dynamic unbinding, but only if given */
 > 202		if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
   203			ret = -ENODEV;
   204			goto out_unbind;
   205		}
   206	
   207		if (acomp->audio_ops && acomp->audio_ops->master_bind) {
   208			ret = acomp->audio_ops->master_bind(dev, acomp);
   209			if (ret < 0)
   210				goto module_put;
   211		}
   212	
   213		complete_all(&acomp->master_bind_complete);
   214		return 0;
   215	
   216	 module_put:
   217		module_put(acomp->ops->owner);
   218	out_unbind:
   219		component_unbind_all(dev, acomp);
   220		complete_all(&acomp->master_bind_complete);
   221	
   222		return ret;
   223	}
   224	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [PATCH v3 2/2] ALSA: hda - identify when audio is provided by a video driver
@ 2022-04-30 18:42     ` kernel test robot
  0 siblings, 0 replies; 27+ messages in thread
From: kernel test robot @ 2022-04-30 18:42 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Luis Chamberlain
  Cc: alsa-devel, kbuild-all, mauro.chehab, David Airlie, Greg KH,
	intel-gfx, llvm, Lucas De Marchi, Takashi Iwai, dri-devel,
	Kai Vehmanen, linux-modules, Daniel Vetter, Pierre-Louis Bossart,
	Mauro Carvalho Chehab, linux-kernel, linux-media

Hi Mauro,

I love your patch! Yet something to improve:

[auto build test ERROR on mcgrof/modules-next]
[also build test ERROR on linus/master v5.18-rc4 next-20220429]
[cannot apply to tiwai-sound/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/Mauro-Carvalho-Chehab/Let-userspace-know-when-snd-hda-intel-needs-i915/20220430-214332
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git modules-next
config: riscv-buildonly-randconfig-r003-20220428 (https://download.01.org/0day-ci/archive/20220501/202205010257.ZFhZYEG9-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 400775649969b9baf3bc2a510266e7912bb16ae9)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # https://github.com/intel-lab-lkp/linux/commit/32f6557b5cc77c3cc2fcf6e68f11d989e31c954d
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Mauro-Carvalho-Chehab/Let-userspace-know-when-snd-hda-intel-needs-i915/20220430-214332
        git checkout 32f6557b5cc77c3cc2fcf6e68f11d989e31c954d
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash sound/hda/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> sound/hda/hdac_component.c:202:7: error: call to undeclared function '__try_module_get'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
           if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
                ^
   sound/hda/hdac_component.c:202:7: note: did you mean 'try_module_get'?
   include/linux/module.h:759:20: note: 'try_module_get' declared here
   static inline bool try_module_get(struct module *module)
                      ^
   1 error generated.


vim +/__try_module_get +202 sound/hda/hdac_component.c

   183	
   184	static int hdac_component_master_bind(struct device *dev)
   185	{
   186		struct drm_audio_component *acomp = hdac_get_acomp(dev);
   187		int ret;
   188	
   189		if (WARN_ON(!acomp))
   190			return -EINVAL;
   191	
   192		ret = component_bind_all(dev, acomp);
   193		if (ret < 0)
   194			return ret;
   195	
   196		if (WARN_ON(!(acomp->dev && acomp->ops))) {
   197			ret = -EINVAL;
   198			goto out_unbind;
   199		}
   200	
   201		/* pin the module to avoid dynamic unbinding, but only if given */
 > 202		if (!__try_module_get(acomp->ops->owner, dev->driver->owner)) {
   203			ret = -ENODEV;
   204			goto out_unbind;
   205		}
   206	
   207		if (acomp->audio_ops && acomp->audio_ops->master_bind) {
   208			ret = acomp->audio_ops->master_bind(dev, acomp);
   209			if (ret < 0)
   210				goto module_put;
   211		}
   212	
   213		complete_all(&acomp->master_bind_complete);
   214		return 0;
   215	
   216	 module_put:
   217		module_put(acomp->ops->owner);
   218	out_unbind:
   219		component_unbind_all(dev, acomp);
   220		complete_all(&acomp->master_bind_complete);
   221	
   222		return ret;
   223	}
   224	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2022-04-30 18:44 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-30 13:41 [PATCH v3 0/2] Let userspace know when snd-hda-intel needs i915 Mauro Carvalho Chehab
2022-04-30 13:41 ` Mauro Carvalho Chehab
2022-04-30 13:41 ` [Intel-gfx] " Mauro Carvalho Chehab
2022-04-30 13:41 ` Mauro Carvalho Chehab
2022-04-30 13:41 ` [PATCH v3 1/2] module: update dependencies at try_module_get() Mauro Carvalho Chehab
2022-04-30 13:41   ` Mauro Carvalho Chehab
2022-04-30 13:41   ` [Intel-gfx] " Mauro Carvalho Chehab
2022-04-30 13:41   ` Mauro Carvalho Chehab
2022-04-30 15:01   ` Greg KH
2022-04-30 15:01     ` Greg KH
2022-04-30 15:01     ` [Intel-gfx] " Greg KH
2022-04-30 15:01     ` Greg KH
2022-04-30 13:41 ` [PATCH v3 2/2] ALSA: hda - identify when audio is provided by a video driver Mauro Carvalho Chehab
2022-04-30 13:41   ` Mauro Carvalho Chehab
2022-04-30 13:41   ` [Intel-gfx] " Mauro Carvalho Chehab
2022-04-30 13:41   ` Mauro Carvalho Chehab
2022-04-30 16:30   ` kernel test robot
2022-04-30 16:30     ` kernel test robot
2022-04-30 16:30     ` [Intel-gfx] " kernel test robot
2022-04-30 16:30     ` kernel test robot
2022-04-30 18:42   ` kernel test robot
2022-04-30 18:42     ` kernel test robot
2022-04-30 18:42     ` [Intel-gfx] " kernel test robot
2022-04-30 18:42     ` kernel test robot
2022-04-30 14:03 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Let userspace know when snd-hda-intel needs i915 (rev3) Patchwork
2022-04-30 14:35 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-04-30 16:32 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.