ALSA: asihpi - Allow adapters with duplicate index jumpers to be discovered.
authorEliot Blennerhassett <eblennerhassett@audioscience.com>
Thu, 10 Feb 2011 04:26:12 +0000 (17:26 +1300)
committerTakashi Iwai <tiwai@suse.de>
Thu, 10 Feb 2011 17:49:33 +0000 (18:49 +0100)
Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/asihpi/hpicmn.c

index 4b3f476..3e9c5c2 100644 (file)
@@ -78,8 +78,18 @@ u16 hpi_add_adapter(struct hpi_adapter_obj *pao)
        }
 
        if (adapters.adapter[pao->index].adapter_type) {
-               {
-                       retval = HPI_DUPLICATE_ADAPTER_NUMBER;
+               int a;
+               for (a = HPI_MAX_ADAPTERS - 1; a >= 0; a--) {
+                       if (!adapters.adapter[a].adapter_type) {
+                               HPI_DEBUG_LOG(WARNING,
+                                       "ASI%X duplicate index %d moved to %d\n",
+                                       pao->adapter_type, pao->index, a);
+                               pao->index = a;
+                               break;
+                       }
+               }
+               if (a < 0) {
+                       retval = HPI_ERROR_DUPLICATE_ADAPTER_NUMBER;
                        goto unlock;
                }
        }