Lines Matching refs:ir_state

131 	return state ? state->ir_state : NULL;  in to_ir_state()
525 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_irq_handler() local
536 if (ir_state == NULL) in cx25840_ir_irq_handler()
539 c = ir_state->c; in cx25840_ir_irq_handler()
613 k = kfifo_in_locked(&ir_state->rx_kfifo, in cx25840_ir_irq_handler()
615 &ir_state->rx_kfifo_lock); in cx25840_ir_irq_handler()
651 spin_lock_irqsave(&ir_state->rx_kfifo_lock, flags); in cx25840_ir_irq_handler()
652 if (kfifo_len(&ir_state->rx_kfifo) >= CX25840_IR_RX_KFIFO_SIZE / 2) in cx25840_ir_irq_handler()
654 spin_unlock_irqrestore(&ir_state->rx_kfifo_lock, flags); in cx25840_ir_irq_handler()
665 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_rx_read() local
672 if (ir_state == NULL) in cx25840_ir_rx_read()
675 invert = (bool) atomic_read(&ir_state->rx_invert); in cx25840_ir_rx_read()
676 divider = (u16) atomic_read(&ir_state->rxclk_divider); in cx25840_ir_rx_read()
685 n = kfifo_out_locked(&ir_state->rx_kfifo, buf, n, in cx25840_ir_rx_read()
686 &ir_state->rx_kfifo_lock); in cx25840_ir_rx_read()
725 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_rx_g_parameters() local
727 if (ir_state == NULL) in cx25840_ir_rx_g_parameters()
730 mutex_lock(&ir_state->rx_params_lock); in cx25840_ir_rx_g_parameters()
731 memcpy(p, &ir_state->rx_params, in cx25840_ir_rx_g_parameters()
733 mutex_unlock(&ir_state->rx_params_lock); in cx25840_ir_rx_g_parameters()
739 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_rx_shutdown() local
742 if (ir_state == NULL) in cx25840_ir_rx_shutdown()
745 c = ir_state->c; in cx25840_ir_rx_shutdown()
746 mutex_lock(&ir_state->rx_params_lock); in cx25840_ir_rx_shutdown()
756 ir_state->rx_params.shutdown = true; in cx25840_ir_rx_shutdown()
758 mutex_unlock(&ir_state->rx_params_lock); in cx25840_ir_rx_shutdown()
765 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_rx_s_parameters() local
770 if (ir_state == NULL) in cx25840_ir_rx_s_parameters()
779 c = ir_state->c; in cx25840_ir_rx_s_parameters()
780 o = &ir_state->rx_params; in cx25840_ir_rx_s_parameters()
782 mutex_lock(&ir_state->rx_params_lock); in cx25840_ir_rx_s_parameters()
822 atomic_set(&ir_state->rxclk_divider, rxclk_divider); in cx25840_ir_rx_s_parameters()
837 atomic_set(&ir_state->rx_invert, p->invert_level); in cx25840_ir_rx_s_parameters()
844 spin_lock_irqsave(&ir_state->rx_kfifo_lock, flags); in cx25840_ir_rx_s_parameters()
845 kfifo_reset(&ir_state->rx_kfifo); in cx25840_ir_rx_s_parameters()
846 spin_unlock_irqrestore(&ir_state->rx_kfifo_lock, flags); in cx25840_ir_rx_s_parameters()
852 mutex_unlock(&ir_state->rx_params_lock); in cx25840_ir_rx_s_parameters()
860 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_tx_write() local
862 if (ir_state == NULL) in cx25840_ir_tx_write()
882 n = CX25840_IR_TX_KFIFO_SIZE - kfifo_len(ir_state->tx_kfifo); in cx25840_ir_tx_write()
895 ir_state->txclk_divider); in cx25840_ir_tx_write()
900 kfifo_put(ir_state->tx_kfifo, (u8 *) fifo_pulse, in cx25840_ir_tx_write()
915 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_tx_g_parameters() local
917 if (ir_state == NULL) in cx25840_ir_tx_g_parameters()
920 mutex_lock(&ir_state->tx_params_lock); in cx25840_ir_tx_g_parameters()
921 memcpy(p, &ir_state->tx_params, in cx25840_ir_tx_g_parameters()
923 mutex_unlock(&ir_state->tx_params_lock); in cx25840_ir_tx_g_parameters()
929 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_tx_shutdown() local
932 if (ir_state == NULL) in cx25840_ir_tx_shutdown()
935 c = ir_state->c; in cx25840_ir_tx_shutdown()
936 mutex_lock(&ir_state->tx_params_lock); in cx25840_ir_tx_shutdown()
944 ir_state->tx_params.shutdown = true; in cx25840_ir_tx_shutdown()
946 mutex_unlock(&ir_state->tx_params_lock); in cx25840_ir_tx_shutdown()
953 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_tx_s_parameters() local
958 if (ir_state == NULL) in cx25840_ir_tx_s_parameters()
967 c = ir_state->c; in cx25840_ir_tx_s_parameters()
968 o = &ir_state->tx_params; in cx25840_ir_tx_s_parameters()
969 mutex_lock(&ir_state->tx_params_lock); in cx25840_ir_tx_s_parameters()
1002 atomic_set(&ir_state->txclk_divider, txclk_divider); in cx25840_ir_tx_s_parameters()
1030 mutex_unlock(&ir_state->tx_params_lock); in cx25840_ir_tx_s_parameters()
1226 struct cx25840_ir_state *ir_state; in cx25840_ir_probe() local
1233 ir_state = devm_kzalloc(&state->c->dev, sizeof(*ir_state), GFP_KERNEL); in cx25840_ir_probe()
1234 if (ir_state == NULL) in cx25840_ir_probe()
1237 spin_lock_init(&ir_state->rx_kfifo_lock); in cx25840_ir_probe()
1238 if (kfifo_alloc(&ir_state->rx_kfifo, in cx25840_ir_probe()
1242 ir_state->c = state->c; in cx25840_ir_probe()
1243 state->ir_state = ir_state; in cx25840_ir_probe()
1247 cx25840_write4(ir_state->c, CX25840_IR_IRQEN_REG, IRQEN_MSK); in cx25840_ir_probe()
1249 cx25840_write4(ir_state->c, CX25840_IR_IRQEN_REG, 0); in cx25840_ir_probe()
1251 mutex_init(&ir_state->rx_params_lock); in cx25840_ir_probe()
1255 mutex_init(&ir_state->tx_params_lock); in cx25840_ir_probe()
1265 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_remove() local
1267 if (ir_state == NULL) in cx25840_ir_remove()
1273 kfifo_free(&ir_state->rx_kfifo); in cx25840_ir_remove()
1274 state->ir_state = NULL; in cx25840_ir_remove()