| 696 | /* The way the rate is managed is the same across G2 and G3 devices, |
---|
| 697 | * but the actual bits used in the clock control register is different. |
---|
| 698 | */ |
---|
| 699 | if (getDeviceGeneration() == MOTU_DEVICE_G2) { |
---|
| 700 | rate_base_mask = MOTU_RATE_BASE_MASK; |
---|
| 701 | rate_base48k = MOTU_RATE_BASE_48000; |
---|
| 702 | rate_mult_mask = MOTU_RATE_MULTIPLIER_MASK; |
---|
| 703 | rate_mult2 = MOTU_RATE_MULTIPLIER_2X; |
---|
| 704 | rate_mult4 = MOTU_RATE_MULTIPLIER_4X; |
---|
| 705 | } else { |
---|
| 706 | rate_base_mask = MOTU_G3_RATE_BASE_MASK; |
---|
| 707 | rate_base48k = MOTU_G3_RATE_BASE_48000; |
---|
| 708 | rate_mult_mask = MOTU_G3_RATE_MULTIPLIER_MASK; |
---|
| 709 | rate_mult2 = MOTU_G3_RATE_MULTIPLIER_2X; |
---|
| 710 | rate_mult4 = MOTU_G3_RATE_MULTIPLIER_4X; |
---|
| 711 | } |
---|
| 712 | |
---|
695 | | switch (q & MOTU_RATE_BASE_MASK) { |
---|
696 | | case MOTU_RATE_BASE_44100: |
---|
697 | | rate = 44100; |
---|
698 | | break; |
---|
699 | | case MOTU_RATE_BASE_48000: |
---|
700 | | rate = 48000; |
---|
701 | | break; |
---|
702 | | } |
---|
703 | | switch (q & MOTU_RATE_MULTIPLIER_MASK) { |
---|
704 | | case MOTU_RATE_MULTIPLIER_2X: |
---|
705 | | rate *= 2; |
---|
706 | | break; |
---|
707 | | case MOTU_RATE_MULTIPLIER_4X: |
---|
708 | | rate *= 4; |
---|
709 | | break; |
---|
710 | | } |
---|
| 714 | if ((q & rate_base_mask) == rate_base48k) |
---|
| 715 | rate = 48000; |
---|
| 716 | else |
---|
| 717 | rate = 44100; |
---|
| 718 | if ((q & rate_mult_mask) == rate_mult4) |
---|
| 719 | rate *= 4; |
---|
| 720 | else |
---|
| 721 | if ((q & rate_mult_mask) == rate_mult2) |
---|
| 722 | rate *= 2; |
---|
| 723 | |
---|