Lines Matching refs:chip

70 static void __iomem *lx_dsp_register(struct lx6464es *chip, int port)  in lx_dsp_register()  argument
72 void __iomem *base_address = chip->port_dsp_bar; in lx_dsp_register()
76 unsigned long lx_dsp_reg_read(struct lx6464es *chip, int port) in lx_dsp_reg_read() argument
78 void __iomem *address = lx_dsp_register(chip, port); in lx_dsp_reg_read()
82 static void lx_dsp_reg_readbuf(struct lx6464es *chip, int port, u32 *data, in lx_dsp_reg_readbuf() argument
85 u32 __iomem *address = lx_dsp_register(chip, port); in lx_dsp_reg_readbuf()
94 void lx_dsp_reg_write(struct lx6464es *chip, int port, unsigned data) in lx_dsp_reg_write() argument
96 void __iomem *address = lx_dsp_register(chip, port); in lx_dsp_reg_write()
100 static void lx_dsp_reg_writebuf(struct lx6464es *chip, int port, in lx_dsp_reg_writebuf() argument
103 u32 __iomem *address = lx_dsp_register(chip, port); in lx_dsp_reg_writebuf()
127 static void __iomem *lx_plx_register(struct lx6464es *chip, int port) in lx_plx_register() argument
129 void __iomem *base_address = chip->port_plx_remapped; in lx_plx_register()
133 unsigned long lx_plx_reg_read(struct lx6464es *chip, int port) in lx_plx_reg_read() argument
135 void __iomem *address = lx_plx_register(chip, port); in lx_plx_reg_read()
139 void lx_plx_reg_write(struct lx6464es *chip, int port, u32 data) in lx_plx_reg_write() argument
141 void __iomem *address = lx_plx_register(chip, port); in lx_plx_reg_write()
271 static int lx_message_send_atomic(struct lx6464es *chip, struct lx_rmh *rmh) in lx_message_send_atomic() argument
276 if (lx_dsp_reg_read(chip, eReg_CSM) & (Reg_CSM_MC | Reg_CSM_MR)) { in lx_message_send_atomic()
277 dev_err(chip->card->dev, "PIOSendMessage eReg_CSM %x\n", reg); in lx_message_send_atomic()
282 lx_dsp_reg_writebuf(chip, eReg_CRM1, rmh->cmd, rmh->cmd_len); in lx_message_send_atomic()
285 lx_dsp_reg_write(chip, eReg_CSM, Reg_CSM_MC); in lx_message_send_atomic()
289 if (lx_dsp_reg_read(chip, eReg_CSM) & Reg_CSM_MR) { in lx_message_send_atomic()
291 reg = lx_dsp_reg_read(chip, eReg_CRM1); in lx_message_send_atomic()
298 dev_warn(chip->card->dev, "TIMEOUT lx_message_send_atomic! " in lx_message_send_atomic()
306 lx_dsp_reg_readbuf(chip, eReg_CRM2, rmh->stat, in lx_message_send_atomic()
310 dev_err(chip->card->dev, "rmh error: %08x\n", reg); in lx_message_send_atomic()
313 lx_dsp_reg_write(chip, eReg_CSM, 0); in lx_message_send_atomic()
317 dev_warn(chip->card->dev, "lx_message_send: dsp timeout\n"); in lx_message_send_atomic()
321 dev_warn(chip->card->dev, "lx_message_send: dsp crashed\n"); in lx_message_send_atomic()
332 int lx_dsp_get_version(struct lx6464es *chip, u32 *rdsp_version) in lx_dsp_get_version() argument
336 mutex_lock(&chip->msg_lock); in lx_dsp_get_version()
338 lx_message_init(&chip->rmh, CMD_01_GET_SYS_CFG); in lx_dsp_get_version()
339 ret = lx_message_send_atomic(chip, &chip->rmh); in lx_dsp_get_version()
341 *rdsp_version = chip->rmh.stat[1]; in lx_dsp_get_version()
342 mutex_unlock(&chip->msg_lock); in lx_dsp_get_version()
346 int lx_dsp_get_clock_frequency(struct lx6464es *chip, u32 *rfreq) in lx_dsp_get_clock_frequency() argument
353 mutex_lock(&chip->msg_lock); in lx_dsp_get_clock_frequency()
355 lx_message_init(&chip->rmh, CMD_01_GET_SYS_CFG); in lx_dsp_get_clock_frequency()
356 ret = lx_message_send_atomic(chip, &chip->rmh); in lx_dsp_get_clock_frequency()
359 freq_raw = chip->rmh.stat[0] >> FREQ_FIELD_OFFSET; in lx_dsp_get_clock_frequency()
371 mutex_unlock(&chip->msg_lock); in lx_dsp_get_clock_frequency()
373 *rfreq = frequency * chip->freq_ratio; in lx_dsp_get_clock_frequency()
378 int lx_dsp_get_mac(struct lx6464es *chip) in lx_dsp_get_mac() argument
382 macmsb = lx_dsp_reg_read(chip, eReg_ADMACESMSB) & 0x00FFFFFF; in lx_dsp_get_mac()
383 maclsb = lx_dsp_reg_read(chip, eReg_ADMACESLSB) & 0x00FFFFFF; in lx_dsp_get_mac()
386 chip->mac_address[5] = ((u8 *)(&maclsb))[0]; in lx_dsp_get_mac()
387 chip->mac_address[4] = ((u8 *)(&maclsb))[1]; in lx_dsp_get_mac()
388 chip->mac_address[3] = ((u8 *)(&maclsb))[2]; in lx_dsp_get_mac()
389 chip->mac_address[2] = ((u8 *)(&macmsb))[0]; in lx_dsp_get_mac()
390 chip->mac_address[1] = ((u8 *)(&macmsb))[1]; in lx_dsp_get_mac()
391 chip->mac_address[0] = ((u8 *)(&macmsb))[2]; in lx_dsp_get_mac()
397 int lx_dsp_set_granularity(struct lx6464es *chip, u32 gran) in lx_dsp_set_granularity() argument
401 mutex_lock(&chip->msg_lock); in lx_dsp_set_granularity()
403 lx_message_init(&chip->rmh, CMD_02_SET_GRANULARITY); in lx_dsp_set_granularity()
404 chip->rmh.cmd[0] |= gran; in lx_dsp_set_granularity()
406 ret = lx_message_send_atomic(chip, &chip->rmh); in lx_dsp_set_granularity()
407 mutex_unlock(&chip->msg_lock); in lx_dsp_set_granularity()
411 int lx_dsp_read_async_events(struct lx6464es *chip, u32 *data) in lx_dsp_read_async_events() argument
415 mutex_lock(&chip->msg_lock); in lx_dsp_read_async_events()
417 lx_message_init(&chip->rmh, CMD_04_GET_EVENT); in lx_dsp_read_async_events()
418 chip->rmh.stat_len = 9; /* we don't necessarily need the full length */ in lx_dsp_read_async_events()
420 ret = lx_message_send_atomic(chip, &chip->rmh); in lx_dsp_read_async_events()
423 memcpy(data, chip->rmh.stat, chip->rmh.stat_len * sizeof(u32)); in lx_dsp_read_async_events()
425 mutex_unlock(&chip->msg_lock); in lx_dsp_read_async_events()
435 int lx_pipe_allocate(struct lx6464es *chip, u32 pipe, int is_capture, in lx_pipe_allocate() argument
441 mutex_lock(&chip->msg_lock); in lx_pipe_allocate()
442 lx_message_init(&chip->rmh, CMD_06_ALLOCATE_PIPE); in lx_pipe_allocate()
444 chip->rmh.cmd[0] |= pipe_cmd; in lx_pipe_allocate()
445 chip->rmh.cmd[0] |= channels; in lx_pipe_allocate()
447 err = lx_message_send_atomic(chip, &chip->rmh); in lx_pipe_allocate()
448 mutex_unlock(&chip->msg_lock); in lx_pipe_allocate()
451 dev_err(chip->card->dev, "could not allocate pipe\n"); in lx_pipe_allocate()
456 int lx_pipe_release(struct lx6464es *chip, u32 pipe, int is_capture) in lx_pipe_release() argument
461 mutex_lock(&chip->msg_lock); in lx_pipe_release()
462 lx_message_init(&chip->rmh, CMD_07_RELEASE_PIPE); in lx_pipe_release()
464 chip->rmh.cmd[0] |= pipe_cmd; in lx_pipe_release()
466 err = lx_message_send_atomic(chip, &chip->rmh); in lx_pipe_release()
467 mutex_unlock(&chip->msg_lock); in lx_pipe_release()
472 int lx_buffer_ask(struct lx6464es *chip, u32 pipe, int is_capture, in lx_buffer_ask() argument
486 mutex_lock(&chip->msg_lock); in lx_buffer_ask()
487 lx_message_init(&chip->rmh, CMD_08_ASK_BUFFERS); in lx_buffer_ask()
489 chip->rmh.cmd[0] |= pipe_cmd; in lx_buffer_ask()
491 err = lx_message_send_atomic(chip, &chip->rmh); in lx_buffer_ask()
496 u32 stat = chip->rmh.stat[i]; in lx_buffer_ask()
508 dev_dbg(chip->card->dev, in lx_buffer_ask()
512 for (i = 0; i != chip->rmh.stat_len; ++i) in lx_buffer_ask()
513 dev_dbg(chip->card->dev, in lx_buffer_ask()
515 chip->rmh.stat[i], in lx_buffer_ask()
516 chip->rmh.stat[i] & MASK_DATA_SIZE); in lx_buffer_ask()
520 mutex_unlock(&chip->msg_lock); in lx_buffer_ask()
525 int lx_pipe_stop(struct lx6464es *chip, u32 pipe, int is_capture) in lx_pipe_stop() argument
530 mutex_lock(&chip->msg_lock); in lx_pipe_stop()
531 lx_message_init(&chip->rmh, CMD_09_STOP_PIPE); in lx_pipe_stop()
533 chip->rmh.cmd[0] |= pipe_cmd; in lx_pipe_stop()
535 err = lx_message_send_atomic(chip, &chip->rmh); in lx_pipe_stop()
537 mutex_unlock(&chip->msg_lock); in lx_pipe_stop()
541 static int lx_pipe_toggle_state(struct lx6464es *chip, u32 pipe, int is_capture) in lx_pipe_toggle_state() argument
546 mutex_lock(&chip->msg_lock); in lx_pipe_toggle_state()
547 lx_message_init(&chip->rmh, CMD_0B_TOGGLE_PIPE_STATE); in lx_pipe_toggle_state()
549 chip->rmh.cmd[0] |= pipe_cmd; in lx_pipe_toggle_state()
551 err = lx_message_send_atomic(chip, &chip->rmh); in lx_pipe_toggle_state()
553 mutex_unlock(&chip->msg_lock); in lx_pipe_toggle_state()
558 int lx_pipe_start(struct lx6464es *chip, u32 pipe, int is_capture) in lx_pipe_start() argument
562 err = lx_pipe_wait_for_idle(chip, pipe, is_capture); in lx_pipe_start()
566 err = lx_pipe_toggle_state(chip, pipe, is_capture); in lx_pipe_start()
571 int lx_pipe_pause(struct lx6464es *chip, u32 pipe, int is_capture) in lx_pipe_pause() argument
575 err = lx_pipe_wait_for_start(chip, pipe, is_capture); in lx_pipe_pause()
579 err = lx_pipe_toggle_state(chip, pipe, is_capture); in lx_pipe_pause()
585 int lx_pipe_sample_count(struct lx6464es *chip, u32 pipe, int is_capture, in lx_pipe_sample_count() argument
591 mutex_lock(&chip->msg_lock); in lx_pipe_sample_count()
592 lx_message_init(&chip->rmh, CMD_0A_GET_PIPE_SPL_COUNT); in lx_pipe_sample_count()
594 chip->rmh.cmd[0] |= pipe_cmd; in lx_pipe_sample_count()
595 chip->rmh.stat_len = 2; /* need all words here! */ in lx_pipe_sample_count()
597 err = lx_message_send_atomic(chip, &chip->rmh); /* don't sleep! */ in lx_pipe_sample_count()
600 dev_err(chip->card->dev, in lx_pipe_sample_count()
603 *rsample_count = ((u64)(chip->rmh.stat[0] & MASK_SPL_COUNT_HI) in lx_pipe_sample_count()
605 + chip->rmh.stat[1]; /* lo part */ in lx_pipe_sample_count()
608 mutex_unlock(&chip->msg_lock); in lx_pipe_sample_count()
612 int lx_pipe_state(struct lx6464es *chip, u32 pipe, int is_capture, u16 *rstate) in lx_pipe_state() argument
617 mutex_lock(&chip->msg_lock); in lx_pipe_state()
618 lx_message_init(&chip->rmh, CMD_0A_GET_PIPE_SPL_COUNT); in lx_pipe_state()
620 chip->rmh.cmd[0] |= pipe_cmd; in lx_pipe_state()
622 err = lx_message_send_atomic(chip, &chip->rmh); in lx_pipe_state()
625 dev_err(chip->card->dev, "could not query pipe's state\n"); in lx_pipe_state()
627 *rstate = (chip->rmh.stat[0] >> PSTATE_OFFSET) & 0x0F; in lx_pipe_state()
629 mutex_unlock(&chip->msg_lock); in lx_pipe_state()
633 static int lx_pipe_wait_for_state(struct lx6464es *chip, u32 pipe, in lx_pipe_wait_for_state() argument
642 int err = lx_pipe_state(chip, pipe, is_capture, &current_state); in lx_pipe_wait_for_state()
656 int lx_pipe_wait_for_start(struct lx6464es *chip, u32 pipe, int is_capture) in lx_pipe_wait_for_start() argument
658 return lx_pipe_wait_for_state(chip, pipe, is_capture, PSTATE_RUN); in lx_pipe_wait_for_start()
661 int lx_pipe_wait_for_idle(struct lx6464es *chip, u32 pipe, int is_capture) in lx_pipe_wait_for_idle() argument
663 return lx_pipe_wait_for_state(chip, pipe, is_capture, PSTATE_IDLE); in lx_pipe_wait_for_idle()
667 int lx_stream_set_state(struct lx6464es *chip, u32 pipe, in lx_stream_set_state() argument
673 mutex_lock(&chip->msg_lock); in lx_stream_set_state()
674 lx_message_init(&chip->rmh, CMD_13_SET_STREAM_STATE); in lx_stream_set_state()
676 chip->rmh.cmd[0] |= pipe_cmd; in lx_stream_set_state()
677 chip->rmh.cmd[0] |= state; in lx_stream_set_state()
679 err = lx_message_send_atomic(chip, &chip->rmh); in lx_stream_set_state()
680 mutex_unlock(&chip->msg_lock); in lx_stream_set_state()
685 int lx_stream_set_format(struct lx6464es *chip, struct snd_pcm_runtime *runtime, in lx_stream_set_format() argument
693 dev_err(chip->card->dev, "channel count mismatch: %d vs %d", in lx_stream_set_format()
696 mutex_lock(&chip->msg_lock); in lx_stream_set_format()
697 lx_message_init(&chip->rmh, CMD_0C_DEF_STREAM); in lx_stream_set_format()
699 chip->rmh.cmd[0] |= pipe_cmd; in lx_stream_set_format()
703 chip->rmh.cmd[0] |= (STREAM_FMT_16b << STREAM_FMT_OFFSET); in lx_stream_set_format()
707 chip->rmh.cmd[0] |= (STREAM_FMT_intel << STREAM_FMT_OFFSET); in lx_stream_set_format()
709 chip->rmh.cmd[0] |= channels-1; in lx_stream_set_format()
711 err = lx_message_send_atomic(chip, &chip->rmh); in lx_stream_set_format()
712 mutex_unlock(&chip->msg_lock); in lx_stream_set_format()
717 int lx_stream_state(struct lx6464es *chip, u32 pipe, int is_capture, in lx_stream_state() argument
723 mutex_lock(&chip->msg_lock); in lx_stream_state()
724 lx_message_init(&chip->rmh, CMD_0E_GET_STREAM_SPL_COUNT); in lx_stream_state()
726 chip->rmh.cmd[0] |= pipe_cmd; in lx_stream_state()
728 err = lx_message_send_atomic(chip, &chip->rmh); in lx_stream_state()
730 *rstate = (chip->rmh.stat[0] & SF_START) ? START_STATE : PAUSE_STATE; in lx_stream_state()
732 mutex_unlock(&chip->msg_lock); in lx_stream_state()
736 int lx_stream_sample_position(struct lx6464es *chip, u32 pipe, int is_capture, in lx_stream_sample_position() argument
742 mutex_lock(&chip->msg_lock); in lx_stream_sample_position()
743 lx_message_init(&chip->rmh, CMD_0E_GET_STREAM_SPL_COUNT); in lx_stream_sample_position()
745 chip->rmh.cmd[0] |= pipe_cmd; in lx_stream_sample_position()
747 err = lx_message_send_atomic(chip, &chip->rmh); in lx_stream_sample_position()
749 *r_bytepos = ((u64) (chip->rmh.stat[0] & MASK_SPL_COUNT_HI) in lx_stream_sample_position()
751 + chip->rmh.stat[1]; /* lo part */ in lx_stream_sample_position()
753 mutex_unlock(&chip->msg_lock); in lx_stream_sample_position()
758 int lx_buffer_give(struct lx6464es *chip, u32 pipe, int is_capture, in lx_buffer_give() argument
765 mutex_lock(&chip->msg_lock); in lx_buffer_give()
766 lx_message_init(&chip->rmh, CMD_0F_UPDATE_BUFFER); in lx_buffer_give()
768 chip->rmh.cmd[0] |= pipe_cmd; in lx_buffer_give()
769 chip->rmh.cmd[0] |= BF_NOTIFY_EOB; /* request interrupt notification */ in lx_buffer_give()
773 chip->rmh.cmd[1] = buffer_size & MASK_DATA_SIZE; in lx_buffer_give()
774 chip->rmh.cmd[2] = buf_address_lo; in lx_buffer_give()
777 chip->rmh.cmd_len = 4; in lx_buffer_give()
778 chip->rmh.cmd[3] = buf_address_hi; in lx_buffer_give()
779 chip->rmh.cmd[0] |= BF_64BITS_ADR; in lx_buffer_give()
782 err = lx_message_send_atomic(chip, &chip->rmh); in lx_buffer_give()
785 *r_buffer_index = chip->rmh.stat[0]; in lx_buffer_give()
790 dev_err(chip->card->dev, in lx_buffer_give()
794 dev_err(chip->card->dev, in lx_buffer_give()
798 dev_err(chip->card->dev, in lx_buffer_give()
802 mutex_unlock(&chip->msg_lock); in lx_buffer_give()
806 int lx_buffer_free(struct lx6464es *chip, u32 pipe, int is_capture, in lx_buffer_free() argument
812 mutex_lock(&chip->msg_lock); in lx_buffer_free()
813 lx_message_init(&chip->rmh, CMD_11_CANCEL_BUFFER); in lx_buffer_free()
815 chip->rmh.cmd[0] |= pipe_cmd; in lx_buffer_free()
816 chip->rmh.cmd[0] |= MASK_BUFFER_ID; /* ask for the current buffer: the in lx_buffer_free()
819 err = lx_message_send_atomic(chip, &chip->rmh); in lx_buffer_free()
822 *r_buffer_size = chip->rmh.stat[0] & MASK_DATA_SIZE; in lx_buffer_free()
824 mutex_unlock(&chip->msg_lock); in lx_buffer_free()
828 int lx_buffer_cancel(struct lx6464es *chip, u32 pipe, int is_capture, in lx_buffer_cancel() argument
834 mutex_lock(&chip->msg_lock); in lx_buffer_cancel()
835 lx_message_init(&chip->rmh, CMD_11_CANCEL_BUFFER); in lx_buffer_cancel()
837 chip->rmh.cmd[0] |= pipe_cmd; in lx_buffer_cancel()
838 chip->rmh.cmd[0] |= buffer_index; in lx_buffer_cancel()
840 err = lx_message_send_atomic(chip, &chip->rmh); in lx_buffer_cancel()
842 mutex_unlock(&chip->msg_lock); in lx_buffer_cancel()
852 int lx_level_unmute(struct lx6464es *chip, int is_capture, int unmute) in lx_level_unmute() argument
858 mutex_lock(&chip->msg_lock); in lx_level_unmute()
859 lx_message_init(&chip->rmh, CMD_0D_SET_MUTE); in lx_level_unmute()
861 chip->rmh.cmd[0] |= PIPE_INFO_TO_CMD(is_capture, 0); in lx_level_unmute()
863 chip->rmh.cmd[1] = (u32)(mute_mask >> (u64)32); /* hi part */ in lx_level_unmute()
864 chip->rmh.cmd[2] = (u32)(mute_mask & (u64)0xFFFFFFFF); /* lo part */ in lx_level_unmute()
866 dev_dbg(chip->card->dev, in lx_level_unmute()
867 "mute %x %x %x\n", chip->rmh.cmd[0], chip->rmh.cmd[1], in lx_level_unmute()
868 chip->rmh.cmd[2]); in lx_level_unmute()
870 err = lx_message_send_atomic(chip, &chip->rmh); in lx_level_unmute()
872 mutex_unlock(&chip->msg_lock); in lx_level_unmute()
895 int lx_level_peaks(struct lx6464es *chip, int is_capture, int channels, in lx_level_peaks() argument
901 mutex_lock(&chip->msg_lock); in lx_level_peaks()
905 lx_message_init(&chip->rmh, CMD_12_GET_PEAK); in lx_level_peaks()
906 chip->rmh.cmd[0] |= PIPE_INFO_TO_CMD(is_capture, i); in lx_level_peaks()
908 err = lx_message_send_atomic(chip, &chip->rmh); in lx_level_peaks()
911 s0 = peak_map[chip->rmh.stat[0] & 0x0F]; in lx_level_peaks()
912 s1 = peak_map[(chip->rmh.stat[0] >> 4) & 0xf]; in lx_level_peaks()
913 s2 = peak_map[(chip->rmh.stat[0] >> 8) & 0xf]; in lx_level_peaks()
914 s3 = peak_map[(chip->rmh.stat[0] >> 12) & 0xf]; in lx_level_peaks()
926 mutex_unlock(&chip->msg_lock); in lx_level_peaks()
936 static u32 lx_interrupt_test_ack(struct lx6464es *chip) in lx_interrupt_test_ack() argument
938 u32 irqcs = lx_plx_reg_read(chip, ePLX_IRQCS); in lx_interrupt_test_ack()
945 while ((temp = lx_plx_reg_read(chip, ePLX_L2PCIDB))) { in lx_interrupt_test_ack()
948 lx_plx_reg_write(chip, ePLX_L2PCIDB, temp); in lx_interrupt_test_ack()
956 static int lx_interrupt_ack(struct lx6464es *chip, u32 *r_irqsrc, in lx_interrupt_ack() argument
960 u32 irqsrc = lx_interrupt_test_ack(chip); in lx_interrupt_ack()
983 static int lx_interrupt_handle_async_events(struct lx6464es *chip, u32 irqsrc, in lx_interrupt_handle_async_events() argument
1011 err = lx_dsp_read_async_events(chip, stat); in lx_interrupt_handle_async_events()
1018 dev_dbg(chip->card->dev, "interrupt: EOBI pending %llx\n", in lx_interrupt_handle_async_events()
1024 dev_dbg(chip->card->dev, "interrupt: EOBO pending %llx\n", in lx_interrupt_handle_async_events()
1036 static int lx_interrupt_request_new_buffer(struct lx6464es *chip, in lx_interrupt_request_new_buffer() argument
1059 dev_dbg(chip->card->dev, "->lx_interrupt_request_new_buffer\n"); in lx_interrupt_request_new_buffer()
1061 mutex_lock(&chip->lock); in lx_interrupt_request_new_buffer()
1063 err = lx_buffer_ask(chip, 0, is_capture, &needed, &freed, size_array); in lx_interrupt_request_new_buffer()
1064 dev_dbg(chip->card->dev, in lx_interrupt_request_new_buffer()
1068 err = lx_buffer_give(chip, 0, is_capture, period_bytes, buf_lo, buf_hi, in lx_interrupt_request_new_buffer()
1070 dev_dbg(chip->card->dev, in lx_interrupt_request_new_buffer()
1075 mutex_unlock(&chip->lock); in lx_interrupt_request_new_buffer()
1082 struct lx6464es *chip = dev_id; in lx_interrupt() local
1087 dev_dbg(chip->card->dev, in lx_interrupt()
1090 if (!lx_interrupt_ack(chip, &irqsrc, &async_pending, &async_escmd)) { in lx_interrupt()
1091 dev_dbg(chip->card->dev, "IRQ_NONE\n"); in lx_interrupt()
1099 dev_dbg(chip->card->dev, "interrupt: EOBI\n"); in lx_interrupt()
1102 dev_dbg(chip->card->dev, "interrupt: EOBO\n"); in lx_interrupt()
1105 dev_dbg(chip->card->dev, "interrupt: URUN\n"); in lx_interrupt()
1108 dev_dbg(chip->card->dev, "interrupt: ORUN\n"); in lx_interrupt()
1112 chip->irqsrc = irqsrc; in lx_interrupt()
1122 dev_dbg(chip->card->dev, "interrupt requests escmd handling\n"); in lx_interrupt()
1130 struct lx6464es *chip = dev_id; in lx_threaded_irq() local
1137 err = lx_interrupt_handle_async_events(chip, chip->irqsrc, in lx_threaded_irq()
1142 dev_err(chip->card->dev, "error handling async events\n"); in lx_threaded_irq()
1145 struct lx_stream *lx_stream = &chip->capture_stream; in lx_threaded_irq()
1147 dev_dbg(chip->card->dev, in lx_threaded_irq()
1149 err = lx_interrupt_request_new_buffer(chip, lx_stream); in lx_threaded_irq()
1151 dev_err(chip->card->dev, in lx_threaded_irq()
1157 struct lx_stream *lx_stream = &chip->playback_stream; in lx_threaded_irq()
1159 dev_dbg(chip->card->dev, in lx_threaded_irq()
1161 err = lx_interrupt_request_new_buffer(chip, lx_stream); in lx_threaded_irq()
1163 dev_err(chip->card->dev, in lx_threaded_irq()
1172 static void lx_irq_set(struct lx6464es *chip, int enable) in lx_irq_set() argument
1174 u32 reg = lx_plx_reg_read(chip, ePLX_IRQCS); in lx_irq_set()
1185 lx_plx_reg_write(chip, ePLX_IRQCS, reg); in lx_irq_set()
1188 void lx_irq_enable(struct lx6464es *chip) in lx_irq_enable() argument
1190 dev_dbg(chip->card->dev, "->lx_irq_enable\n"); in lx_irq_enable()
1191 lx_irq_set(chip, 1); in lx_irq_enable()
1194 void lx_irq_disable(struct lx6464es *chip) in lx_irq_disable() argument
1196 dev_dbg(chip->card->dev, "->lx_irq_disable\n"); in lx_irq_disable()
1197 lx_irq_set(chip, 0); in lx_irq_disable()