Loading sound/firewire/digi00x/digi00x.c +5 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ MODULE_LICENSE("GPL v2"); #define VENDOR_DIGIDESIGN 0x00a07e #define MODEL_CONSOLE 0x000001 #define MODEL_RACK 0x000002 #define SPEC_VERSION 0x000001 static int name_card(struct snd_dg00x *dg00x) { Loading Loading @@ -175,14 +176,18 @@ static const struct ieee1394_device_id snd_dg00x_id_table[] = { /* Both of 002/003 use the same ID. */ { .match_flags = IEEE1394_MATCH_VENDOR_ID | IEEE1394_MATCH_VERSION | IEEE1394_MATCH_MODEL_ID, .vendor_id = VENDOR_DIGIDESIGN, .version = SPEC_VERSION, .model_id = MODEL_CONSOLE, }, { .match_flags = IEEE1394_MATCH_VENDOR_ID | IEEE1394_MATCH_VERSION | IEEE1394_MATCH_MODEL_ID, .vendor_id = VENDOR_DIGIDESIGN, .version = SPEC_VERSION, .model_id = MODEL_RACK, }, {} Loading sound/firewire/tascam/tascam.c +29 −4 Original line number Diff line number Diff line Loading @@ -39,9 +39,6 @@ static const struct snd_tscm_spec model_specs[] = { .midi_capture_ports = 2, .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) Loading Loading @@ -211,11 +208,39 @@ static void snd_tscm_remove(struct fw_unit *unit) } 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 | IEEE1394_MATCH_SPECIFIER_ID, IEEE1394_MATCH_SPECIFIER_ID | IEEE1394_MATCH_VERSION, .vendor_id = 0x00022e, .specifier_id = 0x00022e, .version = 0x800004, }, {} }; Loading sound/usb/quirks-table.h +17 −0 Original line number Diff line number Diff line Loading @@ -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 */ { /* Komplete Audio 6 */ Loading sound/usb/quirks.c +10 −0 Original line number Diff line number Diff line Loading @@ -518,6 +518,15 @@ static int setup_fmt_after_resume_quirk(struct snd_usb_audio *chip, 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 * Loading Loading @@ -557,6 +566,7 @@ int snd_usb_create_quirk(struct snd_usb_audio *chip, [QUIRK_AUDIO_ALIGN_TRANSFER] = create_align_transfer_quirk, [QUIRK_AUDIO_STANDARD_MIXER] = create_standard_mixer_quirk, [QUIRK_SETUP_FMT_AFTER_RESUME] = setup_fmt_after_resume_quirk, [QUIRK_SETUP_DISABLE_AUTOSUSPEND] = setup_disable_autosuspend, }; if (quirk->type < QUIRK_TYPE_COUNT) { Loading sound/usb/usbaudio.h +1 −0 Original line number Diff line number Diff line Loading @@ -102,6 +102,7 @@ enum quirk_type { QUIRK_AUDIO_ALIGN_TRANSFER, QUIRK_AUDIO_STANDARD_MIXER, QUIRK_SETUP_FMT_AFTER_RESUME, QUIRK_SETUP_DISABLE_AUTOSUSPEND, QUIRK_TYPE_COUNT }; Loading Loading
sound/firewire/digi00x/digi00x.c +5 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ MODULE_LICENSE("GPL v2"); #define VENDOR_DIGIDESIGN 0x00a07e #define MODEL_CONSOLE 0x000001 #define MODEL_RACK 0x000002 #define SPEC_VERSION 0x000001 static int name_card(struct snd_dg00x *dg00x) { Loading Loading @@ -175,14 +176,18 @@ static const struct ieee1394_device_id snd_dg00x_id_table[] = { /* Both of 002/003 use the same ID. */ { .match_flags = IEEE1394_MATCH_VENDOR_ID | IEEE1394_MATCH_VERSION | IEEE1394_MATCH_MODEL_ID, .vendor_id = VENDOR_DIGIDESIGN, .version = SPEC_VERSION, .model_id = MODEL_CONSOLE, }, { .match_flags = IEEE1394_MATCH_VENDOR_ID | IEEE1394_MATCH_VERSION | IEEE1394_MATCH_MODEL_ID, .vendor_id = VENDOR_DIGIDESIGN, .version = SPEC_VERSION, .model_id = MODEL_RACK, }, {} Loading
sound/firewire/tascam/tascam.c +29 −4 Original line number Diff line number Diff line Loading @@ -39,9 +39,6 @@ static const struct snd_tscm_spec model_specs[] = { .midi_capture_ports = 2, .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) Loading Loading @@ -211,11 +208,39 @@ static void snd_tscm_remove(struct fw_unit *unit) } 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 | IEEE1394_MATCH_SPECIFIER_ID, IEEE1394_MATCH_SPECIFIER_ID | IEEE1394_MATCH_VERSION, .vendor_id = 0x00022e, .specifier_id = 0x00022e, .version = 0x800004, }, {} }; Loading
sound/usb/quirks-table.h +17 −0 Original line number Diff line number Diff line Loading @@ -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 */ { /* Komplete Audio 6 */ Loading
sound/usb/quirks.c +10 −0 Original line number Diff line number Diff line Loading @@ -518,6 +518,15 @@ static int setup_fmt_after_resume_quirk(struct snd_usb_audio *chip, 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 * Loading Loading @@ -557,6 +566,7 @@ int snd_usb_create_quirk(struct snd_usb_audio *chip, [QUIRK_AUDIO_ALIGN_TRANSFER] = create_align_transfer_quirk, [QUIRK_AUDIO_STANDARD_MIXER] = create_standard_mixer_quirk, [QUIRK_SETUP_FMT_AFTER_RESUME] = setup_fmt_after_resume_quirk, [QUIRK_SETUP_DISABLE_AUTOSUSPEND] = setup_disable_autosuspend, }; if (quirk->type < QUIRK_TYPE_COUNT) { Loading
sound/usb/usbaudio.h +1 −0 Original line number Diff line number Diff line Loading @@ -102,6 +102,7 @@ enum quirk_type { QUIRK_AUDIO_ALIGN_TRANSFER, QUIRK_AUDIO_STANDARD_MIXER, QUIRK_SETUP_FMT_AFTER_RESUME, QUIRK_SETUP_DISABLE_AUTOSUSPEND, QUIRK_TYPE_COUNT }; Loading