Lines Matching full:ice
28 static void snd_ice1712_stdsp24_gpio_write(struct snd_ice1712 *ice, unsigned char byte) in snd_ice1712_stdsp24_gpio_write() argument
32 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, byte); in snd_ice1712_stdsp24_gpio_write()
35 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, byte); in snd_ice1712_stdsp24_gpio_write()
38 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, byte); in snd_ice1712_stdsp24_gpio_write()
41 static void snd_ice1712_stdsp24_darear(struct snd_ice1712 *ice, int activate) in snd_ice1712_stdsp24_darear() argument
43 struct hoontech_spec *spec = ice->spec; in snd_ice1712_stdsp24_darear()
44 mutex_lock(&ice->gpio_mutex); in snd_ice1712_stdsp24_darear()
46 snd_ice1712_stdsp24_gpio_write(ice, spec->boxbits[0]); in snd_ice1712_stdsp24_darear()
47 mutex_unlock(&ice->gpio_mutex); in snd_ice1712_stdsp24_darear()
50 static void snd_ice1712_stdsp24_mute(struct snd_ice1712 *ice, int activate) in snd_ice1712_stdsp24_mute() argument
52 struct hoontech_spec *spec = ice->spec; in snd_ice1712_stdsp24_mute()
53 mutex_lock(&ice->gpio_mutex); in snd_ice1712_stdsp24_mute()
55 snd_ice1712_stdsp24_gpio_write(ice, spec->boxbits[3]); in snd_ice1712_stdsp24_mute()
56 mutex_unlock(&ice->gpio_mutex); in snd_ice1712_stdsp24_mute()
59 static void snd_ice1712_stdsp24_insel(struct snd_ice1712 *ice, int activate) in snd_ice1712_stdsp24_insel() argument
61 struct hoontech_spec *spec = ice->spec; in snd_ice1712_stdsp24_insel()
62 mutex_lock(&ice->gpio_mutex); in snd_ice1712_stdsp24_insel()
64 snd_ice1712_stdsp24_gpio_write(ice, spec->boxbits[3]); in snd_ice1712_stdsp24_insel()
65 mutex_unlock(&ice->gpio_mutex); in snd_ice1712_stdsp24_insel()
68 static void snd_ice1712_stdsp24_box_channel(struct snd_ice1712 *ice, int box, int chn, int activate) in snd_ice1712_stdsp24_box_channel() argument
70 struct hoontech_spec *spec = ice->spec; in snd_ice1712_stdsp24_box_channel()
72 mutex_lock(&ice->gpio_mutex); in snd_ice1712_stdsp24_box_channel()
76 snd_ice1712_stdsp24_gpio_write(ice, spec->boxbits[0]); in snd_ice1712_stdsp24_box_channel()
82 snd_ice1712_stdsp24_gpio_write(ice, spec->boxbits[2]); in snd_ice1712_stdsp24_box_channel()
83 snd_ice1712_stdsp24_gpio_write(ice, spec->boxbits[3]); in snd_ice1712_stdsp24_box_channel()
89 snd_ice1712_stdsp24_gpio_write(ice, spec->boxbits[1]); in snd_ice1712_stdsp24_box_channel()
90 snd_ice1712_stdsp24_gpio_write(ice, spec->boxbits[2]); in snd_ice1712_stdsp24_box_channel()
94 snd_ice1712_stdsp24_gpio_write(ice, spec->boxbits[2]); in snd_ice1712_stdsp24_box_channel()
101 snd_ice1712_stdsp24_gpio_write(ice, spec->boxbits[1]); in snd_ice1712_stdsp24_box_channel()
108 snd_ice1712_stdsp24_gpio_write(ice, spec->boxbits[1]); in snd_ice1712_stdsp24_box_channel()
109 snd_ice1712_stdsp24_gpio_write(ice, spec->boxbits[2]); in snd_ice1712_stdsp24_box_channel()
113 snd_ice1712_stdsp24_gpio_write(ice, spec->boxbits[2]); in snd_ice1712_stdsp24_box_channel()
115 mutex_unlock(&ice->gpio_mutex); in snd_ice1712_stdsp24_box_channel()
118 static void snd_ice1712_stdsp24_box_midi(struct snd_ice1712 *ice, int box, int master) in snd_ice1712_stdsp24_box_midi() argument
120 struct hoontech_spec *spec = ice->spec; in snd_ice1712_stdsp24_box_midi()
122 mutex_lock(&ice->gpio_mutex); in snd_ice1712_stdsp24_box_midi()
126 snd_ice1712_stdsp24_gpio_write(ice, spec->boxbits[0]); in snd_ice1712_stdsp24_box_midi()
130 snd_ice1712_stdsp24_gpio_write(ice, spec->boxbits[2]); in snd_ice1712_stdsp24_box_midi()
131 snd_ice1712_stdsp24_gpio_write(ice, spec->boxbits[3]); in snd_ice1712_stdsp24_box_midi()
136 snd_ice1712_stdsp24_gpio_write(ice, spec->boxbits[2]); in snd_ice1712_stdsp24_box_midi()
141 snd_ice1712_stdsp24_gpio_write(ice, spec->boxbits[2]); in snd_ice1712_stdsp24_box_midi()
143 mutex_unlock(&ice->gpio_mutex); in snd_ice1712_stdsp24_box_midi()
146 static void snd_ice1712_stdsp24_midi2(struct snd_ice1712 *ice, int activate) in snd_ice1712_stdsp24_midi2() argument
148 struct hoontech_spec *spec = ice->spec; in snd_ice1712_stdsp24_midi2()
149 mutex_lock(&ice->gpio_mutex); in snd_ice1712_stdsp24_midi2()
151 snd_ice1712_stdsp24_gpio_write(ice, spec->boxbits[3]); in snd_ice1712_stdsp24_midi2()
152 mutex_unlock(&ice->gpio_mutex); in snd_ice1712_stdsp24_midi2()
155 static int hoontech_init(struct snd_ice1712 *ice, bool staudio) in hoontech_init() argument
160 ice->num_total_dacs = 8; in hoontech_init()
161 ice->num_total_adcs = 8; in hoontech_init()
166 ice->spec = spec; in hoontech_init()
228 snd_ice1712_stdsp24_darear(ice, in hoontech_init()
230 snd_ice1712_stdsp24_mute(ice, in hoontech_init()
232 snd_ice1712_stdsp24_insel(ice, in hoontech_init()
236 snd_ice1712_stdsp24_midi2(ice, 1); in hoontech_init()
238 snd_ice1712_stdsp24_box_channel(ice, box, chn, in hoontech_init()
241 snd_ice1712_stdsp24_box_midi(ice, box, 1); in hoontech_init()
247 static int snd_ice1712_hoontech_init(struct snd_ice1712 *ice) in snd_ice1712_hoontech_init() argument
249 return hoontech_init(ice, false); in snd_ice1712_hoontech_init()
252 static int snd_ice1712_staudio_init(struct snd_ice1712 *ice) in snd_ice1712_staudio_init() argument
254 return hoontech_init(ice, true); in snd_ice1712_staudio_init()
264 struct snd_ice1712 *ice = ak->private_data[0]; in stdsp24_ak4524_lock() local
266 snd_ice1712_save_gpio_status(ice); in stdsp24_ak4524_lock()
270 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DIRECTION, in stdsp24_ak4524_lock()
271 ice->gpio.direction | tmp); in stdsp24_ak4524_lock()
272 snd_ice1712_write(ice, ICE1712_IREG_GPIO_WRITE_MASK, ~tmp); in stdsp24_ak4524_lock()
275 static int snd_ice1712_value_init(struct snd_ice1712 *ice) in snd_ice1712_value_init() argument
302 ice->num_total_dacs = 2; in snd_ice1712_value_init()
305 ice->num_total_adcs = 2; in snd_ice1712_value_init()
308 ak = ice->akm = kmalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL); in snd_ice1712_value_init()
311 ice->akm_codecs = 1; in snd_ice1712_value_init()
313 err = snd_ice1712_akm4xxx_init(ak, &akm_stdsp24_mv, &akm_stdsp24_mv_priv, ice); in snd_ice1712_value_init()
318 return snd_ice1712_akm4xxx_build_controls(ice); in snd_ice1712_value_init()
321 static int snd_ice1712_ez8_init(struct snd_ice1712 *ice) in snd_ice1712_ez8_init() argument
323 ice->gpio.write_mask = ice->eeprom.gpiomask; in snd_ice1712_ez8_init()
324 ice->gpio.direction = ice->eeprom.gpiodir; in snd_ice1712_ez8_init()
325 snd_ice1712_write(ice, ICE1712_IREG_GPIO_WRITE_MASK, ice->eeprom.gpiomask); in snd_ice1712_ez8_init()
326 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DIRECTION, ice->eeprom.gpiodir); in snd_ice1712_ez8_init()
327 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, ice->eeprom.gpiostate); in snd_ice1712_ez8_init()