// ... после выбора sample_rate ...
unsigned int len = 0; // Значение по умолчанию
if (fmt->fmt == HDMI_I2S) {
switch (hparms->sample_width) {
case 16: len = LT9611_I2S_SAMPLE_LEN_16; break;
case 18: len = LT9611_I2S_SAMPLE_LEN_18; break;
case 20: len = LT9611_I2S_SAMPLE_LEN_20; break;
case 24: len = LT9611_I2S_SAMPLE_LEN_24; break;
case 32: len = LT9611_I2S_SAMPLE_LEN_24; break; // Зависит от того, поддерживает ли чип 32-битный слот
default:
dev_err(dev, "LT9611: Unsupported audio sample width %d\n", hparms->sample_width);
return -EINVAL;
}
} else {
// Для SPDIF длина I2S сэмпла не важна, пишем 0 или дефолт чипа
len = 0;
}
// Частоту (rate) считать ОБЯЗАТЕЛЬНО для обоих режимов
val = rate << 4 | len;
seq[2].def = val;