Messages in this thread | | | Date | Mon, 19 May 2014 10:18:11 +0200 | From | Hans de Goede <> | Subject | Re: [PATCH 1/3] mfd-core: Don't register supplies from add_device, add register_supply_aliases() |
| |
Hi,
On 05/19/2014 09:48 AM, Charles Keepax wrote: > On Mon, May 19, 2014 at 08:47:05AM +0100, Lee Jones wrote: >>> We cannot register supply alias in mfd_add_device before calling >>> platform_add_device, for 2 reasons: >>> 1) devm resources may not be registered before the (platform) drivers probe >>> method runs >>> 2) The platform-dev's name must be set before registering the aliases which >>> happens from platform_add_device. >>> >>> So stop registering supply aliases from mfd_add_device, and add a >>> mfd_register_supply_aliases helper functions for the cell's plaform driver >>> probe method to use. >>> >>> Signed-off-by: Hans de Goede <hdegoede@redhat.com> >>> --- >>> drivers/mfd/mfd-core.c | 37 +++++++++++++++++++++---------------- >>> include/linux/mfd/core.h | 6 +++++- >>> 2 files changed, 26 insertions(+), 17 deletions(-) >> >> Change looks reasonable to me, but I'd like to have Mark look over the >> changes. If he's okay with them I think it's best for this set to go >> through the MFD tree as a whole. > > This should already be fixed by this patch: > > mfd: core: Don't use devres functions before device is added
Ah, I did not check next, yes that would fix *half* of the problem, the other half is that adding aliases uses dev->name (at least for logging, did not check if it is used for anything else) and that is not set yet before the device is added.
Basically the moral of the story is that it is a BAD idea to do anything with a device before it is added. So my proposed series would replace the "mfd: core: Don't use devres functions before device is added" patch.
Regards,
Hans
| |