Changeset 1843

Show
Ignore:
Timestamp:
05/31/10 05:11:42 (2 years ago)
Author:
jwoithe
Message:

MOTU: some G3 devices don't have any optical ports, so allow for this.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libffado/src/motu/motu_avdevice.cpp

    r1842 r1843  
    14901490    if (getDeviceGeneration() == MOTU_DEVICE_G3) { 
    14911491        unsigned int mask, enable, toslink; 
     1492        /* The Ultralite Mk3s don't have any optical ports.  All others have 2. */ 
     1493        if (m_motu_model==MOTU_MODEL_ULTRALITEmk3 || m_motu_model==MOTU_MODEL_ULTRALITEmk3_HYB) { 
     1494            if (port_a_mode != NULL) 
     1495                *port_a_mode = MOTU_OPTICAL_MODE_NONE; 
     1496            if (port_b_mode != NULL) 
     1497                *port_b_mode = MOTU_OPTICAL_MODE_NONE; 
     1498            return 0; 
     1499        } 
    14921500        reg = ReadRegister(MOTU_G3_REG_OPTICAL_CTRL); 
    14931501        if (port_a_mode != NULL) { 
     
    16921700 
    16931701    switch (optical_mode_a) { 
     1702        case MOTU_OPTICAL_MODE_NONE: flags |= MOTU_PA_OPTICAL_ANY; break; 
    16941703        case MOTU_OPTICAL_MODE_OFF: flags |= MOTU_PA_OPTICAL_OFF; break; 
    16951704        case MOTU_OPTICAL_MODE_ADAT: flags |= MOTU_PA_OPTICAL_ADAT; break; 
     
    17071716    for (i=0; i < DevicesProperty[m_motu_model-1].n_port_entries; i++) { 
    17081717        port_flags = DevicesProperty[m_motu_model-1].port_entry[i].port_flags; 
    1709         /* Make sure the "port B" test returns true for devices without 
    1710          * a port B
     1718        /* Make sure the optical port tests return true for devices without 
     1719         * one or both optical ports
    17111720         */ 
     1721        if (optical_mode_a == MOTU_OPTICAL_MODE_NONE) { 
     1722            port_flags |= MOTU_PA_OPTICAL_ANY; 
     1723        } 
    17121724        if (optical_mode_b == MOTU_OPTICAL_MODE_NONE) { 
    17131725            port_flags |= MOTU_PA_MK3_OPT_B_ANY; 
     
    17751787 
    17761788    switch (optical_a_mode) { 
     1789        case MOTU_OPTICAL_MODE_NONE: flags |= MOTU_PA_OPTICAL_ANY; break; 
    17771790        case MOTU_OPTICAL_MODE_OFF: flags |= MOTU_PA_OPTICAL_OFF; break; 
    17781791        case MOTU_OPTICAL_MODE_ADAT: flags |= MOTU_PA_OPTICAL_ADAT; break; 
     
    18001813    for (i=0; i < DevicesProperty[m_motu_model-1].n_port_entries; i++) { 
    18011814        port_flags = DevicesProperty[m_motu_model-1].port_entry[i].port_flags; 
    1802         /* For devices without an optical port B ensure the test on the  
    1803          * optical port B mode always returns "true". 
     1815        /* For devices without one or more optical ports, ensure the tests 
     1816         * on the optical ports always returns "true". 
    18041817         */ 
     1818        if (optical_a_mode == MOTU_OPTICAL_MODE_NONE) 
     1819            port_flags |= MOTU_PA_OPTICAL_ANY; 
    18051820        if (optical_b_mode == MOTU_OPTICAL_MODE_NONE) 
    18061821            port_flags |= MOTU_PA_MK3_OPT_B_ANY;