static int pcxhr_iec958_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct snd_pcxhr *chip = snd_kcontrol_chip(kcontrol); unsigned char aes_bits; int i, err; mutex_lock(&chip->mgr->mixer_mutex); for(i = 0; i < 5; i++) { if (kcontrol->private_value == 0) aes_bits = chip->aes_bits[i]; else { if (chip->mgr->is_hr_stereo) err = hr222_iec958_capture_byte(chip, i, &aes_bits); else err = pcxhr_iec958_capture_byte(chip, i, &aes_bits); if (err) break; } ucontrol->value.iec958.status[i] = aes_bits; } mutex_unlock(&chip->mgr->mixer_mutex); return 0; }
static int pcxhr_iec958_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct snd_pcxhr *chip = snd_kcontrol_chip(kcontrol); unsigned char aes_bits; int i, err; down(&chip->mgr->mixer_mutex); for(i = 0; i < 5; i++) { if (kcontrol->private_value == 0) /* playback */ aes_bits = chip->aes_bits[i]; else { /* capture */ err = pcxhr_iec958_capture_byte(chip, i, &aes_bits); if (err) break; } ucontrol->value.iec958.status[i] = aes_bits; } up(&chip->mgr->mixer_mutex); return 0; }