Skip to contentSkip to conversation

sound: Add support for Creative BT-D1 via usb sound quirks

PATCH Applied Alexander Schremmer 2 participants 4 messages Dec 29, 2012 – Jan 4, 2013

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 sound: Add support for Creative BT-D1 via usb sound quirks

From: Alexander Schremmer <[email protected]>

Support the Creative BT-D1 Bluetooth USB audio device. Before this patch, Linux had trouble finding the correct USB descriptors and bailed out with these messages:

no or invalid class specific endpoint descriptor

Now it still prints these messages on hotplug:

snd-usb-audio: probe of ...:1.0 failed with error -5
snd-usb-audio: probe of ...:1.2 failed with error -5
snd-usb-audio: probe of ...:1.3 failed with error -5

But the device works correctly, including the HID support.

The patch is diff'ed against 3.8-rc1 but should apply to older kernels as well.

---
diff -uprN linux-3.8-rc1/sound/usb/quirks-table.h linux-3.8-rc1-mod/sound/usb/quirks-table.h
--- linux-3.8-rc1/sound/usb/quirks-table.h 2012-12-22
02:19:00.000000000 +0100
+++ linux-3.8-rc1-mod/sound/usb/quirks-table.h 2012-12-26 11:41:28.000000000 +0100
@@ -50,6 +50,28 @@

        }

},

+{

+       /* Creative BT-D1 */
+       USB_DEVICE(0x041e, 0x0005),
+       .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
+               .ifnum = 1,
+               .type = QUIRK_AUDIO_FIXED_ENDPOINT,
+               .data = &(const struct audioformat) {
+                       .formats = SNDRV_PCM_FMTBIT_S16_LE,
+                       .channels = 2,
+                       .iface = 1,
+                       .altsetting = 1,
+                       .altset_idx = 1,
+                       .endpoint = 0x03,
+                       .ep_attr = USB_ENDPOINT_XFER_ISOC,
+                       .attributes = 0,
+                       .rates = SNDRV_PCM_RATE_CONTINUOUS,
+                       .rate_min = 48000,
+                       .rate_max = 48000,

+ }
+ }
+},
+
/* Creative/Toshiba Multimedia Center SB-0500 */

 {
        USB_DEVICE(0x041e, 0x3048),
#1 lore raw

At Sat, 29 Dec 2012 14:26:25 +0100,

Quoted 15 lines · Alexander Schremmer

From: Alexander Schremmer <[email protected]>

Support the Creative BT-D1 Bluetooth USB audio device. Before this patch, Linux had trouble finding the correct USB descriptors and bailed out with these messages:

no or invalid class specific endpoint descriptor

Now it still prints these messages on hotplug:

snd-usb-audio: probe of ...:1.0 failed with error -5
snd-usb-audio: probe of ...:1.2 failed with error -5
snd-usb-audio: probe of ...:1.3 failed with error -5

Quoted 6 lines

But the device works correctly, including the HID support.

The patch is diff'ed against 3.8-rc1 but should apply to older kernels as well.

Thanks for the patch. The changes look OK, but could you fix trivial coding issues reported by scripts/checkpatch.pl and resend?

Takashi

Quoted 38 lines

---
diff -uprN linux-3.8-rc1/sound/usb/quirks-table.h linux-3.8-rc1-mod/sound/usb/quirks-table.h
--- linux-3.8-rc1/sound/usb/quirks-table.h 2012-12-22
02:19:00.000000000 +0100
+++ linux-3.8-rc1-mod/sound/usb/quirks-table.h 2012-12-26 11:41:28.000000000 +0100

(quoted diff) +22 -0
@@ -50,6 +50,28 @@
        }
 },
 
