Lines Matching refs:ir_state

117 	return state ? state->ir_state : NULL;  in to_ir_state()
511 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_irq_handler() local
522 if (ir_state == NULL) in cx25840_ir_irq_handler()
525 c = ir_state->c; in cx25840_ir_irq_handler()
599 k = kfifo_in_locked(&ir_state->rx_kfifo, in cx25840_ir_irq_handler()
601 &ir_state->rx_kfifo_lock); in cx25840_ir_irq_handler()
637 spin_lock_irqsave(&ir_state->rx_kfifo_lock, flags); in cx25840_ir_irq_handler()
638 if (kfifo_len(&ir_state->rx_kfifo) >= CX25840_IR_RX_KFIFO_SIZE / 2) in cx25840_ir_irq_handler()
640 spin_unlock_irqrestore(&ir_state->rx_kfifo_lock, flags); in cx25840_ir_irq_handler()
651 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_rx_read() local
658 if (ir_state == NULL) in cx25840_ir_rx_read()
661 invert = (bool) atomic_read(&ir_state->rx_invert); in cx25840_ir_rx_read()
662 divider = (u16) atomic_read(&ir_state->rxclk_divider); in cx25840_ir_rx_read()
671 n = kfifo_out_locked(&ir_state->rx_kfifo, buf, n, in cx25840_ir_rx_read()
672 &ir_state->rx_kfifo_lock); in cx25840_ir_rx_read()
709 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_rx_g_parameters() local
711 if (ir_state == NULL) in cx25840_ir_rx_g_parameters()
714 mutex_lock(&ir_state->rx_params_lock); in cx25840_ir_rx_g_parameters()
715 memcpy(p, &ir_state->rx_params, in cx25840_ir_rx_g_parameters()
717 mutex_unlock(&ir_state->rx_params_lock); in cx25840_ir_rx_g_parameters()
723 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_rx_shutdown() local
726 if (ir_state == NULL) in cx25840_ir_rx_shutdown()
729 c = ir_state->c; in cx25840_ir_rx_shutdown()
730 mutex_lock(&ir_state->rx_params_lock); in cx25840_ir_rx_shutdown()
740 ir_state->rx_params.shutdown = true; in cx25840_ir_rx_shutdown()
742 mutex_unlock(&ir_state->rx_params_lock); in cx25840_ir_rx_shutdown()
749 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_rx_s_parameters() local
754 if (ir_state == NULL) in cx25840_ir_rx_s_parameters()
763 c = ir_state->c; in cx25840_ir_rx_s_parameters()
764 o = &ir_state->rx_params; in cx25840_ir_rx_s_parameters()
766 mutex_lock(&ir_state->rx_params_lock); in cx25840_ir_rx_s_parameters()
806 atomic_set(&ir_state->rxclk_divider, rxclk_divider); in cx25840_ir_rx_s_parameters()
821 atomic_set(&ir_state->rx_invert, p->invert_level); in cx25840_ir_rx_s_parameters()
828 spin_lock_irqsave(&ir_state->rx_kfifo_lock, flags); in cx25840_ir_rx_s_parameters()
829 kfifo_reset(&ir_state->rx_kfifo); in cx25840_ir_rx_s_parameters()
830 spin_unlock_irqrestore(&ir_state->rx_kfifo_lock, flags); in cx25840_ir_rx_s_parameters()
836 mutex_unlock(&ir_state->rx_params_lock); in cx25840_ir_rx_s_parameters()
844 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_tx_write() local
846 if (ir_state == NULL) in cx25840_ir_tx_write()
866 n = CX25840_IR_TX_KFIFO_SIZE - kfifo_len(ir_state->tx_kfifo); in cx25840_ir_tx_write()
879 ir_state->txclk_divider); in cx25840_ir_tx_write()
884 kfifo_put(ir_state->tx_kfifo, (u8 *) fifo_pulse, in cx25840_ir_tx_write()
899 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_tx_g_parameters() local
901 if (ir_state == NULL) in cx25840_ir_tx_g_parameters()
904 mutex_lock(&ir_state->tx_params_lock); in cx25840_ir_tx_g_parameters()
905 memcpy(p, &ir_state->tx_params, in cx25840_ir_tx_g_parameters()
907 mutex_unlock(&ir_state->tx_params_lock); in cx25840_ir_tx_g_parameters()
913 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_tx_shutdown() local
916 if (ir_state == NULL) in cx25840_ir_tx_shutdown()
919 c = ir_state->c; in cx25840_ir_tx_shutdown()
920 mutex_lock(&ir_state->tx_params_lock); in cx25840_ir_tx_shutdown()
928 ir_state->tx_params.shutdown = true; in cx25840_ir_tx_shutdown()
930 mutex_unlock(&ir_state->tx_params_lock); in cx25840_ir_tx_shutdown()
937 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_tx_s_parameters() local
942 if (ir_state == NULL) in cx25840_ir_tx_s_parameters()
951 c = ir_state->c; in cx25840_ir_tx_s_parameters()
952 o = &ir_state->tx_params; in cx25840_ir_tx_s_parameters()
953 mutex_lock(&ir_state->tx_params_lock); in cx25840_ir_tx_s_parameters()
986 atomic_set(&ir_state->txclk_divider, txclk_divider); in cx25840_ir_tx_s_parameters()
1014 mutex_unlock(&ir_state->tx_params_lock); in cx25840_ir_tx_s_parameters()
1209 struct cx25840_ir_state *ir_state; in cx25840_ir_probe() local
1216 ir_state = devm_kzalloc(&state->c->dev, sizeof(*ir_state), GFP_KERNEL); in cx25840_ir_probe()
1217 if (ir_state == NULL) in cx25840_ir_probe()
1220 spin_lock_init(&ir_state->rx_kfifo_lock); in cx25840_ir_probe()
1221 if (kfifo_alloc(&ir_state->rx_kfifo, in cx25840_ir_probe()
1225 ir_state->c = state->c; in cx25840_ir_probe()
1226 state->ir_state = ir_state; in cx25840_ir_probe()
1230 cx25840_write4(ir_state->c, CX25840_IR_IRQEN_REG, IRQEN_MSK); in cx25840_ir_probe()
1232 cx25840_write4(ir_state->c, CX25840_IR_IRQEN_REG, 0); in cx25840_ir_probe()
1234 mutex_init(&ir_state->rx_params_lock); in cx25840_ir_probe()
1238 mutex_init(&ir_state->tx_params_lock); in cx25840_ir_probe()
1248 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_remove() local
1250 if (ir_state == NULL) in cx25840_ir_remove()
1256 kfifo_free(&ir_state->rx_kfifo); in cx25840_ir_remove()
1257 state->ir_state = NULL; in cx25840_ir_remove()