#include "dice.h"
int snd_dice_detect_teac_formats(struct snd_dice *dice)
{
__be32 reg;
u32 data;
int err;
err = snd_dice_transaction_read_tx(dice, TX_NUMBER, ®, sizeof(reg));
if (err < 0)
return err;
dice->tx_pcm_chs[0][SND_DICE_RATE_MODE_LOW] = 16;
dice->tx_pcm_chs[0][SND_DICE_RATE_MODE_MIDDLE] = 16;
dice->tx_midi_ports[0] = 1;
data = be32_to_cpu(reg);
if (data > 1) {
dice->tx_pcm_chs[1][SND_DICE_RATE_MODE_LOW] = 16;
dice->tx_pcm_chs[1][SND_DICE_RATE_MODE_MIDDLE] = 16;
}
err = snd_dice_transaction_read_rx(dice, RX_NUMBER, ®, sizeof(reg));
if (err < 0)
return err;
dice->rx_pcm_chs[0][SND_DICE_RATE_MODE_LOW] = 16;
dice->rx_pcm_chs[0][SND_DICE_RATE_MODE_MIDDLE] = 16;
dice->rx_midi_ports[0] = 1;
data = be32_to_cpu(reg);
if (data > 1) {
dice->rx_pcm_chs[1][SND_DICE_RATE_MODE_LOW] = 16;
dice->rx_pcm_chs[1][SND_DICE_RATE_MODE_MIDDLE] = 16;
}
return 0;
}