Lines Matching refs:chip
55 static void __iomem *lx_dsp_register(struct lx6464es *chip, int port) in lx_dsp_register() argument
57 void __iomem *base_address = chip->port_dsp_bar; in lx_dsp_register()
61 unsigned long lx_dsp_reg_read(struct lx6464es *chip, int port) in lx_dsp_reg_read() argument
63 void __iomem *address = lx_dsp_register(chip, port); in lx_dsp_reg_read()
67 static void lx_dsp_reg_readbuf(struct lx6464es *chip, int port, u32 *data, in lx_dsp_reg_readbuf() argument
70 u32 __iomem *address = lx_dsp_register(chip, port); in lx_dsp_reg_readbuf()
79 void lx_dsp_reg_write(struct lx6464es *chip, int port, unsigned data) in lx_dsp_reg_write() argument
81 void __iomem *address = lx_dsp_register(chip, port); in lx_dsp_reg_write()
85 static void lx_dsp_reg_writebuf(struct lx6464es *chip, int port, in lx_dsp_reg_writebuf() argument
88 u32 __iomem *address = lx_dsp_register(chip, port); in lx_dsp_reg_writebuf()
112 static void __iomem *lx_plx_register(struct lx6464es *chip, int port) in lx_plx_register() argument
114 void __iomem *base_address = chip->port_plx_remapped; in lx_plx_register()
118 unsigned long lx_plx_reg_read(struct lx6464es *chip, int port) in lx_plx_reg_read() argument
120 void __iomem *address = lx_plx_register(chip, port); in lx_plx_reg_read()
124 void lx_plx_reg_write(struct lx6464es *chip, int port, u32 data) in lx_plx_reg_write() argument
126 void __iomem *address = lx_plx_register(chip, port); in lx_plx_reg_write()
256 static int lx_message_send_atomic(struct lx6464es *chip, struct lx_rmh *rmh) in lx_message_send_atomic() argument
261 if (lx_dsp_reg_read(chip, eReg_CSM) & (Reg_CSM_MC | Reg_CSM_MR)) { in lx_message_send_atomic()
262 dev_err(chip->card->dev, "PIOSendMessage eReg_CSM %x\n", reg); in lx_message_send_atomic()
267 lx_dsp_reg_writebuf(chip, eReg_CRM1, rmh->cmd, rmh->cmd_len); in lx_message_send_atomic()
270 lx_dsp_reg_write(chip, eReg_CSM, Reg_CSM_MC); in lx_message_send_atomic()
274 if (lx_dsp_reg_read(chip, eReg_CSM) & Reg_CSM_MR) { in lx_message_send_atomic()
276 reg = lx_dsp_reg_read(chip, eReg_CRM1); in lx_message_send_atomic()
283 dev_warn(chip->card->dev, "TIMEOUT lx_message_send_atomic! " in lx_message_send_atomic()
291 lx_dsp_reg_readbuf(chip, eReg_CRM2, rmh->stat, in lx_message_send_atomic()
295 dev_err(chip->card->dev, "rmh error: %08x\n", reg); in lx_message_send_atomic()
298 lx_dsp_reg_write(chip, eReg_CSM, 0); in lx_message_send_atomic()
302 dev_warn(chip->card->dev, "lx_message_send: dsp timeout\n"); in lx_message_send_atomic()
306 dev_warn(chip->card->dev, "lx_message_send: dsp crashed\n"); in lx_message_send_atomic()
317 int lx_dsp_get_version(struct lx6464es *chip, u32 *rdsp_version) in lx_dsp_get_version() argument
321 mutex_lock(&chip->msg_lock); in lx_dsp_get_version()
323 lx_message_init(&chip->rmh, CMD_01_GET_SYS_CFG); in lx_dsp_get_version()
324 ret = lx_message_send_atomic(chip, &chip->rmh); in lx_dsp_get_version()
326 *rdsp_version = chip->rmh.stat[1]; in lx_dsp_get_version()
327 mutex_unlock(&chip->msg_lock); in lx_dsp_get_version()
331 int lx_dsp_get_clock_frequency(struct lx6464es *chip, u32 *rfreq) in lx_dsp_get_clock_frequency() argument
338 mutex_lock(&chip->msg_lock); in lx_dsp_get_clock_frequency()
340 lx_message_init(&chip->rmh, CMD_01_GET_SYS_CFG); in lx_dsp_get_clock_frequency()
341 ret = lx_message_send_atomic(chip, &chip->rmh); in lx_dsp_get_clock_frequency()
344 freq_raw = chip->rmh.stat[0] >> FREQ_FIELD_OFFSET; in lx_dsp_get_clock_frequency()
356 mutex_unlock(&chip->msg_lock); in lx_dsp_get_clock_frequency()
358 *rfreq = frequency * chip->freq_ratio; in lx_dsp_get_clock_frequency()
363 int lx_dsp_get_mac(struct lx6464es *chip) in lx_dsp_get_mac() argument
367 macmsb = lx_dsp_reg_read(chip, eReg_ADMACESMSB) & 0x00FFFFFF; in lx_dsp_get_mac()
368 maclsb = lx_dsp_reg_read(chip, eReg_ADMACESLSB) & 0x00FFFFFF; in lx_dsp_get_mac()
371 chip->mac_address[5] = ((u8 *)(&maclsb))[0]; in lx_dsp_get_mac()
372 chip->mac_address[4] = ((u8 *)(&maclsb))[1]; in lx_dsp_get_mac()
373 chip->mac_address[3] = ((u8 *)(&maclsb))[2]; in lx_dsp_get_mac()
374 chip->mac_address[2] = ((u8 *)(&macmsb))[0]; in lx_dsp_get_mac()
375 chip->mac_address[1] = ((u8 *)(&macmsb))[1]; in lx_dsp_get_mac()
376 chip->mac_address[0] = ((u8 *)(&macmsb))[2]; in lx_dsp_get_mac()
382 int lx_dsp_set_granularity(struct lx6464es *chip, u32 gran) in lx_dsp_set_granularity() argument
386 mutex_lock(&chip->msg_lock); in lx_dsp_set_granularity()
388 lx_message_init(&chip->rmh, CMD_02_SET_GRANULARITY); in lx_dsp_set_granularity()
389 chip->rmh.cmd[0] |= gran; in lx_dsp_set_granularity()
391 ret = lx_message_send_atomic(chip, &chip->rmh); in lx_dsp_set_granularity()
392 mutex_unlock(&chip->msg_lock); in lx_dsp_set_granularity()
396 int lx_dsp_read_async_events(struct lx6464es *chip, u32 *data) in lx_dsp_read_async_events() argument
400 mutex_lock(&chip->msg_lock); in lx_dsp_read_async_events()
402 lx_message_init(&chip->rmh, CMD_04_GET_EVENT); in lx_dsp_read_async_events()
403 chip->rmh.stat_len = 9; /* we don't necessarily need the full length */ in lx_dsp_read_async_events()
405 ret = lx_message_send_atomic(chip, &chip->rmh); in lx_dsp_read_async_events()
408 memcpy(data, chip->rmh.stat, chip->rmh.stat_len * sizeof(u32)); in lx_dsp_read_async_events()
410 mutex_unlock(&chip->msg_lock); in lx_dsp_read_async_events()
420 int lx_pipe_allocate(struct lx6464es *chip, u32 pipe, int is_capture, in lx_pipe_allocate() argument
426 mutex_lock(&chip->msg_lock); in lx_pipe_allocate()
427 lx_message_init(&chip->rmh, CMD_06_ALLOCATE_PIPE); in lx_pipe_allocate()
429 chip->rmh.cmd[0] |= pipe_cmd; in lx_pipe_allocate()
430 chip->rmh.cmd[0] |= channels; in lx_pipe_allocate()
432 err = lx_message_send_atomic(chip, &chip->rmh); in lx_pipe_allocate()
433 mutex_unlock(&chip->msg_lock); in lx_pipe_allocate()
436 dev_err(chip->card->dev, "could not allocate pipe\n"); in lx_pipe_allocate()
441 int lx_pipe_release(struct lx6464es *chip, u32 pipe, int is_capture) in lx_pipe_release() argument
446 mutex_lock(&chip->msg_lock); in lx_pipe_release()
447 lx_message_init(&chip->rmh, CMD_07_RELEASE_PIPE); in lx_pipe_release()
449 chip->rmh.cmd[0] |= pipe_cmd; in lx_pipe_release()
451 err = lx_message_send_atomic(chip, &chip->rmh); in lx_pipe_release()
452 mutex_unlock(&chip->msg_lock); in lx_pipe_release()
457 int lx_buffer_ask(struct lx6464es *chip, u32 pipe, int is_capture, in lx_buffer_ask() argument
471 mutex_lock(&chip->msg_lock); in lx_buffer_ask()
472 lx_message_init(&chip->rmh, CMD_08_ASK_BUFFERS); in lx_buffer_ask()
474 chip->rmh.cmd[0] |= pipe_cmd; in lx_buffer_ask()
476 err = lx_message_send_atomic(chip, &chip->rmh); in lx_buffer_ask()
481 u32 stat = chip->rmh.stat[i]; in lx_buffer_ask()
493 dev_dbg(chip->card->dev, in lx_buffer_ask()
497 for (i = 0; i != chip->rmh.stat_len; ++i) in lx_buffer_ask()
498 dev_dbg(chip->card->dev, in lx_buffer_ask()
500 chip->rmh.stat[i], in lx_buffer_ask()
501 chip->rmh.stat[i] & MASK_DATA_SIZE); in lx_buffer_ask()
505 mutex_unlock(&chip->msg_lock); in lx_buffer_ask()
510 int lx_pipe_stop(struct lx6464es *chip, u32 pipe, int is_capture) in lx_pipe_stop() argument
515 mutex_lock(&chip->msg_lock); in lx_pipe_stop()
516 lx_message_init(&chip->rmh, CMD_09_STOP_PIPE); in lx_pipe_stop()
518 chip->rmh.cmd[0] |= pipe_cmd; in lx_pipe_stop()
520 err = lx_message_send_atomic(chip, &chip->rmh); in lx_pipe_stop()
522 mutex_unlock(&chip->msg_lock); in lx_pipe_stop()
526 static int lx_pipe_toggle_state(struct lx6464es *chip, u32 pipe, int is_capture) in lx_pipe_toggle_state() argument
531 mutex_lock(&chip->msg_lock); in lx_pipe_toggle_state()
532 lx_message_init(&chip->rmh, CMD_0B_TOGGLE_PIPE_STATE); in lx_pipe_toggle_state()
534 chip->rmh.cmd[0] |= pipe_cmd; in lx_pipe_toggle_state()
536 err = lx_message_send_atomic(chip, &chip->rmh); in lx_pipe_toggle_state()
538 mutex_unlock(&chip->msg_lock); in lx_pipe_toggle_state()
543 int lx_pipe_start(struct lx6464es *chip, u32 pipe, int is_capture) in lx_pipe_start() argument
547 err = lx_pipe_wait_for_idle(chip, pipe, is_capture); in lx_pipe_start()
551 err = lx_pipe_toggle_state(chip, pipe, is_capture); in lx_pipe_start()
556 int lx_pipe_pause(struct lx6464es *chip, u32 pipe, int is_capture) in lx_pipe_pause() argument
560 err = lx_pipe_wait_for_start(chip, pipe, is_capture); in lx_pipe_pause()
564 err = lx_pipe_toggle_state(chip, pipe, is_capture); in lx_pipe_pause()
570 int lx_pipe_sample_count(struct lx6464es *chip, u32 pipe, int is_capture, in lx_pipe_sample_count() argument
576 mutex_lock(&chip->msg_lock); in lx_pipe_sample_count()
577 lx_message_init(&chip->rmh, CMD_0A_GET_PIPE_SPL_COUNT); in lx_pipe_sample_count()
579 chip->rmh.cmd[0] |= pipe_cmd; in lx_pipe_sample_count()
580 chip->rmh.stat_len = 2; /* need all words here! */ in lx_pipe_sample_count()
582 err = lx_message_send_atomic(chip, &chip->rmh); /* don't sleep! */ in lx_pipe_sample_count()
585 dev_err(chip->card->dev, in lx_pipe_sample_count()
588 *rsample_count = ((u64)(chip->rmh.stat[0] & MASK_SPL_COUNT_HI) in lx_pipe_sample_count()
590 + chip->rmh.stat[1]; /* lo part */ in lx_pipe_sample_count()
593 mutex_unlock(&chip->msg_lock); in lx_pipe_sample_count()
597 int lx_pipe_state(struct lx6464es *chip, u32 pipe, int is_capture, u16 *rstate) in lx_pipe_state() argument
602 mutex_lock(&chip->msg_lock); in lx_pipe_state()
603 lx_message_init(&chip->rmh, CMD_0A_GET_PIPE_SPL_COUNT); in lx_pipe_state()
605 chip->rmh.cmd[0] |= pipe_cmd; in lx_pipe_state()
607 err = lx_message_send_atomic(chip, &chip->rmh); in lx_pipe_state()
610 dev_err(chip->card->dev, "could not query pipe's state\n"); in lx_pipe_state()
612 *rstate = (chip->rmh.stat[0] >> PSTATE_OFFSET) & 0x0F; in lx_pipe_state()
614 mutex_unlock(&chip->msg_lock); in lx_pipe_state()
618 static int lx_pipe_wait_for_state(struct lx6464es *chip, u32 pipe, in lx_pipe_wait_for_state() argument
627 int err = lx_pipe_state(chip, pipe, is_capture, ¤t_state); in lx_pipe_wait_for_state()
641 int lx_pipe_wait_for_start(struct lx6464es *chip, u32 pipe, int is_capture) in lx_pipe_wait_for_start() argument
643 return lx_pipe_wait_for_state(chip, pipe, is_capture, PSTATE_RUN); in lx_pipe_wait_for_start()
646 int lx_pipe_wait_for_idle(struct lx6464es *chip, u32 pipe, int is_capture) in lx_pipe_wait_for_idle() argument
648 return lx_pipe_wait_for_state(chip, pipe, is_capture, PSTATE_IDLE); in lx_pipe_wait_for_idle()
652 int lx_stream_set_state(struct lx6464es *chip, u32 pipe, in lx_stream_set_state() argument
658 mutex_lock(&chip->msg_lock); in lx_stream_set_state()
659 lx_message_init(&chip->rmh, CMD_13_SET_STREAM_STATE); in lx_stream_set_state()
661 chip->rmh.cmd[0] |= pipe_cmd; in lx_stream_set_state()
662 chip->rmh.cmd[0] |= state; in lx_stream_set_state()
664 err = lx_message_send_atomic(chip, &chip->rmh); in lx_stream_set_state()
665 mutex_unlock(&chip->msg_lock); in lx_stream_set_state()
670 int lx_stream_set_format(struct lx6464es *chip, struct snd_pcm_runtime *runtime, in lx_stream_set_format() argument
677 mutex_lock(&chip->msg_lock); in lx_stream_set_format()
678 lx_message_init(&chip->rmh, CMD_0C_DEF_STREAM); in lx_stream_set_format()
680 chip->rmh.cmd[0] |= pipe_cmd; in lx_stream_set_format()
684 chip->rmh.cmd[0] |= (STREAM_FMT_16b << STREAM_FMT_OFFSET); in lx_stream_set_format()
688 chip->rmh.cmd[0] |= (STREAM_FMT_intel << STREAM_FMT_OFFSET); in lx_stream_set_format()
690 chip->rmh.cmd[0] |= channels-1; in lx_stream_set_format()
692 err = lx_message_send_atomic(chip, &chip->rmh); in lx_stream_set_format()
693 mutex_unlock(&chip->msg_lock); in lx_stream_set_format()
698 int lx_stream_state(struct lx6464es *chip, u32 pipe, int is_capture, in lx_stream_state() argument
704 mutex_lock(&chip->msg_lock); in lx_stream_state()
705 lx_message_init(&chip->rmh, CMD_0E_GET_STREAM_SPL_COUNT); in lx_stream_state()
707 chip->rmh.cmd[0] |= pipe_cmd; in lx_stream_state()
709 err = lx_message_send_atomic(chip, &chip->rmh); in lx_stream_state()
711 *rstate = (chip->rmh.stat[0] & SF_START) ? START_STATE : PAUSE_STATE; in lx_stream_state()
713 mutex_unlock(&chip->msg_lock); in lx_stream_state()
717 int lx_stream_sample_position(struct lx6464es *chip, u32 pipe, int is_capture, in lx_stream_sample_position() argument
723 mutex_lock(&chip->msg_lock); in lx_stream_sample_position()
724 lx_message_init(&chip->rmh, CMD_0E_GET_STREAM_SPL_COUNT); in lx_stream_sample_position()
726 chip->rmh.cmd[0] |= pipe_cmd; in lx_stream_sample_position()
728 err = lx_message_send_atomic(chip, &chip->rmh); in lx_stream_sample_position()
730 *r_bytepos = ((u64) (chip->rmh.stat[0] & MASK_SPL_COUNT_HI) in lx_stream_sample_position()
732 + chip->rmh.stat[1]; /* lo part */ in lx_stream_sample_position()
734 mutex_unlock(&chip->msg_lock); in lx_stream_sample_position()
739 int lx_buffer_give(struct lx6464es *chip, u32 pipe, int is_capture, in lx_buffer_give() argument
746 mutex_lock(&chip->msg_lock); in lx_buffer_give()
747 lx_message_init(&chip->rmh, CMD_0F_UPDATE_BUFFER); in lx_buffer_give()
749 chip->rmh.cmd[0] |= pipe_cmd; in lx_buffer_give()
750 chip->rmh.cmd[0] |= BF_NOTIFY_EOB; /* request interrupt notification */ in lx_buffer_give()
754 chip->rmh.cmd[1] = buffer_size & MASK_DATA_SIZE; in lx_buffer_give()
755 chip->rmh.cmd[2] = buf_address_lo; in lx_buffer_give()
758 chip->rmh.cmd_len = 4; in lx_buffer_give()
759 chip->rmh.cmd[3] = buf_address_hi; in lx_buffer_give()
760 chip->rmh.cmd[0] |= BF_64BITS_ADR; in lx_buffer_give()
763 err = lx_message_send_atomic(chip, &chip->rmh); in lx_buffer_give()
766 *r_buffer_index = chip->rmh.stat[0]; in lx_buffer_give()
771 dev_err(chip->card->dev, in lx_buffer_give()
775 dev_err(chip->card->dev, in lx_buffer_give()
779 dev_err(chip->card->dev, in lx_buffer_give()
783 mutex_unlock(&chip->msg_lock); in lx_buffer_give()
787 int lx_buffer_free(struct lx6464es *chip, u32 pipe, int is_capture, in lx_buffer_free() argument
793 mutex_lock(&chip->msg_lock); in lx_buffer_free()
794 lx_message_init(&chip->rmh, CMD_11_CANCEL_BUFFER); in lx_buffer_free()
796 chip->rmh.cmd[0] |= pipe_cmd; in lx_buffer_free()
797 chip->rmh.cmd[0] |= MASK_BUFFER_ID; /* ask for the current buffer: the in lx_buffer_free()
800 err = lx_message_send_atomic(chip, &chip->rmh); in lx_buffer_free()
803 *r_buffer_size = chip->rmh.stat[0] & MASK_DATA_SIZE; in lx_buffer_free()
805 mutex_unlock(&chip->msg_lock); in lx_buffer_free()
809 int lx_buffer_cancel(struct lx6464es *chip, u32 pipe, int is_capture, in lx_buffer_cancel() argument
815 mutex_lock(&chip->msg_lock); in lx_buffer_cancel()
816 lx_message_init(&chip->rmh, CMD_11_CANCEL_BUFFER); in lx_buffer_cancel()
818 chip->rmh.cmd[0] |= pipe_cmd; in lx_buffer_cancel()
819 chip->rmh.cmd[0] |= buffer_index; in lx_buffer_cancel()
821 err = lx_message_send_atomic(chip, &chip->rmh); in lx_buffer_cancel()
823 mutex_unlock(&chip->msg_lock); in lx_buffer_cancel()
833 int lx_level_unmute(struct lx6464es *chip, int is_capture, int unmute) in lx_level_unmute() argument
839 mutex_lock(&chip->msg_lock); in lx_level_unmute()
840 lx_message_init(&chip->rmh, CMD_0D_SET_MUTE); in lx_level_unmute()
842 chip->rmh.cmd[0] |= PIPE_INFO_TO_CMD(is_capture, 0); in lx_level_unmute()
844 chip->rmh.cmd[1] = (u32)(mute_mask >> (u64)32); /* hi part */ in lx_level_unmute()
845 chip->rmh.cmd[2] = (u32)(mute_mask & (u64)0xFFFFFFFF); /* lo part */ in lx_level_unmute()
847 dev_dbg(chip->card->dev, in lx_level_unmute()
848 "mute %x %x %x\n", chip->rmh.cmd[0], chip->rmh.cmd[1], in lx_level_unmute()
849 chip->rmh.cmd[2]); in lx_level_unmute()
851 err = lx_message_send_atomic(chip, &chip->rmh); in lx_level_unmute()
853 mutex_unlock(&chip->msg_lock); in lx_level_unmute()
876 int lx_level_peaks(struct lx6464es *chip, int is_capture, int channels, in lx_level_peaks() argument
882 mutex_lock(&chip->msg_lock); in lx_level_peaks()
886 lx_message_init(&chip->rmh, CMD_12_GET_PEAK); in lx_level_peaks()
887 chip->rmh.cmd[0] |= PIPE_INFO_TO_CMD(is_capture, i); in lx_level_peaks()
889 err = lx_message_send_atomic(chip, &chip->rmh); in lx_level_peaks()
892 s0 = peak_map[chip->rmh.stat[0] & 0x0F]; in lx_level_peaks()
893 s1 = peak_map[(chip->rmh.stat[0] >> 4) & 0xf]; in lx_level_peaks()
894 s2 = peak_map[(chip->rmh.stat[0] >> 8) & 0xf]; in lx_level_peaks()
895 s3 = peak_map[(chip->rmh.stat[0] >> 12) & 0xf]; in lx_level_peaks()
907 mutex_unlock(&chip->msg_lock); in lx_level_peaks()
917 static u32 lx_interrupt_test_ack(struct lx6464es *chip) in lx_interrupt_test_ack() argument
919 u32 irqcs = lx_plx_reg_read(chip, ePLX_IRQCS); in lx_interrupt_test_ack()
926 while ((temp = lx_plx_reg_read(chip, ePLX_L2PCIDB))) { in lx_interrupt_test_ack()
929 lx_plx_reg_write(chip, ePLX_L2PCIDB, temp); in lx_interrupt_test_ack()
937 static int lx_interrupt_ack(struct lx6464es *chip, u32 *r_irqsrc, in lx_interrupt_ack() argument
941 u32 irqsrc = lx_interrupt_test_ack(chip); in lx_interrupt_ack()
964 static int lx_interrupt_handle_async_events(struct lx6464es *chip, u32 irqsrc, in lx_interrupt_handle_async_events() argument
990 err = lx_dsp_read_async_events(chip, stat); in lx_interrupt_handle_async_events()
997 dev_dbg(chip->card->dev, "interrupt: EOBI pending %llx\n", in lx_interrupt_handle_async_events()
1003 dev_dbg(chip->card->dev, "interrupt: EOBO pending %llx\n", in lx_interrupt_handle_async_events()
1012 static int lx_interrupt_request_new_buffer(struct lx6464es *chip, in lx_interrupt_request_new_buffer() argument
1035 dev_dbg(chip->card->dev, "->lx_interrupt_request_new_buffer\n"); in lx_interrupt_request_new_buffer()
1037 mutex_lock(&chip->lock); in lx_interrupt_request_new_buffer()
1039 err = lx_buffer_ask(chip, 0, is_capture, &needed, &freed, size_array); in lx_interrupt_request_new_buffer()
1040 dev_dbg(chip->card->dev, in lx_interrupt_request_new_buffer()
1044 err = lx_buffer_give(chip, 0, is_capture, period_bytes, buf_lo, buf_hi, in lx_interrupt_request_new_buffer()
1046 dev_dbg(chip->card->dev, in lx_interrupt_request_new_buffer()
1051 mutex_unlock(&chip->lock); in lx_interrupt_request_new_buffer()
1058 struct lx6464es *chip = dev_id; in lx_interrupt() local
1063 dev_dbg(chip->card->dev, in lx_interrupt()
1066 if (!lx_interrupt_ack(chip, &irqsrc, &async_pending, &async_escmd)) { in lx_interrupt()
1067 dev_dbg(chip->card->dev, "IRQ_NONE\n"); in lx_interrupt()
1075 dev_dbg(chip->card->dev, "interrupt: EOBI\n"); in lx_interrupt()
1078 dev_dbg(chip->card->dev, "interrupt: EOBO\n"); in lx_interrupt()
1081 dev_dbg(chip->card->dev, "interrupt: URUN\n"); in lx_interrupt()
1084 dev_dbg(chip->card->dev, "interrupt: ORUN\n"); in lx_interrupt()
1088 chip->irqsrc = irqsrc; in lx_interrupt()
1098 dev_dbg(chip->card->dev, "interrupt requests escmd handling\n"); in lx_interrupt()
1106 struct lx6464es *chip = dev_id; in lx_threaded_irq() local
1113 err = lx_interrupt_handle_async_events(chip, chip->irqsrc, in lx_threaded_irq()
1118 dev_err(chip->card->dev, "error handling async events\n"); in lx_threaded_irq()
1121 struct lx_stream *lx_stream = &chip->capture_stream; in lx_threaded_irq()
1123 dev_dbg(chip->card->dev, in lx_threaded_irq()
1125 err = lx_interrupt_request_new_buffer(chip, lx_stream); in lx_threaded_irq()
1127 dev_err(chip->card->dev, in lx_threaded_irq()
1133 struct lx_stream *lx_stream = &chip->playback_stream; in lx_threaded_irq()
1135 dev_dbg(chip->card->dev, in lx_threaded_irq()
1137 err = lx_interrupt_request_new_buffer(chip, lx_stream); in lx_threaded_irq()
1139 dev_err(chip->card->dev, in lx_threaded_irq()
1148 static void lx_irq_set(struct lx6464es *chip, int enable) in lx_irq_set() argument
1150 u32 reg = lx_plx_reg_read(chip, ePLX_IRQCS); in lx_irq_set()
1161 lx_plx_reg_write(chip, ePLX_IRQCS, reg); in lx_irq_set()
1164 void lx_irq_enable(struct lx6464es *chip) in lx_irq_enable() argument
1166 dev_dbg(chip->card->dev, "->lx_irq_enable\n"); in lx_irq_enable()
1167 lx_irq_set(chip, 1); in lx_irq_enable()
1170 void lx_irq_disable(struct lx6464es *chip) in lx_irq_disable() argument
1172 dev_dbg(chip->card->dev, "->lx_irq_disable\n"); in lx_irq_disable()
1173 lx_irq_set(chip, 0); in lx_irq_disable()