All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lars-Peter Clausen <lars@metafoo.de>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: alsa-devel@alsa-project.org,
	Rajeev Kumar <rajeev-dlh.kumar@st.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Vipin Kumar <vipin.kumar@st.com>, Mark Brown <broonie@kernel.org>,
	kernel@pengutronix.de
Subject: Re: [PATCH] ASoC: SPEAr spdif_{in, out}: use devm for clk and a few more cleanups
Date: Wed, 12 Jun 2013 17:50:50 +0200	[thread overview]
Message-ID: <51B898DA.8020301@metafoo.de> (raw)
In-Reply-To: <1368006458-20438-1-git-send-email-u.kleine-koenig@pengutronix.de>

On 05/08/2013 11:47 AM, Uwe Kleine-König wrote:
> Drop dev_set_drvdata as this is handled in the core and use
> devm_request_and_ioremap instead of devm_ioremap to properly register the
> address range used
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

Btw, the patch added a couple of warnings and one build error:

sound/soc/spear/spdif_in.c: In function 'spdif_in_remove':
sound/soc/spear/spdif_in.c:272:23: warning: unused variable 'host'
  CC      sound/soc/spear/spdif_out.o
sound/soc/spear/spdif_out.c: In function 'spdif_out_probe':
sound/soc/spear/spdif_out.c:302:5: warning: passing argument 2 of
'devm_request_and_ioremap' makes pointer from integer without a cast
include/linux/device.h:576:15: note: expected 'struct resource *' but
argument is of type 'resource_size_t'
sound/soc/spear/spdif_out.c:302:5: error: too many arguments to function
'devm_request_and_ioremap'
include/linux/device.h:576:15: note: declared here
sound/soc/spear/spdif_out.c: In function 'spdif_out_remove':



> ---
>  sound/soc/spear/spdif_in.c  | 17 ++---------------
>  sound/soc/spear/spdif_out.c | 17 +++--------------
>  2 files changed, 5 insertions(+), 29 deletions(-)
> 
> diff --git a/sound/soc/spear/spdif_in.c b/sound/soc/spear/spdif_in.c
> index c7c4b20..d40bb34 100644
> --- a/sound/soc/spear/spdif_in.c
> +++ b/sound/soc/spear/spdif_in.c
> @@ -231,7 +231,7 @@ static int spdif_in_probe(struct platform_device *pdev)
>  	if (host->irq < 0)
>  		return -EINVAL;
>  
> -	host->clk = clk_get(&pdev->dev, NULL);
> +	host->clk = devm_clk_get(&pdev->dev, NULL);
>  	if (IS_ERR(host->clk))
>  		return PTR_ERR(host->clk);
>  
> @@ -253,33 +253,20 @@ static int spdif_in_probe(struct platform_device *pdev)
>  	ret = devm_request_irq(&pdev->dev, host->irq, spdif_in_irq, 0,
>  			"spdif-in", host);
>  	if (ret) {
> -		clk_put(host->clk);
>  		dev_warn(&pdev->dev, "request_irq failed\n");
>  		return ret;
>  	}
>  
> -	ret = snd_soc_register_dai(&pdev->dev, &spdif_in_dai);
> -	if (ret != 0) {
> -		clk_put(host->clk);
> -		return ret;
> -	}
> -
> -	return 0;
> +	return snd_soc_register_dai(&pdev->dev, &spdif_in_dai);
>  }
>  
>  static int spdif_in_remove(struct platform_device *pdev)
>  {
> -	struct spdif_in_dev *host = dev_get_drvdata(&pdev->dev);
> -
>  	snd_soc_unregister_dai(&pdev->dev);
> -	dev_set_drvdata(&pdev->dev, NULL);
> -
> -	clk_put(host->clk);
>  
>  	return 0;
>  }
>  
> -
>  static struct platform_driver spdif_in_driver = {
>  	.probe		= spdif_in_probe,
>  	.remove		= spdif_in_remove,
> diff --git a/sound/soc/spear/spdif_out.c b/sound/soc/spear/spdif_out.c
> index 5eac4cd..b2488b4 100644
> --- a/sound/soc/spear/spdif_out.c
> +++ b/sound/soc/spear/spdif_out.c
> @@ -293,14 +293,14 @@ static int spdif_out_probe(struct platform_device *pdev)
>  		return -ENOMEM;
>  	}
>  
> -	host->io_base = devm_ioremap(&pdev->dev, res->start,
> +	host->io_base = devm_request_and_ioremap(&pdev->dev, res->start,
>  				resource_size(res));
>  	if (!host->io_base) {
>  		dev_warn(&pdev->dev, "ioremap failed\n");
>  		return -ENOMEM;
>  	}
>  
> -	host->clk = clk_get(&pdev->dev, NULL);
> +	host->clk = devm_clk_get(&pdev->dev, NULL);
>  	if (IS_ERR(host->clk))
>  		return PTR_ERR(host->clk);
>  
> @@ -314,23 +314,12 @@ static int spdif_out_probe(struct platform_device *pdev)
>  
>  	dev_set_drvdata(&pdev->dev, host);
>  
> -	ret = snd_soc_register_dai(&pdev->dev, &spdif_out_dai);
> -	if (ret != 0) {
> -		clk_put(host->clk);
> -		return ret;
> -	}
> -
> -	return 0;
> +	return snd_soc_register_dai(&pdev->dev, &spdif_out_dai);
>  }
>  
>  static int spdif_out_remove(struct platform_device *pdev)
>  {
> -	struct spdif_out_dev *host = dev_get_drvdata(&pdev->dev);
> -
>  	snd_soc_unregister_dai(&pdev->dev);
> -	dev_set_drvdata(&pdev->dev, NULL);
> -
> -	clk_put(host->clk);
>  
>  	return 0;
>  }

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  parent reply	other threads:[~2013-06-12 15:50 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-08  9:47 [PATCH] ASoC: SPEAr spdif_{in, out}: use devm for clk and a few more cleanups Uwe Kleine-König
2013-05-08 10:52 ` Mark Brown
2013-06-12 15:50 ` Lars-Peter Clausen [this message]
2013-06-12 20:18   ` [PATCH] ASoC: SPEAr spdif_{in, out}: fix fallout of previous cleanup Uwe Kleine-König
2013-06-13  9:26     ` Mark Brown

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=51B898DA.8020301@metafoo.de \
    --to=lars@metafoo.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=kernel@pengutronix.de \
    --cc=lgirdwood@gmail.com \
    --cc=rajeev-dlh.kumar@st.com \
    --cc=u.kleine-koenig@pengutronix.de \
    --cc=vipin.kumar@st.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.