All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] sound/usb : Fix mic sound on Jieli webcam
@ 2021-10-16 15:38 Marco Giunta
  2021-10-17  7:12 ` Takashi Iwai
  0 siblings, 1 reply; 5+ messages in thread
From: Marco Giunta @ 2021-10-16 15:38 UTC (permalink / raw)
  To: alsa-devel; +Cc: tiwai

Hi,
this is my second attempt
(https://mailman.alsa-project.org/pipermail/alsa-devel/2020-December/178361.html)
to fix mic sound on a Jieli webcam. I found that the mic works only
when ep packet size is set to wMaxPacketSize, so I've removed the
datainterval hack. I also fixed the problem with the volume control
(mixer).

Now the mic sound works (no more Minion voice) and there are no more
errors in syslog about volume range. I arbitrarily choose a resolution
value (16): I read in a comment that there should be no more than 255
levels, so 4096 (max volume) / 16 = 0-255 ;-)

Could you review this patch?

Thanks,
  Marco



Jieli Technology USB Webcam microphone needs some quirks to work.

Signed-off-by: Marco Giunta <giun7a@gmail.com>
---
 sound/usb/mixer.c  | 7 +++++++
 sound/usb/quirks.c | 6 ++++++
 2 files changed, 13 insertions(+)

diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
index 9b713b4a5..20ef12dd8 100644
--- a/sound/usb/mixer.c
+++ b/sound/usb/mixer.c
@@ -1198,6 +1198,13 @@ static void volume_control_quirks(struct
usb_mixer_elem_info *cval,
             cval->res = 1;
         }
         break;
+    case USB_ID(0x1224, 0x2a25): /* Jieli Technology USB PHY 2.0 */
+        if (!strcmp(kctl->id.name, "Mic Capture Volume")) {
+            usb_audio_info(chip,
+                "set resolution quirk: cval->res = 16\n");
+            cval->res = 16;
+        }
+        break;
     }
 }

diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 326d1b0ea..2263e43fd 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -1534,6 +1534,7 @@ bool snd_usb_get_sample_rate_quirk(struct
snd_usb_audio *chip)
     case USB_ID(0x2912, 0x30c8): /* Audioengine D1 */
     case USB_ID(0x413c, 0xa506): /* Dell AE515 sound bar */
     case USB_ID(0x046d, 0x084c): /* Logitech ConferenceCam Connect */
+    case USB_ID(0x1224, 0x2a25): /* Jieli Technology USB PHY 2.0 */
         return true;
     }

@@ -1874,6 +1875,11 @@ void
snd_usb_audioformat_attributes_quirk(struct snd_usb_audio *chip,
          */
         fp->attributes &= ~UAC_EP_CS_ATTR_FILL_MAX;
         break;
+    case USB_ID(0x1224, 0x2a25):  /* Jieli Technology USB PHY 2.0 */
+        /* mic works only when ep packet size is set to wMaxPacketSize */
+        fp->attributes |= UAC_EP_CS_ATTR_FILL_MAX;
+        break;
+
     }
 }

--
2.31.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] sound/usb : Fix mic sound on Jieli webcam
  2021-10-16 15:38 [PATCH v2] sound/usb : Fix mic sound on Jieli webcam Marco Giunta
@ 2021-10-17  7:12 ` Takashi Iwai
  2021-10-18 16:25   ` [PATCH v3] ALSA: usb-audio: Fix microphone " Marco Giunta
  0 siblings, 1 reply; 5+ messages in thread
From: Takashi Iwai @ 2021-10-17  7:12 UTC (permalink / raw)
  To: Marco Giunta; +Cc: alsa-devel, tiwai

On Sat, 16 Oct 2021 17:38:25 +0200,
Marco Giunta wrote:
> 
> Hi,
> this is my second attempt
> (https://mailman.alsa-project.org/pipermail/alsa-devel/2020-December/178361.html)
> to fix mic sound on a Jieli webcam. I found that the mic works only
> when ep packet size is set to wMaxPacketSize, so I've removed the
> datainterval hack. I also fixed the problem with the volume control
> (mixer).
> 
> Now the mic sound works (no more Minion voice) and there are no more
> errors in syslog about volume range. I arbitrarily choose a resolution
> value (16): I read in a comment that there should be no more than 255
> levels, so 4096 (max volume) / 16 = 0-255 ;-)
> 
> Could you review this patch?

Thanks, this version looks much better.

But the patch couldn't be applied, firstly, because the spaces were
malformed likely by your MUA.  Please try to fix your MUA set up
not to replace tabs.  If it's difficult, use an attachment instead.

Also, one of the changes in quirks.c can't be applied to the latest
code in Linus tree, as the quirk handling has been changed.
Now it's treated in a quirk table.  Please adjust with it.
For the stable tree, we may resubmit the modified patch
individually later.

And, please fill the content of the patch description a bit more;
you can put the information you've written in the above into the
changelog for a better explanation how the quirk works.

Last but not least, use the subject prefix "ALSA: usb-audio: " :)

Could you resubmit with those fixes?


thanks,

Takashi

> 
> Thanks,
>   Marco
> 
> 
> 
> Jieli Technology USB Webcam microphone needs some quirks to work.
> 
> Signed-off-by: Marco Giunta <giun7a@gmail.com>
> ---
>  sound/usb/mixer.c  | 7 +++++++
>  sound/usb/quirks.c | 6 ++++++
>  2 files changed, 13 insertions(+)
> 
> diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
> index 9b713b4a5..20ef12dd8 100644
> --- a/sound/usb/mixer.c
> +++ b/sound/usb/mixer.c
> @@ -1198,6 +1198,13 @@ static void volume_control_quirks(struct
> usb_mixer_elem_info *cval,
>              cval->res = 1;
>          }
>          break;
> +    case USB_ID(0x1224, 0x2a25): /* Jieli Technology USB PHY 2.0 */
> +        if (!strcmp(kctl->id.name, "Mic Capture Volume")) {
> +            usb_audio_info(chip,
> +                "set resolution quirk: cval->res = 16\n");
> +            cval->res = 16;
> +        }
> +        break;
>      }
>  }
> 
> diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
> index 326d1b0ea..2263e43fd 100644
> --- a/sound/usb/quirks.c
> +++ b/sound/usb/quirks.c
> @@ -1534,6 +1534,7 @@ bool snd_usb_get_sample_rate_quirk(struct
> snd_usb_audio *chip)
>      case USB_ID(0x2912, 0x30c8): /* Audioengine D1 */
>      case USB_ID(0x413c, 0xa506): /* Dell AE515 sound bar */
>      case USB_ID(0x046d, 0x084c): /* Logitech ConferenceCam Connect */
> +    case USB_ID(0x1224, 0x2a25): /* Jieli Technology USB PHY 2.0 */
>          return true;
>      }
> 
> @@ -1874,6 +1875,11 @@ void
> snd_usb_audioformat_attributes_quirk(struct snd_usb_audio *chip,
>           */
>          fp->attributes &= ~UAC_EP_CS_ATTR_FILL_MAX;
>          break;
> +    case USB_ID(0x1224, 0x2a25):  /* Jieli Technology USB PHY 2.0 */
> +        /* mic works only when ep packet size is set to wMaxPacketSize */
> +        fp->attributes |= UAC_EP_CS_ATTR_FILL_MAX;
> +        break;
> +
>      }
>  }
> 
> --
> 2.31.1
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v3] ALSA: usb-audio: Fix microphone sound on Jieli webcam.
  2021-10-17  7:12 ` Takashi Iwai
