static void cs2000_write_cached(struct oxygen *chip, u8 reg, u8 value) { struct xonar_pcm179x *data = chip->model_data; if (value != data->cs2000_regs[reg]) cs2000_write(chip, reg, value); }
static void cs2000_write_cached(struct oxygen *chip, u8 reg, u8 value) { struct xonar_pcm179x *data = chip->model_data; if (reg != CS2000_FUN_CFG_1 || value != data->cs2000_fun_cfg_1) cs2000_write(chip, reg, value); }
static void cs2000_registers_init(struct oxygen *chip) { struct xonar_pcm179x *data = chip->model_data; cs2000_write(chip, CS2000_GLOBAL_CFG, CS2000_FREEZE); cs2000_write(chip, CS2000_DEV_CTRL, 0); cs2000_write(chip, CS2000_DEV_CFG_1, CS2000_R_MOD_SEL_1 | (0 << CS2000_R_SEL_SHIFT) | CS2000_AUX_OUT_SRC_REF_CLK | CS2000_EN_DEV_CFG_1); cs2000_write(chip, CS2000_DEV_CFG_2, (0 << CS2000_LOCK_CLK_SHIFT) | CS2000_FRAC_N_SRC_STATIC); cs2000_write(chip, CS2000_RATIO_0 + 0, 0x00); /* 1.0 */ cs2000_write(chip, CS2000_RATIO_0 + 1, 0x10); cs2000_write(chip, CS2000_RATIO_0 + 2, 0x00); cs2000_write(chip, CS2000_RATIO_0 + 3, 0x00); cs2000_write(chip, CS2000_FUN_CFG_1, data->cs2000_regs[CS2000_FUN_CFG_1]); cs2000_write(chip, CS2000_FUN_CFG_2, 0); cs2000_write(chip, CS2000_GLOBAL_CFG, CS2000_EN_DEV_CFG_2); msleep(3); /* PLL lock delay */ }