Lines Matching refs:chip

32 static int pdacf_pcm_clear_sram(struct snd_pdacf *chip)  in pdacf_pcm_clear_sram()  argument
36 while (inw(chip->port + PDAUDIOCF_REG_RDP) != inw(chip->port + PDAUDIOCF_REG_WDP)) { in pdacf_pcm_clear_sram()
39 inw(chip->port + PDAUDIOCF_REG_MD); in pdacf_pcm_clear_sram()
49 struct snd_pdacf *chip = snd_pcm_substream_chip(subs); in pdacf_pcm_trigger() local
54 if (chip->chip_status & PDAUDIOCF_STAT_IS_STALE) in pdacf_pcm_trigger()
59 chip->pcm_hwptr = 0; in pdacf_pcm_trigger()
60 chip->pcm_tdone = 0; in pdacf_pcm_trigger()
67 rate = snd_ak4117_check_rate_and_errors(chip->ak4117, AK4117_CHECK_NO_STAT|AK4117_CHECK_NO_RATE); in pdacf_pcm_trigger()
80 mutex_lock(&chip->reg_lock); in pdacf_pcm_trigger()
81 chip->pcm_running += inc; in pdacf_pcm_trigger()
82 tmp = pdacf_reg_read(chip, PDAUDIOCF_REG_SCR); in pdacf_pcm_trigger()
83 if (chip->pcm_running) { in pdacf_pcm_trigger()
84 if ((chip->ak4117->rcs0 & AK4117_UNLCK) || runtime->rate != rate) { in pdacf_pcm_trigger()
85 chip->pcm_running -= inc; in pdacf_pcm_trigger()
92 pdacf_reg_write(chip, PDAUDIOCF_REG_SCR, tmp); in pdacf_pcm_trigger()
94 mutex_unlock(&chip->reg_lock); in pdacf_pcm_trigger()
95 snd_ak4117_check_rate_and_errors(chip->ak4117, AK4117_CHECK_NO_RATE); in pdacf_pcm_trigger()
122 struct snd_pdacf *chip = snd_pcm_substream_chip(subs); in pdacf_pcm_prepare() local
126 if (chip->chip_status & PDAUDIOCF_STAT_IS_STALE) in pdacf_pcm_prepare()
129 chip->pcm_channels = runtime->channels; in pdacf_pcm_prepare()
131 chip->pcm_little = snd_pcm_format_little_endian(runtime->format) > 0; in pdacf_pcm_prepare()
133 chip->pcm_swab = snd_pcm_format_big_endian(runtime->format) > 0; in pdacf_pcm_prepare()
135 chip->pcm_swab = chip->pcm_little; in pdacf_pcm_prepare()
139 chip->pcm_xor = 0x80008000; in pdacf_pcm_prepare()
141 if (pdacf_pcm_clear_sram(chip) < 0) in pdacf_pcm_prepare()
144 val = nval = pdacf_reg_read(chip, PDAUDIOCF_REG_SCR); in pdacf_pcm_prepare()
155 chip->pcm_sample = 4; in pdacf_pcm_prepare()
160 chip->pcm_frame = 2; in pdacf_pcm_prepare()
161 chip->pcm_sample = 2; in pdacf_pcm_prepare()
165 chip->pcm_sample = 3; in pdacf_pcm_prepare()
169 chip->pcm_frame = 3; in pdacf_pcm_prepare()
170 chip->pcm_xor &= 0xffff0000; in pdacf_pcm_prepare()
175 snd_ak4117_reg_write(chip->ak4117, AK4117_REG_IO, AK4117_DIF2|AK4117_DIF1|AK4117_DIF0, aval); in pdacf_pcm_prepare()
176 pdacf_reg_write(chip, PDAUDIOCF_REG_SCR, nval); in pdacf_pcm_prepare()
179 val = pdacf_reg_read(chip, PDAUDIOCF_REG_IER); in pdacf_pcm_prepare()
182 pdacf_reg_write(chip, PDAUDIOCF_REG_IER, val); in pdacf_pcm_prepare()
184 chip->pcm_size = runtime->buffer_size; in pdacf_pcm_prepare()
185 chip->pcm_period = runtime->period_size; in pdacf_pcm_prepare()
186 chip->pcm_area = runtime->dma_area; in pdacf_pcm_prepare()
230 struct snd_pdacf *chip = snd_pcm_substream_chip(subs); in pdacf_pcm_capture_open() local
232 if (chip->chip_status & PDAUDIOCF_STAT_IS_STALE) in pdacf_pcm_capture_open()
236 runtime->private_data = chip; in pdacf_pcm_capture_open()
237 chip->pcm_substream = subs; in pdacf_pcm_capture_open()
247 struct snd_pdacf *chip = snd_pcm_substream_chip(subs); in pdacf_pcm_capture_close() local
249 if (!chip) in pdacf_pcm_capture_close()
251 pdacf_reinit(chip, 0); in pdacf_pcm_capture_close()
252 chip->pcm_substream = NULL; in pdacf_pcm_capture_close()
262 struct snd_pdacf *chip = snd_pcm_substream_chip(subs); in pdacf_pcm_capture_pointer() local
263 return chip->pcm_hwptr; in pdacf_pcm_capture_pointer()
286 int snd_pdacf_pcm_new(struct snd_pdacf *chip) in snd_pdacf_pcm_new() argument
291 err = snd_pcm_new(chip->card, "PDAudioCF", 0, 0, 1, &pcm); in snd_pdacf_pcm_new()
297 pcm->private_data = chip; in snd_pdacf_pcm_new()
300 strcpy(pcm->name, chip->card->shortname); in snd_pdacf_pcm_new()
301 chip->pcm = pcm; in snd_pdacf_pcm_new()
303 err = snd_ak4117_build(chip->ak4117, pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream); in snd_pdacf_pcm_new()