@ 2021-10-18 16:25   ` Marco Giunta
  2021-10-19  6:08     ` Takashi Iwai
  0 siblings, 1 reply; 5+ messages in thread
From: Marco Giunta @ 2021-10-18 16:25 UTC (permalink / raw)
  To: alsa-devel; +Cc: tiwai

When a Jieli Technology USB Webcam is connected, the video part works
well, but the mic sound is speeded up. On dmesg there are messages
about different rates from the runtime rates, warnings about volume
resolution and lastly, the log is filled, every 5 seconds, with
retire_capture_urb error messages.

The mic works only when ep packet size is set to wMaxPacketSize (normal
sound and no more retire_capture_urb error messages). Skipping reading
sample rate, fixes the messages about different rates and forcing a volume
resolution, fixes warnings about volume range. I have arbitrarily choosed
the value (16): I read in a comment that there should be no more than 255
levels, so 4096 (max volume) / 16 = 0-255.

Signed-off-by: Marco Giunta <giun7a@gmail.com>
---
 sound/usb/mixer.c  | 7 +++++++
 sound/usb/quirks.c | 7 +++++++
 2 files changed, 14 insertions(+)

diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
index a2ce535..8e030b1 100644
--- a/sound/usb/mixer.c
+++ b/sound/usb/mixer.c
@@ -1198,6 +1198,13 @@ static void volume_control_quirks(struct usb_mixer_elem_info *cval,
 			cval->res = 1;
 		}
 		break;
