[v2,1/2] ALSA: snd-usb: mixer: coding style fixups
diff mbox

Message ID 1400921897-3782-1-git-send-email-zonque@gmail.com
State Accepted
Commit 6bc170e4e8ac439c75153c0a03c736e37cf9f9a4
Delegated to: Takashi Iwai
Headers show

Commit Message

Daniel Mack May 24, 2014, 8:58 a.m. UTC
Shorten some over-long lines, multi-line comments, spurious whitespaces,
curly brakets etc.  No functional change.

Signed-off-by: Daniel Mack <zonque@gmail.com>
---
 sound/usb/mixer.c | 400 +++++++++++++++++++++++++++++++++---------------------
 1 file changed, 246 insertions(+), 154 deletions(-)

Comments

Takashi Iwai May 25, 2014, 6:51 p.m. UTC | #1
At Sat, 24 May 2014 10:58:16 +0200,
Daniel Mack wrote:
> 
> Shorten some over-long lines, multi-line comments, spurious whitespaces,
> curly brakets etc.  No functional change.
> 
> Signed-off-by: Daniel Mack <zonque@gmail.com>

Both patches applied, thanks.


Takashi

> ---
>  sound/usb/mixer.c | 400 +++++++++++++++++++++++++++++++++---------------------
>  1 file changed, 246 insertions(+), 154 deletions(-)
> 
> diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
> index 6fe83e4..9765e1c 100644
> --- a/sound/usb/mixer.c
> +++ b/sound/usb/mixer.c
> @@ -162,7 +162,7 @@ static int check_mapped_selector_name(struct mixer_build *state, int unitid,
>  {
>  	const struct usbmix_selector_map *p;
>  
> -	if (! state->selector_map)
> +	if (!state->selector_map)
>  		return 0;
>  	for (p = state->selector_map; p->id; p++) {
>  		if (p->id == unitid && index < p->count)
> @@ -174,7 +174,8 @@ static int check_mapped_selector_name(struct mixer_build *state, int unitid,
>  /*
>   * find an audio control unit with the given unit id
>   */
> -static void *find_audio_control_unit(struct mixer_build *state, unsigned char unit)
> +static void *find_audio_control_unit(struct mixer_build *state,
> +				     unsigned char unit)
>  {
>  	/* we just parse the header */
>  	struct uac_feature_unit_descriptor *hdr = NULL;
> @@ -194,7 +195,8 @@ static void *find_audio_control_unit(struct mixer_build *state, unsigned char un
>  /*
>   * copy a string with the given id
>   */
> -static int snd_usb_copy_string_desc(struct mixer_build *state, int index, char *buf, int maxlen)
> +static int snd_usb_copy_string_desc(struct mixer_build *state,
> +				    int index, char *buf, int maxlen)
>  {
>  	int len = usb_string(state->chip->dev, index, buf, maxlen - 1);
>  	buf[len] = 0;
> @@ -253,7 +255,7 @@ static int convert_bytes_value(struct usb_mixer_elem_info *cval, int val)
>  
>  static int get_relative_value(struct usb_mixer_elem_info *cval, int val)
>  {
> -	if (! cval->res)
> +	if (!cval->res)
>  		cval->res = 1;
>  	if (val < cval->min)
>  		return 0;
> @@ -267,7 +269,7 @@ static int get_abs_value(struct usb_mixer_elem_info *cval, int val)
>  {
>  	if (val < 0)
>  		return cval->min;
> -	if (! cval->res)
> +	if (!cval->res)
>  		cval->res = 1;
>  	val *= cval->res;
>  	val += cval->min;
> @@ -281,7 +283,8 @@ static int get_abs_value(struct usb_mixer_elem_info *cval, int val)
>   * retrieve a mixer value
>   */
>  
> -static int get_ctl_value_v1(struct usb_mixer_elem_info *cval, int request, int validx, int *value_ret)
> +static int get_ctl_value_v1(struct usb_mixer_elem_info *cval, int request,
> +			    int validx, int *value_ret)
>  {
>  	struct snd_usb_audio *chip = cval->mixer->chip;
>  	unsigned char buf[2];
> @@ -292,6 +295,7 @@ static int get_ctl_value_v1(struct usb_mixer_elem_info *cval, int request, int v
>  	err = snd_usb_autoresume(cval->mixer->chip);
>  	if (err < 0)
>  		return -EIO;
> +
>  	down_read(&chip->shutdown_rwsem);
>  	while (timeout-- > 0) {
>  		if (chip->shutdown)
> @@ -316,10 +320,11 @@ static int get_ctl_value_v1(struct usb_mixer_elem_info *cval, int request, int v
>  	return err;
>  }
>  
> -static int get_ctl_value_v2(struct usb_mixer_elem_info *cval, int request, int validx, int *value_ret)
> +static int get_ctl_value_v2(struct usb_mixer_elem_info *cval, int request,
> +			    int validx, int *value_ret)
>  {
>  	struct snd_usb_audio *chip = cval->mixer->chip;
> -	unsigned char buf[2 + 3*sizeof(__u16)]; /* enough space for one range */
> +	unsigned char buf[2 + 3 * sizeof(__u16)]; /* enough space for one range */
>  	unsigned char *val;
>  	int idx = 0, ret, size;
>  	__u8 bRequest;
> @@ -339,9 +344,9 @@ static int get_ctl_value_v2(struct usb_mixer_elem_info *cval, int request, int v
>  		goto error;
>  
>  	down_read(&chip->shutdown_rwsem);
> -	if (chip->shutdown)
> +	if (chip->shutdown) {
>  		ret = -ENODEV;
> -	else {
> +	} else {
>  		idx = snd_usb_ctrl_intf(chip) | (cval->id << 8);
>  		ret = snd_usb_ctl_msg(chip->dev, usb_rcvctrlpipe(chip->dev, 0), bRequest,
>  			      USB_RECIP_INTERFACE | USB_TYPE_CLASS | USB_DIR_IN,
> @@ -382,7 +387,8 @@ error:
>  	return 0;
>  }
>  
> -static int get_ctl_value(struct usb_mixer_elem_info *cval, int request, int validx, int *value_ret)
> +static int get_ctl_value(struct usb_mixer_elem_info *cval, int request,
> +			 int validx, int *value_ret)
>  {
>  	validx += cval->idx_off;
>  
> @@ -391,7 +397,8 @@ static int get_ctl_value(struct usb_mixer_elem_info *cval, int request, int vali
>  		get_ctl_value_v2(cval, request, validx, value_ret);
>  }
>  
> -static int get_cur_ctl_value(struct usb_mixer_elem_info *cval, int validx, int *value)
> +static int get_cur_ctl_value(struct usb_mixer_elem_info *cval,
> +			     int validx, int *value)
>  {
>  	return get_ctl_value(cval, UAC_GET_CUR, validx, value);
>  }
> @@ -400,7 +407,9 @@ static int get_cur_ctl_value(struct usb_mixer_elem_info *cval, int validx, int *
>  static inline int get_cur_mix_raw(struct usb_mixer_elem_info *cval,
>  				  int channel, int *value)
>  {
> -	return get_ctl_value(cval, UAC_GET_CUR, (cval->control << 8) | channel, value);
> +	return get_ctl_value(cval, UAC_GET_CUR,
> +			     (cval->control << 8) | channel,
> +			     value);
>  }
>  
>  static int get_cur_mix_value(struct usb_mixer_elem_info *cval,
> @@ -417,7 +426,7 @@ static int get_cur_mix_value(struct usb_mixer_elem_info *cval,
>  		if (!cval->mixer->ignore_ctl_error)
>  			usb_audio_dbg(cval->mixer->chip,
>  				"cannot get current value for control %d ch %d: err = %d\n",
> -				   cval->control, channel, err);
> +				      cval->control, channel, err);
>  		return err;
>  	}
>  	cval->cached |= 1 << channel;
> @@ -425,7 +434,6 @@ static int get_cur_mix_value(struct usb_mixer_elem_info *cval,
>  	return 0;
>  }
>  
> -
>  /*
>   * set a mixer value
>   */
> @@ -474,7 +482,7 @@ int snd_usb_mixer_set_ctl_value(struct usb_mixer_elem_info *cval,
>  		}
>  	}
>  	usb_audio_dbg(chip, "cannot set ctl value: req = %#x, wValue = %#x, wIndex = %#x, type = %d, data = %#x/%#x\n",
> -		    request, validx, idx, cval->val_type, buf[0], buf[1]);
> +		      request, validx, idx, cval->val_type, buf[0], buf[1]);
>  	err = -EINVAL;
>  
>   out:
> @@ -483,7 +491,8 @@ int snd_usb_mixer_set_ctl_value(struct usb_mixer_elem_info *cval,
>  	return err;
>  }
>  
> -static int set_cur_ctl_value(struct usb_mixer_elem_info *cval, int validx, int value)
> +static int set_cur_ctl_value(struct usb_mixer_elem_info *cval,
> +			     int validx, int value)
>  {
>  	return snd_usb_mixer_set_ctl_value(cval, UAC_SET_CUR, validx, value);
>  }
> @@ -503,8 +512,9 @@ static int set_cur_mix_value(struct usb_mixer_elem_info *cval, int channel,
>  		return 0;
>  	}
>  
> -	err = snd_usb_mixer_set_ctl_value(cval, UAC_SET_CUR, (cval->control << 8) | channel,
> -			    value);
> +	err = snd_usb_mixer_set_ctl_value(cval,
> +					  UAC_SET_CUR, (cval->control << 8) | channel,
> +					  value);
>  	if (err < 0)
>  		return err;
>  	cval->cached |= 1 << channel;
> @@ -541,13 +551,13 @@ static int parse_audio_unit(struct mixer_build *state, int unitid);
>   * check if the input/output channel routing is enabled on the given bitmap.
>   * used for mixer unit parser
>   */
> -static int check_matrix_bitmap(unsigned char *bmap, int ich, int och, int num_outs)
> +static int check_matrix_bitmap(unsigned char *bmap,
> +			       int ich, int och, int num_outs)
>  {
>  	int idx = ich * num_outs + och;
>  	return bmap[idx >> 3] & (0x80 >> (idx & 7));
>  }
>  
> -
>  /*
>   * add an alsa control element
>   * search and increment the index until an empty slot is found.
> @@ -564,7 +574,8 @@ int snd_usb_mixer_add_control(struct usb_mixer_interface *mixer,
>  	while (snd_ctl_find_id(mixer->chip->card, &kctl->id))
>  		kctl->id.index++;
>  	if ((err = snd_ctl_add(mixer->chip->card, kctl)) < 0) {
> -		usb_audio_dbg(mixer->chip, "cannot add control (err = %d)\n", err);
> +		usb_audio_dbg(mixer->chip, "cannot add control (err = %d)\n",
> +			      err);
>  		return err;
>  	}
>  	cval->elem_id = &kctl->id;
> @@ -573,7 +584,6 @@ int snd_usb_mixer_add_control(struct usb_mixer_interface *mixer,
>  	return 0;
>  }
>  
> -
>  /*
>   * get a terminal name string
>   */
> @@ -627,7 +637,8 @@ static int get_term_name(struct mixer_build *state, struct usb_audio_term *iterm
>  	struct iterm_name_combo *names;
>  
>  	if (iterm->name)
> -		return snd_usb_copy_string_desc(state, iterm->name, name, maxlen);
> +		return snd_usb_copy_string_desc(state, iterm->name,
> +						name, maxlen);
>  
>  	/* virtual type - not a real terminal */
>  	if (iterm->type >> 16) {
> @@ -635,13 +646,17 @@ static int get_term_name(struct mixer_build *state, struct usb_audio_term *iterm
>  			return 0;
>  		switch (iterm->type >> 16) {
>  		case UAC_SELECTOR_UNIT:
> -			strcpy(name, "Selector"); return 8;
> +			strcpy(name, "Selector");
> +			return 8;
>  		case UAC1_PROCESSING_UNIT:
> -			strcpy(name, "Process Unit"); return 12;
> +			strcpy(name, "Process Unit");
> +			return 12;
>  		case UAC1_EXTENSION_UNIT:
> -			strcpy(name, "Ext Unit"); return 8;
> +			strcpy(name, "Ext Unit");
> +			return 8;
>  		case UAC_MIXER_UNIT:
> -			strcpy(name, "Mixer"); return 5;
> +			strcpy(name, "Mixer");
> +			return 5;
>  		default:
>  			return sprintf(name, "Unit %d", iterm->id);
>  		}
> @@ -649,29 +664,35 @@ static int get_term_name(struct mixer_build *state, struct usb_audio_term *iterm
>  
>  	switch (iterm->type & 0xff00) {
>  	case 0x0100:
> -		strcpy(name, "PCM"); return 3;
> +		strcpy(name, "PCM");
> +		return 3;
>  	case 0x0200:
> -		strcpy(name, "Mic"); return 3;
> +		strcpy(name, "Mic");
> +		return 3;
>  	case 0x0400:
> -		strcpy(name, "Headset"); return 7;
> +		strcpy(name, "Headset");
> +		return 7;
>  	case 0x0500:
> -		strcpy(name, "Phone"); return 5;
> +		strcpy(name, "Phone");
> +		return 5;
>  	}
>  
> -	for (names = iterm_names; names->type; names++)
> +	for (names = iterm_names; names->type; names++) {
>  		if (names->type == iterm->type) {
>  			strcpy(name, names->name);
>  			return strlen(names->name);
>  		}
> +	}
> +
>  	return 0;
>  }
>  
> -
>  /*
>   * parse the source unit recursively until it reaches to a terminal
>   * or a branched unit.
>   */
> -static int check_input_term(struct mixer_build *state, int id, struct usb_audio_term *term)
> +static int check_input_term(struct mixer_build *state, int id,
> +			    struct usb_audio_term *term)
>  {
>  	int err;
>  	void *p1;
> @@ -766,7 +787,6 @@ static int check_input_term(struct mixer_build *state, int id, struct usb_audio_
>  	return -ENODEV;
>  }
>  
> -
>  /*
>   * Feature Unit
>   */
> @@ -794,7 +814,6 @@ static struct usb_feature_control_info audio_feature_info[] = {
>  	{ "Phase Inverter Control",	USB_MIXER_BOOLEAN },
>  };
>  
> -
>  /* private_free callback */
>  static void usb_mixer_elem_free(struct snd_kcontrol *kctl)
>  {
> @@ -802,7 +821,6 @@ static void usb_mixer_elem_free(struct snd_kcontrol *kctl)
>  	kctl->private_data = NULL;
>  }
>  
> -
>  /*
>   * interface to ALSA control for feature/mixer units
>   */
> @@ -906,7 +924,6 @@ static void volume_control_quirks(struct usb_mixer_elem_info *cval,
>  			cval->res = 384;
>  		}
>  		break;
> -
>  	}
>  }
>  
> @@ -939,21 +956,26 @@ static int get_min_max_with_quirks(struct usb_mixer_elem_info *cval,
>  		    get_ctl_value(cval, UAC_GET_MIN, (cval->control << 8) | minchn, &cval->min) < 0) {
>  			usb_audio_err(cval->mixer->chip,
>  				      "%d:%d: cannot get min/max values for control %d (id %d)\n",
> -				   cval->id, snd_usb_ctrl_intf(cval->mixer->chip), cval->control, cval->id);
> +				   cval->id, snd_usb_ctrl_intf(cval->mixer->chip),
> +							       cval->control, cval->id);
>  			return -EINVAL;
>  		}
> -		if (get_ctl_value(cval, UAC_GET_RES, (cval->control << 8) | minchn, &cval->res) < 0) {
> +		if (get_ctl_value(cval, UAC_GET_RES,
> +				  (cval->control << 8) | minchn,
> +				  &cval->res) < 0) {
>  			cval->res = 1;
>  		} else {
>  			int last_valid_res = cval->res;
>  
>  			while (cval->res > 1) {
>  				if (snd_usb_mixer_set_ctl_value(cval, UAC_SET_RES,
> -								(cval->control << 8) | minchn, cval->res / 2) < 0)
> +								(cval->control << 8) | minchn,
> +								cval->res / 2) < 0)
>  					break;
>  				cval->res /= 2;
>  			}
> -			if (get_ctl_value(cval, UAC_GET_RES, (cval->control << 8) | minchn, &cval->res) < 0)
> +			if (get_ctl_value(cval, UAC_GET_RES,
> +					  (cval->control << 8) | minchn, &cval->res) < 0)
>  				cval->res = last_valid_res;
>  		}
>  		if (cval->res == 0)
> @@ -1017,7 +1039,8 @@ static int get_min_max_with_quirks(struct usb_mixer_elem_info *cval,
>  #define get_min_max(cval, def)	get_min_max_with_quirks(cval, def, NULL)
>  
>  /* get a feature/mixer unit info */
> -static int mixer_ctl_feature_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
> +static int mixer_ctl_feature_info(struct snd_kcontrol *kcontrol,
> +				  struct snd_ctl_elem_info *uinfo)
>  {
>  	struct usb_mixer_elem_info *cval = kcontrol->private_data;
>  
> @@ -1051,7 +1074,8 @@ static int mixer_ctl_feature_info(struct snd_kcontrol *kcontrol, struct snd_ctl_
>  }
>  
>  /* get the current value from feature/mixer unit */
> -static int mixer_ctl_feature_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
> +static int mixer_ctl_feature_get(struct snd_kcontrol *kcontrol,
> +				 struct snd_ctl_elem_value *ucontrol)
>  {
>  	struct usb_mixer_elem_info *cval = kcontrol->private_data;
>  	int c, cnt, val, err;
> @@ -1082,7 +1106,8 @@ static int mixer_ctl_feature_get(struct snd_kcontrol *kcontrol, struct snd_ctl_e
>  }
>  
>  /* put the current value to feature/mixer unit */
> -static int mixer_ctl_feature_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
> +static int mixer_ctl_feature_put(struct snd_kcontrol *kcontrol,
> +				 struct snd_ctl_elem_value *ucontrol)
>  {
>  	struct usb_mixer_elem_info *cval = kcontrol->private_data;
>  	int c, cnt, val, oval, err;
> @@ -1136,22 +1161,25 @@ static struct snd_kcontrol_new usb_feature_unit_ctl_ro = {
>  	.put = NULL,
>  };
>  
> -/* This symbol is exported in order to allow the mixer quirks to
> - * hook up to the standard feature unit control mechanism */
> +/*
> + * This symbol is exported in order to allow the mixer quirks to
> + * hook up to the standard feature unit control mechanism
> + */
>  struct snd_kcontrol_new *snd_usb_feature_unit_ctl = &usb_feature_unit_ctl;
>  
>  /*
>   * build a feature control
>   */
> -
>  static size_t append_ctl_name(struct snd_kcontrol *kctl, const char *str)
>  {
>  	return strlcat(kctl->id.name, str, sizeof(kctl->id.name));
>  }
>  
> -/* A lot of headsets/headphones have a "Speaker" mixer. Make sure we
> -   rename it to "Headphone". We determine if something is a headphone
> -   similar to how udev determines form factor. */
> +/*
> + * A lot of headsets/headphones have a "Speaker" mixer. Make sure we
> + * rename it to "Headphone". We determine if something is a headphone
> + * similar to how udev determines form factor.
> + */
>  static void check_no_speaker_on_headset(struct snd_kcontrol *kctl,
>  					struct snd_card *card)
>  {
> @@ -1201,7 +1229,7 @@ static void build_feature_ctl(struct mixer_build *state, void *raw_desc,
>  		return;
>  
>  	cval = kzalloc(sizeof(*cval), GFP_KERNEL);
> -	if (! cval) {
> +	if (!cval) {
>  		usb_audio_err(state->chip, "cannot malloc kcontrol\n");
>  		return;
>  	}
> @@ -1222,15 +1250,17 @@ static void build_feature_ctl(struct mixer_build *state, void *raw_desc,
>  		cval->ch_readonly = readonly_mask;
>  	}
>  
> -	/* if all channels in the mask are marked read-only, make the control
> +	/*
> +	 * If all channels in the mask are marked read-only, make the control
>  	 * read-only. set_cur_mix_value() will check the mask again and won't
> -	 * issue write commands to read-only channels. */
> +	 * issue write commands to read-only channels.
> +	 */
>  	if (cval->channels == readonly_mask)
>  		kctl = snd_ctl_new1(&usb_feature_unit_ctl_ro, cval);
>  	else
>  		kctl = snd_ctl_new1(&usb_feature_unit_ctl, cval);
>  
> -	if (! kctl) {
> +	if (!kctl) {
>  		usb_audio_err(state->chip, "cannot malloc kcontrol\n");
>  		kfree(cval);
>  		return;
> @@ -1239,48 +1269,53 @@ static void build_feature_ctl(struct mixer_build *state, void *raw_desc,
>  
>  	len = check_mapped_name(map, kctl->id.name, sizeof(kctl->id.name));
>  	mapped_name = len != 0;
> -	if (! len && nameid)
> +	if (!len && nameid)
>  		len = snd_usb_copy_string_desc(state, nameid,
>  				kctl->id.name, sizeof(kctl->id.name));
>  
>  	switch (control) {
>  	case UAC_FU_MUTE:
>  	case UAC_FU_VOLUME:
> -		/* determine the control name.  the rule is:
> +		/*
> +		 * determine the control name.  the rule is:
>  		 * - if a name id is given in descriptor, use it.
>  		 * - if the connected input can be determined, then use the name
>  		 *   of terminal type.
>  		 * - if the connected output can be determined, use it.
>  		 * - otherwise, anonymous name.
>  		 */
> -		if (! len) {
> -			len = get_term_name(state, iterm, kctl->id.name, sizeof(kctl->id.name), 1);
> -			if (! len)
> -				len = get_term_name(state, &state->oterm, kctl->id.name, sizeof(kctl->id.name), 1);
> -			if (! len)
> -				len = snprintf(kctl->id.name, sizeof(kctl->id.name),
> +		if (!len) {
> +			len = get_term_name(state, iterm, kctl->id.name,
> +					    sizeof(kctl->id.name), 1);
> +			if (!len)
> +				len = get_term_name(state, &state->oterm,
> +						    kctl->id.name,
> +						    sizeof(kctl->id.name), 1);
> +			if (!len)
> +				len = snprintf(kctl->id.name,
> +					       sizeof(kctl->id.name),
>  					       "Feature %d", unitid);
>  		}
>  
>  		if (!mapped_name)
>  			check_no_speaker_on_headset(kctl, state->mixer->chip->card);
>  
> -		/* determine the stream direction:
> +		/*
> +		 * determine the stream direction:
>  		 * if the connected output is USB stream, then it's likely a
>  		 * capture stream.  otherwise it should be playback (hopefully :)
>  		 */
> -		if (! mapped_name && ! (state->oterm.type >> 16)) {
> -			if ((state->oterm.type & 0xff00) == 0x0100) {
> +		if (!mapped_name && !(state->oterm.type >> 16)) {
> +			if ((state->oterm.type & 0xff00) == 0x0100)
>  				len = append_ctl_name(kctl, " Capture");
> -			} else {
> +			else
>  				len = append_ctl_name(kctl, " Playback");
> -			}
>  		}
>  		append_ctl_name(kctl, control == UAC_FU_MUTE ?
>  				" Switch" : " Volume");
>  		break;
>  	default:
> -		if (! len)
> +		if (!len)
>  			strlcpy(kctl->id.name, audio_feature_info[control-1].name,
>  				sizeof(kctl->id.name));
>  		break;
> @@ -1300,33 +1335,35 @@ static void build_feature_ctl(struct mixer_build *state, void *raw_desc,
>  	}
>  
>  	range = (cval->max - cval->min) / cval->res;
> -	/* Are there devices with volume range more than 255? I use a bit more
> +	/*
> +	 * Are there devices with volume range more than 255? I use a bit more
>  	 * to be sure. 384 is a resolution magic number found on Logitech
>  	 * devices. It will definitively catch all buggy Logitech devices.
>  	 */
>  	if (range > 384) {
> -		usb_audio_warn(state->chip, "Warning! Unlikely big "
> -			   "volume range (=%u), cval->res is probably wrong.",
> -			   range);
> +		usb_audio_warn(state->chip,
> +			       "Warning! Unlikely big volume range (=%u), "
> +			       "cval->res is probably wrong.",
> +			       range);
>  		usb_audio_warn(state->chip, "[%d] FU [%s] ch = %d, "
> -			   "val = %d/%d/%d", cval->id,
> -			   kctl->id.name, cval->channels,
> -			   cval->min, cval->max, cval->res);
> +			       "val = %d/%d/%d", cval->id,
> +			       kctl->id.name, cval->channels,
> +			       cval->min, cval->max, cval->res);
>  	}
>  
>  	usb_audio_dbg(state->chip, "[%d] FU [%s] ch = %d, val = %d/%d/%d\n",
> -		    cval->id, kctl->id.name, cval->channels, cval->min, cval->max, cval->res);
> +		      cval->id, kctl->id.name, cval->channels,
> +		      cval->min, cval->max, cval->res);
>  	snd_usb_mixer_add_control(state->mixer, kctl);
>  }
>  
> -
> -
>  /*
>   * parse a feature unit
>   *
>   * most of controls are defined here.
>   */
> -static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void *_ftr)
> +static int parse_audio_feature_unit(struct mixer_build *state, int unitid,
> +				    void *_ftr)
>  {
>  	int channels, i, j;
>  	struct usb_audio_term iterm;
> @@ -1400,15 +1437,25 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void
>  		for (i = 0; i < 10; i++) {
>  			unsigned int ch_bits = 0;
>  			for (j = 0; j < channels; j++) {
> -				unsigned int mask = snd_usb_combine_bytes(bmaControls + csize * (j+1), csize);
> +				unsigned int mask;
> +
> +				mask = snd_usb_combine_bytes(bmaControls +
> +							     csize * (j+1), csize);
>  				if (mask & (1 << i))
>  					ch_bits |= (1 << j);
>  			}
>  			/* audio class v1 controls are never read-only */
> -			if (ch_bits & 1) /* the first channel must be set (for ease of programming) */
> -				build_feature_ctl(state, _ftr, ch_bits, i, &iterm, unitid, 0);
> +
> +			/*
> +			 * The first channel must be set
> +			 * (for ease of programming).
> +			 */
> +			if (ch_bits & 1)
> +				build_feature_ctl(state, _ftr, ch_bits, i,
> +						  &iterm, unitid, 0);
>  			if (master_bits & (1 << i))
> -				build_feature_ctl(state, _ftr, 0, i, &iterm, unitid, 0);
> +				build_feature_ctl(state, _ftr, 0, i, &iterm,
> +						  unitid, 0);
>  		}
>  	} else { /* UAC_VERSION_2 */
>  		for (i = 0; i < ARRAY_SIZE(audio_feature_info); i++) {
> @@ -1416,7 +1463,10 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void
>  			unsigned int ch_read_only = 0;
>  
>  			for (j = 0; j < channels; j++) {
> -				unsigned int mask = snd_usb_combine_bytes(bmaControls + csize * (j+1), csize);
> +				unsigned int mask;
> +
> +				mask = snd_usb_combine_bytes(bmaControls +
> +							     csize * (j+1), csize);
>  				if (uac2_control_is_readable(mask, i)) {
>  					ch_bits |= (1 << j);
>  					if (!uac2_control_is_writeable(mask, i))
> @@ -1424,12 +1474,22 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void
>  				}
>  			}
>  
> -			/* NOTE: build_feature_ctl() will mark the control read-only if all channels
> -			 * are marked read-only in the descriptors. Otherwise, the control will be
> -			 * reported as writeable, but the driver will not actually issue a write
> -			 * command for read-only channels */
> -			if (ch_bits & 1) /* the first channel must be set (for ease of programming) */
> -				build_feature_ctl(state, _ftr, ch_bits, i, &iterm, unitid, ch_read_only);
> +			/*
> +			 * NOTE: build_feature_ctl() will mark the control
> +			 * read-only if all channels are marked read-only in
> +			 * the descriptors. Otherwise, the control will be
> +			 * reported as writeable, but the driver will not
> +			 * actually issue a write command for read-only
> +			 * channels.
> +			 */
> +
> +			/*
> +			 * The first channel must be set
> +			 * (for ease of programming).
> +			 */
> +			if (ch_bits & 1)
> +				build_feature_ctl(state, _ftr, ch_bits, i,
> +						  &iterm, unitid, ch_read_only);
>  			if (uac2_control_is_readable(master_bits, i))
>  				build_feature_ctl(state, _ftr, 0, i, &iterm, unitid,
>  						  !uac2_control_is_writeable(master_bits, i));
> @@ -1439,7 +1499,6 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void
>  	return 0;
>  }
>  
> -
>  /*
>   * Mixer Unit
>   */
> @@ -1450,7 +1509,6 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void
>   * the callbacks are identical with feature unit.
>   * input channel number (zero based) is given in control field instead.
>   */
> -
>  static void build_mixer_unit_ctl(struct mixer_build *state,
>  				 struct uac_mixer_unit_descriptor *desc,
>  				 int in_pin, int in_ch, int unitid,
> @@ -1467,7 +1525,7 @@ static void build_mixer_unit_ctl(struct mixer_build *state,
>  		return;
>  
>  	cval = kzalloc(sizeof(*cval), GFP_KERNEL);
> -	if (! cval)
> +	if (!cval)
>  		return;
>  
>  	cval->mixer = state->mixer;
> @@ -1475,7 +1533,9 @@ static void build_mixer_unit_ctl(struct mixer_build *state,
>  	cval->control = in_ch + 1; /* based on 1 */
>  	cval->val_type = USB_MIXER_S16;
>  	for (i = 0; i < num_outs; i++) {
> -		if (check_matrix_bitmap(uac_mixer_unit_bmControls(desc, state->mixer->protocol), in_ch, i, num_outs)) {
> +		__u8 *c = uac_mixer_unit_bmControls(desc, state->mixer->protocol);
> +
> +		if (check_matrix_bitmap(c, in_ch, i, num_outs)) {
>  			cval->cmask |= (1 << i);
>  			cval->channels++;
>  		}
> @@ -1485,7 +1545,7 @@ static void build_mixer_unit_ctl(struct mixer_build *state,
>  	get_min_max(cval, 0);
>  
>  	kctl = snd_ctl_new1(&usb_feature_unit_ctl, cval);
> -	if (! kctl) {
> +	if (!kctl) {
>  		usb_audio_err(state->chip, "cannot malloc kcontrol\n");
>  		kfree(cval);
>  		return;
> @@ -1493,9 +1553,10 @@ static void build_mixer_unit_ctl(struct mixer_build *state,
>  	kctl->private_free = usb_mixer_elem_free;
>  
>  	len = check_mapped_name(map, kctl->id.name, sizeof(kctl->id.name));
> -	if (! len)
> -		len = get_term_name(state, iterm, kctl->id.name, sizeof(kctl->id.name), 0);
> -	if (! len)
> +	if (!len)
> +		len = get_term_name(state, iterm, kctl->id.name,
> +				    sizeof(kctl->id.name), 0);
> +	if (!len)
>  		len = sprintf(kctl->id.name, "Mixer Source %d", in_ch + 1);
>  	append_ctl_name(kctl, " Volume");
>  
> @@ -1504,24 +1565,28 @@ static void build_mixer_unit_ctl(struct mixer_build *state,
>  	snd_usb_mixer_add_control(state->mixer, kctl);
>  }
>  
> -
>  /*
>   * parse a mixer unit
>   */
> -static int parse_audio_mixer_unit(struct mixer_build *state, int unitid, void *raw_desc)
> +static int parse_audio_mixer_unit(struct mixer_build *state, int unitid,
> +				  void *raw_desc)
>  {
>  	struct uac_mixer_unit_descriptor *desc = raw_desc;
>  	struct usb_audio_term iterm;
>  	int input_pins, num_ins, num_outs;
>  	int pin, ich, err;
>  
> -	if (desc->bLength < 11 || ! (input_pins = desc->bNrInPins) || ! (num_outs = uac_mixer_unit_bNrChannels(desc))) {
> -		usb_audio_err(state->chip, "invalid MIXER UNIT descriptor %d\n", unitid);
> +	if (desc->bLength < 11 || !(input_pins = desc->bNrInPins) ||
> +	    !(num_outs = uac_mixer_unit_bNrChannels(desc))) {
> +		usb_audio_err(state->chip,
> +			      "invalid MIXER UNIT descriptor %d\n",
> +			      unitid);
>  		return -EINVAL;
>  	}
>  	/* no bmControls field (e.g. Maya44) -> ignore */
>  	if (desc->bLength <= 10 + input_pins) {
> -		usb_audio_dbg(state->chip, "MU %d has no bmControls field\n", unitid);
> +		usb_audio_dbg(state->chip, "MU %d has no bmControls field\n",
> +			      unitid);
>  		return 0;
>  	}
>  
> @@ -1535,12 +1600,14 @@ static int parse_audio_mixer_unit(struct mixer_build *state, int unitid, void *r
>  		if (err < 0)
>  			return err;
>  		num_ins += iterm.channels;
> -		for (; ich < num_ins; ++ich) {
> +		for (; ich < num_ins; ich++) {
>  			int och, ich_has_controls = 0;
>  
> -			for (och = 0; och < num_outs; ++och) {
> -				if (check_matrix_bitmap(uac_mixer_unit_bmControls(desc, state->mixer->protocol),
> -							ich, och, num_outs)) {
> +			for (och = 0; och < num_outs; och++) {
> +				__u8 *c = uac_mixer_unit_bmControls(desc,
> +						state->mixer->protocol);
> +
> +				if (check_matrix_bitmap(c, ich, och, num_outs)) {
>  					ich_has_controls = 1;
>  					break;
>  				}
> @@ -1553,13 +1620,13 @@ static int parse_audio_mixer_unit(struct mixer_build *state, int unitid, void *r
>  	return 0;
>  }
>  
> -
>  /*
>   * Processing Unit / Extension Unit
>   */
>  
>  /* get callback for processing/extension unit */
> -static int mixer_ctl_procunit_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
> +static int mixer_ctl_procunit_get(struct snd_kcontrol *kcontrol,
> +				  struct snd_ctl_elem_value *ucontrol)
>  {
>  	struct usb_mixer_elem_info *cval = kcontrol->private_data;
>  	int err, val;
> @@ -1577,7 +1644,8 @@ static int mixer_ctl_procunit_get(struct snd_kcontrol *kcontrol, struct snd_ctl_
>  }
>  
>  /* put callback for processing/extension unit */
> -static int mixer_ctl_procunit_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
> +static int mixer_ctl_procunit_put(struct snd_kcontrol *kcontrol,
> +				  struct snd_ctl_elem_value *ucontrol)
>  {
>  	struct usb_mixer_elem_info *cval = kcontrol->private_data;
>  	int val, oval, err;
> @@ -1606,7 +1674,6 @@ static struct snd_kcontrol_new mixer_procunit_ctl = {
>  	.put = mixer_ctl_procunit_put,
>  };
>  
> -
>  /*
>   * predefined data for processing units
>   */
> @@ -1697,10 +1764,13 @@ static struct procunit_info extunits[] = {
>  	{ USB_XU_DEVICE_OPTIONS, "AnalogueIn Soft Limit", soft_limit_xu_info },
>  	{ 0 }
>  };
> +
>  /*
>   * build a processing/extension unit
>   */
> -static int build_audio_procunit(struct mixer_build *state, int unitid, void *raw_desc, struct procunit_info *list, char *name)
> +static int build_audio_procunit(struct mixer_build *state, int unitid,
> +				void *raw_desc, struct procunit_info *list,
> +				char *name)
>  {
>  	struct uac_processing_unit_descriptor *desc = raw_desc;
>  	int num_ins = desc->bNrInPins;
> @@ -1733,19 +1803,19 @@ static int build_audio_procunit(struct mixer_build *state, int unitid, void *raw
>  	for (info = list; info && info->type; info++)
>  		if (info->type == type)
>  			break;
> -	if (! info || ! info->type)
> +	if (!info || !info->type)
>  		info = &default_info;
>  
>  	for (valinfo = info->values; valinfo->control; valinfo++) {
>  		__u8 *controls = uac_processing_unit_bmControls(desc, state->mixer->protocol);
>  
> -		if (! (controls[valinfo->control / 8] & (1 << ((valinfo->control % 8) - 1))))
> +		if (!(controls[valinfo->control / 8] & (1 << ((valinfo->control % 8) - 1))))
>  			continue;
>  		map = find_map(state, unitid, valinfo->control);
>  		if (check_ignored_ctl(map))
>  			continue;
>  		cval = kzalloc(sizeof(*cval), GFP_KERNEL);
> -		if (! cval) {
> +		if (!cval) {
>  			usb_audio_err(state->chip, "cannot malloc kcontrol\n");
>  			return -ENOMEM;
>  		}
> @@ -1765,7 +1835,8 @@ static int build_audio_procunit(struct mixer_build *state, int unitid, void *raw
>  			cval->initialized = 1;
>  		} else {
>  			if (type == USB_XU_CLOCK_RATE) {
> -				/* E-Mu USB 0404/0202/TrackerPre/0204
> +				/*
> +				 * E-Mu USB 0404/0202/TrackerPre/0204
>  				 * samplerate control quirk
>  				 */
>  				cval->min = 0;
> @@ -1777,60 +1848,70 @@ static int build_audio_procunit(struct mixer_build *state, int unitid, void *raw
>  		}
>  
>  		kctl = snd_ctl_new1(&mixer_procunit_ctl, cval);
> -		if (! kctl) {
> +		if (!kctl) {
>  			usb_audio_err(state->chip, "cannot malloc kcontrol\n");
>  			kfree(cval);
>  			return -ENOMEM;
>  		}
>  		kctl->private_free = usb_mixer_elem_free;
>  
> -		if (check_mapped_name(map, kctl->id.name,
> -						sizeof(kctl->id.name)))
> +		if (check_mapped_name(map, kctl->id.name, sizeof(kctl->id.name))) {
>  			/* nothing */ ;
> -		else if (info->name)
> +		} else if (info->name) {
>  			strlcpy(kctl->id.name, info->name, sizeof(kctl->id.name));
> -		else {
> +		} else {
>  			nameid = uac_processing_unit_iProcessing(desc, state->mixer->protocol);
>  			len = 0;
>  			if (nameid)
> -				len = snd_usb_copy_string_desc(state, nameid, kctl->id.name, sizeof(kctl->id.name));
> -			if (! len)
> +				len = snd_usb_copy_string_desc(state, nameid,
> +							       kctl->id.name,
> +							       sizeof(kctl->id.name));
> +			if (!len)
>  				strlcpy(kctl->id.name, name, sizeof(kctl->id.name));
>  		}
>  		append_ctl_name(kctl, " ");
>  		append_ctl_name(kctl, valinfo->suffix);
>  
>  		usb_audio_dbg(state->chip,
> -			"[%d] PU [%s] ch = %d, val = %d/%d\n",
> -			    cval->id, kctl->id.name, cval->channels, cval->min, cval->max);
> -		if ((err = snd_usb_mixer_add_control(state->mixer, kctl)) < 0)
> +			      "[%d] PU [%s] ch = %d, val = %d/%d\n",
> +			      cval->id, kctl->id.name, cval->channels,
> +			      cval->min, cval->max);
> +
> +		err = snd_usb_mixer_add_control(state->mixer, kctl);
> +		if (err < 0)
>  			return err;
>  	}
>  	return 0;
>  }
>  
> -
> -static int parse_audio_processing_unit(struct mixer_build *state, int unitid, void *raw_desc)
> +static int parse_audio_processing_unit(struct mixer_build *state, int unitid,
> +				       void *raw_desc)
>  {
> -	return build_audio_procunit(state, unitid, raw_desc, procunits, "Processing Unit");
> +	return build_audio_procunit(state, unitid, raw_desc,
> +				    procunits, "Processing Unit");
>  }
>  
> -static int parse_audio_extension_unit(struct mixer_build *state, int unitid, void *raw_desc)
> +static int parse_audio_extension_unit(struct mixer_build *state, int unitid,
> +				      void *raw_desc)
>  {
> -	/* Note that we parse extension units with processing unit descriptors.
> -	 * That's ok as the layout is the same */
> -	return build_audio_procunit(state, unitid, raw_desc, extunits, "Extension Unit");
> +	/*
> +	 * Note that we parse extension units with processing unit descriptors.
> +	 * That's ok as the layout is the same.
> +	 */
> +	return build_audio_procunit(state, unitid, raw_desc,
> +				    extunits, "Extension Unit");
>  }
>  
> -
>  /*
>   * Selector Unit
>   */
>  
> -/* info callback for selector unit
> +/*
> + * info callback for selector unit
>   * use an enumerator type for routing
>   */
> -static int mixer_ctl_selector_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
> +static int mixer_ctl_selector_info(struct snd_kcontrol *kcontrol,
> +				   struct snd_ctl_elem_info *uinfo)
>  {
>  	struct usb_mixer_elem_info *cval = kcontrol->private_data;
>  	const char **itemlist = (const char **)kcontrol->private_value;
> @@ -1841,7 +1922,8 @@ static int mixer_ctl_selector_info(struct snd_kcontrol *kcontrol, struct snd_ctl
>  }
>  
>  /* get callback for selector unit */
> -static int mixer_ctl_selector_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
> +static int mixer_ctl_selector_get(struct snd_kcontrol *kcontrol,
> +				  struct snd_ctl_elem_value *ucontrol)
>  {
>  	struct usb_mixer_elem_info *cval = kcontrol->private_data;
>  	int val, err;
> @@ -1860,7 +1942,8 @@ static int mixer_ctl_selector_get(struct snd_kcontrol *kcontrol, struct snd_ctl_
>  }
>  
>  /* put callback for selector unit */
> -static int mixer_ctl_selector_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
> +static int mixer_ctl_selector_put(struct snd_kcontrol *kcontrol,
> +				  struct snd_ctl_elem_value *ucontrol)
>  {
>  	struct usb_mixer_elem_info *cval = kcontrol->private_data;
>  	int val, oval, err;
> @@ -1889,8 +1972,8 @@ static struct snd_kcontrol_new mixer_selectunit_ctl = {
>  	.put = mixer_ctl_selector_put,
>  };
>  
> -
> -/* private free callback.
> +/*
> + * private free callback.
>   * free both private_data and private_value
>   */
>  static void usb_mixer_selector_elem_free(struct snd_kcontrol *kctl)
> @@ -1915,7 +1998,8 @@ static void usb_mixer_selector_elem_free(struct snd_kcontrol *kctl)
>  /*
>   * parse a selector unit
>   */
> -static int parse_audio_selector_unit(struct mixer_build *state, int unitid, void *raw_desc)
> +static int parse_audio_selector_unit(struct mixer_build *state, int unitid,
> +				     void *raw_desc)
>  {
>  	struct uac_selector_unit_descriptor *desc = raw_desc;
>  	unsigned int i, nameid, len;
> @@ -1944,7 +2028,7 @@ static int parse_audio_selector_unit(struct mixer_build *state, int unitid, void
>  		return 0;
>  
>  	cval = kzalloc(sizeof(*cval), GFP_KERNEL);
> -	if (! cval) {
> +	if (!cval) {
>  		usb_audio_err(state->chip, "cannot malloc kcontrol\n");
>  		return -ENOMEM;
>  	}
> @@ -1963,7 +2047,7 @@ static int parse_audio_selector_unit(struct mixer_build *state, int unitid, void
>  		cval->control = 0;
>  
>  	namelist = kmalloc(sizeof(char *) * desc->bNrInPins, GFP_KERNEL);
> -	if (! namelist) {
> +	if (!namelist) {
>  		usb_audio_err(state->chip, "cannot malloc\n");
>  		kfree(cval);
>  		return -ENOMEM;
> @@ -1973,7 +2057,7 @@ static int parse_audio_selector_unit(struct mixer_build *state, int unitid, void
>  		struct usb_audio_term iterm;
>  		len = 0;
>  		namelist[i] = kmalloc(MAX_ITEM_NAME_LEN, GFP_KERNEL);
> -		if (! namelist[i]) {
> +		if (!namelist[i]) {
>  			usb_audio_err(state->chip, "cannot malloc\n");
>  			while (i--)
>  				kfree(namelist[i]);
> @@ -2004,11 +2088,12 @@ static int parse_audio_selector_unit(struct mixer_build *state, int unitid, void
>  	if (len)
>  		;
>  	else if (nameid)
> -		snd_usb_copy_string_desc(state, nameid, kctl->id.name, sizeof(kctl->id.name));
> +		snd_usb_copy_string_desc(state, nameid, kctl->id.name,
> +					 sizeof(kctl->id.name));
>  	else {
>  		len = get_term_name(state, &state->oterm,
>  				    kctl->id.name, sizeof(kctl->id.name), 0);
> -		if (! len)
> +		if (!len)
>  			strlcpy(kctl->id.name, "USB", sizeof(kctl->id.name));
>  
>  		if (desc->bDescriptorSubtype == UAC2_CLOCK_SELECTOR)
> @@ -2027,7 +2112,6 @@ static int parse_audio_selector_unit(struct mixer_build *state, int unitid, void
>  	return 0;
>  }
>  
> -
>  /*
>   * parse an audio unit recursively
>   */
> @@ -2125,14 +2209,16 @@ static int snd_usb_mixer_controls(struct usb_mixer_interface *mixer)
>  	}
>  
>  	p = NULL;
> -	while ((p = snd_usb_find_csint_desc(mixer->hostif->extra, mixer->hostif->extralen,
> +	while ((p = snd_usb_find_csint_desc(mixer->hostif->extra,
> +					    mixer->hostif->extralen,
>  					    p, UAC_OUTPUT_TERMINAL)) != NULL) {
>  		if (mixer->protocol == UAC_VERSION_1) {
>  			struct uac1_output_terminal_descriptor *desc = p;
>  
>  			if (desc->bLength < sizeof(*desc))
>  				continue; /* invalid descriptor? */
> -			set_bit(desc->bTerminalID, state.unitbitmap);  /* mark terminal ID as visited */
> +			/* mark terminal ID as visited */
> +			set_bit(desc->bTerminalID, state.unitbitmap);
>  			state.oterm.id = desc->bTerminalID;
>  			state.oterm.type = le16_to_cpu(desc->wTerminalType);
>  			state.oterm.name = desc->iTerminal;
> @@ -2144,7 +2230,8 @@ static int snd_usb_mixer_controls(struct usb_mixer_interface *mixer)
>  
>  			if (desc->bLength < sizeof(*desc))
>  				continue; /* invalid descriptor? */
> -			set_bit(desc->bTerminalID, state.unitbitmap);  /* mark terminal ID as visited */
> +			/* mark terminal ID as visited */
> +			set_bit(desc->bTerminalID, state.unitbitmap);
>  			state.oterm.id = desc->bTerminalID;
>  			state.oterm.type = le16_to_cpu(desc->wTerminalType);
>  			state.oterm.name = desc->iTerminal;
> @@ -2152,7 +2239,10 @@ static int snd_usb_mixer_controls(struct usb_mixer_interface *mixer)
>  			if (err < 0 && err != -EINVAL)
>  				return err;
>  
> -			/* for UAC2, use the same approach to also add the clock selectors */
> +			/*
> +			 * For UAC2, use the same approach to also add the
> +			 * clock selectors
> +			 */
>  			err = parse_audio_unit(&state, desc->bCSourceID);
>  			if (err < 0 && err != -EINVAL)
>  				return err;
> @@ -2306,7 +2396,9 @@ static void snd_usb_mixer_interrupt(struct urb *urb)
>  	}
>  
>  requeue:
> -	if (ustatus != -ENOENT && ustatus != -ECONNRESET && ustatus != -ESHUTDOWN) {
> +	if (ustatus != -ENOENT &&
> +	    ustatus != -ECONNRESET &&
> +	    ustatus != -ESHUTDOWN) {
>  		urb->dev = mixer->chip->dev;
>  		usb_submit_urb(urb, GFP_ATOMIC);
>  	}
> -- 
> 1.9.0
> 
>

Patch
diff mbox

diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
index 6fe83e4..9765e1c 100644
--- a/sound/usb/mixer.c
+++ b/sound/usb/mixer.c
@@ -162,7 +162,7 @@  static int check_mapped_selector_name(struct mixer_build *state, int unitid,
 {
 	const struct usbmix_selector_map *p;
 
-	if (! state->selector_map)
+	if (!state->selector_map)
 		return 0;
 	for (p = state->selector_map; p->id; p++) {
 		if (p->id == unitid && index < p->count)
@@ -174,7 +174,8 @@  static int check_mapped_selector_name(struct mixer_build *state, int unitid,
 /*
  * find an audio control unit with the given unit id
  */
-static void *find_audio_control_unit(struct mixer_build *state, unsigned char unit)
+static void *find_audio_control_unit(struct mixer_build *state,
+				     unsigned char unit)
 {
 	/* we just parse the header */
 	struct uac_feature_unit_descriptor *hdr = NULL;
@@ -194,7 +195,8 @@  static void *find_audio_control_unit(struct mixer_build *state, unsigned char un
 /*
  * copy a string with the given id
  */
-static int snd_usb_copy_string_desc(struct mixer_build *state, int index, char *buf, int maxlen)
+static int snd_usb_copy_string_desc(struct mixer_build *state,
+				    int index, char *buf, int maxlen)
 {
 	int len = usb_string(state->chip->dev, index, buf, maxlen - 1);
 	buf[len] = 0;
@@ -253,7 +255,7 @@  static int convert_bytes_value(struct usb_mixer_elem_info *cval, int val)
 
 static int get_relative_value(struct usb_mixer_elem_info *cval, int val)
 {
-	if (! cval->res)
+	if (!cval->res)
 		cval->res = 1;
 	if (val < cval->min)
 		return 0;
@@ -267,7 +269,7 @@  static int get_abs_value(struct usb_mixer_elem_info *cval, int val)
 {
 	if (val < 0)
 		return cval->min;
-	if (! cval->res)
+	if (!cval->res)
 		cval->res = 1;
 	val *= cval->res;
 	val += cval->min;
@@ -281,7 +283,8 @@  static int get_abs_value(struct usb_mixer_elem_info *cval, int val)
  * retrieve a mixer value
  */
 
-static int get_ctl_value_v1(struct usb_mixer_elem_info *cval, int request, int validx, int *value_ret)
+static int get_ctl_value_v1(struct usb_mixer_elem_info *cval, int request,
+			    int validx, int *value_ret)
 {
 	struct snd_usb_audio *chip = cval->mixer->chip;
 	unsigned char buf[2];
@@ -292,6 +295,7 @@  static int get_ctl_value_v1(struct usb_mixer_elem_info *cval, int request, int v
 	err = snd_usb_autoresume(cval->mixer->chip);
 	if (err < 0)
 		return -EIO;
+
 	down_read(&chip->shutdown_rwsem);
 	while (timeout-- > 0) {
 		if (chip->shutdown)
@@ -316,10 +320,11 @@  static int get_ctl_value_v1(struct usb_mixer_elem_info *cval, int request, int v
 	return err;
 }
 
-static int get_ctl_value_v2(struct usb_mixer_elem_info *cval, int request, int validx, int *value_ret)
+static int get_ctl_value_v2(struct usb_mixer_elem_info *cval, int request,
+			    int validx, int *value_ret)
 {
 	struct snd_usb_audio *chip = cval->mixer->chip;
-	unsigned char buf[2 + 3*sizeof(__u16)]; /* enough space for one range */
+	unsigned char buf[2 + 3 * sizeof(__u16)]; /* enough space for one range */
 	unsigned char *val;
 	int idx = 0, ret, size;
 	__u8 bRequest;
@@ -339,9 +344,9 @@  static int get_ctl_value_v2(struct usb_mixer_elem_info *cval, int request, int v
 		goto error;
 
 	down_read(&chip->shutdown_rwsem);
-	if (chip->shutdown)
+	if (chip->shutdown) {
 		ret = -ENODEV;
-	else {
+	} else {
 		idx = snd_usb_ctrl_intf(chip) | (cval->id << 8);
 		ret = snd_usb_ctl_msg(chip->dev, usb_rcvctrlpipe(chip->dev, 0), bRequest,
 			      USB_RECIP_INTERFACE | USB_TYPE_CLASS | USB_DIR_IN,
@@ -382,7 +387,8 @@  error:
 	return 0;
 }
 
-static int get_ctl_value(struct usb_mixer_elem_info *cval, int request, int validx, int *value_ret)
+static int get_ctl_value(struct usb_mixer_elem_info *cval, int request,
+			 int validx, int *value_ret)
 {
 	validx += cval->idx_off;
 
@@ -391,7 +397,8 @@  static int get_ctl_value(struct usb_mixer_elem_info *cval, int request, int vali
 		get_ctl_value_v2(cval, request, validx, value_ret);
 }
 
-static int get_cur_ctl_value(struct usb_mixer_elem_info *cval, int validx, int *value)
+static int get_cur_ctl_value(struct usb_mixer_elem_info *cval,
+			     int validx, int *value)
 {
 	return get_ctl_value(cval, UAC_GET_CUR, validx, value);
 }
@@ -400,7 +407,9 @@  static int get_cur_ctl_value(struct usb_mixer_elem_info *cval, int validx, int *
 static inline int get_cur_mix_raw(struct usb_mixer_elem_info *cval,
 				  int channel, int *value)
 {
-	return get_ctl_value(cval, UAC_GET_CUR, (cval->control << 8) | channel, value);
+	return get_ctl_value(cval, UAC_GET_CUR,
+			     (cval->control << 8) | channel,
+			     value);
 }
 
 static int get_cur_mix_value(struct usb_mixer_elem_info *cval,
@@ -417,7 +426,7 @@  static int get_cur_mix_value(struct usb_mixer_elem_info *cval,
 		if (!cval->mixer->ignore_ctl_error)
 			usb_audio_dbg(cval->mixer->chip,
 				"cannot get current value for control %d ch %d: err = %d\n",
-				   cval->control, channel, err);
+				      cval->control, channel, err);
 		return err;
 	}
 	cval->cached |= 1 << channel;
@@ -425,7 +434,6 @@  static int get_cur_mix_value(struct usb_mixer_elem_info *cval,
 	return 0;
 }
 
-
 /*
  * set a mixer value
  */
@@ -474,7 +482,7 @@  int snd_usb_mixer_set_ctl_value(struct usb_mixer_elem_info *cval,
 		}
 	}
 	usb_audio_dbg(chip, "cannot set ctl value: req = %#x, wValue = %#x, wIndex = %#x, type = %d, data = %#x/%#x\n",
-		    request, validx, idx, cval->val_type, buf[0], buf[1]);
+		      request, validx, idx, cval->val_type, buf[0], buf[1]);
 	err = -EINVAL;
 
  out:
@@ -483,7 +491,8 @@  int snd_usb_mixer_set_ctl_value(struct usb_mixer_elem_info *cval,
 	return err;
 }
 
-static int set_cur_ctl_value(struct usb_mixer_elem_info *cval, int validx, int value)
+static int set_cur_ctl_value(struct usb_mixer_elem_info *cval,
+			     int validx, int value)
 {
 	return snd_usb_mixer_set_ctl_value(cval, UAC_SET_CUR, validx, value);
 }
@@ -503,8 +512,9 @@  static int set_cur_mix_value(struct usb_mixer_elem_info *cval, int channel,
 		return 0;
 	}
 
-	err = snd_usb_mixer_set_ctl_value(cval, UAC_SET_CUR, (cval->control << 8) | channel,
-			    value);
+	err = snd_usb_mixer_set_ctl_value(cval,
+					  UAC_SET_CUR, (cval->control << 8) | channel,
+					  value);
 	if (err < 0)
 		return err;
 	cval->cached |= 1 << channel;
@@ -541,13 +551,13 @@  static int parse_audio_unit(struct mixer_build *state, int unitid);
  * check if the input/output channel routing is enabled on the given bitmap.
  * used for mixer unit parser
  */
-static int check_matrix_bitmap(unsigned char *bmap, int ich, int och, int num_outs)
+static int check_matrix_bitmap(unsigned char *bmap,
+			       int ich, int och, int num_outs)
 {
 	int idx = ich * num_outs + och;
 	return bmap[idx >> 3] & (0x80 >> (idx & 7));
 }
 
-
 /*
  * add an alsa control element
  * search and increment the index until an empty slot is found.
@@ -564,7 +574,8 @@  int snd_usb_mixer_add_control(struct usb_mixer_interface *mixer,
 	while (snd_ctl_find_id(mixer->chip->card, &kctl->id))
 		kctl->id.index++;
 	if ((err = snd_ctl_add(mixer->chip->card, kctl)) < 0) {
-		usb_audio_dbg(mixer->chip, "cannot add control (err = %d)\n", err);
+		usb_audio_dbg(mixer->chip, "cannot add control (err = %d)\n",
+			      err);
 		return err;
 	}
 	cval->elem_id = &kctl->id;
@@ -573,7 +584,6 @@  int snd_usb_mixer_add_control(struct usb_mixer_interface *mixer,
 	return 0;
 }
 
-
 /*
  * get a terminal name string
  */
@@ -627,7 +637,8 @@  static int get_term_name(struct mixer_build *state, struct usb_audio_term *iterm
 	struct iterm_name_combo *names;
 
 	if (iterm->name)
-		return snd_usb_copy_string_desc(state, iterm->name, name, maxlen);
+		return snd_usb_copy_string_desc(state, iterm->name,
+						name, maxlen);
 
 	/* virtual type - not a real terminal */
 	if (iterm->type >> 16) {
@@ -635,13 +646,17 @@  static int get_term_name(struct mixer_build *state, struct usb_audio_term *iterm
 			return 0;
 		switch (iterm->type >> 16) {
 		case UAC_SELECTOR_UNIT:
-			strcpy(name, "Selector"); return 8;
+			strcpy(name, "Selector");
+			return 8;
 		case UAC1_PROCESSING_UNIT:
-			strcpy(name, "Process Unit"); return 12;
+			strcpy(name, "Process Unit");
+			return 12;
 		case UAC1_EXTENSION_UNIT:
-			strcpy(name, "Ext Unit"); return 8;
+			strcpy(name, "Ext Unit");
+			return 8;
 		case UAC_MIXER_UNIT:
-			strcpy(name, "Mixer"); return 5;
+			strcpy(name, "Mixer");
+			return 5;
 		default:
 			return sprintf(name, "Unit %d", iterm->id);
 		}
@@ -649,29 +664,35 @@  static int get_term_name(struct mixer_build *state, struct usb_audio_term *iterm
 
 	switch (iterm->type & 0xff00) {
 	case 0x0100:
-		strcpy(name, "PCM"); return 3;
+		strcpy(name, "PCM");
+		return 3;
 	case 0x0200:
-		strcpy(name, "Mic"); return 3;
+		strcpy(name, "Mic");
+		return 3;
 	case 0x0400:
-		strcpy(name, "Headset"); return 7;
+		strcpy(name, "Headset");
+		return 7;
 	case 0x0500:
-		strcpy(name, "Phone"); return 5;
+		strcpy(name, "Phone");
+		return 5;
 	}
 
-	for (names = iterm_names; names->type; names++)
+	for (names = iterm_names; names->type; names++) {
 		if (names->type == iterm->type) {
 			strcpy(name, names->name);
 			return strlen(names->name);
 		}
+	}
+
 	return 0;
 }
 
-
 /*
  * parse the source unit recursively until it reaches to a terminal
  * or a branched unit.
  */
-static int check_input_term(struct mixer_build *state, int id, struct usb_audio_term *term)
+static int check_input_term(struct mixer_build *state, int id,
+			    struct usb_audio_term *term)
 {
 	int err;
 	void *p1;
@@ -766,7 +787,6 @@  static int check_input_term(struct mixer_build *state, int id, struct usb_audio_
 	return -ENODEV;
 }
 
-
 /*
  * Feature Unit
  */
@@ -794,7 +814,6 @@  static struct usb_feature_control_info audio_feature_info[] = {
 	{ "Phase Inverter Control",	USB_MIXER_BOOLEAN },
 };
 
-
 /* private_free callback */
 static void usb_mixer_elem_free(struct snd_kcontrol *kctl)
 {
@@ -802,7 +821,6 @@  static void usb_mixer_elem_free(struct snd_kcontrol *kctl)
 	kctl->private_data = NULL;
 }
 
-
 /*
  * interface to ALSA control for feature/mixer units
  */
@@ -906,7 +924,6 @@  static void volume_control_quirks(struct usb_mixer_elem_info *cval,
 			cval->res = 384;
 		}
 		break;
-
 	}
 }
 
@@ -939,21 +956,26 @@  static int get_min_max_with_quirks(struct usb_mixer_elem_info *cval,
 		    get_ctl_value(cval, UAC_GET_MIN, (cval->control << 8) | minchn, &cval->min) < 0) {
 			usb_audio_err(cval->mixer->chip,
 				      "%d:%d: cannot get min/max values for control %d (id %d)\n",
-				   cval->id, snd_usb_ctrl_intf(cval->mixer->chip), cval->control, cval->id);
+				   cval->id, snd_usb_ctrl_intf(cval->mixer->chip),
+							       cval->control, cval->id);
 			return -EINVAL;
 		}
-		if (get_ctl_value(cval, UAC_GET_RES, (cval->control << 8) | minchn, &cval->res) < 0) {
+		if (get_ctl_value(cval, UAC_GET_RES,
+				  (cval->control << 8) | minchn,
+				  &cval->res) < 0) {
 			cval->res = 1;
 		} else {
 			int last_valid_res = cval->res;
 
 			while (cval->res > 1) {
 				if (snd_usb_mixer_set_ctl_value(cval, UAC_SET_RES,
-								(cval->control << 8) | minchn, cval->res / 2) < 0)
+								(cval->control << 8) | minchn,
+								cval->res / 2) < 0)
 					break;
 				cval->res /= 2;
 			}
-			if (get_ctl_value(cval, UAC_GET_RES, (cval->control << 8) | minchn, &cval->res) < 0)
+			if (get_ctl_value(cval, UAC_GET_RES,
+					  (cval->control << 8) | minchn, &cval->res) < 0)
 				cval->res = last_valid_res;
 		}
 		if (cval->res == 0)
@@ -1017,7 +1039,8 @@  static int get_min_max_with_quirks(struct usb_mixer_elem_info *cval,
 #define get_min_max(cval, def)	get_min_max_with_quirks(cval, def, NULL)
 
 /* get a feature/mixer unit info */
-static int mixer_ctl_feature_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
+static int mixer_ctl_feature_info(struct snd_kcontrol *kcontrol,
+				  struct snd_ctl_elem_info *uinfo)
 {
 	struct usb_mixer_elem_info *cval = kcontrol->private_data;
 
@@ -1051,7 +1074,8 @@  static int mixer_ctl_feature_info(struct snd_kcontrol *kcontrol, struct snd_ctl_
 }
 
 /* get the current value from feature/mixer unit */
-static int mixer_ctl_feature_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
+static int mixer_ctl_feature_get(struct snd_kcontrol *kcontrol,
+				 struct snd_ctl_elem_value *ucontrol)
 {
 	struct usb_mixer_elem_info *cval = kcontrol->private_data;
 	int c, cnt, val, err;
@@ -1082,7 +1106,8 @@  static int mixer_ctl_feature_get(struct snd_kcontrol *kcontrol, struct snd_ctl_e
 }
 
 /* put the current value to feature/mixer unit */
-static int mixer_ctl_feature_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
+static int mixer_ctl_feature_put(struct snd_kcontrol *kcontrol,
+				 struct snd_ctl_elem_value *ucontrol)
 {
 	struct usb_mixer_elem_info *cval = kcontrol->private_data;
 	int c, cnt, val, oval, err;
@@ -1136,22 +1161,25 @@  static struct snd_kcontrol_new usb_feature_unit_ctl_ro = {
 	.put = NULL,
 };
 
-/* This symbol is exported in order to allow the mixer quirks to
- * hook up to the standard feature unit control mechanism */
+/*
+ * This symbol is exported in order to allow the mixer quirks to
+ * hook up to the standard feature unit control mechanism
+ */
 struct snd_kcontrol_new *snd_usb_feature_unit_ctl = &usb_feature_unit_ctl;
 
 /*
  * build a feature control
  */
-
 static size_t append_ctl_name(struct snd_kcontrol *kctl, const char *str)
 {
 	return strlcat(kctl->id.name, str, sizeof(kctl->id.name));
 }
 
-/* A lot of headsets/headphones have a "Speaker" mixer. Make sure we
-   rename it to "Headphone". We determine if something is a headphone
-   similar to how udev determines form factor. */
+/*
+ * A lot of headsets/headphones have a "Speaker" mixer. Make sure we
+ * rename it to "Headphone". We determine if something is a headphone
+ * similar to how udev determines form factor.
+ */
 static void check_no_speaker_on_headset(struct snd_kcontrol *kctl,
 					struct snd_card *card)
 {
@@ -1201,7 +1229,7 @@  static void build_feature_ctl(struct mixer_build *state, void *raw_desc,
 		return;
 
 	cval = kzalloc(sizeof(*cval), GFP_KERNEL);
-	if (! cval) {
+	if (!cval) {
 		usb_audio_err(state->chip, "cannot malloc kcontrol\n");
 		return;
 	}
@@ -1222,15 +1250,17 @@  static void build_feature_ctl(struct mixer_build *state, void *raw_desc,
 		cval->ch_readonly = readonly_mask;
 	}
 
-	/* if all channels in the mask are marked read-only, make the control
+	/*
+	 * If all channels in the mask are marked read-only, make the control
 	 * read-only. set_cur_mix_value() will check the mask again and won't
-	 * issue write commands to read-only channels. */
+	 * issue write commands to read-only channels.
+	 */
 	if (cval->channels == readonly_mask)
 		kctl = snd_ctl_new1(&usb_feature_unit_ctl_ro, cval);
 	else
 		kctl = snd_ctl_new1(&usb_feature_unit_ctl, cval);
 
-	if (! kctl) {
+	if (!kctl) {
 		usb_audio_err(state->chip, "cannot malloc kcontrol\n");
 		kfree(cval);
 		return;
@@ -1239,48 +1269,53 @@  static void build_feature_ctl(struct mixer_build *state, void *raw_desc,
 
 	len = check_mapped_name(map, kctl->id.name, sizeof(kctl->id.name));
 	mapped_name = len != 0;
-	if (! len && nameid)
+	if (!len && nameid)
 		len = snd_usb_copy_string_desc(state, nameid,
 				kctl->id.name, sizeof(kctl->id.name));
 
 	switch (control) {
 	case UAC_FU_MUTE:
 	case UAC_FU_VOLUME:
-		/* determine the control name.  the rule is:
+		/*
+		 * determine the control name.  the rule is:
 		 * - if a name id is given in descriptor, use it.
 		 * - if the connected input can be determined, then use the name
 		 *   of terminal type.
 		 * - if the connected output can be determined, use it.
 		 * - otherwise, anonymous name.
 		 */
-		if (! len) {
-			len = get_term_name(state, iterm, kctl->id.name, sizeof(kctl->id.name), 1);
-			if (! len)
-				len = get_term_name(state, &state->oterm, kctl->id.name, sizeof(kctl->id.name), 1);
-			if (! len)
-				len = snprintf(kctl->id.name, sizeof(kctl->id.name),
+		if (!len) {
+			len = get_term_name(state, iterm, kctl->id.name,
+					    sizeof(kctl->id.name), 1);
+			if (!len)
+				len = get_term_name(state, &state->oterm,
+						    kctl->id.name,
+						    sizeof(kctl->id.name), 1);
+			if (!len)
+				len = snprintf(kctl->id.name,
+					       sizeof(kctl->id.name),
 					       "Feature %d", unitid);
 		}
 
 		if (!mapped_name)
 			check_no_speaker_on_headset(kctl, state->mixer->chip->card);
 
-		/* determine the stream direction:
+		/*
+		 * determine the stream direction:
 		 * if the connected output is USB stream, then it's likely a
 		 * capture stream.  otherwise it should be playback (hopefully :)
 		 */
-		if (! mapped_name && ! (state->oterm.type >> 16)) {
-			if ((state->oterm.type & 0xff00) == 0x0100) {
+		if (!mapped_name && !(state->oterm.type >> 16)) {
+			if ((state->oterm.type & 0xff00) == 0x0100)
 				len = append_ctl_name(kctl, " Capture");
-			} else {
+			else
 				len = append_ctl_name(kctl, " Playback");
-			}
 		}
 		append_ctl_name(kctl, control == UAC_FU_MUTE ?
 				" Switch" : " Volume");
 		break;
 	default:
-		if (! len)
+		if (!len)
 			strlcpy(kctl->id.name, audio_feature_info[control-1].name,
 				sizeof(kctl->id.name));
 		break;
@@ -1300,33 +1335,35 @@  static void build_feature_ctl(struct mixer_build *state, void *raw_desc,
 	}
 
 	range = (cval->max - cval->min) / cval->res;
-	/* Are there devices with volume range more than 255? I use a bit more
+	/*
+	 * Are there devices with volume range more than 255? I use a bit more
 	 * to be sure. 384 is a resolution magic number found on Logitech
 	 * devices. It will definitively catch all buggy Logitech devices.
 	 */
 	if (range > 384) {
-		usb_audio_warn(state->chip, "Warning! Unlikely big "
-			   "volume range (=%u), cval->res is probably wrong.",
-			   range);
+		usb_audio_warn(state->chip,
+			       "Warning! Unlikely big volume range (=%u), "
+			       "cval->res is probably wrong.",
+			       range);
 		usb_audio_warn(state->chip, "[%d] FU [%s] ch = %d, "
-			   "val = %d/%d/%d", cval->id,
-			   kctl->id.name, cval->channels,
-			   cval->min, cval->max, cval->res);
+			       "val = %d/%d/%d", cval->id,
+			       kctl->id.name, cval->channels,
+			       cval->min, cval->max, cval->res);
 	}
 
 	usb_audio_dbg(state->chip, "[%d] FU [%s] ch = %d, val = %d/%d/%d\n",
-		    cval->id, kctl->id.name, cval->channels, cval->min, cval->max, cval->res);
+		      cval->id, kctl->id.name, cval->channels,
+		      cval->min, cval->max, cval->res);
 	snd_usb_mixer_add_control(state->mixer, kctl);
 }
 
-
-
 /*
  * parse a feature unit
  *
  * most of controls are defined here.
  */
-static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void *_ftr)
+static int parse_audio_feature_unit(struct mixer_build *state, int unitid,
+				    void *_ftr)
 {
 	int channels, i, j;
 	struct usb_audio_term iterm;
@@ -1400,15 +1437,25 @@  static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void
 		for (i = 0; i < 10; i++) {
 			unsigned int ch_bits = 0;
 			for (j = 0; j < channels; j++) {
-				unsigned int mask = snd_usb_combine_bytes(bmaControls + csize * (j+1), csize);
+				unsigned int mask;
+
+				mask = snd_usb_combine_bytes(bmaControls +
+							     csize * (j+1), csize);
 				if (mask & (1 << i))
 					ch_bits |= (1 << j);
 			}
 			/* audio class v1 controls are never read-only */
-			if (ch_bits & 1) /* the first channel must be set (for ease of programming) */
-				build_feature_ctl(state, _ftr, ch_bits, i, &iterm, unitid, 0);
+
+			/*
+			 * The first channel must be set
+			 * (for ease of programming).
+			 */
+			if (ch_bits & 1)
+				build_feature_ctl(state, _ftr, ch_bits, i,
+						  &iterm, unitid, 0);
 			if (master_bits & (1 << i))
-				build_feature_ctl(state, _ftr, 0, i, &iterm, unitid, 0);
+				build_feature_ctl(state, _ftr, 0, i, &iterm,
+						  unitid, 0);
 		}
 	} else { /* UAC_VERSION_2 */
 		for (i = 0; i < ARRAY_SIZE(audio_feature_info); i++) {
@@ -1416,7 +1463,10 @@  static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void
 			unsigned int ch_read_only = 0;
 
 			for (j = 0; j < channels; j++) {
-				unsigned int mask = snd_usb_combine_bytes(bmaControls + csize * (j+1), csize);
+				unsigned int mask;
+
+				mask = snd_usb_combine_bytes(bmaControls +
+							     csize * (j+1), csize);
 				if (uac2_control_is_readable(mask, i)) {
 					ch_bits |= (1 << j);
 					if (!uac2_control_is_writeable(mask, i))
@@ -1424,12 +1474,22 @@  static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void
 				}
 			}
 
-			/* NOTE: build_feature_ctl() will mark the control read-only if all channels
-			 * are marked read-only in the descriptors. Otherwise, the control will be
-			 * reported as writeable, but the driver will not actually issue a write
-			 * command for read-only channels */
-			if (ch_bits & 1) /* the first channel must be set (for ease of programming) */
-				build_feature_ctl(state, _ftr, ch_bits, i, &iterm, unitid, ch_read_only);
+			/*
+			 * NOTE: build_feature_ctl() will mark the control
+			 * read-only if all channels are marked read-only in
+			 * the descriptors. Otherwise, the control will be
+			 * reported as writeable, but the driver will not
+			 * actually issue a write command for read-only
+			 * channels.
+			 */
+
+			/*
+			 * The first channel must be set
+			 * (for ease of programming).
+			 */
+			if (ch_bits & 1)
+				build_feature_ctl(state, _ftr, ch_bits, i,
+						  &iterm, unitid, ch_read_only);
 			if (uac2_control_is_readable(master_bits, i))
 				build_feature_ctl(state, _ftr, 0, i, &iterm, unitid,
 						  !uac2_control_is_writeable(master_bits, i));
@@ -1439,7 +1499,6 @@  static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void
 	return 0;
 }
 
-
 /*
  * Mixer Unit
  */
@@ -1450,7 +1509,6 @@  static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void
  * the callbacks are identical with feature unit.
  * input channel number (zero based) is given in control field instead.
  */
-
 static void build_mixer_unit_ctl(struct mixer_build *state,
 				 struct uac_mixer_unit_descriptor *desc,
 				 int in_pin, int in_ch, int unitid,
@@ -1467,7 +1525,7 @@  static void build_mixer_unit_ctl(struct mixer_build *state,
 		return;
 
 	cval = kzalloc(sizeof(*cval), GFP_KERNEL);
-	if (! cval)
+	if (!cval)
 		return;
 
 	cval->mixer = state->mixer;
@@ -1475,7 +1533,9 @@  static void build_mixer_unit_ctl(struct mixer_build *state,
 	cval->control = in_ch + 1; /* based on 1 */
 	cval->val_type = USB_MIXER_S16;
 	for (i = 0; i < num_outs; i++) {
-		if (check_matrix_bitmap(uac_mixer_unit_bmControls(desc, state->mixer->protocol), in_ch, i, num_outs)) {
+		__u8 *c = uac_mixer_unit_bmControls(desc, state->mixer->protocol);
+
+		if (check_matrix_bitmap(c, in_ch, i, num_outs)) {
 			cval->cmask |= (1 << i);
 			cval->channels++;
 		}
@@ -1485,7 +1545,7 @@  static void build_mixer_unit_ctl(struct mixer_build *state,
 	get_min_max(cval, 0);
 
 	kctl = snd_ctl_new1(&usb_feature_unit_ctl, cval);
-	if (! kctl) {
+	if (!kctl) {
 		usb_audio_err(state->chip, "cannot malloc kcontrol\n");
 		kfree(cval);
 		return;
@@ -1493,9 +1553,10 @@  static void build_mixer_unit_ctl(struct mixer_build *state,
 	kctl->private_free = usb_mixer_elem_free;
 
 	len = check_mapped_name(map, kctl->id.name, sizeof(kctl->id.name));
-	if (! len)
-		len = get_term_name(state, iterm, kctl->id.name, sizeof(kctl->id.name), 0);
-	if (! len)
+	if (!len)
+		len = get_term_name(state, iterm, kctl->id.name,
+				    sizeof(kctl->id.name), 0);
+	if (!len)
 		len = sprintf(kctl->id.name, "Mixer Source %d", in_ch + 1);
 	append_ctl_name(kctl, " Volume");
 
@@ -1504,24 +1565,28 @@  static void build_mixer_unit_ctl(struct mixer_build *state,
 	snd_usb_mixer_add_control(state->mixer, kctl);
 }
 
-
 /*
  * parse a mixer unit
  */
-static int parse_audio_mixer_unit(struct mixer_build *state, int unitid, void *raw_desc)
+static int parse_audio_mixer_unit(struct mixer_build *state, int unitid,
+				  void *raw_desc)
 {
 	struct uac_mixer_unit_descriptor *desc = raw_desc;
 	struct usb_audio_term iterm;
 	int input_pins, num_ins, num_outs;
 	int pin, ich, err;
 
-	if (desc->bLength < 11 || ! (input_pins = desc->bNrInPins) || ! (num_outs = uac_mixer_unit_bNrChannels(desc))) {
-		usb_audio_err(state->chip, "invalid MIXER UNIT descriptor %d\n", unitid);
+	if (desc->bLength < 11 || !(input_pins = desc->bNrInPins) ||
+	    !(num_outs = uac_mixer_unit_bNrChannels(desc))) {
+		usb_audio_err(state->chip,
+			      "invalid MIXER UNIT descriptor %d\n",
+			      unitid);
 		return -EINVAL;
 	}
 	/* no bmControls field (e.g. Maya44) -> ignore */
 	if (desc->bLength <= 10 + input_pins) {
-		usb_audio_dbg(state->chip, "MU %d has no bmControls field\n", unitid);
+		usb_audio_dbg(state->chip, "MU %d has no bmControls field\n",
+			      unitid);
 		return 0;
 	}
 
@@ -1535,12 +1600,14 @@  static int parse_audio_mixer_unit(struct mixer_build *state, int unitid, void *r
 		if (err < 0)
 			return err;
 		num_ins += iterm.channels;
-		for (; ich < num_ins; ++ich) {
+		for (; ich < num_ins; ich++) {
 			int och, ich_has_controls = 0;
 
-			for (och = 0; och < num_outs; ++och) {
-				if (check_matrix_bitmap(uac_mixer_unit_bmControls(desc, state->mixer->protocol),
-							ich, och, num_outs)) {
+			for (och = 0; och < num_outs; och++) {
+				__u8 *c = uac_mixer_unit_bmControls(desc,
+						state->mixer->protocol);
+
+				if (check_matrix_bitmap(c, ich, och, num_outs)) {
 					ich_has_controls = 1;
 					break;
 				}
@@ -1553,13 +1620,13 @@  static int parse_audio_mixer_unit(struct mixer_build *state, int unitid, void *r
 	return 0;
 }
 
-
 /*
  * Processing Unit / Extension Unit
  */
 
 /* get callback for processing/extension unit */
-static int mixer_ctl_procunit_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
+static int mixer_ctl_procunit_get(struct snd_kcontrol *kcontrol,
+				  struct snd_ctl_elem_value *ucontrol)
 {
 	struct usb_mixer_elem_info *cval = kcontrol->private_data;
 	int err, val;
@@ -1577,7 +1644,8 @@  static int mixer_ctl_procunit_get(struct snd_kcontrol *kcontrol, struct snd_ctl_
 }
 
 /* put callback for processing/extension unit */
-static int mixer_ctl_procunit_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
+static int mixer_ctl_procunit_put(struct snd_kcontrol *kcontrol,
+				  struct snd_ctl_elem_value *ucontrol)
 {
 	struct usb_mixer_elem_info *cval = kcontrol->private_data;
 	int val, oval, err;
@@ -1606,7 +1674,6 @@  static struct snd_kcontrol_new mixer_procunit_ctl = {
 	.put = mixer_ctl_procunit_put,
 };
 
-
 /*
  * predefined data for processing units
  */
@@ -1697,10 +1764,13 @@  static struct procunit_info extunits[] = {
 	{ USB_XU_DEVICE_OPTIONS, "AnalogueIn Soft Limit", soft_limit_xu_info },
 	{ 0 }
 };
+
 /*
  * build a processing/extension unit
  */
-static int build_audio_procunit(struct mixer_build *state, int unitid, void *raw_desc, struct procunit_info *list, char *name)
+static int build_audio_procunit(struct mixer_build *state, int unitid,
+				void *raw_desc, struct procunit_info *list,
+				char *name)
 {
 	struct uac_processing_unit_descriptor *desc = raw_desc;
 	int num_ins = desc->bNrInPins;
@@ -1733,19 +1803,19 @@  static int build_audio_procunit(struct mixer_build *state, int unitid, void *raw
 	for (info = list; info && info->type; info++)
 		if (info->type == type)
 			break;
-	if (! info || ! info->type)
+	if (!info || !info->type)
 		info = &default_info;
 
 	for (valinfo = info->values; valinfo->control; valinfo++) {
 		__u8 *controls = uac_processing_unit_bmControls(desc, state->mixer->protocol);
 
-		if (! (controls[valinfo->control / 8] & (1 << ((valinfo->control % 8) - 1))))
+		if (!(controls[valinfo->control / 8] & (1 << ((valinfo->control % 8) - 1))))
 			continue;
 		map = find_map(state, unitid, valinfo->control);
 		if (check_ignored_ctl(map))
 			continue;
 		cval = kzalloc(sizeof(*cval), GFP_KERNEL);
-		if (! cval) {
+		if (!cval) {
 			usb_audio_err(state->chip, "cannot malloc kcontrol\n");
 			return -ENOMEM;
 		}
@@ -1765,7 +1835,8 @@  static int build_audio_procunit(struct mixer_build *state, int unitid, void *raw
 			cval->initialized = 1;
 		} else {
 			if (type == USB_XU_CLOCK_RATE) {
-				/* E-Mu USB 0404/0202/TrackerPre/0204
+				/*
+				 * E-Mu USB 0404/0202/TrackerPre/0204
 				 * samplerate control quirk
 				 */
 				cval->min = 0;
@@ -1777,60 +1848,70 @@  static int build_audio_procunit(struct mixer_build *state, int unitid, void *raw
 		}
 
 		kctl = snd_ctl_new1(&mixer_procunit_ctl, cval);
-		if (! kctl) {
+		if (!kctl) {
 			usb_audio_err(state->chip, "cannot malloc kcontrol\n");
 			kfree(cval);
 			return -ENOMEM;
 		}
 		kctl->private_free = usb_mixer_elem_free;
 
-		if (check_mapped_name(map, kctl->id.name,
-						sizeof(kctl->id.name)))
+		if (check_mapped_name(map, kctl->id.name, sizeof(kctl->id.name))) {
 			/* nothing */ ;
-		else if (info->name)
+		} else if (info->name) {
 			strlcpy(kctl->id.name, info->name, sizeof(kctl->id.name));
-		else {
+		} else {
 			nameid = uac_processing_unit_iProcessing(desc, state->mixer->protocol);
 			len = 0;
 			if (nameid)
-				len = snd_usb_copy_string_desc(state, nameid, kctl->id.name, sizeof(kctl->id.name));
-			if (! len)
+				len = snd_usb_copy_string_desc(state, nameid,
+							       kctl->id.name,
+							       sizeof(kctl->id.name));
+			if (!len)
 				strlcpy(kctl->id.name, name, sizeof(kctl->id.name));
 		}
 		append_ctl_name(kctl, " ");
 		append_ctl_name(kctl, valinfo->suffix);
 
 		usb_audio_dbg(state->chip,
-			"[%d] PU [%s] ch = %d, val = %d/%d\n",
-			    cval->id, kctl->id.name, cval->channels, cval->min, cval->max);
-		if ((err = snd_usb_mixer_add_control(state->mixer, kctl)) < 0)
+			      "[%d] PU [%s] ch = %d, val = %d/%d\n",
+			      cval->id, kctl->id.name, cval->channels,
+			      cval->min, cval->max);
+
+		err = snd_usb_mixer_add_control(state->mixer, kctl);
+		if (err < 0)
 			return err;
 	}
 	return 0;
 }
 
-
-static int parse_audio_processing_unit(struct mixer_build *state, int unitid, void *raw_desc)
+static int parse_audio_processing_unit(struct mixer_build *state, int unitid,
+				       void *raw_desc)
 {
-	return build_audio_procunit(state, unitid, raw_desc, procunits, "Processing Unit");
+	return build_audio_procunit(state, unitid, raw_desc,
+				    procunits, "Processing Unit");
 }
 
-static int parse_audio_extension_unit(struct mixer_build *state, int unitid, void *raw_desc)
+static int parse_audio_extension_unit(struct mixer_build *state, int unitid,
+				      void *raw_desc)
 {
-	/* Note that we parse extension units with processing unit descriptors.
-	 * That's ok as the layout is the same */
-	return build_audio_procunit(state, unitid, raw_desc, extunits, "Extension Unit");
+	/*
+	 * Note that we parse extension units with processing unit descriptors.
+	 * That's ok as the layout is the same.
+	 */
+	return build_audio_procunit(state, unitid, raw_desc,
+				    extunits, "Extension Unit");
 }
 
-
 /*
  * Selector Unit
  */
 
-/* info callback for selector unit
+/*
+ * info callback for selector unit
  * use an enumerator type for routing
  */
-static int mixer_ctl_selector_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
+static int mixer_ctl_selector_info(struct snd_kcontrol *kcontrol,
+				   struct snd_ctl_elem_info *uinfo)
 {
 	struct usb_mixer_elem_info *cval = kcontrol->private_data;
 	const char **itemlist = (const char **)kcontrol->private_value;
@@ -1841,7 +1922,8 @@  static int mixer_ctl_selector_info(struct snd_kcontrol *kcontrol, struct snd_ctl
 }
 
 /* get callback for selector unit */
-static int mixer_ctl_selector_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
+static int mixer_ctl_selector_get(struct snd_kcontrol *kcontrol,
+				  struct snd_ctl_elem_value *ucontrol)
 {
 	struct usb_mixer_elem_info *cval = kcontrol->private_data;
 	int val, err;
@@ -1860,7 +1942,8 @@  static int mixer_ctl_selector_get(struct snd_kcontrol *kcontrol, struct snd_ctl_
 }
 
 /* put callback for selector unit */
-static int mixer_ctl_selector_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
+static int mixer_ctl_selector_put(struct snd_kcontrol *kcontrol,
+				  struct snd_ctl_elem_value *ucontrol)
 {
 	struct usb_mixer_elem_info *cval = kcontrol->private_data;
 	int val, oval, err;
@@ -1889,8 +1972,8 @@  static struct snd_kcontrol_new mixer_selectunit_ctl = {
 	.put = mixer_ctl_selector_put,
 };
 
-
-/* private free callback.
+/*
+ * private free callback.
  * free both private_data and private_value
  */
 static void usb_mixer_selector_elem_free(struct snd_kcontrol *kctl)
@@ -1915,7 +1998,8 @@  static void usb_mixer_selector_elem_free(struct snd_kcontrol *kctl)
 /*
  * parse a selector unit
  */
-static int parse_audio_selector_unit(struct mixer_build *state, int unitid, void *raw_desc)
+static int parse_audio_selector_unit(struct mixer_build *state, int unitid,
+				     void *raw_desc)
 {
 	struct uac_selector_unit_descriptor *desc = raw_desc;
 	unsigned int i, nameid, len;
@@ -1944,7 +2028,7 @@  static int parse_audio_selector_unit(struct mixer_build *state, int unitid, void
 		return 0;
 
 	cval = kzalloc(sizeof(*cval), GFP_KERNEL);
-	if (! cval) {
+	if (!cval) {
 		usb_audio_err(state->chip, "cannot malloc kcontrol\n");
 		return -ENOMEM;
 	}
@@ -1963,7 +2047,7 @@  static int parse_audio_selector_unit(struct mixer_build *state, int unitid, void
 		cval->control = 0;
 
 	namelist = kmalloc(sizeof(char *) * desc->bNrInPins, GFP_KERNEL);
-	if (! namelist) {
+	if (!namelist) {
 		usb_audio_err(state->chip, "cannot malloc\n");
 		kfree(cval);
 		return -ENOMEM;
@@ -1973,7 +2057,7 @@  static int parse_audio_selector_unit(struct mixer_build *state, int unitid, void
 		struct usb_audio_term iterm;
 		len = 0;
 		namelist[i] = kmalloc(MAX_ITEM_NAME_LEN, GFP_KERNEL);
-		if (! namelist[i]) {
+		if (!namelist[i]) {
 			usb_audio_err(state->chip, "cannot malloc\n");
 			while (i--)
 				kfree(namelist[i]);
@@ -2004,11 +2088,12 @@  static int parse_audio_selector_unit(struct mixer_build *state, int unitid, void
 	if (len)
 		;
 	else if (nameid)
-		snd_usb_copy_string_desc(state, nameid, kctl->id.name, sizeof(kctl->id.name));
+		snd_usb_copy_string_desc(state, nameid, kctl->id.name,
+					 sizeof(kctl->id.name));
 	else {
 		len = get_term_name(state, &state->oterm,
 				    kctl->id.name, sizeof(kctl->id.name), 0);
-		if (! len)
+		if (!len)
 			strlcpy(kctl->id.name, "USB", sizeof(kctl->id.name));
 
 		if (desc->bDescriptorSubtype == UAC2_CLOCK_SELECTOR)
@@ -2027,7 +2112,6 @@  static int parse_audio_selector_unit(struct mixer_build *state, int unitid, void
 	return 0;
 }
 
-
 /*
  * parse an audio unit recursively
  */
@@ -2125,14 +2209,16 @@  static int snd_usb_mixer_controls(struct usb_mixer_interface *mixer)
 	}
 
 	p = NULL;
-	while ((p = snd_usb_find_csint_desc(mixer->hostif->extra, mixer->hostif->extralen,
+	while ((p = snd_usb_find_csint_desc(mixer->hostif->extra,
+					    mixer->hostif->extralen,
 					    p, UAC_OUTPUT_TERMINAL)) != NULL) {
 		if (mixer->protocol == UAC_VERSION_1) {
 			struct uac1_output_terminal_descriptor *desc = p;
 
 			if (desc->bLength < sizeof(*desc))
 				continue; /* invalid descriptor? */
-			set_bit(desc->bTerminalID, state.unitbitmap);  /* mark terminal ID as visited */
+			/* mark terminal ID as visited */
+			set_bit(desc->bTerminalID, state.unitbitmap);
 			state.oterm.id = desc->bTerminalID;
 			state.oterm.type = le16_to_cpu(desc->wTerminalType);
 			state.oterm.name = desc->iTerminal;
@@ -2144,7 +2230,8 @@  static int snd_usb_mixer_controls(struct usb_mixer_interface *mixer)
 
 			if (desc->bLength < sizeof(*desc))
 				continue; /* invalid descriptor? */
-			set_bit(desc->bTerminalID, state.unitbitmap);  /* mark terminal ID as visited */
+			/* mark terminal ID as visited */
+			set_bit(desc->bTerminalID, state.unitbitmap);
 			state.oterm.id = desc->bTerminalID;
 			state.oterm.type = le16_to_cpu(desc->wTerminalType);
 			state.oterm.name = desc->iTerminal;
@@ -2152,7 +2239,10 @@  static int snd_usb_mixer_controls(struct usb_mixer_interface *mixer)
 			if (err < 0 && err != -EINVAL)
 				return err;
 
-			/* for UAC2, use the same approach to also add the clock selectors */
+			/*
+			 * For UAC2, use the same approach to also add the
+			 * clock selectors
+			 */
 			err = parse_audio_unit(&state, desc->bCSourceID);
 			if (err < 0 && err != -EINVAL)
 				return err;
@@ -2306,7 +2396,9 @@  static void snd_usb_mixer_interrupt(struct urb *urb)
 	}
 
 requeue:
-	if (ustatus != -ENOENT && ustatus != -ECONNRESET && ustatus != -ESHUTDOWN) {
+	if (ustatus != -ENOENT &&
+	    ustatus != -ECONNRESET &&
+	    ustatus != -ESHUTDOWN) {
 		urb->dev = mixer->chip->dev;
 		usb_submit_urb(urb, GFP_ATOMIC);
 	}