Commit ee15d9b8 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

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
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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)
{
@@ -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,
	},
	{}
+29 −4
Original line number Diff line number Diff line
@@ -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)
@@ -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,
	},
	{}
};
+17 −0
Original line number Diff line number Diff line
@@ -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 */
+10 −0
Original line number Diff line number Diff line
@@ -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
 *
@@ -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) {
+1 −0
Original line number Diff line number Diff line
@@ -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
};