+{
+       /* Creative BT-D1 */
+       USB_DEVICE(0x041e, 0x0005),
+       .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
+               .ifnum = 1,
+               .type = QUIRK_AUDIO_FIXED_ENDPOINT,
+               .data = &(const struct audioformat) {
+                       .formats = SNDRV_PCM_FMTBIT_S16_LE,
+                       .channels = 2,
+                       .iface = 1,
+                       .altsetting = 1,
+                       .altset_idx = 1,
+                       .endpoint = 0x03,
+                       .ep_attr = USB_ENDPOINT_XFER_ISOC,
+                       .attributes = 0,
+                       .rates = SNDRV_PCM_RATE_CONTINUOUS,
+                       .rate_min = 48000,
+                       .rate_max = 48000,
+               }
+       }
+},
+
 /* Creative/Toshiba Multimedia Center SB-0500 */
 {
        USB_DEVICE(0x041e, 0x3048),
#2 lore raw
Quoted 2 lines · Takashi Iwai

Thanks for the patch. The changes look OK, but could you fix trivial coding issues reported by scripts/checkpatch.pl and resend?

Oops, my sending workflow ate the tabs, here it is again (hopefully now working correctly):

From: Alexander Schremmer <[email protected]>

Support the Creative BT-D1 Bluetooth USB audio device. Before this patch, Linux had trouble finding the correct USB descriptors and bailed out with these messages:

no or invalid class specific endpoint descriptor

Now it still prints these messages on hotplug:

snd-usb-audio: probe of ...:1.0 failed with error -5
snd-usb-audio: probe of ...:1.2 failed with error -5
snd-usb-audio: probe of ...:1.3 failed with error -5

But the device works correctly, including the HID support.

The patch is diff'ed against 3.8-rc1 but should apply to older kernels as well.

---
diff -uprN linux-3.8-rc1/sound/usb/quirks-table.h
linux-3.8-rc1-mod/sound/usb/quirks-table.h
--- linux-3.8-rc1/sound/usb/quirks-table.h 2012-12-22 02:19:00.000000000
+0100
+++ linux-3.8-rc1-mod/sound/usb/quirks-table.h 2012-12-26
11:41:28.000000000 +0100
@@ -50,6 +50,28 @@
}
},

+{
+ /* Creative BT-D1 */
+ USB_DEVICE(0x041e, 0x0005),
+ .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
+ .ifnum = 1,
+ .type = QUIRK_AUDIO_FIXED_ENDPOINT,
+ .data = &(const struct audioformat) {
+ .formats = SNDRV_PCM_FMTBIT_S16_LE,
+ .channels = 2,
+ .iface = 1,
+ .altsetting = 1,
+ .altset_idx = 1,
+ .endpoint = 0x03,
+ .ep_attr = USB_ENDPOINT_XFER_ISOC,
+ .attributes = 0,
+ .rates = SNDRV_PCM_RATE_CONTINUOUS,
+ .rate_min = 48000,
+ .rate_max = 48000,
+ }
+ }
+},
+
/* Creative/Toshiba Multimedia Center SB-0500 */
{
USB_DEVICE(0x041e, 0x3048),

Applied
#3 lore raw

At Thu, 03 Jan 2013 12:59:07 +0100,

Quoted 24 lines · Alexander Schremmer
Quoted 2 lines · Takashi Iwai

Thanks for the patch. The changes look OK, but could you fix trivial coding issues reported by scripts/checkpatch.pl and resend?

Oops, my sending workflow ate the tabs, here it is again (hopefully now working correctly):

From: Alexander Schremmer <[email protected]>

Support the Creative BT-D1 Bluetooth USB audio device. Before this patch, Linux had trouble finding the correct USB descriptors and bailed out with these messages:

no or invalid class specific endpoint descriptor

Now it still prints these messages on hotplug:

snd-usb-audio: probe of ...:1.0 failed with error -5
snd-usb-audio: probe of ...:1.2 failed with error -5
snd-usb-audio: probe of ...:1.3 failed with error -5

Quoted 6 lines

But the device works correctly, including the HID support.

The patch is diff'ed against 3.8-rc1 but should apply to older kernels as well.

Thanks, applied.

Takashi

Quoted 38 lines

---
diff -uprN linux-3.8-rc1/sound/usb/quirks-table.h
linux-3.8-rc1-mod/sound/usb/quirks-table.h
--- linux-3.8-rc1/sound/usb/quirks-table.h 2012-12-22 02:19:00.000000000
+0100
+++ linux-3.8-rc1-mod/sound/usb/quirks-table.h 2012-12-26
11:41:28.000000000 +0100

(quoted diff) +22 -0
@@ -50,6 +50,28 @@
 	}
 },
 
+{
+	/* Creative BT-D1 */
+	USB_DEVICE(0x041e, 0x0005),
+	.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
+		.ifnum = 1,
+		.type = QUIRK_AUDIO_FIXED_ENDPOINT,
+		.data = &(const struct audioformat) {
+			.formats = SNDRV_PCM_FMTBIT_S16_LE,
+			.channels = 2,
+			.iface = 1,
+			.altsetting = 1,
+			.altset_idx = 1,
+			.endpoint = 0x03,
+			.ep_attr = USB_ENDPOINT_XFER_ISOC,
+			.attributes = 0,
+			.rates = SNDRV_PCM_RATE_CONTINUOUS,
+			.rate_min = 48000,
+			.rate_max = 48000,
+		}
+	}
+},
+
 /* Creative/Toshiba Multimedia Center SB-0500 */
 {
 	USB_DEVICE(0x041e, 0x3048),