• Charles Keepax's avatar
    mfd: madera: Improve handling of regulator unbinding · 77b3ddab
    Charles Keepax authored
    The current unbinding process for Madera has some issues. The trouble
    is runtime PM is disabled as the first step of the process, but
    some of the drivers release IRQs causing regmap IRQ to issue a
    runtime get which fails. To allow runtime PM to remain enabled during
    mfd_remove_devices, the DCVDD regulator must remain available. In
    the case of external DCVDD's this is simple, the regulator can simply
    be disabled/put after the call to mfd_remove_devices. However, in
    the case of an internally supplied DCVDD the regulator needs to be
    released after the other MFD children depending on it.
    
    Use the new MFD mfd_remove_devices_late functionality to split
    the DCVDD regulator off from the other drivers.
    Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
    Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
    77b3ddab
madera-core.c 18.1 KB