From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] mfd: syscon: Decouple syscon interface from syscon devices
Date: Mon, 1 Sep 2014 08:49:18 +0100 [thread overview]
Message-ID: <20140901074918.GB6226@lee--X1> (raw)
In-Reply-To: <1408694991-21615-1-git-send-email-pankaj.dubey@samsung.com>
On Fri, 22 Aug 2014, Pankaj Dubey wrote:
> From: Tomasz Figa <t.figa@samsung.com>
>
> Currently a syscon entity can be only registered directly through a
> platform device that binds to a dedicated driver. However in certain use
> cases it is desirable to make a device used with another driver a syscon
> interface provider. For example, certain SoCs (e.g. Exynos) contain
> system controller blocks which perform various functions such as power
> domain control, CPU power management, low power mode control, but in
> addition contain certain IP integration glue, such as various signal
> masks, coprocessor power control, etc. In such case, there is a need to
> have a dedicated driver for such system controller but also share
> registers with other drivers. The latter is where the syscon interface
> is helpful.
>
> This patch decouples syscon object from syscon driver, so that it can be
> registered from any driver in addition to the original "syscon" platform
> driver.
>
> Signed-off-by: Tomasz Figa <t.figa@samsung.com>
> Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
> ---
>
> RFC patch [1] was posted by Tomasz Figa. This patch addresses some of
> comments given by Arnd to RFC patch, and further decouples syscon from
> device model. It also gives flexibility of registering with syscon at
> early stage using device_node object.
It would be helpful if Arnd gave this revision his blessing (Ack).
> [1]: https://lkml.org/lkml/2014/6/17/331
>
> drivers/mfd/syscon.c | 112 ++++++++++++++++++++++++++++----------------
> include/linux/mfd/syscon.h | 14 ++++++
> 2 files changed, 86 insertions(+), 40 deletions(-)
>
> diff --git a/drivers/mfd/syscon.c b/drivers/mfd/syscon.c
> index ca15878..a91db30 100644
> --- a/drivers/mfd/syscon.c
> +++ b/drivers/mfd/syscon.c
> @@ -14,6 +14,7 @@
[...]
> struct regmap *syscon_regmap_lookup_by_pdevname(const char *s)
> {
> - struct device *dev;
> - struct syscon *syscon;
> -
> - dev = driver_find_device(&syscon_driver.driver, NULL, (void *)s,
> - syscon_match_pdevname);
> - if (!dev)
> - return ERR_PTR(-EPROBE_DEFER);
> -
> - syscon = dev_get_drvdata(dev);
> + struct syscon *entry, *syscon = NULL;
> + struct platform_device *pdev = NULL;
> +
> + spin_lock(&syscon_list_slock);
> + list_for_each_entry(entry, &syscon_list, list) {
> + pdev = of_find_device_by_node(entry->np);
White space error.
Did you run this through checkpatch.pl?
> + if (pdev && !strcmp(dev_name(&pdev->dev), s)) {
> + syscon = entry;
> + break;
> + }
> + }
> + spin_unlock(&syscon_list_slock);
>
> - return syscon->regmap;
> + return syscon ? syscon->regmap : ERR_PTR(-EPROBE_DEFER);
> }
> EXPORT_SYMBOL_GPL(syscon_regmap_lookup_by_pdevname);
[...]
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
next prev parent reply other threads:[~2014-09-01 7:49 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-22 8:09 [PATCH] mfd: syscon: Decouple syscon interface from syscon devices Pankaj Dubey
2014-09-01 4:28 ` Pankaj Dubey
2014-09-01 7:49 ` Lee Jones [this message]
2014-09-01 10:37 ` Arnd Bergmann
2014-09-01 11:25 ` Lee Jones
2014-09-01 14:24 ` Arnd Bergmann
2014-09-01 16:04 ` Lee Jones
2014-09-01 17:05 ` Arnd Bergmann
2014-09-02 8:05 ` Lee Jones
2014-09-02 8:14 ` Arnd Bergmann
2014-09-02 8:32 ` Pankaj Dubey
2014-09-02 8:34 ` Lee Jones
2014-09-01 11:35 ` Pankaj Dubey
2014-09-01 14:18 ` Arnd Bergmann
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=20140901074918.GB6226@lee--X1 \
--to=lee.jones@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox