[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <YvOWXTzT7uIhVMBI@google.com>
Date: Wed, 10 Aug 2022 12:28:29 +0100
From: Lee Jones <lee@...nel.org>
To: Michał Oleszczyk <oleszczyk.m@...il.com>
Cc: linux-kernel@...r.kernel.org,
Michał Oleszczyk <m.oleszczyk@...nn-global.com>
Subject: Re: [PATCH v2] mfd: core: Delete corresponding OF node entries from
list on MFD removal
On Tue, 09 Aug 2022, Michał Oleszczyk wrote:
> From: Michal Oleszczyk <oleszczyk.m@...il.com>
>
> When we consider MFD which implements hotplug (e.g. USB hotplug
> driver based on product and vendor IDs) functionality it turns out
> that its sub-devices are correctly matched with corresponding device
> tree nodes only at the first time. When physical device reboots
> or is replugged (and MFD driver is disconnected and probed back
> again) all sub-devices fails in mfd_add_device() with error
> 'Failed to locate of_node'.
>
> The reason of that behavior is that when any MFD sub-device is
> created for the first time (and matched with device tree node) it
> is added to the mfd_of_node_list. It looks like this list is never
> cleaned even if devices added there are intentionally removed from
> the system. So when MFD device is replugged and all sub-devices
> are matched with their device tree nodes again they fail as matched
> nodes already exist in mfd_of_node_list. In other words current
> implementation does not support MFD with hotplug feature.
>
> This commit extends MFD core for hotplugging support by removing
> appropriate OF node entry from mfd_of_node_list when corresponding
> device is removed from the system. Thanks to that when device is
> added once again it can be matched with its device tree node
> successfully.
>
> Signed-off-by: Michal Oleszczyk <oleszczyk.m@...il.com>
> ---
>
> Changes in v2: removing unused variable declaration.
>
> drivers/mfd/mfd-core.c | 7 +++++++
> 1 file changed, 7 insertions(+)
Applied, thanks.
--
Lee Jones [李琼斯]
Powered by blists - more mailing lists