[alsa-devel] [PATCH v2 1/2] ALSA: snd-usb: mixer: coding style fixups

Takashi Iwai tiwai at suse.de
Sun May 25 20:51:05 CEST 2014


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 at 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
> 
> 


More information about the Alsa-devel mailing list