Lines Matching refs:ir_state

126 	return state ? state->ir_state : NULL;  in to_ir_state()
520 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_irq_handler() local
531 if (ir_state == NULL) in cx25840_ir_irq_handler()
534 c = ir_state->c; in cx25840_ir_irq_handler()
608 k = kfifo_in_locked(&ir_state->rx_kfifo, in cx25840_ir_irq_handler()
610 &ir_state->rx_kfifo_lock); in cx25840_ir_irq_handler()
646 spin_lock_irqsave(&ir_state->rx_kfifo_lock, flags); in cx25840_ir_irq_handler()
647 if (kfifo_len(&ir_state->rx_kfifo) >= CX25840_IR_RX_KFIFO_SIZE / 2) in cx25840_ir_irq_handler()
649 spin_unlock_irqrestore(&ir_state->rx_kfifo_lock, flags); in cx25840_ir_irq_handler()
660 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_rx_read() local
667 if (ir_state == NULL) in cx25840_ir_rx_read()
670 invert = (bool) atomic_read(&ir_state->rx_invert); in cx25840_ir_rx_read()
671 divider = (u16) atomic_read(&ir_state->rxclk_divider); in cx25840_ir_rx_read()
680 n = kfifo_out_locked(&ir_state->rx_kfifo, buf, n, in cx25840_ir_rx_read()
681 &ir_state->rx_kfifo_lock); in cx25840_ir_rx_read()
720 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_rx_g_parameters() local
722 if (ir_state == NULL) in cx25840_ir_rx_g_parameters()
725 mutex_lock(&ir_state->rx_params_lock); in cx25840_ir_rx_g_parameters()
726 memcpy(p, &ir_state->rx_params, in cx25840_ir_rx_g_parameters()
728 mutex_unlock(&ir_state->rx_params_lock); in cx25840_ir_rx_g_parameters()
734 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_rx_shutdown() local
737 if (ir_state == NULL) in cx25840_ir_rx_shutdown()
740 c = ir_state->c; in cx25840_ir_rx_shutdown()
741 mutex_lock(&ir_state->rx_params_lock); in cx25840_ir_rx_shutdown()
751 ir_state->rx_params.shutdown = true; in cx25840_ir_rx_shutdown()
753 mutex_unlock(&ir_state->rx_params_lock); in cx25840_ir_rx_shutdown()
760 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_rx_s_parameters() local
765 if (ir_state == NULL) in cx25840_ir_rx_s_parameters()
774 c = ir_state->c; in cx25840_ir_rx_s_parameters()
775 o = &ir_state->rx_params; in cx25840_ir_rx_s_parameters()
777 mutex_lock(&ir_state->rx_params_lock); in cx25840_ir_rx_s_parameters()
817 atomic_set(&ir_state->rxclk_divider, rxclk_divider); in cx25840_ir_rx_s_parameters()
832 atomic_set(&ir_state->rx_invert, p->invert_level); in cx25840_ir_rx_s_parameters()
839 spin_lock_irqsave(&ir_state->rx_kfifo_lock, flags); in cx25840_ir_rx_s_parameters()
840 kfifo_reset(&ir_state->rx_kfifo); in cx25840_ir_rx_s_parameters()
841 spin_unlock_irqrestore(&ir_state->rx_kfifo_lock, flags); in cx25840_ir_rx_s_parameters()
847 mutex_unlock(&ir_state->rx_params_lock); in cx25840_ir_rx_s_parameters()
855 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_tx_write() local
857 if (ir_state == NULL) in cx25840_ir_tx_write()
877 n = CX25840_IR_TX_KFIFO_SIZE - kfifo_len(ir_state->tx_kfifo); in cx25840_ir_tx_write()
890 ir_state->txclk_divider); in cx25840_ir_tx_write()
895 kfifo_put(ir_state->tx_kfifo, (u8 *) fifo_pulse, in cx25840_ir_tx_write()
910 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_tx_g_parameters() local
912 if (ir_state == NULL) in cx25840_ir_tx_g_parameters()
915 mutex_lock(&ir_state->tx_params_lock); in cx25840_ir_tx_g_parameters()
916 memcpy(p, &ir_state->tx_params, in cx25840_ir_tx_g_parameters()
918 mutex_unlock(&ir_state->tx_params_lock); in cx25840_ir_tx_g_parameters()
924 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_tx_shutdown() local
927 if (ir_state == NULL) in cx25840_ir_tx_shutdown()
930 c = ir_state->c; in cx25840_ir_tx_shutdown()
931 mutex_lock(&ir_state->tx_params_lock); in cx25840_ir_tx_shutdown()
939 ir_state->tx_params.shutdown = true; in cx25840_ir_tx_shutdown()
941 mutex_unlock(&ir_state->tx_params_lock); in cx25840_ir_tx_shutdown()
948 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_tx_s_parameters() local
953 if (ir_state == NULL) in cx25840_ir_tx_s_parameters()
962 c = ir_state->c; in cx25840_ir_tx_s_parameters()
963 o = &ir_state->tx_params; in cx25840_ir_tx_s_parameters()
964 mutex_lock(&ir_state->tx_params_lock); in cx25840_ir_tx_s_parameters()
997 atomic_set(&ir_state->txclk_divider, txclk_divider); in cx25840_ir_tx_s_parameters()
1025 mutex_unlock(&ir_state->tx_params_lock); in cx25840_ir_tx_s_parameters()
1220 struct cx25840_ir_state *ir_state; in cx25840_ir_probe() local
1227 ir_state = devm_kzalloc(&state->c->dev, sizeof(*ir_state), GFP_KERNEL); in cx25840_ir_probe()
1228 if (ir_state == NULL) in cx25840_ir_probe()
1231 spin_lock_init(&ir_state->rx_kfifo_lock); in cx25840_ir_probe()
1232 if (kfifo_alloc(&ir_state->rx_kfifo, in cx25840_ir_probe()
1236 ir_state->c = state->c; in cx25840_ir_probe()
1237 state->ir_state = ir_state; in cx25840_ir_probe()
1241 cx25840_write4(ir_state->c, CX25840_IR_IRQEN_REG, IRQEN_MSK); in cx25840_ir_probe()
1243 cx25840_write4(ir_state->c, CX25840_IR_IRQEN_REG, 0); in cx25840_ir_probe()
1245 mutex_init(&ir_state->rx_params_lock); in cx25840_ir_probe()
1249 mutex_init(&ir_state->tx_params_lock); in cx25840_ir_probe()
1259 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_remove() local
1261 if (ir_state == NULL) in cx25840_ir_remove()
1267 kfifo_free(&ir_state->rx_kfifo); in cx25840_ir_remove()
1268 state->ir_state = NULL; in cx25840_ir_remove()