public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ALSA: usb-audio: Add quirk flags for JBL Pebbles
@ 2026-05-04 11:38 Rong Zhang
  2026-05-04 15:40 ` Takashi Iwai
  0 siblings, 1 reply; 2+ messages in thread
From: Rong Zhang @ 2026-05-04 11:38 UTC (permalink / raw)
  To: Jaroslav Kysela, Takashi Iwai; +Cc: linux-sound, linux-kernel, Rong Zhang

JBL Pebbles is a pair of desktop speakers with UAC interface. Its
Playback and Capture mixers use linear volume with val = 0/999/1 and
0/3996/4. Meanwhile, the reported sample rates are truncated to
multiples of 0x100 (i.e., 44100 => 44032), resulting in noisy kmsg, as a
warning message is printed each time a stream is opened.

Add a quirk table entry matching VID/PID=0x05fc/0x0231 and applying
linear volume and sample rate quirk flags, so that it can work properly.

Also note that the volume control knob on device is an incremental
encoder. It does nothing but sends KEY_VOLUMEUP and KEY_VOLUMEDOWN per
rotation, controlling the UAC Playback volume mixer indirectly. Hence,
the linear volume quirk flags also enable the volume control knob to
function properly.

Quirky device sample:

  usb 5-1.1: new full-speed USB device number 12 using xhci_hcd
  usb 5-1.1: New USB device found, idVendor=05fc, idProduct=0231, bcdDevice= 1.00
  usb 5-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
  usb 5-1.1: Product: JBL Pebbles
  usb 5-1.1: Manufacturer: Harman International Industries
  usb 5-1.1: SerialNumber: 1.0.0
  usb-storage 5-1.1:1.0: USB Mass Storage device detected
  scsi host0: usb-storage 5-1.1:1.0
  usb 5-1.1: Found last interface = 1
  usb 5-1.1: 2:1: add audio endpoint 0x5
  usb 5-1.1: Creating new data endpoint #5
  usb 5-1.1: 2:1 Set sample rate 44100, clock 0
  usb 5-1.1: current rate 44032 is different from the runtime rate 44100
  usb 5-1.1: 3:1: add audio endpoint 0x84
  usb 5-1.1: Creating new data endpoint #84
  usb 5-1.1: 3:1 Set sample rate 44100, clock 0
  usb 5-1.1: current rate 44032 is different from the runtime rate 44100
  usb 5-1.1: [2] FU [PCM Playback Switch] ch = 1, val = 0/1/1
  usb 5-1.1: Warning! Unlikely big volume step count (=999), linear volume or wrong cval->res?
  usb 5-1.1: [2] FU [PCM Playback Volume] ch = 2, val = 0/999/1
  usb 5-1.1: [5] FU [Mic Capture Switch] ch = 1, val = 0/1/1
  usb 5-1.1: Warning! Unlikely big volume step count (=999), linear volume or wrong cval->res?
  usb 5-1.1: [5] FU [Mic Capture Volume] ch = 2, val = 0/3996/4
  input: Harman International Industries JBL Pebbles as /devices/pci0000:00/0000:00:08.3/0000:67:00.3/usb5/5-1/5-1.1/5-1.1:1.4/0003:05FC:0231.0018/input/input55
  hid-generic 0003:05FC:0231.0018: input,hidraw2: USB HID v2.01 Device [Harman International Industries JBL Pebbles] on usb-0000:67:00.3-1.1/input4

Signed-off-by: Rong Zhang <i@rong.moe>
---
 sound/usb/quirks.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 0b4ecc2c6bcc..3a4caec3f8ff 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -2277,6 +2277,9 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = {
 		   QUIRK_FLAG_ALIGN_TRANSFER),
 	DEVICE_FLG(0x05e1, 0x0480, /* Hauppauge Woodbury */
 		   QUIRK_FLAG_SHARE_MEDIA_DEVICE | QUIRK_FLAG_ALIGN_TRANSFER),
+	DEVICE_FLG(0x05fc, 0x0231, /* JBL Pebbles */
+		   QUIRK_FLAG_MIXER_PLAYBACK_LINEAR_VOL | QUIRK_FLAG_MIXER_CAPTURE_LINEAR_VOL |
+		   QUIRK_FLAG_GET_SAMPLE_RATE),
 	DEVICE_FLG(0x0624, 0x3d3f, /* AB13X USB Audio */
 		   QUIRK_FLAG_FORCE_IFACE_RESET | QUIRK_FLAG_IFACE_DELAY),
 	DEVICE_FLG(0x0644, 0x8043, /* TEAC UD-501/UD-501V2/UD-503/NT-503 */

---
base-commit: 6d35786de28116ecf78797a62b84e6bf3c45aa5a
change-id: 20260504-uac-jbl-pebbles-7d186716aa41

Thanks,
Rong


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

* Re: [PATCH] ALSA: usb-audio: Add quirk flags for JBL Pebbles
  2026-05-04 11:38 [PATCH] ALSA: usb-audio: Add quirk flags for JBL Pebbles Rong Zhang
@ 2026-05-04 15:40 ` Takashi Iwai
  0 siblings, 0 replies; 2+ messages in thread
