Re: [PATCH v3 1/8] mfd / platform: cros_ec: use devm_mfd_add_devices.

From: Enric Balletbo i Serra
Date: Mon Dec 03 2018 - 17:13:27 EST


Hi Lee,

On 3/12/18 11:32, Lee Jones wrote:
> On Tue, 27 Nov 2018, Enric Balletbo i Serra wrote:
>
>> Use devm_mfd_add_devices() for adding cros-ec core MFD child devices. This
>> reduces the need of remove callback from platform/chrome for removing the
>> MFD child devices.
>>
>> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@xxxxxxxxxxxxx>
>> ---
>>
>> Changes in v3:
>> - Removed cros_ec_remove from include file.
>>
>> Changes in v2:
>> - Use devm only for the cros-ec core.
>>
>> drivers/mfd/cros_ec.c | 14 +++-----------
>> drivers/mfd/cros_ec_dev.c | 1 +
>> drivers/platform/chrome/cros_ec_i2c.c | 10 ----------
>> drivers/platform/chrome/cros_ec_lpc.c | 4 ----
>> drivers/platform/chrome/cros_ec_spi.c | 11 -----------
>> include/linux/mfd/cros_ec.h | 10 ----------
>> 6 files changed, 4 insertions(+), 46 deletions(-)
>
> Nice patch.
>
> Just one question:
>
> [...]
>
>> diff --git a/drivers/mfd/cros_ec_dev.c b/drivers/mfd/cros_ec_dev.c
>> index 8f9d6964173e..ff788d3e6d5f 100644
>> --- a/drivers/mfd/cros_ec_dev.c
>> +++ b/drivers/mfd/cros_ec_dev.c
>> @@ -493,6 +493,7 @@ static int ec_device_remove(struct platform_device *pdev)
>>
>> cros_ec_debugfs_remove(ec);
>>
>> + mfd_remove_devices(ec->dev);
>
> Why is this still required?
>

Hmm, maybe that line shouldn't be here as is not really related to this patch,
it's more a fix for the cros_ec_dev to remove those cells that are registered
with mfd_add_devices.

Actually what we have is cros_ec that instantiates one or two cros_ec_dev
(depends on the platform) and cros_ec_dev instantiating different subdrivers.
The purpose of the patch was use the device managed resource for the cros_ec
driver, I did not touch the cros_ec_dev driver

>> cdev_del(&ec->cdev);
>> device_unregister(&ec->class_dev);
>> return 0;
>
> [...]
>