Commit ee15d9b8 authored by Takashi Iwai's avatar Takashi Iwai

Merge branch 'for-linus' into for-next

Correct quirk table entries for Lenovo ThinkStation P620, too.
The name and profile strings are now set from a different table, hence
removed.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parents 51ab5d77 1965c436
...@@ -14,6 +14,7 @@ MODULE_LICENSE("GPL v2"); ...@@ -14,6 +14,7 @@ MODULE_LICENSE("GPL v2");
#define VENDOR_DIGIDESIGN 0x00a07e #define VENDOR_DIGIDESIGN 0x00a07e
#define MODEL_CONSOLE 0x000001 #define MODEL_CONSOLE 0x000001
#define MODEL_RACK 0x000002 #define MODEL_RACK 0x000002
#define SPEC_VERSION 0x000001
static int name_card(struct snd_dg00x *dg00x) static int name_card(struct snd_dg00x *dg00x)
{ {
...@@ -175,14 +176,18 @@ static const struct ieee1394_device_id snd_dg00x_id_table[] = { ...@@ -175,14 +176,18 @@ static const struct ieee1394_device_id snd_dg00x_id_table[] = {
/* Both of 002/003 use the same ID. */ /* Both of 002/003 use the same ID. */
{ {
.match_flags = IEEE1394_MATCH_VENDOR_ID | .match_flags = IEEE1394_MATCH_VENDOR_ID |
IEEE1394_MATCH_VERSION |
IEEE1394_MATCH_MODEL_ID, IEEE1394_MATCH_MODEL_ID,
.vendor_id = VENDOR_DIGIDESIGN, .vendor_id = VENDOR_DIGIDESIGN,
.version = SPEC_VERSION,
.model_id = MODEL_CONSOLE, .model_id = MODEL_CONSOLE,
}, },
{ {
.match_flags = IEEE1394_MATCH_VENDOR_ID | .match_flags = IEEE1394_MATCH_VENDOR_ID |
IEEE1394_MATCH_VERSION |
IEEE1394_MATCH_MODEL_ID, IEEE1394_MATCH_MODEL_ID,
.vendor_id = VENDOR_DIGIDESIGN, .vendor_id = VENDOR_DIGIDESIGN,
.version = SPEC_VERSION,
.model_id = MODEL_RACK, .model_id = MODEL_RACK,
}, },
{} {}
......
...@@ -39,9 +39,6 @@ static const struct snd_tscm_spec model_specs[] = { ...@@ -39,9 +39,6 @@ static const struct snd_tscm_spec model_specs[] = {
.midi_capture_ports = 2, .midi_capture_ports = 2,
.midi_playback_ports = 4, .midi_playback_ports = 4,
}, },
// This kernel module doesn't support FE-8 because the most of features
// can be implemented in userspace without any specific support of this
// module.
}; };
static int identify_model(struct snd_tscm *tscm) static int identify_model(struct snd_tscm *tscm)
...@@ -211,11 +208,39 @@ static void snd_tscm_remove(struct fw_unit *unit) ...@@ -211,11 +208,39 @@ static void snd_tscm_remove(struct fw_unit *unit)
} }
static const struct ieee1394_device_id snd_tscm_id_table[] = { static const struct ieee1394_device_id snd_tscm_id_table[] = {
// Tascam, FW-1884.
{
.match_flags = IEEE1394_MATCH_VENDOR_ID |
IEEE1394_MATCH_SPECIFIER_ID |
IEEE1394_MATCH_VERSION,
.vendor_id = 0x00022e,
.specifier_id = 0x00022e,
.version = 0x800000,
},
// Tascam, FE-8 (.version = 0x800001)
// This kernel module doesn't support FE-8 because the most of features
// can be implemented in userspace without any specific support of this
// module.
//
// .version = 0x800002 is unknown.
//
// Tascam, FW-1082.
{
.match_flags = IEEE1394_MATCH_VENDOR_ID |
IEEE1394_MATCH_SPECIFIER_ID |
IEEE1394_MATCH_VERSION,
.vendor_id = 0x00022e,
.specifier_id = 0x00022e,
.version = 0x800003,
},
// Tascam, FW-1804.
{ {
.match_flags = IEEE1394_MATCH_VENDOR_ID | .match_flags = IEEE1394_MATCH_VENDOR_ID |
IEEE1394_MATCH_SPECIFIER_ID, IEEE1394_MATCH_SPECIFIER_ID |
IEEE1394_MATCH_VERSION,
.vendor_id = 0x00022e, .vendor_id = 0x00022e,
.specifier_id = 0x00022e, .specifier_id = 0x00022e,
.version = 0x800004,
}, },
{} {}
}; };
......
...@@ -2707,6 +2707,23 @@ YAMAHA_DEVICE(0x7010, "UB99"), ...@@ -2707,6 +2707,23 @@ YAMAHA_DEVICE(0x7010, "UB99"),
} }
}, },
/* Lenovo ThinkStation P620 Rear Line-in, Line-out and Microphone */
{
USB_DEVICE(0x17aa, 0x1046),
.driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
.ifnum = QUIRK_ANY_INTERFACE,
.type = QUIRK_SETUP_DISABLE_AUTOSUSPEND
}
},
/* Lenovo ThinkStation P620 Internal Speaker + Front Headset */
{
USB_DEVICE(0x17aa, 0x104d),
.driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
.ifnum = QUIRK_ANY_INTERFACE,
.type = QUIRK_SETUP_DISABLE_AUTOSUSPEND
}
},
/* Native Instruments MK2 series */ /* Native Instruments MK2 series */
{ {
/* Komplete Audio 6 */ /* Komplete Audio 6 */
......
...@@ -518,6 +518,15 @@ static int setup_fmt_after_resume_quirk(struct snd_usb_audio *chip, ...@@ -518,6 +518,15 @@ static int setup_fmt_after_resume_quirk(struct snd_usb_audio *chip,
return 1; /* Continue with creating streams and mixer */ return 1; /* Continue with creating streams and mixer */
} }
static int setup_disable_autosuspend(struct snd_usb_audio *chip,
struct usb_interface *iface,
struct usb_driver *driver,
const struct snd_usb_audio_quirk *quirk)
{
driver->supports_autosuspend = 0;
return 1; /* Continue with creating streams and mixer */
}
/* /*
* audio-interface quirks * audio-interface quirks
* *
...@@ -557,6 +566,7 @@ int snd_usb_create_quirk(struct snd_usb_audio *chip, ...@@ -557,6 +566,7 @@ int snd_usb_create_quirk(struct snd_usb_audio *chip,
[QUIRK_AUDIO_ALIGN_TRANSFER] = create_align_transfer_quirk, [QUIRK_AUDIO_ALIGN_TRANSFER] = create_align_transfer_quirk,
[QUIRK_AUDIO_STANDARD_MIXER] = create_standard_mixer_quirk, [QUIRK_AUDIO_STANDARD_MIXER] = create_standard_mixer_quirk,
[QUIRK_SETUP_FMT_AFTER_RESUME] = setup_fmt_after_resume_quirk, [QUIRK_SETUP_FMT_AFTER_RESUME] = setup_fmt_after_resume_quirk,
[QUIRK_SETUP_DISABLE_AUTOSUSPEND] = setup_disable_autosuspend,
}; };
if (quirk->type < QUIRK_TYPE_COUNT) { if (quirk->type < QUIRK_TYPE_COUNT) {
......
...@@ -102,6 +102,7 @@ enum quirk_type { ...@@ -102,6 +102,7 @@ enum quirk_type {
QUIRK_AUDIO_ALIGN_TRANSFER, QUIRK_AUDIO_ALIGN_TRANSFER,
QUIRK_AUDIO_STANDARD_MIXER, QUIRK_AUDIO_STANDARD_MIXER,
QUIRK_SETUP_FMT_AFTER_RESUME, QUIRK_SETUP_FMT_AFTER_RESUME,
QUIRK_SETUP_DISABLE_AUTOSUSPEND,
QUIRK_TYPE_COUNT QUIRK_TYPE_COUNT
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment