All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Cc: alsa-devel@alsa-project.org, clemens@ladisch.de, darrena092@gmail.com
Subject: Re: [PATCH 3/3] bebob: Correction for return value of .put callback
Date: Tue, 22 Jul 2014 16:28:27 +0200	[thread overview]
Message-ID: <s5hk375lb78.wl%tiwai@suse.de> (raw)
In-Reply-To: <53CE74B8.5090101@sakamocchi.jp>

At Tue, 22 Jul 2014 23:27:04 +0900,
Takashi Sakamoto wrote:
> 
> Oops. I miss a line for this patch. Please drop this patch and apply
> another one which I will send now.

Too late.  Submit the incremental fix patch instead, please.


thanks,

Takashi

> 
> 
> Regards
> 
> Takashi Sakamoto
> o-takashi@sakamocchi.jp
> 
> (Jul 22 2014 23:13), Takashi Sakamoto wrote:
> > This commit is for correction of my misunderstanding about return value of
> > .put callback in ALSA Control interface.
> > 
> > According to 'Writing ALSA Driver' (*1), return value of the callback has
> > three patterns; 1: changed, 0: not changed, an negative value: fatal error.
> > 
> > But I misunderstood that it's boolean; zero or nonzero.
> > 
> > *1: Writing an ALSA Driver (2005, Takashi Iwai)
> > http://www.alsa-project.org/main/index.php/ALSA_Driver_Documentation
> > 
> > Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
> > ---
> >  sound/firewire/bebob/bebob_maudio.c | 26 +++++++++++++++++++-------
> >  1 file changed, 19 insertions(+), 7 deletions(-)
> > 
> > diff --git a/sound/firewire/bebob/bebob_maudio.c b/sound/firewire/bebob/bebob_maudio.c
> > index 42e6f22..d6d6ff8 100644
> > --- a/sound/firewire/bebob/bebob_maudio.c
> > +++ b/sound/firewire/bebob/bebob_maudio.c
> > @@ -391,7 +391,10 @@ static int special_clk_ctl_put(struct snd_kcontrol *kctl,
> >  					 params->clk_lock);
> >  	mutex_unlock(&bebob->mutex);
> >  
> > -	return err >= 0;
> > +	if (err >= 0)
> > +		err = 1;
> > +
> > +	return err;
> >  }
> >  static struct snd_kcontrol_new special_clk_ctl = {
> >  	.name	= "Clock Source",
> > @@ -491,14 +494,16 @@ static int special_dig_in_iface_ctl_set(struct snd_kcontrol *kctl,
> >  	unsigned int id, dig_in_fmt, dig_in_iface;
> >  	int err;
> >  
> > -	mutex_lock(&bebob->mutex);
> > -
> >  	id = uval->value.enumerated.item[0];
> > +	if (id >= ARRAY_SIZE(special_dig_in_iface_labels))
> > +		return -EINVAL;
> >  
> >  	/* decode user value */
> >  	dig_in_fmt = (id >> 1) & 0x01;
> >  	dig_in_iface = id & 0x01;
> >  
> > +	mutex_lock(&bebob->mutex);
> > +
> >  	err = avc_maudio_set_special_clk(bebob,
> >  					 params->clk_src,
> >  					 dig_in_fmt,
> > @@ -508,14 +513,17 @@ static int special_dig_in_iface_ctl_set(struct snd_kcontrol *kctl,
> >  		goto end;
> >  
> >  	/* For ADAT, optical interface is only available. */
> > -	if (params->dig_in_fmt > 0)
> > +	if (params->dig_in_fmt > 0) {
> > +		err = 1;
> >  		goto end;
> > +	}
> >  
> >  	/* For S/PDIF, optical/coaxial interfaces are selectable. */
> >  	err = avc_audio_set_selector(bebob->unit, 0x00, 0x04, dig_in_iface);
> >  	if (err < 0)
> >  		dev_err(&bebob->unit->device,
> >  			"fail to set digital input interface: %d\n", err);
> > +	err = 1;
> >  end:
> >  	special_stream_formation_set(bebob);
> >  	mutex_unlock(&bebob->mutex);
> > @@ -567,16 +575,20 @@ static int special_dig_out_iface_ctl_set(struct snd_kcontrol *kctl,
> >  	unsigned int id;
> >  	int err;
> >  
> > -	mutex_lock(&bebob->mutex);
> > -
> >  	id = uval->value.enumerated.item[0];
> > +	if (id >= ARRAY_SIZE(special_dig_out_iface_labels))
> > +		return -EINVAL;
> > +
> > +	mutex_lock(&bebob->mutex);
> >  
> >  	err = avc_maudio_set_special_clk(bebob,
> >  					 params->clk_src,
> >  					 params->dig_in_fmt,
> >  					 id, params->clk_lock);
> > -	if (err >= 0)
> > +	if (err >= 0) {
> >  		special_stream_formation_set(bebob);
> > +		err = 1;
> > +	}
> >  
> >  	mutex_unlock(&bebob->mutex);
> >  	return err;
> > 
> 

  reply	other threads:[~2014-07-22 14:28 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-20  4:50 [PATCH -next] ALSA: bebob: Fix missing unlock on error in special_clk_ctl_put() weiyj_lk
2014-07-20  7:51 ` Takashi Sakamoto
2014-07-21  2:09 ` [PATCH 0/6] bebob: Improvements for M-Audio specific operations Takashi Sakamoto
2014-07-21  2:10   ` [PATCH 1/6] bebob: Arrangement for critical section to be shorter Takashi Sakamoto
2014-07-21  2:10   ` [PATCH 2/6] bebob: Reducing function callers for simplicity Takashi Sakamoto
2014-07-21  2:10   ` [PATCH 3/6] bebob: Add dev_err() for debugging Takashi Sakamoto
2014-07-21 10:02     ` Takashi Iwai
2014-07-21  2:10   ` [PATCH 4/6] bebob: Use different labels for digital input/output interfaces Takashi Sakamoto
2014-07-21  9:58     ` Takashi Iwai
2014-07-21 10:49       ` Takashi Sakamoto
2014-07-21  2:10   ` [PATCH 5/6] bebob: Correction for return value of .put callback functions Takashi Sakamoto
2014-07-21  2:10   ` [PATCH 6/6] bebob: Arrangement for a control element to which two settings relate Takashi Sakamoto
2014-07-21  7:06   ` [PATCH 0/6] bebob: Improvements for M-Audio specific operations Takashi Iwai
2014-07-21  9:50     ` Takashi Sakamoto
2014-07-21  9:59       ` Takashi Iwai
2014-07-22 14:11 ` [PATCH 1/3] bebob: Fix a missing to unlock mutex in error handling case Takashi Sakamoto
2014-07-22 14:13   ` [PATCH 2/3] bebob: Use different labels for digital input/output Takashi Sakamoto
2014-07-22 14:13   ` [PATCH 3/3] bebob: Correction for return value of .put callback Takashi Sakamoto
2014-07-22 14:27     ` Takashi Sakamoto
2014-07-22 14:28       ` Takashi Iwai [this message]
2014-07-22 14:26   ` [PATCH 1/3] bebob: Fix a missing to unlock mutex in error handling case Takashi Iwai
2014-07-22 15:23     ` Takashi Sakamoto
2014-07-22 15:02   ` [PATCH] ALSA: bebob: Correction for return value of special_clk_ctl_put() in error Takashi Sakamoto
2014-07-22 15:37     ` 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=s5hk375lb78.wl%tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=clemens@ladisch.de \
    --cc=darrena092@gmail.com \
    --cc=o-takashi@sakamocchi.jp \
    /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.