All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: chihhao chen <chihhao.chen@mediatek.com>
Cc: alsa-devel@alsa-project.org
Subject: Re: missing sound on kernel-5.15
Date: Mon, 29 Aug 2022 14:16:27 +0200	[thread overview]
Message-ID: <87a67nb5yc.wl-tiwai@suse.de> (raw)
In-Reply-To: <dcd647b6b5833e08e3ac588685bcdd9f5c625bbb.camel@mediatek.com>

On Mon, 29 Aug 2022 10:50:58 +0200,
chihhao chen wrote:
> 
> Hi Takashi,
> 
> Yes.
> 
> To issue SAMPLING_FREQ_CONTROL USB request two times is root cause of
> this issue.

Hm, is it a UAC1 device?  Such a device should work with multiple
SAMPLING_FREQ_CONTROL invocations, but some device might be not
tolerant or buggy...  The multiple init_sample_rate() invocations may
happen with the older kernel under certain situations, so maybe we
need a different fix.

How about the patch like below?


thanks,

Takashi

---
diff --git a/sound/usb/card.h b/sound/usb/card.h
index ca75f2206170..507cd62f0ff8 100644
--- a/sound/usb/card.h
+++ b/sound/usb/card.h
@@ -134,6 +134,7 @@ struct snd_usb_endpoint {
 	/* for hw constraints */
 	const struct audioformat *cur_audiofmt;
 	unsigned int cur_rate;
+	unsigned int cur_rate_setup;
 	snd_pcm_format_t cur_format;
 	unsigned int cur_channels;
 	unsigned int cur_frame_bytes;
diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c
index 0d7b73bf7945..1a5a9bc98a96 100644
--- a/sound/usb/endpoint.c
+++ b/sound/usb/endpoint.c
@@ -806,6 +806,7 @@ snd_usb_endpoint_open(struct snd_usb_audio *chip,
 		ep->cur_audiofmt = fp;
 		ep->cur_channels = fp->channels;
 		ep->cur_rate = params_rate(params);
+		ep->cur_rate_setup = 0;
 		ep->cur_format = params_format(params);
 		ep->cur_frame_bytes = snd_pcm_format_physical_width(ep->cur_format) *
 			ep->cur_channels / 8;
@@ -928,6 +929,7 @@ void snd_usb_endpoint_close(struct snd_usb_audio *chip,
 		ep->altsetting = 0;
 		ep->cur_audiofmt = NULL;
 		ep->cur_rate = 0;
+		ep->cur_rate_setup = 0;
 		ep->iface_ref = NULL;
 		ep->clock_ref = NULL;
 		usb_audio_dbg(chip, "EP 0x%x closed\n", ep->ep_num);
@@ -1356,6 +1358,9 @@ static int init_sample_rate(struct snd_usb_audio *chip,
 	struct snd_usb_clock_ref *clock = ep->clock_ref;
 	int err;
 
+	if (ep->cur_rate == ep->cur_rate_setup)
+		return 0;
+
 	if (clock) {
 		if (atomic_read(&clock->locked))
 			return 0;
@@ -1374,6 +1379,7 @@ static int init_sample_rate(struct snd_usb_audio *chip,
 
 	if (clock)
 		clock->rate = ep->cur_rate;
+	ep->cur_rate_setup = ep->cur_rate;
 	return 0;
 }
 

  reply	other threads:[~2022-08-29 12:17 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-22  8:06 missing sound on kernel-5.15 chihhao chen
2022-08-22 11:57 ` Geraldo Nascimento
2022-08-29  7:56   ` chihhao chen
2022-08-29  8:06     ` Takashi Iwai
2022-08-29  8:50       ` chihhao chen
2022-08-29 12:16         ` Takashi Iwai [this message]
2022-08-29 18:15           ` Takashi Iwai
2022-08-30  5:54             ` Takashi Iwai
2022-08-30  6:02               ` Takashi Iwai
2022-08-30  6:13               ` chihhao chen
2022-08-30  7:02                 ` Takashi Iwai
2022-08-30  8:08                   ` chihhao chen
2022-08-30  8:24                     ` Takashi Iwai
2022-08-31  3:39                       ` chihhao chen
2022-08-31  5:18                         ` Takashi Iwai
2022-08-31  7:03                           ` chihhao chen
2022-08-31  8:04                             ` Takashi Iwai
2022-08-31  9:26                               ` chihhao chen
2022-08-31 10:48                                 ` Takashi Iwai
2022-08-31 13:16                                   ` chihhao chen
2022-08-31 13:40                                     ` Takashi Iwai
2022-09-01  5:50                                       ` chihhao chen
2022-09-01  7:51                                         ` Takashi Iwai
2022-09-01  8:28                                           ` Takashi Iwai
2022-09-01 10:06                                             ` chihhao chen
2022-09-01 10:25                                               ` Takashi Iwai
2022-11-11  7:58                                                 ` Chihhao Chen (陳志豪)
     [not found] <1661150747490509987-webhooks-bot@alsa-project.org>
2022-08-22  6:45 ` GitHub issues - opened

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87a67nb5yc.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=chihhao.chen@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.