Commit c127d5cd authored by Takashi Sakamoto's avatar Takashi Sakamoto Committed by Takashi Iwai
Browse files

ALSA: oxfw: code refactoring for existent device entry with specifier_id and version



All of the devices known to be based on OXFW ASICs have the same layout
of configuration ROM, in which unit directory includes vendor, model,
specifier_id and version immediate values. Especially, the pair of
specifier_id and version is fixed to represent AV/C general protocol.

This commit refactors device entries to fulfil with these 4 elements.

Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
Link: https://lore.kernel.org/r/20210518084557.102681-4-o-takashi@sakamocchi.jp


Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent ffe66bbe
Loading
Loading
Loading
Loading
+25 −57
Original line number Diff line number Diff line
@@ -320,36 +320,24 @@ static const struct compat_info lacie_speakers = {
	.model_name = "FireWire Speakers",
};

#define OXFW_DEV_ENTRY(vendor, model, data) \
{ \
	.match_flags  = IEEE1394_MATCH_VENDOR_ID | \
			IEEE1394_MATCH_MODEL_ID | \
			IEEE1394_MATCH_SPECIFIER_ID | \
			IEEE1394_MATCH_VERSION, \
	.vendor_id    = vendor, \
	.model_id     = model, \
	.specifier_id = SPECIFIER_1394TA, \
	.version      = VERSION_AVC, \
	.driver_data  = (kernel_ulong_t)data, \
}

static const struct ieee1394_device_id oxfw_id_table[] = {
	{
		.match_flags  = IEEE1394_MATCH_VENDOR_ID |
				IEEE1394_MATCH_MODEL_ID |
				IEEE1394_MATCH_SPECIFIER_ID |
				IEEE1394_MATCH_VERSION,
		.vendor_id    = VENDOR_GRIFFIN,
		.model_id     = 0x00f970,
		.specifier_id = SPECIFIER_1394TA,
		.version      = VERSION_AVC,
		.driver_data  = (kernel_ulong_t)&griffin_firewave,
	},
	{
		.match_flags  = IEEE1394_MATCH_VENDOR_ID |
				IEEE1394_MATCH_MODEL_ID |
				IEEE1394_MATCH_SPECIFIER_ID |
				IEEE1394_MATCH_VERSION,
		.vendor_id    = VENDOR_LACIE,
		.model_id     = 0x00f970,
		.specifier_id = SPECIFIER_1394TA,
		.version      = VERSION_AVC,
		.driver_data  = (kernel_ulong_t)&lacie_speakers,
	},
	/* Behringer,F-Control Audio 202 */
	{
		.match_flags	= IEEE1394_MATCH_VENDOR_ID |
				  IEEE1394_MATCH_MODEL_ID,
		.vendor_id	= VENDOR_BEHRINGER,
		.model_id	= 0x00fc22,
	},
	OXFW_DEV_ENTRY(VENDOR_GRIFFIN, 0x00f970, &griffin_firewave),
	OXFW_DEV_ENTRY(VENDOR_LACIE, 0x00f970, &lacie_speakers),
	// Behringer,F-Control Audio 202.
	OXFW_DEV_ENTRY(VENDOR_BEHRINGER, 0x00fc22, NULL),
	/*
	 * Any Mackie(Loud) models (name string/model id):
	 *  Onyx-i series (former models):	0x081216
@@ -367,34 +355,14 @@ static const struct ieee1394_device_id oxfw_id_table[] = {
		.specifier_id	= SPECIFIER_1394TA,
		.version	= VERSION_AVC,
	},
	/* TASCAM, FireOne */
	{
		.match_flags	= IEEE1394_MATCH_VENDOR_ID |
				  IEEE1394_MATCH_MODEL_ID,
		.vendor_id	= VENDOR_TASCAM,
		.model_id	= 0x800007,
	},
	/* Stanton, Stanton Controllers & Systems 1 Mixer (SCS.1m) */
	{
		.match_flags	= IEEE1394_MATCH_VENDOR_ID |
				  IEEE1394_MATCH_MODEL_ID,
		.vendor_id	= OUI_STANTON,
		.model_id	= 0x001000,
	},
	/* Stanton, Stanton Controllers & Systems 1 Deck (SCS.1d) */
	{
		.match_flags	= IEEE1394_MATCH_VENDOR_ID |
				  IEEE1394_MATCH_MODEL_ID,
		.vendor_id	= OUI_STANTON,
		.model_id	= 0x002000,
	},
	// APOGEE, duet FireWire
	{
		.match_flags	= IEEE1394_MATCH_VENDOR_ID |
				  IEEE1394_MATCH_MODEL_ID,
		.vendor_id	= OUI_APOGEE,
		.model_id	= 0x01dddd,
	},
	// TASCAM, FireOne.
	OXFW_DEV_ENTRY(VENDOR_TASCAM, 0x800007, NULL),
	// Stanton, Stanton Controllers & Systems 1 Mixer (SCS.1m).
	OXFW_DEV_ENTRY(OUI_STANTON, 0x001000, NULL),
	// Stanton, Stanton Controllers & Systems 1 Deck (SCS.1d).
	OXFW_DEV_ENTRY(OUI_STANTON, 0x002000, NULL),
	// APOGEE, duet FireWire.
	OXFW_DEV_ENTRY(OUI_APOGEE, 0x01dddd, NULL),
	{ }
};
MODULE_DEVICE_TABLE(ieee1394, oxfw_id_table);