Lines Matching +full:0 +full:x33d00000
71 if ((snd_ymfpci_readw(chip, reg) & 0x8000) == 0) in snd_ymfpci_codec_ready()
72 return 0; in snd_ymfpci_codec_ready()
76 "codec_ready: codec %i is not ready [0x%x]\n", in snd_ymfpci_codec_ready()
86 snd_ymfpci_codec_ready(chip, 0); in snd_ymfpci_codec_write()
95 if (snd_ymfpci_codec_ready(chip, 0)) in snd_ymfpci_codec_read()
96 return ~0; in snd_ymfpci_codec_read()
98 if (snd_ymfpci_codec_ready(chip, 0)) in snd_ymfpci_codec_read()
99 return ~0; in snd_ymfpci_codec_read()
102 for (i = 0; i < 600; i++) in snd_ymfpci_codec_read()
115 case 8000: return 0x02aaab00; in snd_ymfpci_calc_delta()
116 case 11025: return 0x03accd00; in snd_ymfpci_calc_delta()
117 case 16000: return 0x05555500; in snd_ymfpci_calc_delta()
118 case 22050: return 0x07599a00; in snd_ymfpci_calc_delta()
119 case 32000: return 0x0aaaab00; in snd_ymfpci_calc_delta()
120 case 44100: return 0x0eb33300; in snd_ymfpci_calc_delta()
133 0x00570000, 0x06AA0000, 0x18B20000, 0x20930000, in snd_ymfpci_calc_lpfK()
134 0x2B9A0000, 0x35A10000, 0x3EAA0000, 0x40000000 in snd_ymfpci_calc_lpfK()
138 return 0x40000000; /* FIXME: What's the right value? */ in snd_ymfpci_calc_lpfK()
139 for (i = 0; i < 8; i++) in snd_ymfpci_calc_lpfK()
142 return val[0]; in snd_ymfpci_calc_lpfK()
149 0x35280000, 0x34A70000, 0x32020000, 0x31770000, in snd_ymfpci_calc_lpfQ()
150 0x31390000, 0x31C90000, 0x33D00000, 0x40000000 in snd_ymfpci_calc_lpfQ()
154 return 0x370A0000; in snd_ymfpci_calc_lpfQ()
155 for (i = 0; i < 8; i++) in snd_ymfpci_calc_lpfQ()
158 return val[0]; in snd_ymfpci_calc_lpfQ()
170 if (chip->start_count++ > 0) in snd_ymfpci_hw_start()
185 if (--chip->start_count > 0) in snd_ymfpci_hw_stop()
189 while (timeout-- > 0) { in snd_ymfpci_hw_stop()
190 if ((snd_ymfpci_readl(chip, YDSXGR_STATUS) & 2) == 0) in snd_ymfpci_hw_stop()
194 atomic_set(&chip->interrupt_sleep_count, 0); in snd_ymfpci_hw_stop()
213 for (idx = 0; idx < YDSXG_PLAYBACK_VOICES; idx += pair ? 2 : 1) { in voice_alloc()
238 return 0; in voice_alloc()
258 if (result == 0 || type != YMFPCI_PCM) in snd_ymfpci_voice_alloc()
277 pvoice->ypcm->use_441_slot = 0; in snd_ymfpci_voice_free()
279 pvoice->use = pvoice->pcm = pvoice->synth = pvoice->midi = 0; in snd_ymfpci_voice_free()
283 return 0; in snd_ymfpci_voice_free()
311 "done - active_bank = 0x%x, start = 0x%x\n", in snd_ymfpci_pcm_interrupt()
364 "done - active_bank = 0x%x, start = 0x%x\n", in snd_ymfpci_pcm_capture_interrupt()
382 int result = 0; in snd_ymfpci_playback_trigger()
385 if (ypcm->voices[0] == NULL) { in snd_ymfpci_playback_trigger()
393 chip->ctrl_playback[ypcm->voices[0]->number + 1] = cpu_to_le32(ypcm->voices[0]->bank_addr); in snd_ymfpci_playback_trigger()
401 kctl->vd[0].access |= SNDRV_CTL_ELEM_ACCESS_INACTIVE; in snd_ymfpci_playback_trigger()
406 chip->ctrl_playback[ypcm->voices[0]->number + 1] = 0; in snd_ymfpci_playback_trigger()
408 chip->ctrl_playback[ypcm->voices[1]->number + 1] = 0; in snd_ymfpci_playback_trigger()
409 ypcm->running = 0; in snd_ymfpci_playback_trigger()
426 int result = 0; in snd_ymfpci_capture_trigger()
443 ypcm->running = 0; in snd_ymfpci_capture_trigger()
461 if (voices == 1 && ypcm->voices[0] != NULL) in snd_ymfpci_pcm_voice_alloc()
462 return 0; /* already allocated */ in snd_ymfpci_pcm_voice_alloc()
463 if (voices == 2 && ypcm->voices[0] != NULL && ypcm->voices[1] != NULL) in snd_ymfpci_pcm_voice_alloc()
464 return 0; /* already allocated */ in snd_ymfpci_pcm_voice_alloc()
466 if (ypcm->voices[0] != NULL && ypcm->voices[1] == NULL) { in snd_ymfpci_pcm_voice_alloc()
467 snd_ymfpci_voice_free(ypcm->chip, ypcm->voices[0]); in snd_ymfpci_pcm_voice_alloc()
468 ypcm->voices[0] = NULL; in snd_ymfpci_pcm_voice_alloc()
471 err = snd_ymfpci_voice_alloc(ypcm->chip, YMFPCI_PCM, voices > 1, &ypcm->voices[0]); in snd_ymfpci_pcm_voice_alloc()
472 if (err < 0) in snd_ymfpci_pcm_voice_alloc()
474 ypcm->voices[0]->ypcm = ypcm; in snd_ymfpci_pcm_voice_alloc()
475 ypcm->voices[0]->interrupt = snd_ymfpci_pcm_interrupt; in snd_ymfpci_pcm_voice_alloc()
477 ypcm->voices[1] = &ypcm->chip->voices[ypcm->voices[0]->number + 1]; in snd_ymfpci_pcm_voice_alloc()
480 return 0; in snd_ymfpci_pcm_voice_alloc()
504 use_left = (voiceidx & 1) == 0; in snd_ymfpci_pcm_init_voice()
513 vol_left = cpu_to_le32(0x40000000); in snd_ymfpci_pcm_init_voice()
514 vol_right = cpu_to_le32(0x40000000); in snd_ymfpci_pcm_init_voice()
517 format = runtime->channels == 2 ? 0x00010000 : 0; in snd_ymfpci_pcm_init_voice()
519 format |= 0x80000000; in snd_ymfpci_pcm_init_voice()
522 voiceidx == 0 && (ypcm->chip->src441_used == -1 || in snd_ymfpci_pcm_init_voice()
526 format |= 0x10000000; in snd_ymfpci_pcm_init_voice()
529 (format & 0x10000000) == 0) { in snd_ymfpci_pcm_init_voice()
531 ypcm->use_441_slot = 0; in snd_ymfpci_pcm_init_voice()
533 if (runtime->channels == 2 && (voiceidx & 1) != 0) in snd_ymfpci_pcm_init_voice()
536 for (nbank = 0; nbank < 2; nbank++) { in snd_ymfpci_pcm_init_voice()
538 memset(bank, 0, sizeof(*bank)); in snd_ymfpci_pcm_init_voice()
548 bank->eg_gain_end = cpu_to_le32(0x40000000); in snd_ymfpci_pcm_init_voice()
591 4096, &chip->ac3_tmp_base) < 0) in snd_ymfpci_ac3_init()
594 chip->bank_effect[3][0]->base = in snd_ymfpci_ac3_init()
596 chip->bank_effect[3][0]->loop_end = in snd_ymfpci_ac3_init()
598 chip->bank_effect[4][0]->base = in snd_ymfpci_ac3_init()
600 chip->bank_effect[4][0]->loop_end = in snd_ymfpci_ac3_init()
607 return 0; in snd_ymfpci_ac3_init()
621 return 0; in snd_ymfpci_ac3_done()
631 if ((err = snd_ymfpci_pcm_voice_alloc(ypcm, params_channels(hw_params))) < 0) in snd_ymfpci_playback_hw_params()
633 return 0; in snd_ymfpci_playback_hw_params()
643 return 0; in snd_ymfpci_playback_hw_free()
652 if (ypcm->voices[0]) { in snd_ymfpci_playback_hw_free()
653 snd_ymfpci_voice_free(chip, ypcm->voices[0]); in snd_ymfpci_playback_hw_free()
654 ypcm->voices[0] = NULL; in snd_ymfpci_playback_hw_free()
656 return 0; in snd_ymfpci_playback_hw_free()
669 ypcm->period_pos = 0; in snd_ymfpci_playback_prepare()
670 ypcm->last_pos = 0; in snd_ymfpci_playback_prepare()
671 for (nvoice = 0; nvoice < runtime->channels; nvoice++) in snd_ymfpci_playback_prepare()
677 kctl->vd[0].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE; in snd_ymfpci_playback_prepare()
680 return 0; in snd_ymfpci_playback_prepare()
689 return 0; in snd_ymfpci_capture_hw_free()
703 ypcm->period_pos = 0; in snd_ymfpci_capture_prepare()
704 ypcm->last_pos = 0; in snd_ymfpci_capture_prepare()
705 ypcm->shift = 0; in snd_ymfpci_capture_prepare()
707 format = 0; in snd_ymfpci_capture_prepare()
717 case 0: in snd_ymfpci_capture_prepare()
726 for (nbank = 0; nbank < 2; nbank++) { in snd_ymfpci_capture_prepare()
730 bank->start = 0; in snd_ymfpci_capture_prepare()
731 bank->num_of_loops = 0; in snd_ymfpci_capture_prepare()
733 return 0; in snd_ymfpci_capture_prepare()
741 struct snd_ymfpci_voice *voice = ypcm->voices[0]; in snd_ymfpci_playback_pointer()
744 return 0; in snd_ymfpci_playback_pointer()
755 return 0; in snd_ymfpci_capture_pointer()
764 while (loops-- > 0) { in snd_ymfpci_irq_wait()
765 if ((snd_ymfpci_readl(chip, YDSXGR_MODE) & 3) == 0) in snd_ymfpci_irq_wait()
782 if (status & 0x80000000) { in snd_ymfpci_interrupt()
785 for (nvoice = 0; nvoice < YDSXG_PLAYBACK_VOICES; nvoice++) { in snd_ymfpci_interrupt()
790 for (nvoice = 0; nvoice < YDSXG_CAPTURE_VOICES; nvoice++) { in snd_ymfpci_interrupt()
794 #if 0 in snd_ymfpci_interrupt()
795 for (nvoice = 0; nvoice < YDSXG_EFFECT_VOICES; nvoice++) { in snd_ymfpci_interrupt()
802 snd_ymfpci_writel(chip, YDSXGR_STATUS, 0x80000000); in snd_ymfpci_interrupt()
808 atomic_set(&chip->interrupt_sleep_count, 0); in snd_ymfpci_interrupt()
844 .fifo_size = 0,
866 .fifo_size = 0,
886 if (err < 0) in snd_ymfpci_playback_open_1()
889 if (err < 0) in snd_ymfpci_playback_open_1()
900 return 0; in snd_ymfpci_playback_open_1()
912 (snd_ymfpci_readw(chip, YDSXGR_SECCONFIG) & ~0x0330) | 0x0010); in ymfpci_open_extension()
924 (snd_ymfpci_readw(chip, YDSXGR_SECCONFIG) & ~0x0330) & ~0x0010); in ymfpci_close_extension()
935 if ((err = snd_ymfpci_playback_open_1(substream)) < 0) in snd_ymfpci_playback_open()
939 ypcm->output_rear = chip->mode_dup4ch ? 1 : 0; in snd_ymfpci_playback_open()
940 ypcm->swap_rear = 0; in snd_ymfpci_playback_open()
947 return 0; in snd_ymfpci_playback_open()
957 if ((err = snd_ymfpci_playback_open_1(substream)) < 0) in snd_ymfpci_playback_spdif_open()
960 ypcm->output_front = 0; in snd_ymfpci_playback_spdif_open()
972 chip->spdif_pcm_ctl->vd[0].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE; in snd_ymfpci_playback_spdif_open()
975 return 0; in snd_ymfpci_playback_spdif_open()
985 if ((err = snd_ymfpci_playback_open_1(substream)) < 0) in snd_ymfpci_playback_4ch_open()
988 ypcm->output_front = 0; in snd_ymfpci_playback_4ch_open()
990 ypcm->swap_rear = 0; in snd_ymfpci_playback_4ch_open()
995 return 0; in snd_ymfpci_playback_4ch_open()
1011 if (err < 0) in snd_ymfpci_capture_open()
1014 if (err < 0) in snd_ymfpci_capture_open()
1028 return 0; in snd_ymfpci_capture_open()
1033 return snd_ymfpci_capture_open(substream, 0); in snd_ymfpci_capture_rec_open()
1043 return 0; in snd_ymfpci_playback_close_1()
1052 if (ypcm->output_rear && chip->rear_opened > 0) { in snd_ymfpci_playback_close()
1065 chip->spdif_opened = 0; in snd_ymfpci_playback_spdif_close()
1071 chip->spdif_pcm_ctl->vd[0].access |= SNDRV_CTL_ELEM_ACCESS_INACTIVE; in snd_ymfpci_playback_spdif_close()
1082 if (chip->rear_opened > 0) { in snd_ymfpci_playback_4ch_close()
1100 return 0; in snd_ymfpci_capture_close()
1127 if ((err = snd_pcm_new(chip->card, "YMFPCI", device, 32, 1, &pcm)) < 0) in snd_ymfpci_pcm()
1135 pcm->info_flags = 0; in snd_ymfpci_pcm()
1143 snd_pcm_std_chmaps, 2, 0, NULL); in snd_ymfpci_pcm()
1160 if ((err = snd_pcm_new(chip->card, "YMFPCI - PCM2", device, 0, 1, &pcm)) < 0) in snd_ymfpci_pcm2()
1167 pcm->info_flags = 0; in snd_ymfpci_pcm2()
1175 return 0; in snd_ymfpci_pcm2()
1193 if ((err = snd_pcm_new(chip->card, "YMFPCI - IEC958", device, 1, 0, &pcm)) < 0) in snd_ymfpci_pcm_spdif()
1200 pcm->info_flags = 0; in snd_ymfpci_pcm_spdif()
1207 return 0; in snd_ymfpci_pcm_spdif()
1233 if ((err = snd_pcm_new(chip->card, "YMFPCI - Rear", device, 1, 0, &pcm)) < 0) in snd_ymfpci_pcm_4ch()
1240 pcm->info_flags = 0; in snd_ymfpci_pcm_4ch()
1248 surround_map, 2, 0, NULL); in snd_ymfpci_pcm_4ch()
1255 return 0; in snd_ymfpci_spdif_default_info()
1264 ucontrol->value.iec958.status[0] = (chip->spdif_bits >> 0) & 0xff; in snd_ymfpci_spdif_default_get()
1265 ucontrol->value.iec958.status[1] = (chip->spdif_bits >> 8) & 0xff; in snd_ymfpci_spdif_default_get()
1268 return 0; in snd_ymfpci_spdif_default_get()
1278 val = ((ucontrol->value.iec958.status[0] & 0x3e) << 0) | in snd_ymfpci_spdif_default_put()
1302 return 0; in snd_ymfpci_spdif_mask_info()
1311 ucontrol->value.iec958.status[0] = 0x3e; in snd_ymfpci_spdif_mask_get()
1312 ucontrol->value.iec958.status[1] = 0xff; in snd_ymfpci_spdif_mask_get()
1314 return 0; in snd_ymfpci_spdif_mask_get()
1330 return 0; in snd_ymfpci_spdif_stream_info()
1339 ucontrol->value.iec958.status[0] = (chip->spdif_pcm_bits >> 0) & 0xff; in snd_ymfpci_spdif_stream_get()
1340 ucontrol->value.iec958.status[1] = (chip->spdif_pcm_bits >> 8) & 0xff; in snd_ymfpci_spdif_stream_get()
1343 return 0; in snd_ymfpci_spdif_stream_get()
1353 val = ((ucontrol->value.iec958.status[0] & 0x3e) << 0) | in snd_ymfpci_spdif_stream_put()
1389 if (!(reg & 0x100)) in snd_ymfpci_drec_source_get()
1390 value->value.enumerated.item[0] = 0; in snd_ymfpci_drec_source_get()
1392 value->value.enumerated.item[0] = 1 + ((reg & 0x200) != 0); in snd_ymfpci_drec_source_get()
1393 return 0; in snd_ymfpci_drec_source_get()
1403 if (value->value.enumerated.item[0] == 0) in snd_ymfpci_drec_source_put()
1404 reg = old_reg & ~0x100; in snd_ymfpci_drec_source_put()
1406 reg = (old_reg & ~0x300) | 0x100 | ((value->value.enumerated.item[0] == 2) << 9); in snd_ymfpci_drec_source_put()
1437 int reg = kcontrol->private_value & 0xffff; in snd_ymfpci_get_single()
1438 unsigned int shift = (kcontrol->private_value >> 16) & 0xff; in snd_ymfpci_get_single()
1446 ucontrol->value.integer.value[0] = in snd_ymfpci_get_single()
1448 return 0; in snd_ymfpci_get_single()
1455 int reg = kcontrol->private_value & 0xffff; in snd_ymfpci_put_single()
1456 unsigned int shift = (kcontrol->private_value >> 16) & 0xff; in snd_ymfpci_put_single()
1466 val = (ucontrol->value.integer.value[0] & mask); in snd_ymfpci_put_single()
1477 static const DECLARE_TLV_DB_LINEAR(db_scale_native, TLV_DB_GAIN_MUTE, 0);
1491 if (reg < 0x80 || reg >= 0xc0) in snd_ymfpci_info_double()
1495 uinfo->value.integer.min = 0; in snd_ymfpci_info_double()
1497 return 0; in snd_ymfpci_info_double()
1504 unsigned int shift_left = 0, shift_right = 16, mask = 16383; in snd_ymfpci_get_double()
1507 if (reg < 0x80 || reg >= 0xc0) in snd_ymfpci_get_double()
1512 ucontrol->value.integer.value[0] = (val >> shift_left) & mask; in snd_ymfpci_get_double()
1514 return 0; in snd_ymfpci_get_double()
1521 unsigned int shift_left = 0, shift_right = 16, mask = 16383; in snd_ymfpci_put_double()
1525 if (reg < 0x80 || reg >= 0xc0) in snd_ymfpci_put_double()
1527 val1 = ucontrol->value.integer.value[0] & mask; in snd_ymfpci_put_double()
1549 value = ucontrol->value.integer.value[0] & 0x3fff; in snd_ymfpci_put_nativedacvol()
1550 value |= (ucontrol->value.integer.value[1] & 0x3fff) << 16; in snd_ymfpci_put_nativedacvol()
1568 ucontrol->value.integer.value[0] = chip->mode_dup4ch; in snd_ymfpci_get_dup4ch()
1569 return 0; in snd_ymfpci_get_dup4ch()
1576 change = (ucontrol->value.integer.value[0] != chip->mode_dup4ch); in snd_ymfpci_put_dup4ch()
1578 chip->mode_dup4ch = !!ucontrol->value.integer.value[0]; in snd_ymfpci_put_dup4ch()
1603 YMFPCI_DOUBLE("Wave Capture Volume", 0, YDSXGR_NATIVEDACLOOPVOL),
1604 YMFPCI_DOUBLE("Digital Capture Volume", 0, YDSXGR_NATIVEDACINVOL),
1606 YMFPCI_DOUBLE("ADC Playback Volume", 0, YDSXGR_PRIADCOUTVOL),
1607 YMFPCI_DOUBLE("ADC Capture Volume", 0, YDSXGR_PRIADCLOOPVOL),
1610 YMFPCI_DOUBLE("FM Legacy Playback Volume", 0, YDSXGR_LEGACYOUTVOL),
1611 YMFPCI_DOUBLE(SNDRV_CTL_NAME_IEC958("AC97 ", PLAYBACK,VOLUME), 0, YDSXGR_ZVOUTVOL),
1612 YMFPCI_DOUBLE(SNDRV_CTL_NAME_IEC958("", CAPTURE,VOLUME), 0, YDSXGR_ZVLOOPVOL),
1615 YMFPCI_SINGLE(SNDRV_CTL_NAME_IEC958("",PLAYBACK,SWITCH), 0, YDSXGR_SPDIFOUTCTRL, 0),
1616 YMFPCI_SINGLE(SNDRV_CTL_NAME_IEC958("",CAPTURE,SWITCH), 0, YDSXGR_SPDIFINCTRL, 0),
1617 YMFPCI_SINGLE(SNDRV_CTL_NAME_IEC958("Loop",NONE,NONE), 0, YDSXGR_SPDIFINCTRL, 4),
1659 return 0; in snd_ymfpci_set_gpio_out()
1668 ucontrol->value.integer.value[0] = snd_ymfpci_get_gpio_out(chip, pin); in snd_ymfpci_gpio_sw_get()
1669 return 0; in snd_ymfpci_gpio_sw_get()
1677 if (snd_ymfpci_get_gpio_out(chip, pin) != ucontrol->value.integer.value[0]) { in snd_ymfpci_gpio_sw_put()
1678 snd_ymfpci_set_gpio_out(chip, pin, !!ucontrol->value.integer.value[0]); in snd_ymfpci_gpio_sw_put()
1679 ucontrol->value.integer.value[0] = snd_ymfpci_get_gpio_out(chip, pin); in snd_ymfpci_gpio_sw_put()
1682 return 0; in snd_ymfpci_gpio_sw_put()
1703 uinfo->value.integer.min = 0; in snd_ymfpci_pcm_vol_info()
1704 uinfo->value.integer.max = 0x8000; in snd_ymfpci_pcm_vol_info()
1705 return 0; in snd_ymfpci_pcm_vol_info()
1714 ucontrol->value.integer.value[0] = chip->pcm_mixer[subs].left; in snd_ymfpci_pcm_vol_get()
1716 return 0; in snd_ymfpci_pcm_vol_get()
1727 if (ucontrol->value.integer.value[0] != chip->pcm_mixer[subs].left || in snd_ymfpci_pcm_vol_put()
1729 chip->pcm_mixer[subs].left = ucontrol->value.integer.value[0]; in snd_ymfpci_pcm_vol_put()
1731 if (chip->pcm_mixer[subs].left > 0x8000) in snd_ymfpci_pcm_vol_put()
1732 chip->pcm_mixer[subs].left = 0x8000; in snd_ymfpci_pcm_vol_put()
1733 if (chip->pcm_mixer[subs].right > 0x8000) in snd_ymfpci_pcm_vol_put()
1734 chip->pcm_mixer[subs].right = 0x8000; in snd_ymfpci_pcm_vol_put()
1746 return 0; in snd_ymfpci_pcm_vol_put()
1788 if ((err = snd_ac97_bus(chip->card, 0, &ops, chip, &chip->ac97_bus)) < 0) in snd_ymfpci_mixer()
1793 memset(&ac97, 0, sizeof(ac97)); in snd_ymfpci_mixer()
1796 if ((err = snd_ac97_mixer(chip->ac97_bus, &ac97, &chip->ac97)) < 0) in snd_ymfpci_mixer()
1801 AC97_EA_VRA|AC97_EA_VRM, 0); in snd_ymfpci_mixer()
1803 for (idx = 0; idx < ARRAY_SIZE(snd_ymfpci_controls); idx++) { in snd_ymfpci_mixer()
1804 if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&snd_ymfpci_controls[idx], chip))) < 0) in snd_ymfpci_mixer()
1810 if (err < 0) in snd_ymfpci_mixer()
1817 if ((err = snd_ctl_add(chip->card, kctl = snd_ctl_new1(&snd_ymfpci_spdif_default, chip))) < 0) in snd_ymfpci_mixer()
1820 if ((err = snd_ctl_add(chip->card, kctl = snd_ctl_new1(&snd_ymfpci_spdif_mask, chip))) < 0) in snd_ymfpci_mixer()
1823 if ((err = snd_ctl_add(chip->card, kctl = snd_ctl_new1(&snd_ymfpci_spdif_stream, chip))) < 0) in snd_ymfpci_mixer()
1830 (err = snd_ctl_add(chip->card, kctl = snd_ctl_new1(&snd_ymfpci_drec_source, chip))) < 0) in snd_ymfpci_mixer()
1837 if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&snd_ymfpci_rear_shared, chip))) < 0) in snd_ymfpci_mixer()
1843 for (idx = 0; idx < 32; ++idx) { in snd_ymfpci_mixer()
1850 if ((err = snd_ctl_add(chip->card, kctl)) < 0) in snd_ymfpci_mixer()
1852 chip->pcm_mixer[idx].left = 0x8000; in snd_ymfpci_mixer()
1853 chip->pcm_mixer[idx].right = 0x8000; in snd_ymfpci_mixer()
1858 return 0; in snd_ymfpci_mixer()
1886 snd_ymfpci_writeb(chip, YDSXGR_TIMERCTRL, 0x03); in snd_ymfpci_timer_start()
1888 return 0; in snd_ymfpci_timer_start()
1898 snd_ymfpci_writeb(chip, YDSXGR_TIMERCTRL, 0x00); in snd_ymfpci_timer_stop()
1900 return 0; in snd_ymfpci_timer_stop()
1908 return 0; in snd_ymfpci_timer_precise_resolution()
1914 .ticks = 0x10000,
1930 tid.subdevice = 0; in snd_ymfpci_timer()
1931 if ((err = snd_timer_new(chip->card, "YMFPCI", &tid, &timer)) >= 0) { in snd_ymfpci_timer()
1952 for (i = 0; i <= YDSXGR_WORKBASE; i += 4) in snd_ymfpci_proc_read()
1970 #if 0 // force to reset in snd_ymfpci_aclink_reset()
1971 if (cmd & 0x03) { in snd_ymfpci_aclink_reset()
1973 pci_write_config_byte(pci, PCIR_DSXG_CTRL, cmd & 0xfc); in snd_ymfpci_aclink_reset()
1974 pci_write_config_byte(pci, PCIR_DSXG_CTRL, cmd | 0x03); in snd_ymfpci_aclink_reset()
1975 pci_write_config_byte(pci, PCIR_DSXG_CTRL, cmd & 0xfc); in snd_ymfpci_aclink_reset()
1976 pci_write_config_word(pci, PCIR_DSXG_PWRCTRL1, 0); in snd_ymfpci_aclink_reset()
1977 pci_write_config_word(pci, PCIR_DSXG_PWRCTRL2, 0); in snd_ymfpci_aclink_reset()
1978 #if 0 in snd_ymfpci_aclink_reset()
1985 snd_ymfpci_writel(chip, YDSXGR_CONFIG, 0x00000001); in snd_ymfpci_enable_dsp()
1995 snd_ymfpci_writel(chip, YDSXGR_CONFIG, 0x00000000); in snd_ymfpci_disable_dsp()
1996 while (timeout-- > 0) { in snd_ymfpci_disable_dsp()
1998 if ((val & 0x00000002) == 0) in snd_ymfpci_disable_dsp()
2010 if (err >= 0) { in snd_ymfpci_request_firmware()
2017 if (err < 0) in snd_ymfpci_request_firmware()
2026 if (err >= 0) { in snd_ymfpci_request_firmware()
2033 if (err < 0) in snd_ymfpci_request_firmware()
2035 return 0; in snd_ymfpci_request_firmware()
2048 snd_ymfpci_writel(chip, YDSXGR_NATIVEDACOUTVOL, 0x00000000); in snd_ymfpci_download_image()
2050 snd_ymfpci_writel(chip, YDSXGR_MODE, 0x00010000); in snd_ymfpci_download_image()
2051 snd_ymfpci_writel(chip, YDSXGR_MODE, 0x00000000); in snd_ymfpci_download_image()
2052 snd_ymfpci_writel(chip, YDSXGR_MAPOFREC, 0x00000000); in snd_ymfpci_download_image()
2053 snd_ymfpci_writel(chip, YDSXGR_MAPOFEFFECT, 0x00000000); in snd_ymfpci_download_image()
2054 snd_ymfpci_writel(chip, YDSXGR_PLAYCTRLBASE, 0x00000000); in snd_ymfpci_download_image()
2055 snd_ymfpci_writel(chip, YDSXGR_RECCTRLBASE, 0x00000000); in snd_ymfpci_download_image()
2056 snd_ymfpci_writel(chip, YDSXGR_EFFCTRLBASE, 0x00000000); in snd_ymfpci_download_image()
2058 snd_ymfpci_writew(chip, YDSXGR_GLOBALCTRL, ctrl & ~0x0007); in snd_ymfpci_download_image()
2062 for (i = 0; i < YDSXG_DSPLENGTH / 4; i++) in snd_ymfpci_download_image()
2068 for (i = 0; i < YDSXG_CTRLLENGTH / 4; i++) in snd_ymfpci_download_image()
2088 size = ALIGN(playback_ctrl_size, 0x100) + in snd_ymfpci_memalloc()
2089 ALIGN(chip->bank_size_playback * 2 * YDSXG_PLAYBACK_VOICES, 0x100) + in snd_ymfpci_memalloc()
2090 ALIGN(chip->bank_size_capture * 2 * YDSXG_CAPTURE_VOICES, 0x100) + in snd_ymfpci_memalloc()
2091 ALIGN(chip->bank_size_effect * 2 * YDSXG_EFFECT_VOICES, 0x100) + in snd_ymfpci_memalloc()
2096 size, &chip->work_ptr) < 0) in snd_ymfpci_memalloc()
2100 memset(ptr, 0, size); /* for sure */ in snd_ymfpci_memalloc()
2105 chip->ctrl_playback[0] = cpu_to_le32(YDSXG_PLAYBACK_VOICES); in snd_ymfpci_memalloc()
2106 ptr += ALIGN(playback_ctrl_size, 0x100); in snd_ymfpci_memalloc()
2107 ptr_addr += ALIGN(playback_ctrl_size, 0x100); in snd_ymfpci_memalloc()
2108 for (voice = 0; voice < YDSXG_PLAYBACK_VOICES; voice++) { in snd_ymfpci_memalloc()
2112 for (bank = 0; bank < 2; bank++) { in snd_ymfpci_memalloc()
2118 ptr = (char *)ALIGN((unsigned long)ptr, 0x100); in snd_ymfpci_memalloc()
2119 ptr_addr = ALIGN(ptr_addr, 0x100); in snd_ymfpci_memalloc()
2122 for (voice = 0; voice < YDSXG_CAPTURE_VOICES; voice++) in snd_ymfpci_memalloc()
2123 for (bank = 0; bank < 2; bank++) { in snd_ymfpci_memalloc()
2128 ptr = (char *)ALIGN((unsigned long)ptr, 0x100); in snd_ymfpci_memalloc()
2129 ptr_addr = ALIGN(ptr_addr, 0x100); in snd_ymfpci_memalloc()
2132 for (voice = 0; voice < YDSXG_EFFECT_VOICES; voice++) in snd_ymfpci_memalloc()
2133 for (bank = 0; bank < 2; bank++) { in snd_ymfpci_memalloc()
2138 ptr = (char *)ALIGN((unsigned long)ptr, 0x100); in snd_ymfpci_memalloc()
2139 ptr_addr = ALIGN(ptr_addr, 0x100); in snd_ymfpci_memalloc()
2153 chip->spdif_bits = chip->spdif_pcm_bits = SNDRV_PCM_DEFAULT_CON_SPDIF & 0xffff; in snd_ymfpci_memalloc()
2154 snd_ymfpci_writew(chip, YDSXGR_SPDIFOUTCTRL, 0); in snd_ymfpci_memalloc()
2158 snd_ymfpci_writew(chip, YDSXGR_SPDIFINCTRL, 0); in snd_ymfpci_memalloc()
2161 for (reg = 0x80; reg < 0xc0; reg += 4) in snd_ymfpci_memalloc()
2162 snd_ymfpci_writel(chip, reg, 0); in snd_ymfpci_memalloc()
2163 snd_ymfpci_writel(chip, YDSXGR_NATIVEDACOUTVOL, 0x3fff3fff); in snd_ymfpci_memalloc()
2164 snd_ymfpci_writel(chip, YDSXGR_BUF441OUTVOL, 0x3fff3fff); in snd_ymfpci_memalloc()
2165 snd_ymfpci_writel(chip, YDSXGR_ZVOUTVOL, 0x3fff3fff); in snd_ymfpci_memalloc()
2166 snd_ymfpci_writel(chip, YDSXGR_SPDIFOUTVOL, 0x3fff3fff); in snd_ymfpci_memalloc()
2167 snd_ymfpci_writel(chip, YDSXGR_NATIVEADCINVOL, 0x3fff3fff); in snd_ymfpci_memalloc()
2168 snd_ymfpci_writel(chip, YDSXGR_NATIVEDACINVOL, 0x3fff3fff); in snd_ymfpci_memalloc()
2169 snd_ymfpci_writel(chip, YDSXGR_PRIADCLOOPVOL, 0x3fff3fff); in snd_ymfpci_memalloc()
2170 snd_ymfpci_writel(chip, YDSXGR_LEGACYOUTVOL, 0x3fff3fff); in snd_ymfpci_memalloc()
2172 return 0; in snd_ymfpci_memalloc()
2183 snd_ymfpci_writel(chip, YDSXGR_NATIVEDACOUTVOL, 0); in snd_ymfpci_free()
2184 snd_ymfpci_writel(chip, YDSXGR_BUF441OUTVOL, 0); in snd_ymfpci_free()
2185 snd_ymfpci_writel(chip, YDSXGR_LEGACYOUTVOL, 0); in snd_ymfpci_free()
2186 snd_ymfpci_writel(chip, YDSXGR_STATUS, ~0); in snd_ymfpci_free()
2188 snd_ymfpci_writel(chip, YDSXGR_PLAYCTRLBASE, 0); in snd_ymfpci_free()
2189 snd_ymfpci_writel(chip, YDSXGR_RECCTRLBASE, 0); in snd_ymfpci_free()
2190 snd_ymfpci_writel(chip, YDSXGR_EFFCTRLBASE, 0); in snd_ymfpci_free()
2191 snd_ymfpci_writel(chip, YDSXGR_WORKBASE, 0); in snd_ymfpci_free()
2192 snd_ymfpci_writel(chip, YDSXGR_WORKSIZE, 0); in snd_ymfpci_free()
2194 snd_ymfpci_writew(chip, YDSXGR_GLOBALCTRL, ctrl & ~0x0007); in snd_ymfpci_free()
2200 #if 0 in snd_ymfpci_free()
2210 if (chip->irq >= 0) in snd_ymfpci_free()
2221 pci_write_config_word(chip->pci, 0x40, chip->old_legacy_ctrl); in snd_ymfpci_free()
2227 return 0; in snd_ymfpci_free()
2274 for (i = 0; i < YDSXGR_NUM_SAVED_REGS; i++) in snd_ymfpci_suspend()
2281 snd_ymfpci_writel(chip, YDSXGR_NATIVEDACOUTVOL, 0); in snd_ymfpci_suspend()
2282 snd_ymfpci_writel(chip, YDSXGR_BUF441OUTVOL, 0); in snd_ymfpci_suspend()
2284 return 0; in snd_ymfpci_suspend()
2295 snd_ymfpci_codec_ready(chip, 0); in snd_ymfpci_resume()
2299 for (i = 0; i < YDSXGR_NUM_SAVED_REGS; i++) in snd_ymfpci_resume()
2310 if (chip->start_count > 0) { in snd_ymfpci_resume()
2317 return 0; in snd_ymfpci_resume()
2337 if ((err = pci_enable_device(pci)) < 0) in snd_ymfpci_create()
2349 atomic_set(&chip->interrupt_sleep_count, 0); in snd_ymfpci_create()
2355 chip->reg_area_phys = pci_resource_start(pci, 0); in snd_ymfpci_create()
2356 chip->reg_area_virt = ioremap(chip->reg_area_phys, 0x8000); in snd_ymfpci_create()
2360 if ((chip->res_reg_area = request_mem_region(chip->reg_area_phys, 0x8000, "YMFPCI")) == NULL) { in snd_ymfpci_create()
2362 "unable to grab memory region 0x%lx-0x%lx\n", in snd_ymfpci_create()
2363 chip->reg_area_phys, chip->reg_area_phys + 0x8000 - 1); in snd_ymfpci_create()
2377 if (snd_ymfpci_codec_ready(chip, 0) < 0) { in snd_ymfpci_create()
2383 if (err < 0) { in snd_ymfpci_create()
2391 if (snd_ymfpci_memalloc(chip) < 0) { in snd_ymfpci_create()
2397 if (err < 0) in snd_ymfpci_create()
2410 if (err < 0) in snd_ymfpci_create()
2416 return 0; in snd_ymfpci_create()