Lines Matching refs:aci

130 	struct snd_miro_aci *aci;  member
161 static int aci_busy_wait(struct snd_miro_aci *aci) in aci_busy_wait() argument
167 byte = inb(aci->aci_port + ACI_REG_BUSY); in aci_busy_wait()
194 static inline int aci_write(struct snd_miro_aci *aci, unsigned char byte) in aci_write() argument
196 if (aci_busy_wait(aci) >= 0) { in aci_write()
197 outb(byte, aci->aci_port + ACI_REG_COMMAND); in aci_write()
205 static inline int aci_read(struct snd_miro_aci *aci) in aci_read() argument
209 if (aci_busy_wait(aci) >= 0) { in aci_read()
210 byte = inb(aci->aci_port + ACI_REG_STATUS); in aci_read()
218 int snd_aci_cmd(struct snd_miro_aci *aci, int write1, int write2, int write3) in snd_aci_cmd() argument
223 if (mutex_lock_interruptible(&aci->aci_mutex)) in snd_aci_cmd()
230 value = aci_write(aci, write[i]); in snd_aci_cmd()
236 value = aci_read(aci); in snd_aci_cmd()
238 out: mutex_unlock(&aci->aci_mutex); in snd_aci_cmd()
243 static int aci_getvalue(struct snd_miro_aci *aci, unsigned char index) in aci_getvalue() argument
245 return snd_aci_cmd(aci, ACI_STATUS, index, -1); in aci_getvalue()
248 static int aci_setvalue(struct snd_miro_aci *aci, unsigned char index, in aci_setvalue() argument
251 return snd_aci_cmd(aci, index, value, -1); in aci_setvalue()
274 value = aci_getvalue(miro->aci, ACI_S_GENERAL); in snd_miro_get_capture()
294 error = aci_setvalue(miro->aci, ACI_SET_SOLOMODE, value); in snd_miro_put_capture()
301 change = (value != miro->aci->aci_solomode); in snd_miro_put_capture()
302 miro->aci->aci_solomode = value; in snd_miro_put_capture()
324 if (miro->aci->aci_version <= 176) { in snd_miro_get_preamp()
332 ucontrol->value.integer.value[0] = miro->aci->aci_preamp; in snd_miro_get_preamp()
336 value = aci_getvalue(miro->aci, ACI_GET_PREAMP); in snd_miro_get_preamp()
356 error = aci_setvalue(miro->aci, ACI_SET_PREAMP, value); in snd_miro_put_preamp()
363 change = (value != miro->aci->aci_preamp); in snd_miro_put_preamp()
364 miro->aci->aci_preamp = value; in snd_miro_put_preamp()
375 ucontrol->value.integer.value[0] = miro->aci->aci_amp; in snd_miro_get_amp()
388 error = aci_setvalue(miro->aci, ACI_SET_POWERAMP, value); in snd_miro_put_amp()
394 change = (value != miro->aci->aci_amp); in snd_miro_put_amp()
395 miro->aci->aci_amp = value; in snd_miro_put_amp()
444 right_val = aci_getvalue(miro->aci, right_reg); in snd_miro_get_double()
450 left_val = aci_getvalue(miro->aci, left_reg); in snd_miro_get_double()
487 struct snd_miro_aci *aci = miro->aci; in snd_miro_put_double() local
503 left_old = aci_getvalue(aci, getreg_left); in snd_miro_put_double()
509 right_old = aci_getvalue(aci, getreg_right); in snd_miro_put_double()
529 error = aci_setvalue(aci, setreg_left, left); in snd_miro_put_double()
536 error = aci_setvalue(aci, setreg_left, 0x80 - left); in snd_miro_put_double()
545 error = aci_setvalue(aci, setreg_right, right); in snd_miro_put_double()
552 error = aci_setvalue(aci, setreg_right, 0x80 - right); in snd_miro_put_double()
571 error = aci_setvalue(aci, setreg_left, 0x20 - left); in snd_miro_put_double()
577 error = aci_setvalue(aci, setreg_right, 0x20 - right); in snd_miro_put_double()
676 struct snd_miro_aci *aci = miro->aci; in snd_set_aci_init_values() local
680 if ((aci->aci_product == 'A') && wss) { in snd_set_aci_init_values()
681 error = aci_setvalue(aci, ACI_SET_WSS, wss); in snd_set_aci_init_values()
691 error = aci_setvalue(aci, ACI_SET_IDE, ide); in snd_set_aci_init_values()
701 error = aci_setvalue(aci, aci_init_values[idx][0], in snd_set_aci_init_values()
709 aci->aci_amp = 0; in snd_set_aci_init_values()
710 aci->aci_preamp = 0; in snd_set_aci_init_values()
711 aci->aci_solomode = 1; in snd_set_aci_init_values()
742 if ((miro->aci->aci_product == 'A') || in snd_miro_mixer()
743 (miro->aci->aci_product == 'B')) { in snd_miro_mixer()
751 if ((miro->aci->aci_product == 'B') || in snd_miro_mixer()
752 (miro->aci->aci_product == 'C')) { in snd_miro_mixer()
756 if (miro->aci->aci_version >= 176) in snd_miro_mixer()
761 if (miro->aci->aci_product == 'C') { in snd_miro_mixer()
891 struct snd_miro_aci *aci = miro->aci; in snd_miro_proc_read() local
897 (aci->aci_vendor == 'm') && in snd_miro_proc_read()
898 (aci->aci_product == 'A')) { in snd_miro_proc_read()
899 switch (aci->aci_version) { in snd_miro_proc_read()
912 (aci->aci_vendor == 'm') && in snd_miro_proc_read()
913 (aci->aci_product == 'B')) { in snd_miro_proc_read()
914 switch (aci->aci_version) { in snd_miro_proc_read()
930 (aci->aci_vendor == 'm') && in snd_miro_proc_read()
931 (aci->aci_product == 'C')) { in snd_miro_proc_read()
932 switch (aci->aci_version) { in snd_miro_proc_read()
956 switch (aci->aci_vendor) { in snd_miro_proc_read()
961 snd_iprintf(buffer, "unknown (0x%x)\n", aci->aci_vendor); in snd_miro_proc_read()
966 switch (aci->aci_product) { in snd_miro_proc_read()
977 snd_iprintf(buffer, "unknown (0x%x)\n", aci->aci_product); in snd_miro_proc_read()
982 aci->aci_version, aci->aci_version); in snd_miro_proc_read()
984 aci->aci_port, aci->aci_port+2); in snd_miro_proc_read()
987 snd_iprintf(buffer, " solomode: 0x%x\n", aci->aci_solomode); in snd_miro_proc_read()
988 snd_iprintf(buffer, " amp : 0x%x\n", aci->aci_amp); in snd_miro_proc_read()
989 snd_iprintf(buffer, " preamp : 0x%x\n", aci->aci_preamp); in snd_miro_proc_read()
1208 struct snd_miro_aci *aci = &aci_device; in snd_card_miro_aci_detect() local
1210 miro->aci = aci; in snd_card_miro_aci_detect()
1212 mutex_init(&aci->aci_mutex); in snd_card_miro_aci_detect()
1217 aci->aci_port = (regval & 0x10) ? 0x344 : 0x354; in snd_card_miro_aci_detect()
1219 miro->res_aci_port = request_region(aci->aci_port, 3, "miro aci"); in snd_card_miro_aci_detect()
1222 aci->aci_port, aci->aci_port+2); in snd_card_miro_aci_detect()
1228 if (snd_aci_cmd(aci, ACI_ERROR_OP, -1, -1) < 0) { in snd_card_miro_aci_detect()
1233 aci->aci_vendor = snd_aci_cmd(aci, ACI_READ_IDCODE, -1, -1); in snd_card_miro_aci_detect()
1234 aci->aci_product = snd_aci_cmd(aci, ACI_READ_IDCODE, -1, -1); in snd_card_miro_aci_detect()
1235 if (aci->aci_vendor < 0 || aci->aci_product < 0) { in snd_card_miro_aci_detect()
1237 aci->aci_port); in snd_card_miro_aci_detect()
1241 aci->aci_version = snd_aci_cmd(aci, ACI_READ_VERSION, -1, -1); in snd_card_miro_aci_detect()
1242 if (aci->aci_version < 0) { in snd_card_miro_aci_detect()
1244 aci->aci_port); in snd_card_miro_aci_detect()
1248 if (snd_aci_cmd(aci, ACI_INIT, -1, -1) < 0 || in snd_card_miro_aci_detect()
1249 snd_aci_cmd(aci, ACI_ERROR_OP, ACI_ERROR_OP, ACI_ERROR_OP) < 0 || in snd_card_miro_aci_detect()
1250 snd_aci_cmd(aci, ACI_ERROR_OP, ACI_ERROR_OP, ACI_ERROR_OP) < 0) { in snd_card_miro_aci_detect()
1263 if (miro->aci) in snd_card_miro_free()
1264 miro->aci->aci_port = 0; in snd_card_miro_free()
1329 if (miro->aci->aci_vendor == 'm') { in snd_miro_probe()
1331 switch (miro->aci->aci_product) { in snd_miro_probe()