> +static int q6usb_update_offload_route(struct snd_soc_component *component, int card,
> + int pcm, int direction, long *route)
> +{
> + struct q6usb_port_data *data = dev_get_drvdata(component->dev);
> + struct snd_soc_usb_device *sdev;
> + int ret = 0;
> + int cidx = -1;
> + int pidx = -1;
> +
> + mutex_lock(&data->mutex);
> +
> + if (list_empty(&data->devices) ||
> + direction == SNDRV_PCM_STREAM_CAPTURE) {
> + ret = -ENODEV;
> + goto out;
> + }
well the code above seems to invalidate what I understood earlier, in
that an error code is returned instead of a set of -1 values...
> +
> + sdev = list_last_entry(&data->devices, struct snd_soc_usb_device, list);
> +
> + /*
> + * Will always look for last PCM device discovered/probed as the
> + * active offload index.
> + */
> + if (card == sdev->card_idx &&
> + pcm == sdev->ppcm_idx[sdev->num_playback - 1]) {
> + cidx = component->card->snd_card->number;
> + pidx = q6usb_get_pcm_id(component);
> + }
> +
> + if (cidx < 0 || pidx < 0) {
> + cidx = -1;
> + pidx = -1;
> + }
> +
> +out:
> + route[0] = cidx;
> + route[1] = pidx;
> +
> + mutex_unlock(&data->mutex);
> +
> + return ret;
> +}
> +
[Index of Archives]
[Pulseaudio]
[Linux Audio Users]
[ALSA Devel]
[Fedora Desktop]
[Fedora SELinux]
[Big List of Linux Books]
[Yosemite News]
[KDE Users]