Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Ondrej Zary <linux@rainbow-software.org>
Cc: alsa-devel@alsa-project.org
Subject: Re: [PATCH 1/2] snd-cs8427: separate HW initialization
Date: Thu, 03 Apr 2014 08:22:46 +0200	[thread overview]
Message-ID: <s5h61mrdj9l.wl%tiwai@suse.de> (raw)
In-Reply-To: <1396470933-2618-1-git-send-email-linux@rainbow-software.org>

At Wed,  2 Apr 2014 22:35:32 +0200,
Ondrej Zary wrote:
> 
> Separate HW initialization from device creation.
> This is needed for suspend/resume support.
> 
> Signed-off-by: Ondrej Zary <linux@rainbow-software.org>

Could you make your patch checkpatch-clean?


thanks,

Takashi

> ---
>  include/sound/cs8427.h |    1 +
>  sound/i2c/cs8427.c     |   57 ++++++++++++++++++++++++++++++++--------------
--
>  2 files changed, 39 insertions(+), 19 deletions(-)
> 
> diff --git a/include/sound/cs8427.h b/include/sound/cs8427.h
> index f862cff..0b6a187 100644
> --- a/include/sound/cs8427.h
> +++ b/include/sound/cs8427.h
> @@ -188,6 +188,7 @@
>  
>  struct snd_pcm_substream;
>  
> +int snd_cs8427_init(struct snd_i2c_bus *bus, struct snd_i2c_device *device);
>  int snd_cs8427_create(struct snd_i2c_bus *bus, unsigned char addr,
>  		      unsigned int reset_timeout, struct snd_i2c_device **r_cs8427);
>  int snd_cs8427_reg_write(struct snd_i2c_device *device, unsigned char reg,
> diff --git a/sound/i2c/cs8427.c b/sound/i2c/cs8427.c
> index 6c2dc38..d9c15d9 100644
> --- a/sound/i2c/cs8427.c
> +++ b/sound/i2c/cs8427.c
> @@ -150,10 +150,8 @@ static void snd_cs8427_free(struct snd_i2c_device *device)
>  	kfree(device->private_data);
>  }
>  
> -int snd_cs8427_create(struct snd_i2c_bus *bus,
> -		      unsigned char addr,
> -		      unsigned int reset_timeout,
> -		      struct snd_i2c_device **r_cs8427)
> +int snd_cs8427_init(struct snd_i2c_bus *bus,
> +		    struct snd_i2c_device *device)
>  {
>  	static unsigned char initvals1[] = {
>  	  CS8427_REG_CONTROL1 | CS8427_REG_AUTOINC,
> @@ -200,22 +198,10 @@ int snd_cs8427_create(struct snd_i2c_bus *bus,
>  	     Inhibit E->F transfers. */
>  	  CS8427_UD | CS8427_EFTUI | CS8427_DETUI,
>  	};
> +	struct cs8427 *chip = device->private_data;
>  	int err;
> -	struct cs8427 *chip;
> -	struct snd_i2c_device *device;
>  	unsigned char buf[24];
>  
> -	if ((err = snd_i2c_device_create(bus, "CS8427",
> -					 CS8427_ADDR | (addr & 7),
> -					 &device)) < 0)
> -		return err;
> -	chip = device->private_data = kzalloc(sizeof(*chip), GFP_KERNEL);
> -	if (chip == NULL) {
> -	      	snd_i2c_device_free(device);
> -		return -ENOMEM;
> -	}
> -	device->private_free = snd_cs8427_free;
> -	
>  	snd_i2c_lock(bus);
>  	err = snd_cs8427_reg_read(device, CS8427_REG_ID_AND_VER);
>  	if (err != CS8427_VER8427A) {
> @@ -264,10 +250,44 @@ int snd_cs8427_create(struct snd_i2c_bus *bus,
>  	snd_i2c_unlock(bus);
>  
>  	/* turn on run bit and rock'n'roll */
> +	snd_cs8427_reset(device);
> +
> +	return 0;
> +
> +      __fail:
> +	snd_i2c_unlock(bus);
> +
> +	return err;
> +}
> +
> +EXPORT_SYMBOL(snd_cs8427_init);
> +
> +int snd_cs8427_create(struct snd_i2c_bus *bus,
> +		      unsigned char addr,
> +		      unsigned int reset_timeout,
> +		      struct snd_i2c_device **r_cs8427)
> +{
> +	int err;
> +	struct cs8427 *chip;
> +	struct snd_i2c_device *device;
> +
> +	if ((err = snd_i2c_device_create(bus, "CS8427",
> +					 CS8427_ADDR | (addr & 7),
> +					 &device)) < 0)
> +		return err;
> +	chip = device->private_data = kzalloc(sizeof(*chip), GFP_KERNEL);
> +	if (chip == NULL) {
> +		snd_i2c_device_free(device);
> +		return -ENOMEM;
> +	}
> +	device->private_free = snd_cs8427_free;
> +
>  	if (reset_timeout < 1)
>  		reset_timeout = 1;
>  	chip->reset_timeout = reset_timeout;
> -	snd_cs8427_reset(device);
> +
> +	if ((err = snd_cs8427_init(bus, device)))
> +		goto __fail;
>  
>  #if 0	// it's nice for read tests
>  	{
> @@ -286,7 +306,6 @@ int snd_cs8427_create(struct snd_i2c_bus *bus,
>  	return 0;
>  
>        __fail:
> -      	snd_i2c_unlock(bus);
>        	snd_i2c_device_free(device);
>        	return err < 0 ? err : -EIO;
>  }
> -- 
> Ondrej Zary
> 
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 

  parent reply	other threads:[~2014-04-03  6:22 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-02 20:35 [PATCH 1/2] snd-cs8427: separate HW initialization Ondrej Zary
2014-04-02 20:35 ` [PATCH 2/2] snd-ice1712: Add S/PDIF suspend support for ICE1712-based M-Audio cards Ondrej Zary
2014-04-03  6:22 ` Takashi Iwai [this message]
2014-04-03  7:13 ` [PATCH v2] snd-cs8427: separate HW initialization Ondrej Zary
2014-04-03  9:32   ` Takashi Iwai
2014-04-03 12:49     ` Ondrej Zary
2014-04-03 13:00       ` Takashi Iwai

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=s5h61mrdj9l.wl%tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=linux@rainbow-software.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