alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Daniel Mack <daniel@zonque.org>
Cc: orm.finnendahl@selma.hfmdk-frankfurt.de,
	alsa-devel@alsa-project.org, clemens@ladisch.de,
	jan.baumgart@selma.hfmdk-frankfurt.de
Subject: Re: [PATCH 2/2] sound: usb: allow clock source validity interrupts
Date: Sat, 09 Apr 2016 11:51:40 +0200	[thread overview]
Message-ID: <s5hegafcdoz.wl-tiwai@suse.de> (raw)
In-Reply-To: <5708C88B.8080809@zonque.org>

On Sat, 09 Apr 2016 11:16:59 +0200,
Daniel Mack wrote:
> 
> On 04/09/2016 10:52 AM, Takashi Iwai wrote:
> > On Fri, 08 Apr 2016 19:52:02 +0200,
> > Daniel Mack wrote:
> >>
> >> miniDSP USBStreamer UAC2 devices send clock validity changes with the
> >> control field set to zero. The current interrupt handler ignores all
> >> packets if the control field does not match the mixer element's, but
> >> it really should only do that in case that field is needed to
> >> distinguish multiple elements with the same ID.
> >>
> >> This patch implements a logic that lets notifications packets pass
> >> if the element ID is unique for a given device.
> >>
> >> Signed-off-by: Daniel Mack <daniel@zonque.org>
> >> ---
> >>  sound/usb/mixer.c | 9 ++++++++-
> >>  1 file changed, 8 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
> >> index 973274b..aa6f16e 100644
> >> --- a/sound/usb/mixer.c
> >> +++ b/sound/usb/mixer.c
> >> @@ -2371,6 +2371,7 @@ static void snd_usb_mixer_interrupt_v2(struct usb_mixer_interface *mixer,
> >>  	__u8 unitid = (index >> 8) & 0xff;
> >>  	__u8 control = (value >> 8) & 0xff;
> >>  	__u8 channel = value & 0xff;
> >> +	unsigned int count = 0;
> >>  
> >>  	if (channel >= MAX_CHANNELS) {
> >>  		usb_audio_dbg(mixer->chip,
> >> @@ -2379,6 +2380,12 @@ static void snd_usb_mixer_interrupt_v2(struct usb_mixer_interface *mixer,
> >>  		return;
> >>  	}
> >>  
> >> +	for (list = mixer->id_elems[unitid]; list; list = list->next_id_elem)
> >> +		count++;
> >> +
> >> +	if (count == 0)
> >> +		return;
> >> +
> >>  	for (list = mixer->id_elems[unitid]; list; list = list->next_id_elem) {
> >>  		struct usb_mixer_elem_info *info;
> >>  
> >> @@ -2386,7 +2393,7 @@ static void snd_usb_mixer_interrupt_v2(struct usb_mixer_interface *mixer,
> >>  			continue;
> >>  
> >>  		info = (struct usb_mixer_elem_info *)list;
> >> -		if (info->control != control)
> >> +		if (count > 1 && info->control != control)
> >>  			continue;
> > 
> > Just for checking count=0 and count=1, we need no loop to count
> > beforehand.
> > 		if (info->control != control &&
> > 		    (list != mixer->id_elems[unit] ||
> > 		     list->list_next_id_elem))
> > 			continue;
> > 
> > But, this doesn't look better and is more harder to understand, so I'm
> > not willing to sell it :)
> 
> I had something like that before but opted for the more readable
> version. But you're right. I'll add a comment and do it your way.

Oh no, sorry, I wasn't clear: I meant that my version is worse in the
end, and I prefer your first version, just for simplicity.


Takashi

  reply	other threads:[~2016-04-09  9:51 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-08 17:52 [PATCH 1/2] sound: usb: add UAC2 clock sources as mixer controls Daniel Mack
2016-04-08 17:52 ` [PATCH 2/2] sound: usb: allow clock source validity interrupts Daniel Mack
2016-04-09  8:52   ` Takashi Iwai
2016-04-09  9:16     ` Daniel Mack
2016-04-09  9:51       ` Takashi Iwai [this message]
2016-04-09 14:37         ` Daniel Mack
2016-04-09 15:25           ` Takashi Iwai
2016-04-09  8:43 ` [PATCH 1/2] sound: usb: add UAC2 clock sources as mixer controls Takashi Iwai
2016-04-09  9:09   ` Daniel Mack

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=s5hegafcdoz.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=clemens@ladisch.de \
    --cc=daniel@zonque.org \
    --cc=jan.baumgart@selma.hfmdk-frankfurt.de \
    --cc=orm.finnendahl@selma.hfmdk-frankfurt.de \
    /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;
as well as URLs for NNTP newsgroup(s).