From: Julian Scheel <julian@jusst.de>
To: Daniel Mack <daniel@zonque.org>, alsa-devel@alsa-project.org
Cc: Takashi Iwai <tiwai@suse.de>
Subject: Re: [PATCH] ALSA: usb-audio: Recurse before saving terminal properties
Date: Mon, 17 Aug 2015 07:56:48 +0200 [thread overview]
Message-ID: <55D177A0.9020501@jusst.de> (raw)
In-Reply-To: <55D077D0.90005@zonque.org>
Hi Daniel,
On 16.08.15 13:45, Daniel Mack wrote:
> On 08/14/2015 03:25 PM, Julian Scheel wrote:
>> Am 14.08.2015 um 15:06 schrieb Takashi Iwai:
>
>>>> @@ -715,15 +715,16 @@ static int check_input_term(struct mixer_build *state, int id,
>>>> term->name = d->iTerminal;
>>>> } else { /* UAC_VERSION_2 */
>>>> struct uac2_input_terminal_descriptor *d = p1;
>>>> - term->type = le16_to_cpu(d->wTerminalType);
>>>> - term->channels = d->bNrChannels;
>>>> - term->chconfig = le32_to_cpu(d->bmChannelConfig);
>>>> - term->name = d->iTerminal;
>>>>
>>>> /* call recursively to get the clock selectors */
>>>> err = check_input_term(state, d->bCSourceID, term);
>>>> if (err < 0)
>>>> return err;
>>>> +
>>>> + term->type = le16_to_cpu(d->wTerminalType);
>>>> + term->channels = d->bNrChannels;
>>>> + term->chconfig = le32_to_cpu(d->bmChannelConfig);
>>>> + term->name = d->iTerminal;
>>>
>>> ... by this override, essentially all fields except for id are
>>> restored. Then what's the point to call check_input_term() for the
>>> clock source?
>>
>> This is a good point indeed, but due do my understanding the recursion
>> is not about filling missing information, but about verifying a valid
>> descriptor. So in case there are broken references in the descriptor it
>> gets abandoned. I'm happy to be corrected if this understanding is wrong.
>
> Hmm, good point. It' been a while since I worked on this, but looking at
> the code right now, you're right, the mixer unit for input terminal is
> indeed just overridden by the information of the clock selector on UAC2.
> That doesn't seem right.
>
> I guess what we really want is to add a 2nd mixer control in such cases,
> and that would mean we need to call into parse_audio_selector_unit()
> instead.
Ah, you're right. The Clock Selector shall actually be exposed as a
mixer unit. This never happened with the current code, but it just
renamed all other selectors to the name of the clock selector if it existed.
> I can cook up or test a patch next week, when I have access to test
> hardware.
I can update my patch to reflect this as well. If you haven't done
before I'll try to do it later today.
-Julian
next prev parent reply other threads:[~2015-08-17 5:56 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-12 20:14 [PATCH] ALSA: usb-audio: Recurse before saving terminal properties Julian Scheel
2015-08-14 13:06 ` Takashi Iwai
2015-08-14 13:25 ` Julian Scheel
2015-08-16 11:45 ` Daniel Mack
2015-08-17 5:56 ` Julian Scheel [this message]
2015-08-17 8:35 ` Julian Scheel
2015-08-18 8:09 ` Daniel Mack
2015-09-06 15:34 ` Johan Aires Rastén
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=55D177A0.9020501@jusst.de \
--to=julian@jusst.de \
--cc=alsa-devel@alsa-project.org \
--cc=daniel@zonque.org \
--cc=tiwai@suse.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