+	case USB_ID(0x1224, 0x2a25): /* Jieli Technology USB PHY 2.0 */
+		if (!strcmp(kctl->id.name, "Mic Capture Volume")) {
+			usb_audio_info(chip,
+				"set resolution quirk: cval->res = 16\n");
+			cval->res = 16;
+		}
+		break;
 	}
 }
 
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 889c855..712b699 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -1719,6 +1719,11 @@ void snd_usb_audioformat_attributes_quirk(struct snd_usb_audio *chip,
 		 */
 		fp->attributes &= ~UAC_EP_CS_ATTR_FILL_MAX;
 		break;
+	case USB_ID(0x1224, 0x2a25):  /* Jieli Technology USB PHY 2.0 */
+		/* mic works only when ep packet size is set to wMaxPacketSize */
+		fp->attributes |= UAC_EP_CS_ATTR_FILL_MAX;
+		break;
+
 	}
 }
 
@@ -1888,6 +1893,8 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = {
 		   QUIRK_FLAG_GET_SAMPLE_RATE),
 	DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */
 		   QUIRK_FLAG_ALIGN_TRANSFER),
+	DEVICE_FLG(0x1224, 0x2a25, /* Jieli Technology USB PHY 2.0 */
+		   QUIRK_FLAG_GET_SAMPLE_RATE),
 
 	/* Vendor matches */
 	VENDOR_FLG(0x045e, /* MS Lifecam */
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v3] ALSA: usb-audio: Fix microphone sound on Jieli webcam.
  2021-10-18 16:25   ` [PATCH v3] ALSA: usb-audio: Fix microphone " Marco Giunta
@ 2021-10-19  6:08     ` Takashi Iwai
  2021-10-19  7:02       ` [PATCH v2] " Marco Giunta
  0 siblings, 1 reply; 5+ messages in thread
From: Takashi Iwai @ 2021-10-19  6:08 UTC (permalink / raw)
  To: Marco Giunta; +Cc: alsa-devel

On Mon, 18 Oct 2021 18:25:52 +0200,
Marco Giunta wrote:
> 
> When a Jieli Technology USB Webcam is connected, the video part works
> well, but the mic sound is speeded up. On dmesg there are messages
> about different rates from the runtime rates, warnings about volume
> resolution and lastly, the log is filled, every 5 seconds, with
> retire_capture_urb error messages.
> 
> The mic works only when ep packet size is set to wMaxPacketSize (normal
> sound and no more retire_capture_urb error messages). Skipping reading
> sample rate, fixes the messages about different rates and forcing a volume
> resolution, fixes warnings about volume range. I have arbitrarily choosed
> the value (16): I read in a comment that there should be no more than 255
> levels, so 4096 (max volume) / 16 = 0-255.
> 
> Signed-off-by: Marco Giunta <giun7a@gmail.com>

Thanks, now applied.


Takashi

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2] ALSA: usb-audio: Fix microphone sound on Jieli webcam.
  2021-10-19  6:08     ` Takashi Iwai
