void (*dump_registers)(struct oxygen *chip,
                               struct snd_info_buffer *buffer);
        const unsigned int *dac_tlv;
-       unsigned long private_data;
        size_t model_data_size;
        unsigned int device_config;
        u8 dac_channels_pcm;
 
        data->pcm179x.generic.ext_power_reg = OXYGEN_GPI_DATA;
        data->pcm179x.generic.ext_power_int_reg = OXYGEN_GPI_INTERRUPT_MASK;
        data->pcm179x.generic.ext_power_bit = GPI_EXT_POWER;
-       data->pcm179x.dacs = chip->model.private_data ? 4 : 1;
+       data->pcm179x.dacs = chip->model.dac_channels_mixer / 2;
 
        pcm1796_init(chip);
 
        struct xonar_pcm179x *data = chip->model_data;
 
        data->generic.output_enable_bit = GPIO_ST_OUTPUT_ENABLE;
-       data->dacs = chip->model.private_data ? 4 : 1;
+       data->dacs = chip->model.dac_channels_mixer / 2;
        data->hp_gain_offset = 2*-18;
 
        pcm1796_init(chip);
                case GPIO_DB_H6:
                        chip->model.shortname = "Xonar HDAV1.3+H6";
                        chip->model.dac_channels_mixer = 8;
-                       chip->model.private_data = 1;
                        break;
                }
                break;
                        chip->model.shortname = "Xonar ST+H6";
                        chip->model.dac_channels_pcm = 8;
                        chip->model.dac_channels_mixer = 8;
-                       chip->model.private_data = 1;
                        break;
                }
                break;