From: Takashi Iwai @ 2026-05-04 15:40 UTC (permalink / raw)
  To: Rong Zhang; +Cc: Jaroslav Kysela, Takashi Iwai, linux-sound, linux-kernel

On Mon, 04 May 2026 13:38:05 +0200,
Rong Zhang wrote:
> 
> JBL Pebbles is a pair of desktop speakers with UAC interface. Its
> Playback and Capture mixers use linear volume with val = 0/999/1 and
> 0/3996/4. Meanwhile, the reported sample rates are truncated to
> multiples of 0x100 (i.e., 44100 => 44032), resulting in noisy kmsg, as a
> warning message is printed each time a stream is opened.
> 
> Add a quirk table entry matching VID/PID=0x05fc/0x0231 and applying
> linear volume and sample rate quirk flags, so that it can work properly.
> 
> Also note that the volume control knob on device is an incremental
> encoder. It does nothing but sends KEY_VOLUMEUP and KEY_VOLUMEDOWN per
> rotation, controlling the UAC Playback volume mixer indirectly. Hence,
> the linear volume quirk flags also enable the volume control knob to
> function properly.
> 
> Quirky device sample:
> 
>   usb 5-1.1: new full-speed USB device number 12 using xhci_hcd
>   usb 5-1.1: New USB device found, idVendor=05fc, idProduct=0231, bcdDevice= 1.00
>   usb 5-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
>   usb 5-1.1: Product: JBL Pebbles
>   usb 5-1.1: Manufacturer: Harman International Industries
>   usb 5-1.1: SerialNumber: 1.0.0
>   usb-storage 5-1.1:1.0: USB Mass Storage device detected
>   scsi host0: usb-storage 5-1.1:1.0
>   usb 5-1.1: Found last interface = 1
>   usb 5-1.1: 2:1: add audio endpoint 0x5
>   usb 5-1.1: Creating new data endpoint #5
>   usb 5-1.1: 2:1 Set sample rate 44100, clock 0
>   usb 5-1.1: current rate 44032 is different from the runtime rate 44100
>   usb 5-1.1: 3:1: add audio endpoint 0x84
>   usb 5-1.1: Creating new data endpoint #84
>   usb 5-1.1: 3:1 Set sample rate 44100, clock 0
>   usb 5-1.1: current rate 44032 is different from the runtime rate 44100
>   usb 5-1.1: [2] FU [PCM Playback Switch] ch = 1, val = 0/1/1
>   usb 5-1.1: Warning! Unlikely big volume step count (=999), linear volume or wrong cval->res?
>   usb 5-1.1: [2] FU [PCM Playback Volume] ch = 2, val = 0/999/1
>   usb 5-1.1: [5] FU [Mic Capture Switch] ch = 1, val = 0/1/1
>   usb 5-1.1: Warning! Unlikely big volume step count (=999), linear volume or wrong cval->res?
>   usb 5-1.1: [5] FU [Mic Capture Volume] ch = 2, val = 0/3996/4
>   input: Harman International Industries JBL Pebbles as /devices/pci0000:00/0000:00:08.3/0000:67:00.3/usb5/5-1/5-1.1/5-1.1:1.4/0003:05FC:0231.0018/input/input55
>   hid-generic 0003:05FC:0231.0018: input,hidraw2: USB HID v2.01 Device [Harman International Industries JBL Pebbles] on usb-0000:67:00.3-1.1/input4
> 
> Signed-off-by: Rong Zhang <i@rong.moe>

Applied now.  Thanks.


Takashi

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

end of thread, other threads:[~2026-05-04 15:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-04 11:38 [PATCH] ALSA: usb-audio: Add quirk flags for JBL Pebbles Rong Zhang
2026-05-04 15:40 ` Takashi Iwai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox