[<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
 
