From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: AIpwx4/PftuMkX38gK/aplDNDyC+KECU8oLONNzvglrTCAp8RLMQwdaEPyMaWOT7S9sylr1S423r ARC-Seal: i=1; a=rsa-sha256; t=1524485980; cv=none; d=google.com; s=arc-20160816; b=yC/IMhsyPr6ibGzDg3F91lulXexslcGfvAbE8E6XsAcEmAnHsxksOgf5G4wz4SxVMY 09EWoInZeBXv8LoeNEiZJCOX++T+Hbvbk5DLiIUSXs0nPs0GQRCriPVgdDuROjt2Xu4z Gqd3zd2LVuVdqc1izJUitOz5HX5VGcuUNL0u2WAKiSHG1UvgzSW4bUEyV7pgEVRlL1iN nipE7vYTB6qnwvyh2Q7RT5EkBcvL2i/9k8iVA3S2c1LuBWCDLgKwUoIbQYcdag8LCbKn 5hBZCSabg5+5ajLuYIQo8uqibE2xjsrYSX8pg7EUo7Qs73evUu/2lbKrwfsYkt+mjbMG qlhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:arc-authentication-results; bh=GktRFESay/nmbN9m4LuYkamPWeI3kMK0yBIU3qiFn5w=; b=QfuiL644tMNVOl2RKXf1/FbZW71Sv9FbId3fEiixDK6sViw04Y3xNVgOiId5gU4K3P kFmH56nJCQb09QgG7SKF4zXdnpmS+Hd790WgFY2EZ9Nw0XRAH3YQ9vD9l+ZI+DXCXu91 jkSaji0hQ6biTZ8H20WaZ2lQCbqkeAOOupx5rlsYF7qkCya7ijG/VBq9xJVmWshLwUqc MmKyKDtZYtsOTBR5cjhXMpPOpPDvXakqeDfYQQ9VR3u1YcZep8oIcbaQDtU8gT3dfzEU mJY1kDt1Ks5cBPhTOOcmUdEEQ95bt1kOORS06+q71MvccCCLYyxAyjD9Gub6b+sb4fbk fEUg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of tiwai@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=tiwai@suse.de Authentication-Results: mx.google.com; spf=pass (google.com: domain of tiwai@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=tiwai@suse.de Date: Mon, 23 Apr 2018 14:19:38 +0200 Message-ID: From: Takashi Iwai To: "Jorge Sanjuan" Cc: , , Subject: Re: [PATCH 4/4] ALSA: usb-audio: UAC3 Add support for connector insertion. In-Reply-To: <20180420170327.31569-5-jorge.sanjuan@codethink.co.uk> References: <20180420170327.31569-1-jorge.sanjuan@codethink.co.uk> <20180420170327.31569-5-jorge.sanjuan@codethink.co.uk> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/25.3 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1598285490123572261?= X-GMAIL-MSGID: =?utf-8?q?1598539410862429238?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: On Fri, 20 Apr 2018 19:03:27 +0200, Jorge Sanjuan wrote: > > diff --git a/include/linux/usb/audio-v3.h b/include/linux/usb/audio-v3.h > index a8959aaba0ae..6cedb6d499ba 100644 > --- a/include/linux/usb/audio-v3.h > +++ b/include/linux/usb/audio-v3.h > @@ -221,6 +221,12 @@ struct uac3_iso_endpoint_descriptor { > __le16 wLockDelay; > } __attribute__((packed)); > > +/* 5.2.1.6.1 INSERTION CONTROL PARAMETER BLOCK */ > +struct uac3_insertion_ctl_blk { > + __u8 bSize; > + __u8 bmConInserted[1]; Do we need to declare this as an array? > static struct snd_kcontrol_new usb_feature_unit_ctl = { > .iface = SNDRV_CTL_ELEM_IFACE_MIXER, > .name = "", /* will be filled later manually */ > @@ -1322,6 +1367,15 @@ static struct snd_kcontrol_new usb_bool_master_control_ctl_ro = { > .put = NULL, > }; > > +static struct snd_kcontrol_new usb_connector_ctl_ro = { Put const. > @@ -1904,16 +1966,29 @@ static int parse_audio_input_terminal(struct mixer_build *state, int unitid, > void *raw_desc) > { > struct usb_audio_term iterm; > - struct uac2_input_terminal_descriptor *d = raw_desc; > + unsigned int control, bmctls, term_id; > > - check_input_term(state, d->bTerminalID, &iterm); > if (state->mixer->protocol == UAC_VERSION_2) { > - /* Check for jack detection. */ > - if (uac_v2v3_control_is_readable(d->bmControls, > - UAC2_TE_CONNECTOR)) { > - build_connector_control(state, &iterm, true); > - } > - } > + struct uac2_input_terminal_descriptor *d_v2 = raw_desc; > + control = UAC2_TE_CONNECTOR; > + term_id = d_v2->bTerminalID; > + bmctls = d_v2->bmControls; > + } > + else if (state->mixer->protocol == UAC_VERSION_3) { Put "else if" and the closing brace in the same line. > + struct uac3_input_terminal_descriptor *d_v3 = raw_desc; > + control = UAC3_TE_INSERTION; > + term_id = d_v3->bTerminalID; > + bmctls = d_v3->bmControls; Doesn't it need le32_to_cpu()? > + } > + else /* UAC1. No Insertion control */ Ditto, put "else" and the closing brace in the same line. Also, use braces for the rest block, otherwise it'll look inconsistent. Or rewrite with switch(). > @@ -2645,6 +2720,12 @@ static int snd_usb_mixer_controls(struct usb_mixer_interface *mixer) > err = parse_audio_unit(&state, desc->bCSourceID); > if (err < 0 && err != -EINVAL) > return err; > + > + if (uac_v2v3_control_is_readable(desc->bmControls, Missing le32_to_cpu()? thanks, Takashi