Re: [PATCH v2 1/2] mfd: mfd-core: Add mechanism for removal of a subset of children
From: Charles Keepax
Date: Tue Jun 16 2020 - 06:06:31 EST
On Tue, Jun 16, 2020 at 10:15:45AM +0100, Lee Jones wrote:
> On Tue, 16 Jun 2020, Charles Keepax wrote:
> > On Tue, Jun 16, 2020 at 08:58:34AM +0100, Lee Jones wrote:
> > > On Mon, 15 Jun 2020, Charles Keepax wrote:
> > Does this match how you would expect this to be used?
>
> No, not at all.
>
> > I do have some concerns. The code can't use mfd_get_cell since it
> > returns a const pointer, although the pointer in platform_device
> > isn't const so we access that directly, could update mfd_get_cell? We
> > also don't have access to mfd_dev_type outside of the mfd core so
> > its hard to check we are actually setting the mfd_cell of actual
> > MFD children, I guess just checking for mfd_cell being not NULL is
> > good enough?
>
> Hmmm... looks like I missed the fact that you needed additional
> processing between the removal of each batch of devices. My
> implementation simply handles the order in which devices are removed
> (a bit like initcall()s).
>
> How about the inclusion of mfd_remove_devices_late(), whereby
> mfd_remove_devices() will refuse to remove devices tagged with
> MFD_DEP_LEVEL_HIGH.
>
Yeah this should work fine for my use-case.
> Not sure why, but I really dislike the idea of device removal by
> arbitrary value/tag, as I see it spawning all sorts of weird and
> wonderful implications/hacks/abuse.
>
Its definitely a spectrum with flexibility covering more
use-cases but also definitely opening things up to more abuse. If
you are more comfortable with this approach that is fine with me.
Would you like me to have a crack at coding it up this way? Or
did you want to do a patch?
Thanks,
Charles