@ 2021-10-19  7:02       ` Marco Giunta
  0 siblings, 0 replies; 5+ messages in thread
From: Marco Giunta @ 2021-10-19  7:02 UTC (permalink / raw)
  To: alsa-devel; +Cc: tiwai

When a Jieli Technology USB Webcam is connected, the video part works
well, but the mic sound is speeded up. On dmesg there are messages
about different rates from the runtime rates, warnings about volume
resolution and lastly, the log is filled, every 5 seconds, with
retire_capture_urb error messages.

The mic works only when ep packet size is set to wMaxPacketSize (normal
sound and no more retire_capture_urb error messages). Skipping reading
sample rate, fixes the messages about different rates and forcing a volume
resolution, fixes warnings about volume range. I have arbitrarily choosed
the value (16): I read in a comment that there should be no more than 255
levels, so 4096 (max volume) / 16 = 0-255.

Signed-off-by: Marco Giunta <giun7a@gmail.com>
---

Could you apply this patch also to the stable tree ?

Thanks,
  Marco


 sound/usb/mixer.c  | 7 +++++++
 sound/usb/quirks.c | 6 ++++++
 2 files changed, 13 insertions(+)

diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
index 9b713b4a5..20ef12dd8 100644
--- a/sound/usb/mixer.c
+++ b/sound/usb/mixer.c
@@ -1198,6 +1198,13 @@ static void volume_control_quirks(struct usb_mixer_elem_info *cval,
 			cval->res = 1;
 		}
 		break;
+	case USB_ID(0x1224, 0x2a25): /* Jieli Technology USB PHY 2.0 */
+		if (!strcmp(kctl->id.name, "Mic Capture Volume")) {
+			usb_audio_info(chip,
+				"set resolution quirk: cval->res = 16\n");
+			cval->res = 16;
+		}
+		break;
 	}
 }
 
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 326d1b0ea..2263e43fd 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -1534,6 +1534,7 @@ bool snd_usb_get_sample_rate_quirk(struct snd_usb_audio *chip)
 	case USB_ID(0x2912, 0x30c8): /* Audioengine D1 */
 	case USB_ID(0x413c, 0xa506): /* Dell AE515 sound bar */
 	case USB_ID(0x046d, 0x084c): /* Logitech ConferenceCam Connect */
+	case USB_ID(0x1224, 0x2a25): /* Jieli Technology USB PHY 2.0 */
 		return true;
 	}
 
@@ -1874,6 +1875,11 @@ void snd_usb_audioformat_attributes_quirk(struct snd_usb_audio *chip,
 		 */
 		fp->attributes &= ~UAC_EP_CS_ATTR_FILL_MAX;
 		break;
+	case USB_ID(0x1224, 0x2a25):  /* Jieli Technology USB PHY 2.0 */
+		/* mic works only when ep packet size is set to wMaxPacketSize */
+		fp->attributes |= UAC_EP_CS_ATTR_FILL_MAX;
+		break;
+
 	}
 }
 
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-10-19  7:03 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-16 15:38 [PATCH v2] sound/usb : Fix mic sound on Jieli webcam Marco Giunta
2021-10-17  7:12 ` Takashi Iwai
2021-10-18 16:25   ` [PATCH v3] ALSA: usb-audio: Fix microphone " Marco Giunta
2021-10-19  6:08     ` Takashi Iwai
2021-10-19  7:02       ` [PATCH v2] " Marco Giunta

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.