All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lee Jones <lee.jones@linaro.org>
To: Laxman Dewangan <ldewangan@nvidia.com>
Cc: corbet@lwn.net, andreas.werner@men.de, tony@atomide.com,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-omap@vger.kernel.org, patches@opensource.wolfsonmicro.com
Subject: Re: [PATCH V2 01/20] mfd: Add resource managed apis for mfd_add_devices
Date: Mon, 11 Apr 2016 10:15:00 +0100	[thread overview]
Message-ID: <20160411091500.GO4592@x1> (raw)
In-Reply-To: <1460054594-32325-2-git-send-email-ldewangan@nvidia.com>

Applied, thanks.

> Add resource managed API devm_mfd_add_devices() for the mfd_add_devices().
> 
> This helps in reducing code in error path as it is not required
> to call mfd_remove_devices() explicitly to remove all child-devices.
> In some cases, it also helps not to implement .remove() callback
> which get called during driver unbind.
> 
> Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
> 
> ---
> Changes from V1:
> - Reformat the commit message.
> - Run checkpatch with --strict option and fix warning.
> - Remove devm_ for mfd_remove_devices() as this is not used.
> - Consider V1 review comment on error handling.
> 
>  drivers/mfd/mfd-core.c   | 38 ++++++++++++++++++++++++++++++++++++++
>  include/linux/mfd/core.h |  4 ++++
>  2 files changed, 42 insertions(+)
> 
> diff --git a/drivers/mfd/mfd-core.c b/drivers/mfd/mfd-core.c
> index 409da01..4b4c1d4 100644
> --- a/drivers/mfd/mfd-core.c
> +++ b/drivers/mfd/mfd-core.c
> @@ -334,6 +334,44 @@ void mfd_remove_devices(struct device *parent)
>  }
>  EXPORT_SYMBOL(mfd_remove_devices);
>  
> +static void devm_mfd_dev_release(struct device *dev, void *res)
> +{
> +	mfd_remove_devices(dev);
> +}
> +
> +/**
> + * devm_mfd_add_devices - Resource managed version of mfd_add_devices()
> + *
> + * Returns 0 on success or an appropriate negative error number on failure.
> + * All child-devices of the MFD will automatically be removed when it gets
> + * unbinded.
> + */
> +int devm_mfd_add_devices(struct device *dev, int id,
> +			 const struct mfd_cell *cells, int n_devs,
> +			 struct resource *mem_base,
> +			 int irq_base, struct irq_domain *domain)
> +{
> +	struct device **ptr;
> +	int ret;
> +
> +	ptr = devres_alloc(devm_mfd_dev_release, sizeof(*ptr), GFP_KERNEL);
> +	if (!ptr)
> +		return -ENOMEM;
> +
> +	ret = mfd_add_devices(dev, id, cells, n_devs, mem_base,
> +			      irq_base, domain);
> +	if (ret < 0) {
> +		devres_free(ptr);
> +		return ret;
> +	}
> +
> +	*ptr = dev;
> +	devres_add(dev, ptr);
> +
> +	return ret;
> +}
> +EXPORT_SYMBOL(devm_mfd_add_devices);
> +
>  int mfd_clone_cell(const char *cell, const char **clones, size_t n_clones)
>  {
>  	struct mfd_cell cell_entry;
> diff --git a/include/linux/mfd/core.h b/include/linux/mfd/core.h
> index bc6f7e0..4a0268a 100644
> --- a/include/linux/mfd/core.h
> +++ b/include/linux/mfd/core.h
> @@ -131,4 +131,8 @@ static inline int mfd_add_hotplug_devices(struct device *parent,
>  
>  extern void mfd_remove_devices(struct device *parent);
>  
> +extern int devm_mfd_add_devices(struct device *dev, int id,
> +				const struct mfd_cell *cells, int n_devs,
> +				struct resource *mem_base,
> +				int irq_base, struct irq_domain *irq_domain);
>  #endif

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

  reply	other threads:[~2016-04-11  9:15 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-07 18:42 [PATCH V2 00/20] mfd: Add devm_ apis for mfd_add_devices and mfd_release_devices Laxman Dewangan
2016-04-07 18:42 ` Laxman Dewangan
2016-04-07 18:42 ` [PATCH V2 01/20] mfd: Add resource managed apis for mfd_add_devices Laxman Dewangan
2016-04-07 18:42   ` Laxman Dewangan
2016-04-11  9:15   ` Lee Jones [this message]
2016-04-07 18:42 ` [PATCH V2 02/20] mfd: Add devm_mfd_add_devices() in list of managed interfaces Laxman Dewangan
2016-04-07 18:42   ` Laxman Dewangan
2016-04-11  9:15   ` Lee Jones
2016-04-07 18:42 ` [PATCH V2 03/20] mfd: act8945a: Use devm_mfd_add_devices() for mfd_device registration Laxman Dewangan
2016-04-07 18:42   ` Laxman Dewangan
2016-04-11  9:15   ` Lee Jones
2016-04-07 18:42 ` [PATCH V2 04/20] mfd: as3711: " Laxman Dewangan
2016-04-07 18:42   ` Laxman Dewangan
2016-04-11  9:15   ` Lee Jones
2016-04-07 18:42 ` [PATCH V2 05/20] mfd: atmel-hlcdc: " Laxman Dewangan
2016-04-07 18:42   ` Laxman Dewangan
2016-04-11  9:15   ` Lee Jones
2016-04-07 18:43 ` [PATCH V2 06/20] mfd: bcm590xx: " Laxman Dewangan
2016-04-07 18:43   ` Laxman Dewangan
2016-04-11  9:15   ` Lee Jones
2016-04-07 18:43 ` [PATCH V2 07/20] mfd: hi6421-pmic: " Laxman Dewangan
2016-04-07 18:43   ` Laxman Dewangan
2016-04-11  9:15   ` Lee Jones
2016-04-07 18:43 ` [PATCH V2 08/20] mfd: lp3943: " Laxman Dewangan
2016-04-07 18:43   ` Laxman Dewangan
2016-04-11  9:16   ` Lee Jones
2016-04-07 18:43 ` [PATCH V2 09/20] mfd: menf21bmc: " Laxman Dewangan
2016-04-07 18:43   ` Laxman Dewangan
2016-04-11  9:16   ` Lee Jones
2016-04-07 18:43 ` [PATCH V2 10/20] mfd: mt6397: " Laxman Dewangan
2016-04-07 18:43   ` Laxman Dewangan
2016-04-11  9:31   ` Lee Jones
2016-04-07 18:43 ` [PATCH V2 11/20] mfd: rdc321x: " Laxman Dewangan
2016-04-07 18:43   ` Laxman Dewangan
2016-04-11  9:31   ` Lee Jones
2016-04-07 18:43 ` [PATCH V2 12/20] mfd: rk808: " Laxman Dewangan
2016-04-07 18:43   ` Laxman Dewangan
2016-04-11  9:31   ` Lee Jones
2016-04-07 18:43 ` [PATCH V2 13/20] mfd: rn5t618: " Laxman Dewangan
2016-04-07 18:43   ` Laxman Dewangan
2016-04-11  9:31   ` Lee Jones
2016-04-07 18:43 ` [PATCH V2 14/20] mfd: rt5033: " Laxman Dewangan
2016-04-07 18:43   ` Laxman Dewangan
2016-04-11  9:31   ` Lee Jones
2016-04-07 18:43 ` [PATCH V2 15/20] mfd: sky81452: " Laxman Dewangan
2016-04-07 18:43   ` Laxman Dewangan
2016-04-11  9:31   ` Lee Jones
2016-04-07 18:43 ` [PATCH V2 16/20] mfd: stw481x: " Laxman Dewangan
2016-04-07 18:43   ` Laxman Dewangan
2016-04-11  9:32   ` Lee Jones
2016-04-07 18:43 ` [PATCH V2 17/20] mfd: tps6507x: " Laxman Dewangan
2016-04-07 18:43   ` Laxman Dewangan
2016-04-11  9:32   ` Lee Jones
2016-04-07 18:43 ` [PATCH V2 18/20] mfd: tps65217: " Laxman Dewangan
2016-04-07 18:43   ` Laxman Dewangan
2016-04-11  9:32   ` Lee Jones
2016-04-07 18:43 ` [PATCH V2 19/20] mfd: tps65910: " Laxman Dewangan
2016-04-07 18:43   ` Laxman Dewangan
2016-04-11  9:32   ` Lee Jones
2016-04-07 18:43 ` [PATCH V2 20/20] mfd: wm8400: " Laxman Dewangan
2016-04-07 18:43   ` Laxman Dewangan
2016-04-11  9:32   ` Lee Jones

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160411091500.GO4592@x1 \
    --to=lee.jones@linaro.org \
    --cc=andreas.werner@men.de \
    --cc=corbet@lwn.net \
    --cc=ldewangan@nvidia.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=patches@opensource.wolfsonmicro.com \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.