All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guenter Roeck <linux@roeck-us.net>
To: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>,
	linux-watchdog@vger.kernel.org, devicetree@vger.kernel.org
Cc: Wim Van Sebroeck <wim@iguana.be>,
	Jason Gunthorpe <jgunthorpe@obsidianresearch.com>,
	Andrew Lunn <andrew@lunn.ch>,
	Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
	Gregory Clement <gregory.clement@free-electrons.com>,
	Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
	Lior Amsalem <alior@marvell.com>,
	Tawfik Bayouk <tawfik@marvell.com>
Subject: Re: [PATCH v2 1/7] watchdog: orion: Introduce a SoC-specific RSTOUT mapping
Date: Sun, 09 Mar 2014 19:09:11 -0700	[thread overview]
Message-ID: <531D1EC7.4090701@roeck-us.net> (raw)
In-Reply-To: <1393949244-5011-2-git-send-email-ezequiel.garcia@free-electrons.com>

On 03/04/2014 08:07 AM, Ezequiel Garcia wrote:
> This commit separates the RSTOUT register mapping for the different
> compatible strings supported by the driver. This is needed as
> preparation work to support other SoCs.
>
> Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
> ---
>   drivers/watchdog/orion_wdt.c | 28 +++++++++++++++++++++-------
>   1 file changed, 21 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/watchdog/orion_wdt.c b/drivers/watchdog/orion_wdt.c
> index 6f9b4c6..383da34 100644
> --- a/drivers/watchdog/orion_wdt.c
> +++ b/drivers/watchdog/orion_wdt.c
> @@ -263,10 +263,6 @@ static void __iomem *orion_wdt_ioremap_rstout(struct platform_device *pdev,
>   		return devm_ioremap(&pdev->dev, res->start,
>   				    resource_size(res));
>
> -	/* This workaround works only for "orion-wdt", DT-enabled */
> -	if (!of_device_is_compatible(pdev->dev.of_node, "marvell,orion-wdt"))
> -		return NULL;
> -
>   	rstout = internal_regs + ORION_RSTOUT_MASK_OFFSET;
>
>   	WARN(1, FW_BUG "falling back to harcoded RSTOUT reg %pa\n", &rstout);
> @@ -317,6 +313,7 @@ MODULE_DEVICE_TABLE(of, orion_wdt_of_match_table);
>   static int orion_wdt_probe(struct platform_device *pdev)
>   {
>   	struct orion_watchdog *dev;
> +	struct device_node *node = pdev->dev.of_node;
>   	const struct of_device_id *match;
>   	unsigned int wdt_max_duration;	/* (seconds) */
>   	struct resource *res;
> @@ -346,10 +343,27 @@ static int orion_wdt_probe(struct platform_device *pdev)
>   	if (!dev->reg)
>   		return -ENOMEM;
>
> -	dev->rstout = orion_wdt_ioremap_rstout(pdev, res->start &
> -						     INTERNAL_REGS_MASK);
> -	if (!dev->rstout)
> +	if (of_device_is_compatible(node, "marvell,orion-wdt")) {
> +
> +		dev->rstout = orion_wdt_ioremap_rstout(pdev, res->start &
> +						       INTERNAL_REGS_MASK);
> +		if (!dev->rstout)
> +			return -ENODEV;
> +
> +	} else if (of_device_is_compatible(node, "marvell,armada-370-wdt") ||
> +		   of_device_is_compatible(node, "marvell,armada-xp-wdt")) {
> +
> +		res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
> +		if (!res)
> +			return -ENODEV;
> +		dev->rstout = devm_ioremap(&pdev->dev, res->start,
> +					   resource_size(res));

Better use devm_ioremap_resource, and then you don't have to check for
the error from platform_get_resource() since devm_ioremap_resource()
takes care of it.

The same change should be made for the other calls call to devm_ioremap;
different patch though.

On a side note, the resource is always assigned, only a workaround exists
for "marvell,orion-wdt" if it isn't. Wonder if it would make sense
to move the calls to platform_get_resource and devm_ioremap[_resource]
further up and have it just in this function.


> +		if (!dev->rstout)
> +			return -ENOMEM;
> +
> +	} else {
>   		return -ENODEV;

Is this stricter than the original code on purpose ?

Previously the driver would instantiate successfully in this case
as long as IORESOURCE_MEM, 1 was defined.


> +	}
>
>   	ret = dev->data->clock_init(pdev, dev);
>   	if (ret) {
>


WARNING: multiple messages have this Message-ID (diff)
From: Guenter Roeck <linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
To: Ezequiel Garcia
	<ezequiel.garcia-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	linux-watchdog-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: Wim Van Sebroeck <wim-IQzOog9fTRqzQB+pC5nmwQ@public.gmane.org>,
	Jason Gunthorpe
	<jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>,
	Andrew Lunn <andrew-g2DYL2Zd6BY@public.gmane.org>,
	Sebastian Hesselbarth
	<sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Gregory Clement
	<gregory.clement-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	Thomas Petazzoni
	<thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	Lior Amsalem <alior-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org>,
	Tawfik Bayouk <tawfik-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org>
Subject: Re: [PATCH v2 1/7] watchdog: orion: Introduce a SoC-specific RSTOUT mapping
Date: Sun, 09 Mar 2014 19:09:11 -0700	[thread overview]
Message-ID: <531D1EC7.4090701@roeck-us.net> (raw)
In-Reply-To: <1393949244-5011-2-git-send-email-ezequiel.garcia-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>

On 03/04/2014 08:07 AM, Ezequiel Garcia wrote:
> This commit separates the RSTOUT register mapping for the different
> compatible strings supported by the driver. This is needed as
> preparation work to support other SoCs.
>
> Signed-off-by: Ezequiel Garcia <ezequiel.garcia-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
> ---
>   drivers/watchdog/orion_wdt.c | 28 +++++++++++++++++++++-------
>   1 file changed, 21 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/watchdog/orion_wdt.c b/drivers/watchdog/orion_wdt.c
> index 6f9b4c6..383da34 100644
> --- a/drivers/watchdog/orion_wdt.c
> +++ b/drivers/watchdog/orion_wdt.c
> @@ -263,10 +263,6 @@ static void __iomem *orion_wdt_ioremap_rstout(struct platform_device *pdev,
>   		return devm_ioremap(&pdev->dev, res->start,
>   				    resource_size(res));
>
> -	/* This workaround works only for "orion-wdt", DT-enabled */
> -	if (!of_device_is_compatible(pdev->dev.of_node, "marvell,orion-wdt"))
> -		return NULL;
> -
>   	rstout = internal_regs + ORION_RSTOUT_MASK_OFFSET;
>
>   	WARN(1, FW_BUG "falling back to harcoded RSTOUT reg %pa\n", &rstout);
> @@ -317,6 +313,7 @@ MODULE_DEVICE_TABLE(of, orion_wdt_of_match_table);
>   static int orion_wdt_probe(struct platform_device *pdev)
>   {
>   	struct orion_watchdog *dev;
> +	struct device_node *node = pdev->dev.of_node;
>   	const struct of_device_id *match;
>   	unsigned int wdt_max_duration;	/* (seconds) */
>   	struct resource *res;
> @@ -346,10 +343,27 @@ static int orion_wdt_probe(struct platform_device *pdev)
>   	if (!dev->reg)
>   		return -ENOMEM;
>
> -	dev->rstout = orion_wdt_ioremap_rstout(pdev, res->start &
> -						     INTERNAL_REGS_MASK);
> -	if (!dev->rstout)
> +	if (of_device_is_compatible(node, "marvell,orion-wdt")) {
> +
> +		dev->rstout = orion_wdt_ioremap_rstout(pdev, res->start &
> +						       INTERNAL_REGS_MASK);
> +		if (!dev->rstout)
> +			return -ENODEV;
> +
> +	} else if (of_device_is_compatible(node, "marvell,armada-370-wdt") ||
> +		   of_device_is_compatible(node, "marvell,armada-xp-wdt")) {
> +
> +		res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
> +		if (!res)
> +			return -ENODEV;
> +		dev->rstout = devm_ioremap(&pdev->dev, res->start,
> +					   resource_size(res));

Better use devm_ioremap_resource, and then you don't have to check for
the error from platform_get_resource() since devm_ioremap_resource()
takes care of it.

The same change should be made for the other calls call to devm_ioremap;
different patch though.

On a side note, the resource is always assigned, only a workaround exists
for "marvell,orion-wdt" if it isn't. Wonder if it would make sense
to move the calls to platform_get_resource and devm_ioremap[_resource]
further up and have it just in this function.


> +		if (!dev->rstout)
> +			return -ENOMEM;
> +
> +	} else {
>   		return -ENODEV;

Is this stricter than the original code on purpose ?

Previously the driver would instantiate successfully in this case
as long as IORESOURCE_MEM, 1 was defined.


> +	}
>
>   	ret = dev->data->clock_init(pdev, dev);
>   	if (ret) {
>

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2014-03-10  2:09 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-04 16:07 [PATCH v2 0/7] Watchdog support for Armada 375/38x SoC Ezequiel Garcia
2014-03-04 16:07 ` Ezequiel Garcia
2014-03-04 16:07 ` [PATCH v2 1/7] watchdog: orion: Introduce a SoC-specific RSTOUT mapping Ezequiel Garcia
2014-03-04 16:07   ` Ezequiel Garcia
2014-03-10  2:09   ` Guenter Roeck [this message]
2014-03-10  2:09     ` Guenter Roeck
2014-03-11 20:06     ` Ezequiel Garcia
2014-03-11 20:06       ` Ezequiel Garcia
2014-03-04 16:07 ` [PATCH v2 2/7] watchdog: orion: Introduce per-SoC stop() function Ezequiel Garcia
2014-03-04 16:07   ` Ezequiel Garcia
2014-03-10  2:30   ` Guenter Roeck
2014-03-10  2:30     ` Guenter Roeck
2014-03-04 16:07 ` [PATCH v2 3/7] watchdog: orion: Introduce per-SoC enabled() function Ezequiel Garcia
2014-03-04 16:07   ` Ezequiel Garcia
2014-03-10  2:30   ` Guenter Roeck
2014-03-10  2:30     ` Guenter Roeck
2014-03-04 16:07 ` [PATCH v2 4/7] watchdog: orion: Add Armada 375/380 SoC support Ezequiel Garcia
2014-03-04 16:07   ` Ezequiel Garcia
2014-03-10  2:12   ` Guenter Roeck
2014-03-10  2:12     ` Guenter Roeck
2014-03-11 20:16     ` Ezequiel Garcia
2014-03-11 20:16       ` Ezequiel Garcia
2014-03-04 16:07 ` [PATCH v2 5/7] ARM: mvebu: Enable Armada 375 watchdog in the devicetree Ezequiel Garcia
2014-03-04 16:07   ` Ezequiel Garcia
2014-03-04 16:07 ` [PATCH v2 6/7] ARM: mvebu: Enable Armada 380/385 " Ezequiel Garcia
2014-03-04 16:07   ` Ezequiel Garcia
2014-03-04 16:07 ` [PATCH v2 7/7] ARM: mvebu: Add A375/A380 watchdog binding documentation Ezequiel Garcia
2014-03-04 16:07   ` Ezequiel Garcia
2014-03-04 17:53 ` [PATCH v2 0/7] Watchdog support for Armada 375/38x SoC Jason Cooper
2014-03-04 17:53   ` Jason Cooper
2014-03-04 20:03   ` Ezequiel Garcia
2014-03-04 20:03     ` Ezequiel Garcia
2014-03-07  0:13 ` Ezequiel Garcia
2014-03-07  0:13   ` Ezequiel Garcia
2014-03-11 21:45   ` Jason Gunthorpe
2014-03-11 21:45     ` Jason Gunthorpe
2014-03-12 21:12     ` Ezequiel Garcia
2014-03-12 21:12       ` Ezequiel Garcia

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=531D1EC7.4090701@roeck-us.net \
    --to=linux@roeck-us.net \
    --cc=alior@marvell.com \
    --cc=andrew@lunn.ch \
    --cc=devicetree@vger.kernel.org \
    --cc=ezequiel.garcia@free-electrons.com \
    --cc=gregory.clement@free-electrons.com \
    --cc=jgunthorpe@obsidianresearch.com \
    --cc=linux-watchdog@vger.kernel.org \
    --cc=sebastian.hesselbarth@gmail.com \
    --cc=tawfik@marvell.com \
    --cc=thomas.petazzoni@free-electrons.com \
    --cc=wim@iguana.be \
    /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.