Show
Ignore:
Timestamp:
12/10/21 03:09:43 (8 months ago)
Author:
jwoithe
Message:

profire2626: fix mixer/routing assignments.

Patch from Takashi Sakamoto. In response to a post from Wargreen on the
FFADO-users mailing list describing an apparent routing problem, Takashi
wrote:

As long as I know, M-Audio ProFire? 2626 reports different stream format
in each sampling transfer frequency by TCAT protocol extension. For
example, ALSA dice driver prints them as:

$ cat /proc/asound/card2/firewire/formation
Output stream from unit:

low middle high MIDI

Tx 0: 10 10 8 1
Tx 1: 16 8 6 0
Input stream to unit:

low middle high

Rx 0: 10 10 8 1
Rx 1: 16 8 6 0

The patch below would be useful to fix your issue.

Thanks also to Wargreen for an initial suggested fix, for testing the patch
from Takashi and confirming that it has the intended effect.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libffado/src/dice/maudio/profire_2626.cpp

    r2803 r2819  
    5959    addSource("SPDIF/In", 14, 2, eRS_AES, 1); 
    6060    addSource("Mixer/Out", 0, 16, eRS_Mixer, 1); 
    61     addSource("1394/In", 0, 16, eRS_ARX0, 1); 
    62     addSource("1394/In", 0, 10, eRS_ARX1, 17); 
     61    addSource("1394/In", 0, 10, eRS_ARX0, 1); 
     62    addSource("1394/In", 0, 16, eRS_ARX1, 11); 
    6363    addSource("Mute", 0, 1, eRS_Muted); 
    6464} 
     
    7272    addDestination("Mixer/In", 0, 16, eRD_Mixer0, 1); 
    7373    addDestination("Mixer/In", 0, 2, eRD_Mixer1, 17); 
    74     addDestination("1394/Out", 0, 16, eRD_ATX0, 1); 
    75     addDestination("1394/Out", 0, 10, eRD_ATX1, 1); 
     74    addDestination("1394/Out", 0, 10, eRD_ATX0, 1); 
     75    addDestination("1394/Out", 0, 16, eRD_ATX1, 11); 
    7676    addDestination("Mute", 0, 1, eRD_Muted); 
    7777} 
     
    8484    addSource("SPDIF/In", 14, 2, eRS_AES, 1); 
    8585    addSource("Mixer/Out", 0, 16, eRS_Mixer, 1); 
    86     addSource("1394/In", 0, 16, eRS_ARX0, 1); 
    87     addSource("1394/In", 0, 10, eRS_ARX1, 17); 
     86    addSource("1394/In", 0, 10, eRS_ARX0, 1); 
     87    addSource("1394/In", 0, 8, eRS_ARX1, 11); 
    8888    addSource("Mute", 0, 1, eRS_Muted); 
    8989} 
     
    9797    addDestination("Mixer/In", 0, 16, eRD_Mixer0, 1); 
    9898    addDestination("Mixer/In", 0, 2, eRD_Mixer1, 17); 
    99     addDestination("1394/Out", 0, 16, eRD_ATX0, 1); 
    100     addDestination("1394/Out", 0, 10, eRD_ATX1, 1); 
     99    addDestination("1394/Out", 0, 10, eRD_ATX0, 1); 
     100    addDestination("1394/Out", 0, 8, eRD_ATX1, 11); 
    101101    addDestination("Mute", 0, 1, eRD_Muted); 
    102102} 
     
    109109    addSource("SPDIF/In", 14, 2, eRS_AES, 1); 
    110110    addSource("Mixer/Out", 0, 16, eRS_Mixer, 1); 
    111     addSource("1394/In", 0, 16, eRS_ARX0, 1); 
    112     addSource("1394/In", 0, 10, eRS_ARX1, 17); 
     111    addSource("1394/In", 0, 8, eRS_ARX0, 1); 
     112    addSource("1394/In", 0, 6, eRS_ARX1, 9); 
    113113    addSource("Mute", 0, 1, eRS_Muted); 
    114114} 
     
    122122    addDestination("Mixer/In", 0, 16, eRD_Mixer0, 1); 
    123123    addDestination("Mixer/In", 0, 2, eRD_Mixer1, 17); 
    124     addDestination("1394/Out", 0, 16, eRD_ATX0, 1); 
    125     addDestination("1394/Out", 0, 10, eRD_ATX1, 1); 
     124    addDestination("1394/Out", 0, 8, eRD_ATX0, 1); 
     125    addDestination("1394/Out", 0, 6, eRD_ATX1, 9); 
    126126    addDestination("Mute", 0, 1, eRD_Muted); 
    127127}