|
@@ -24,36 +24,6 @@ MODULE_LICENSE("GPL v2");
|
|
|
|
|
|
#define MODEL_ALESIS_IO_BOTH 0x000001
|
|
#define MODEL_ALESIS_IO_BOTH 0x000001
|
|
|
|
|
|
-/*
|
|
|
|
- * Some models support several isochronous channels, while these streams are not
|
|
|
|
- * always available. In this case, add the model name to this list.
|
|
|
|
- */
|
|
|
|
-static bool force_two_pcm_support(struct fw_unit *unit)
|
|
|
|
-{
|
|
|
|
- static const char *const models[] = {
|
|
|
|
- /* TC Electronic models. */
|
|
|
|
- "StudioKonnekt48",
|
|
|
|
- /* Focusrite models. */
|
|
|
|
- "SAFFIRE_PRO_40",
|
|
|
|
- "LIQUID_SAFFIRE_56",
|
|
|
|
- "SAFFIRE_PRO_40_1",
|
|
|
|
- };
|
|
|
|
- char model[32];
|
|
|
|
- unsigned int i;
|
|
|
|
- int err;
|
|
|
|
-
|
|
|
|
- err = fw_csr_string(unit->directory, CSR_MODEL, model, sizeof(model));
|
|
|
|
- if (err < 0)
|
|
|
|
- return false;
|
|
|
|
-
|
|
|
|
- for (i = 0; i < ARRAY_SIZE(models); i++) {
|
|
|
|
- if (strcmp(models[i], model) == 0)
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- return i < ARRAY_SIZE(models);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static int check_dice_category(struct fw_unit *unit)
|
|
static int check_dice_category(struct fw_unit *unit)
|
|
{
|
|
{
|
|
struct fw_device *device = fw_parent_device(unit);
|
|
struct fw_device *device = fw_parent_device(unit);
|
|
@@ -79,11 +49,6 @@ static int check_dice_category(struct fw_unit *unit)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- if (vendor == OUI_FOCUSRITE || vendor == OUI_TCELECTRONIC) {
|
|
|
|
- if (force_two_pcm_support(unit))
|
|
|
|
- return 0;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
if (vendor == OUI_WEISS)
|
|
if (vendor == OUI_WEISS)
|
|
category = WEISS_CATEGORY_ID;
|
|
category = WEISS_CATEGORY_ID;
|
|
else if (vendor == OUI_LOUD)
|
|
else if (vendor == OUI_LOUD)
|
|
@@ -190,9 +155,6 @@ static void do_registration(struct work_struct *work)
|
|
if (err < 0)
|
|
if (err < 0)
|
|
return;
|
|
return;
|
|
|
|
|
|
- if (force_two_pcm_support(dice->unit))
|
|
|
|
- dice->force_two_pcms = true;
|
|
|
|
-
|
|
|
|
err = snd_dice_transaction_init(dice);
|
|
err = snd_dice_transaction_init(dice);
|
|
if (err < 0)
|
|
if (err < 0)
|
|
goto error;
|
|
goto error;
|