* [PATCH] ACPI: video: Don't allow MFD devices to probe
@ 2026-03-06 2:51 Mario Limonciello (AMD)
2026-03-06 3:05 ` Nirujogi, Pratap
2026-03-06 10:50 ` Rafael J. Wysocki
0 siblings, 2 replies; 8+ messages in thread
From: Mario Limonciello (AMD) @ 2026-03-06 2:51 UTC (permalink / raw)
To: mario.limonciello, rafael, lenb, W_Armin
Cc: Mario Limonciello (AMD), Pratap Nirujogi, rafael.j.wysocki,
linux-acpi
After ACPI video was converted into a platform device in
commit 02c057ddefef5 ("ACPI: video: Convert the driver to a platform one")
other devices that are MFD children of LNXVIDEO are being probed.
This isn't intended.
During probe detect MFD cells and reject them.
Fixes: 02c057ddefef5 ("ACPI: video: Convert the driver to a platform one")
Reported-by: Pratap Nirujogi <pnirujog@amd.com>
Closes: https://lore.kernel.org/regressions/007e3390-6b2b-457e-83c7-c794c5952018@amd.com/
Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
---
drivers/acpi/acpi_video.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
index 3fa28f1abca38..2cb526775ac47 100644
--- a/drivers/acpi/acpi_video.c
+++ b/drivers/acpi/acpi_video.c
@@ -14,6 +14,7 @@
#include <linux/init.h>
#include <linux/types.h>
#include <linux/list.h>
+#include <linux/mfd/core.h>
#include <linux/mutex.h>
#include <linux/input.h>
#include <linux/backlight.h>
@@ -1988,6 +1989,9 @@ static int acpi_video_bus_probe(struct platform_device *pdev)
int error;
acpi_status status;
+ if (mfd_get_cell(pdev))
+ return -ENODEV;
+
status = acpi_walk_namespace(ACPI_TYPE_DEVICE,
acpi_dev_parent(device)->handle, 1,
acpi_video_bus_match, NULL,
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] ACPI: video: Don't allow MFD devices to probe
2026-03-06 2:51 [PATCH] ACPI: video: Don't allow MFD devices to probe Mario Limonciello (AMD)
@ 2026-03-06 3:05 ` Nirujogi, Pratap
2026-03-06 10:50 ` Rafael J. Wysocki
1 sibling, 0 replies; 8+ messages in thread
From: Nirujogi, Pratap @ 2026-03-06 3:05 UTC (permalink / raw)
To: Mario Limonciello (AMD), mario.limonciello, rafael, lenb, W_Armin
Cc: rafael.j.wysocki, linux-acpi, Bin Du, benjamin.chan, king.li
This patch resolves the regression issue observed with AMD ISP device in
kernel version 7.0-rc2.
Tested-by: Pratap Nirujogi <pratap.nirujogi@amd.com>
Thanks,
Pratap
On 3/5/2026 9:51 PM, Mario Limonciello (AMD) wrote:
> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
>
>
> After ACPI video was converted into a platform device in
> commit 02c057ddefef5 ("ACPI: video: Convert the driver to a platform one")
> other devices that are MFD children of LNXVIDEO are being probed.
> This isn't intended.
>
> During probe detect MFD cells and reject them.
>
> Fixes: 02c057ddefef5 ("ACPI: video: Convert the driver to a platform one")
> Reported-by: Pratap Nirujogi <pnirujog@amd.com>
> Closes: https://lore.kernel.org/regressions/007e3390-6b2b-457e-83c7-c794c5952018@amd.com/
> Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
> ---
> drivers/acpi/acpi_video.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
> index 3fa28f1abca38..2cb526775ac47 100644
> --- a/drivers/acpi/acpi_video.c
> +++ b/drivers/acpi/acpi_video.c
> @@ -14,6 +14,7 @@
> #include <linux/init.h>
> #include <linux/types.h>
> #include <linux/list.h>
> +#include <linux/mfd/core.h>
> #include <linux/mutex.h>
> #include <linux/input.h>
> #include <linux/backlight.h>
> @@ -1988,6 +1989,9 @@ static int acpi_video_bus_probe(struct platform_device *pdev)
> int error;
> acpi_status status;
>
> + if (mfd_get_cell(pdev))
> + return -ENODEV;
> +
> status = acpi_walk_namespace(ACPI_TYPE_DEVICE,
> acpi_dev_parent(device)->handle, 1,
> acpi_video_bus_match, NULL,
> --
> 2.43.0
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] ACPI: video: Don't allow MFD devices to probe
2026-03-06 2:51 [PATCH] ACPI: video: Don't allow MFD devices to probe Mario Limonciello (AMD)
2026-03-06 3:05 ` Nirujogi, Pratap
@ 2026-03-06 10:50 ` Rafael J. Wysocki
2026-03-06 12:17 ` Rafael J. Wysocki
1 sibling, 1 reply; 8+ messages in thread
From: Rafael J. Wysocki @ 2026-03-06 10:50 UTC (permalink / raw)
To: Mario Limonciello (AMD)
Cc: mario.limonciello, rafael, lenb, W_Armin, Pratap Nirujogi,
rafael.j.wysocki, linux-acpi
On Fri, Mar 6, 2026 at 3:51 AM Mario Limonciello (AMD)
<superm1@kernel.org> wrote:
>
> After ACPI video was converted into a platform device in
> commit 02c057ddefef5 ("ACPI: video: Convert the driver to a platform one")
> other devices that are MFD children of LNXVIDEO are being probed.
> This isn't intended.
>
> During probe detect MFD cells and reject them.
>
> Fixes: 02c057ddefef5 ("ACPI: video: Convert the driver to a platform one")
> Reported-by: Pratap Nirujogi <pnirujog@amd.com>
> Closes: https://lore.kernel.org/regressions/007e3390-6b2b-457e-83c7-c794c5952018@amd.com/
The link is broken, so I can't see what is really happening, but my
guess is that MFD devices are created under the video bus device and
they get the same device ID (confusingly enough).
> Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
> ---
> drivers/acpi/acpi_video.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
> index 3fa28f1abca38..2cb526775ac47 100644
> --- a/drivers/acpi/acpi_video.c
> +++ b/drivers/acpi/acpi_video.c
> @@ -14,6 +14,7 @@
> #include <linux/init.h>
> #include <linux/types.h>
> #include <linux/list.h>
> +#include <linux/mfd/core.h>
> #include <linux/mutex.h>
> #include <linux/input.h>
> #include <linux/backlight.h>
> @@ -1988,6 +1989,9 @@ static int acpi_video_bus_probe(struct platform_device *pdev)
> int error;
> acpi_status status;
>
> + if (mfd_get_cell(pdev))
> + return -ENODEV;
If the above is the case, I'd prefer this check
if (!device->pnp.type.backlight)
which should also work, but is more general.
> +
> status = acpi_walk_namespace(ACPI_TYPE_DEVICE,
> acpi_dev_parent(device)->handle, 1,
> acpi_video_bus_match, NULL,
> --
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] ACPI: video: Don't allow MFD devices to probe
2026-03-06 10:50 ` Rafael J. Wysocki
@ 2026-03-06 12:17 ` Rafael J. Wysocki
2026-03-06 12:37 ` Rafael J. Wysocki
2026-03-06 12:42 ` Mario Limonciello
0 siblings, 2 replies; 8+ messages in thread
From: Rafael J. Wysocki @ 2026-03-06 12:17 UTC (permalink / raw)
To: Mario Limonciello (AMD)
Cc: mario.limonciello, W_Armin, Pratap Nirujogi, rafael.j.wysocki,
linux-acpi
On Fri, Mar 6, 2026 at 11:50 AM Rafael J. Wysocki <rafael@kernel.org> wrote:
>
> On Fri, Mar 6, 2026 at 3:51 AM Mario Limonciello (AMD)
> <superm1@kernel.org> wrote:
> >
> > After ACPI video was converted into a platform device in
> > commit 02c057ddefef5 ("ACPI: video: Convert the driver to a platform one")
> > other devices that are MFD children of LNXVIDEO are being probed.
> > This isn't intended.
> >
> > During probe detect MFD cells and reject them.
> >
> > Fixes: 02c057ddefef5 ("ACPI: video: Convert the driver to a platform one")
> > Reported-by: Pratap Nirujogi <pnirujog@amd.com>
> > Closes: https://lore.kernel.org/regressions/007e3390-6b2b-457e-83c7-c794c5952018@amd.com/
>
> The link is broken, so I can't see what is really happening, but my
> guess is that MFD devices are created under the video bus device and
> they get the same device ID (confusingly enough).
>
> > Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
> > ---
> > drivers/acpi/acpi_video.c | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
> > index 3fa28f1abca38..2cb526775ac47 100644
> > --- a/drivers/acpi/acpi_video.c
> > +++ b/drivers/acpi/acpi_video.c
> > @@ -14,6 +14,7 @@
> > #include <linux/init.h>
> > #include <linux/types.h>
> > #include <linux/list.h>
> > +#include <linux/mfd/core.h>
> > #include <linux/mutex.h>
> > #include <linux/input.h>
> > #include <linux/backlight.h>
> > @@ -1988,6 +1989,9 @@ static int acpi_video_bus_probe(struct platform_device *pdev)
> > int error;
> > acpi_status status;
> >
> > + if (mfd_get_cell(pdev))
> > + return -ENODEV;
>
> If the above is the case, I'd prefer this check
>
> if (!device->pnp.type.backlight)
>
> which should also work, but is more general.
Well, this will not work if the ACPI companion is shared between
multiple devices.
However, adding an MFD check here is a "works for me" change rather.
I think what needs to be done is to extend the duplication check (see
my patch from yesterday at
https://lore.kernel.org/linux-acpi/5663583.Sb9uPGUboI@rafael.j.wysocki/)
to detect the cases when another platform device (not necessarily a
child of the same parent) sharing the same ACPI companion is probed.
> > +
> > status = acpi_walk_namespace(ACPI_TYPE_DEVICE,
> > acpi_dev_parent(device)->handle, 1,
> > acpi_video_bus_match, NULL,
> > --
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] ACPI: video: Don't allow MFD devices to probe
2026-03-06 12:17 ` Rafael J. Wysocki
@ 2026-03-06 12:37 ` Rafael J. Wysocki
2026-03-09 4:24 ` Nirujogi, Pratap
2026-03-06 12:42 ` Mario Limonciello
1 sibling, 1 reply; 8+ messages in thread
From: Rafael J. Wysocki @ 2026-03-06 12:37 UTC (permalink / raw)
To: Mario Limonciello (AMD), Pratap Nirujogi
Cc: mario.limonciello, W_Armin, rafael.j.wysocki, linux-acpi
On Friday, March 6, 2026 1:17:19 PM CET Rafael J. Wysocki wrote:
> On Fri, Mar 6, 2026 at 11:50 AM Rafael J. Wysocki <rafael@kernel.org> wrote:
> >
> > On Fri, Mar 6, 2026 at 3:51 AM Mario Limonciello (AMD)
> > <superm1@kernel.org> wrote:
> > >
> > > After ACPI video was converted into a platform device in
> > > commit 02c057ddefef5 ("ACPI: video: Convert the driver to a platform one")
> > > other devices that are MFD children of LNXVIDEO are being probed.
> > > This isn't intended.
> > >
> > > During probe detect MFD cells and reject them.
> > >
> > > Fixes: 02c057ddefef5 ("ACPI: video: Convert the driver to a platform one")
> > > Reported-by: Pratap Nirujogi <pnirujog@amd.com>
> > > Closes: https://lore.kernel.org/regressions/007e3390-6b2b-457e-83c7-c794c5952018@amd.com/
> >
> > The link is broken, so I can't see what is really happening, but my
> > guess is that MFD devices are created under the video bus device and
> > they get the same device ID (confusingly enough).
> >
> > > Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
> > > ---
> > > drivers/acpi/acpi_video.c | 4 ++++
> > > 1 file changed, 4 insertions(+)
> > >
> > > diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
> > > index 3fa28f1abca38..2cb526775ac47 100644
> > > --- a/drivers/acpi/acpi_video.c
> > > +++ b/drivers/acpi/acpi_video.c
> > > @@ -14,6 +14,7 @@
> > > #include <linux/init.h>
> > > #include <linux/types.h>
> > > #include <linux/list.h>
> > > +#include <linux/mfd/core.h>
> > > #include <linux/mutex.h>
> > > #include <linux/input.h>
> > > #include <linux/backlight.h>
> > > @@ -1988,6 +1989,9 @@ static int acpi_video_bus_probe(struct platform_device *pdev)
> > > int error;
> > > acpi_status status;
> > >
> > > + if (mfd_get_cell(pdev))
> > > + return -ENODEV;
> >
> > If the above is the case, I'd prefer this check
> >
> > if (!device->pnp.type.backlight)
> >
> > which should also work, but is more general.
>
> Well, this will not work if the ACPI companion is shared between
> multiple devices.
>
> However, adding an MFD check here is a "works for me" change rather.
>
> I think what needs to be done is to extend the duplication check (see
> my patch from yesterday at
> https://lore.kernel.org/linux-acpi/5663583.Sb9uPGUboI@rafael.j.wysocki/)
> to detect the cases when another platform device (not necessarily a
> child of the same parent) sharing the same ACPI companion is probed.
So, Pratap, can you please test the appended patch (untested so far)?
---
drivers/acpi/acpi_video.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
--- a/drivers/acpi/acpi_video.c
+++ b/drivers/acpi/acpi_video.c
@@ -1978,16 +1978,38 @@ static int acpi_video_bus_put_devices(st
return 0;
}
+static bool acpi_video_bus_bound(struct acpi_device *adev)
+{
+ struct acpi_video_bus *video;
+
+ guard(mutex)(&video_list_lock);
+
+ list_for_each_entry(video, &video_bus_head, entry) {
+ if (video->device == adev)
+ return true;
+ }
+
+ return false;
+}
+
static int instance;
static int acpi_video_bus_probe(struct platform_device *pdev)
{
struct acpi_device *device = ACPI_COMPANION(&pdev->dev);
+ static DEFINE_MUTEX(probe_lock);
struct acpi_video_bus *video;
bool auto_detect;
int error;
acpi_status status;
+ /* Probe one video bus device at a time in case there are duplicates. */
+ guard(mutex)(&probe_lock);
+
+ /* Bind only one platform device for the given ACPI companion. */
+ if (acpi_video_bus_bound(device))
+ return -EALREADY;
+
status = acpi_walk_namespace(ACPI_TYPE_DEVICE,
acpi_dev_parent(device)->handle, 1,
acpi_video_bus_match, NULL,
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] ACPI: video: Don't allow MFD devices to probe
2026-03-06 12:17 ` Rafael J. Wysocki
2026-03-06 12:37 ` Rafael J. Wysocki
@ 2026-03-06 12:42 ` Mario Limonciello
2026-03-06 12:46 ` Rafael J. Wysocki
1 sibling, 1 reply; 8+ messages in thread
From: Mario Limonciello @ 2026-03-06 12:42 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: mario.limonciello, W_Armin, Pratap Nirujogi, rafael.j.wysocki,
linux-acpi
On 3/6/26 6:17 AM, Rafael J. Wysocki wrote:
> On Fri, Mar 6, 2026 at 11:50 AM Rafael J. Wysocki <rafael@kernel.org> wrote:
>>
>> On Fri, Mar 6, 2026 at 3:51 AM Mario Limonciello (AMD)
>> <superm1@kernel.org> wrote:
>>>
>>> After ACPI video was converted into a platform device in
>>> commit 02c057ddefef5 ("ACPI: video: Convert the driver to a platform one")
>>> other devices that are MFD children of LNXVIDEO are being probed.
>>> This isn't intended.
>>>
>>> During probe detect MFD cells and reject them.
>>>
>>> Fixes: 02c057ddefef5 ("ACPI: video: Convert the driver to a platform one")
>>> Reported-by: Pratap Nirujogi <pnirujog@amd.com>
>>> Closes: https://lore.kernel.org/regressions/007e3390-6b2b-457e-83c7-c794c5952018@amd.com/
>>
>> The link is broken, so I can't see what is really happening, but my
>> guess is that MFD devices are created under the video bus device and
>> they get the same device ID (confusingly enough).
Hmm, I just double checked the link and it worked for me.
But you are on the To: list of that thread also.
>>
>>> Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
>>> ---
>>> drivers/acpi/acpi_video.c | 4 ++++
>>> 1 file changed, 4 insertions(+)
>>>
>>> diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
>>> index 3fa28f1abca38..2cb526775ac47 100644
>>> --- a/drivers/acpi/acpi_video.c
>>> +++ b/drivers/acpi/acpi_video.c
>>> @@ -14,6 +14,7 @@
>>> #include <linux/init.h>
>>> #include <linux/types.h>
>>> #include <linux/list.h>
>>> +#include <linux/mfd/core.h>
>>> #include <linux/mutex.h>
>>> #include <linux/input.h>
>>> #include <linux/backlight.h>
>>> @@ -1988,6 +1989,9 @@ static int acpi_video_bus_probe(struct platform_device *pdev)
>>> int error;
>>> acpi_status status;
>>>
>>> + if (mfd_get_cell(pdev))
>>> + return -ENODEV;
>>
>> If the above is the case, I'd prefer this check
>>
>> if (!device->pnp.type.backlight)
>>
>> which should also work, but is more general.
>
> Well, this will not work if the ACPI companion is shared between
> multiple devices.
>
> However, adding an MFD check here is a "works for me" change rather.
>
> I think what needs to be done is to extend the duplication check (see
> my patch from yesterday at
> https://lore.kernel.org/linux-acpi/5663583.Sb9uPGUboI@rafael.j.wysocki/)
> to detect the cases when another platform device (not necessarily a
> child of the same parent) sharing the same ACPI companion is probed.
>
Generally makes sense to me. But in this particular case it shouldn't
be a FW_BUG.
Do you want to roll this in your series? Or would you prefer one of us
to send a follow up patch?
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] ACPI: video: Don't allow MFD devices to probe
2026-03-06 12:42 ` Mario Limonciello
@ 2026-03-06 12:46 ` Rafael J. Wysocki
0 siblings, 0 replies; 8+ messages in thread
From: Rafael J. Wysocki @ 2026-03-06 12:46 UTC (permalink / raw)
To: Mario Limonciello
Cc: Rafael J. Wysocki, mario.limonciello, W_Armin, Pratap Nirujogi,
rafael.j.wysocki, linux-acpi
On Fri, Mar 6, 2026 at 1:43 PM Mario Limonciello <superm1@kernel.org> wrote:
>
>
>
> On 3/6/26 6:17 AM, Rafael J. Wysocki wrote:
> > On Fri, Mar 6, 2026 at 11:50 AM Rafael J. Wysocki <rafael@kernel.org> wrote:
> >>
> >> On Fri, Mar 6, 2026 at 3:51 AM Mario Limonciello (AMD)
> >> <superm1@kernel.org> wrote:
> >>>
> >>> After ACPI video was converted into a platform device in
> >>> commit 02c057ddefef5 ("ACPI: video: Convert the driver to a platform one")
> >>> other devices that are MFD children of LNXVIDEO are being probed.
> >>> This isn't intended.
> >>>
> >>> During probe detect MFD cells and reject them.
> >>>
> >>> Fixes: 02c057ddefef5 ("ACPI: video: Convert the driver to a platform one")
> >>> Reported-by: Pratap Nirujogi <pnirujog@amd.com>
> >>> Closes: https://lore.kernel.org/regressions/007e3390-6b2b-457e-83c7-c794c5952018@amd.com/
> >>
> >> The link is broken, so I can't see what is really happening, but my
> >> guess is that MFD devices are created under the video bus device and
> >> they get the same device ID (confusingly enough).
>
> Hmm, I just double checked the link and it worked for me.
It works now for me too. I'm not sure what happened the first time.
> But you are on the To: list of that thread also.
Yup, I've found it.
> >>
> >>> Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
> >>> ---
> >>> drivers/acpi/acpi_video.c | 4 ++++
> >>> 1 file changed, 4 insertions(+)
> >>>
> >>> diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
> >>> index 3fa28f1abca38..2cb526775ac47 100644
> >>> --- a/drivers/acpi/acpi_video.c
> >>> +++ b/drivers/acpi/acpi_video.c
> >>> @@ -14,6 +14,7 @@
> >>> #include <linux/init.h>
> >>> #include <linux/types.h>
> >>> #include <linux/list.h>
> >>> +#include <linux/mfd/core.h>
> >>> #include <linux/mutex.h>
> >>> #include <linux/input.h>
> >>> #include <linux/backlight.h>
> >>> @@ -1988,6 +1989,9 @@ static int acpi_video_bus_probe(struct platform_device *pdev)
> >>> int error;
> >>> acpi_status status;
> >>>
> >>> + if (mfd_get_cell(pdev))
> >>> + return -ENODEV;
> >>
> >> If the above is the case, I'd prefer this check
> >>
> >> if (!device->pnp.type.backlight)
> >>
> >> which should also work, but is more general.
> >
> > Well, this will not work if the ACPI companion is shared between
> > multiple devices.
> >
> > However, adding an MFD check here is a "works for me" change rather.
> >
> > I think what needs to be done is to extend the duplication check (see
> > my patch from yesterday at
> > https://lore.kernel.org/linux-acpi/5663583.Sb9uPGUboI@rafael.j.wysocki/)
> > to detect the cases when another platform device (not necessarily a
> > child of the same parent) sharing the same ACPI companion is probed.
> >
>
> Generally makes sense to me. But in this particular case it shouldn't
> be a FW_BUG.
>
> Do you want to roll this in your series? Or would you prefer one of us
> to send a follow up patch?
I've sent one already, our replies passed each other:
https://lore.kernel.org/linux-acpi/5975968.DvuYhMxLoT@rafael.j.wysocki/
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] ACPI: video: Don't allow MFD devices to probe
2026-03-06 12:37 ` Rafael J. Wysocki
@ 2026-03-09 4:24 ` Nirujogi, Pratap
0 siblings, 0 replies; 8+ messages in thread
From: Nirujogi, Pratap @ 2026-03-09 4:24 UTC (permalink / raw)
To: Rafael J. Wysocki, Mario Limonciello (AMD)
Cc: mario.limonciello, W_Armin, rafael.j.wysocki, linux-acpi
On 3/6/2026 7:37 AM, Rafael J. Wysocki wrote:
> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
>
>
> On Friday, March 6, 2026 1:17:19 PM CET Rafael J. Wysocki wrote:
>> On Fri, Mar 6, 2026 at 11:50 AM Rafael J. Wysocki <rafael@kernel.org> wrote:
>>>
>>> On Fri, Mar 6, 2026 at 3:51 AM Mario Limonciello (AMD)
>>> <superm1@kernel.org> wrote:
>>>>
>>>> After ACPI video was converted into a platform device in
>>>> commit 02c057ddefef5 ("ACPI: video: Convert the driver to a platform one")
>>>> other devices that are MFD children of LNXVIDEO are being probed.
>>>> This isn't intended.
>>>>
>>>> During probe detect MFD cells and reject them.
>>>>
>>>> Fixes: 02c057ddefef5 ("ACPI: video: Convert the driver to a platform one")
>>>> Reported-by: Pratap Nirujogi <pnirujog@amd.com>
>>>> Closes: https://lore.kernel.org/regressions/007e3390-6b2b-457e-83c7-c794c5952018@amd.com/
>>>
>>> The link is broken, so I can't see what is really happening, but my
>>> guess is that MFD devices are created under the video bus device and
>>> they get the same device ID (confusingly enough).
>>>
>>>> Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
>>>> ---
>>>> drivers/acpi/acpi_video.c | 4 ++++
>>>> 1 file changed, 4 insertions(+)
>>>>
>>>> diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
>>>> index 3fa28f1abca38..2cb526775ac47 100644
>>>> --- a/drivers/acpi/acpi_video.c
>>>> +++ b/drivers/acpi/acpi_video.c
>>>> @@ -14,6 +14,7 @@
>>>> #include <linux/init.h>
>>>> #include <linux/types.h>
>>>> #include <linux/list.h>
>>>> +#include <linux/mfd/core.h>
>>>> #include <linux/mutex.h>
>>>> #include <linux/input.h>
>>>> #include <linux/backlight.h>
>>>> @@ -1988,6 +1989,9 @@ static int acpi_video_bus_probe(struct platform_device *pdev)
>>>> int error;
>>>> acpi_status status;
>>>>
>>>> + if (mfd_get_cell(pdev))
>>>> + return -ENODEV;
>>>
>>> If the above is the case, I'd prefer this check
>>>
>>> if (!device->pnp.type.backlight)
>>>
>>> which should also work, but is more general.
>>
>> Well, this will not work if the ACPI companion is shared between
>> multiple devices.
>>
>> However, adding an MFD check here is a "works for me" change rather.
>>
My apologies for not being clear about what works on my end. When I said
it works, I meant that the MFD check had fixed the noisy error messages
below. However, this does not resolve the automatic probe issue of AMD
ISP device.
[ 5.337676] acpi device:14: Error installing notify handler
[ 5.337682] acpi device:15: Error installing notify handler
[ 5.337684] acpi device:16: Error installing notify handler
>> I think what needs to be done is to extend the duplication check (see
>> my patch from yesterday at
>> https://lore.kernel.org/linux-acpi/5663583.Sb9uPGUboI@rafael.j.wysocki/)
>> to detect the cases when another platform device (not necessarily a
>> child of the same parent) sharing the same ACPI companion is probed.
>
> So, Pratap, can you please test the appended patch (untested so far)?
>
I verified the appended patch and the results are same as the MFD check
suggested by Mario. Automatic modprobe of AMD ISP device issue is still
observed.
Based on my debugging so far, I can confirm both automatic AMD ISP
device probe and camera works only when the MFD child devices do not
inherit the parent device ACPI companion. I shall run a git bisect to
identify the specific commit that is causing this issue in 7.0.
> ---
> drivers/acpi/acpi_video.c | 22 ++++++++++++++++++++++
> 1 file changed, 22 insertions(+)
>
> --- a/drivers/acpi/acpi_video.c
> +++ b/drivers/acpi/acpi_video.c
> @@ -1978,16 +1978,38 @@ static int acpi_video_bus_put_devices(st
> return 0;
> }
>
> +static bool acpi_video_bus_bound(struct acpi_device *adev)
> +{
> + struct acpi_video_bus *video;
> +
> + guard(mutex)(&video_list_lock);
> +
> + list_for_each_entry(video, &video_bus_head, entry) {
> + if (video->device == adev)
> + return true;
> + }
> +
> + return false;
> +}
> +
> static int instance;
>
> static int acpi_video_bus_probe(struct platform_device *pdev)
> {
> struct acpi_device *device = ACPI_COMPANION(&pdev->dev);
> + static DEFINE_MUTEX(probe_lock);
> struct acpi_video_bus *video;
> bool auto_detect;
> int error;
> acpi_status status;
>
> + /* Probe one video bus device at a time in case there are duplicates. */
> + guard(mutex)(&probe_lock);
> +
> + /* Bind only one platform device for the given ACPI companion. */
> + if (acpi_video_bus_bound(device))
> + return -EALREADY;
> +
> status = acpi_walk_namespace(ACPI_TYPE_DEVICE,
> acpi_dev_parent(device)->handle, 1,
> acpi_video_bus_match, NULL,
>
>
>
>
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-03-09 4:24 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-06 2:51 [PATCH] ACPI: video: Don't allow MFD devices to probe Mario Limonciello (AMD)
2026-03-06 3:05 ` Nirujogi, Pratap
2026-03-06 10:50 ` Rafael J. Wysocki
2026-03-06 12:17 ` Rafael J. Wysocki
2026-03-06 12:37 ` Rafael J. Wysocki
2026-03-09 4:24 ` Nirujogi, Pratap
2026-03-06 12:42 ` Mario Limonciello
2026-03-06 12:46 ` Rafael J. Wysocki
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox