diff mbox series

ACPI: scan: Defer enumeration of devices with a _DEP pointing to IVSC device

Message ID 20240207005908.32598-1-wentong.wu@intel.com
State Accepted
Commit 1e518e8333ca2134a53b96bc835432083f274350
Headers show
Series ACPI: scan: Defer enumeration of devices with a _DEP pointing to IVSC device | expand

Commit Message

Wu, Wentong Feb. 7, 2024, 12:59 a.m. UTC
Inside IVSC, switching ownership requires an interface with two
different hardware modules, ACE and CSI. The software interface
to these modules is based on Intel MEI framework. Usually mei
client devices are dynamically created, so the info of consumers
depending on mei client devices is not present in the firmware
tables.

This causes problems with the probe ordering with respect to
drivers for consumers of these MEI client devices. But on these
camera sensor devices, the ACPI nodes describing the sensors all
have a _DEP dependency on the matching MEI bus ACPI device, so
adding IVSC MEI bus ACPI device to acpi_honor_dep_ids allows
solving the probe-ordering problem by deferring the enumeration of
ACPI-devices which have a _DEP dependency on an IVSC mei bus ACPI
device.

Add INTC10CF, the HID of IVSC MEI bus ACPI device on MTL platform,
to acpi_honor_dep_ids.

Signed-off-by: Wentong Wu <wentong.wu@intel.com>
---
 drivers/acpi/scan.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Rafael J. Wysocki Feb. 12, 2024, 5:57 p.m. UTC | #1
On Wed, Feb 7, 2024 at 2:01 AM Wentong Wu <wentong.wu@intel.com> wrote:
>
> Inside IVSC, switching ownership requires an interface with two
> different hardware modules, ACE and CSI. The software interface
> to these modules is based on Intel MEI framework. Usually mei
> client devices are dynamically created, so the info of consumers
> depending on mei client devices is not present in the firmware
> tables.
>
> This causes problems with the probe ordering with respect to
> drivers for consumers of these MEI client devices. But on these
> camera sensor devices, the ACPI nodes describing the sensors all
> have a _DEP dependency on the matching MEI bus ACPI device, so
> adding IVSC MEI bus ACPI device to acpi_honor_dep_ids allows
> solving the probe-ordering problem by deferring the enumeration of
> ACPI-devices which have a _DEP dependency on an IVSC mei bus ACPI
> device.
>
> Add INTC10CF, the HID of IVSC MEI bus ACPI device on MTL platform,
> to acpi_honor_dep_ids.
>
> Signed-off-by: Wentong Wu <wentong.wu@intel.com>
> ---
>  drivers/acpi/scan.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> index e6ed1ba91e5c..f32a2c738c8b 100644
> --- a/drivers/acpi/scan.c
> +++ b/drivers/acpi/scan.c
> @@ -798,6 +798,7 @@ static const char * const acpi_honor_dep_ids[] = {
>         "INTC1059", /* IVSC (TGL) driver must be loaded to allow i2c access to camera sensors */
>         "INTC1095", /* IVSC (ADL) driver must be loaded to allow i2c access to camera sensors */
>         "INTC100A", /* IVSC (RPL) driver must be loaded to allow i2c access to camera sensors */
> +       "INTC10CF", /* IVSC (MTL) driver must be loaded to allow i2c access to camera sensors */
>         NULL
>  };
>
> --

Applied as 6.9 material, thanks!
Wu, Wentong Feb. 21, 2024, 3:03 a.m. UTC | #2
> From: Rafael J. Wysocki <rafael@kernel.org>
> On Wed, Feb 7, 2024 at 2:01 AM Wentong Wu <wentong.wu@intel.com>
> wrote:
> >
> > Inside IVSC, switching ownership requires an interface with two
> > different hardware modules, ACE and CSI. The software interface to
> > these modules is based on Intel MEI framework. Usually mei client
> > devices are dynamically created, so the info of consumers depending on
> > mei client devices is not present in the firmware tables.
> >
> > This causes problems with the probe ordering with respect to drivers
> > for consumers of these MEI client devices. But on these camera sensor
> > devices, the ACPI nodes describing the sensors all have a _DEP
> > dependency on the matching MEI bus ACPI device, so adding IVSC MEI bus
> > ACPI device to acpi_honor_dep_ids allows solving the probe-ordering
> > problem by deferring the enumeration of ACPI-devices which have a _DEP
> > dependency on an IVSC mei bus ACPI device.
> >
> > Add INTC10CF, the HID of IVSC MEI bus ACPI device on MTL platform, to
> > acpi_honor_dep_ids.
> >
> > Signed-off-by: Wentong Wu <wentong.wu@intel.com>
> > ---
> >  drivers/acpi/scan.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index
> > e6ed1ba91e5c..f32a2c738c8b 100644
> > --- a/drivers/acpi/scan.c
> > +++ b/drivers/acpi/scan.c
> > @@ -798,6 +798,7 @@ static const char * const acpi_honor_dep_ids[] = {
> >         "INTC1059", /* IVSC (TGL) driver must be loaded to allow i2c access to
> camera sensors */
> >         "INTC1095", /* IVSC (ADL) driver must be loaded to allow i2c access to
> camera sensors */
> >         "INTC100A", /* IVSC (RPL) driver must be loaded to allow i2c
> > access to camera sensors */
> > +       "INTC10CF", /* IVSC (MTL) driver must be loaded to allow i2c
> > + access to camera sensors */
> >         NULL
> >  };
> >
> > --
> 
> Applied as 6.9 material, thanks!

Thanks, and any chance to 6.8? 

BR,
Wentong
diff mbox series

Patch

diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index e6ed1ba91e5c..f32a2c738c8b 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -798,6 +798,7 @@  static const char * const acpi_honor_dep_ids[] = {
 	"INTC1059", /* IVSC (TGL) driver must be loaded to allow i2c access to camera sensors */
 	"INTC1095", /* IVSC (ADL) driver must be loaded to allow i2c access to camera sensors */
 	"INTC100A", /* IVSC (RPL) driver must be loaded to allow i2c access to camera sensors */
+	"INTC10CF", /* IVSC (MTL) driver must be loaded to allow i2c access to camera sensors */
 	NULL
 };