Lines Matching refs:ir_state

117 	return state ? state->ir_state : NULL;  in to_ir_state()
491 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_irq_handler() local
502 if (ir_state == NULL) in cx25840_ir_irq_handler()
505 c = ir_state->c; in cx25840_ir_irq_handler()
579 k = kfifo_in_locked(&ir_state->rx_kfifo, in cx25840_ir_irq_handler()
581 &ir_state->rx_kfifo_lock); in cx25840_ir_irq_handler()
617 spin_lock_irqsave(&ir_state->rx_kfifo_lock, flags); in cx25840_ir_irq_handler()
618 if (kfifo_len(&ir_state->rx_kfifo) >= CX25840_IR_RX_KFIFO_SIZE / 2) in cx25840_ir_irq_handler()
620 spin_unlock_irqrestore(&ir_state->rx_kfifo_lock, flags); in cx25840_ir_irq_handler()
631 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_rx_read() local
638 if (ir_state == NULL) in cx25840_ir_rx_read()
641 invert = (bool) atomic_read(&ir_state->rx_invert); in cx25840_ir_rx_read()
642 divider = (u16) atomic_read(&ir_state->rxclk_divider); in cx25840_ir_rx_read()
651 n = kfifo_out_locked(&ir_state->rx_kfifo, buf, n, in cx25840_ir_rx_read()
652 &ir_state->rx_kfifo_lock); in cx25840_ir_rx_read()
689 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_rx_g_parameters() local
691 if (ir_state == NULL) in cx25840_ir_rx_g_parameters()
694 mutex_lock(&ir_state->rx_params_lock); in cx25840_ir_rx_g_parameters()
695 memcpy(p, &ir_state->rx_params, in cx25840_ir_rx_g_parameters()
697 mutex_unlock(&ir_state->rx_params_lock); in cx25840_ir_rx_g_parameters()
703 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_rx_shutdown() local
706 if (ir_state == NULL) in cx25840_ir_rx_shutdown()
709 c = ir_state->c; in cx25840_ir_rx_shutdown()
710 mutex_lock(&ir_state->rx_params_lock); in cx25840_ir_rx_shutdown()
720 ir_state->rx_params.shutdown = true; in cx25840_ir_rx_shutdown()
722 mutex_unlock(&ir_state->rx_params_lock); in cx25840_ir_rx_shutdown()
729 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_rx_s_parameters() local
734 if (ir_state == NULL) in cx25840_ir_rx_s_parameters()
743 c = ir_state->c; in cx25840_ir_rx_s_parameters()
744 o = &ir_state->rx_params; in cx25840_ir_rx_s_parameters()
746 mutex_lock(&ir_state->rx_params_lock); in cx25840_ir_rx_s_parameters()
786 atomic_set(&ir_state->rxclk_divider, rxclk_divider); in cx25840_ir_rx_s_parameters()
801 atomic_set(&ir_state->rx_invert, p->invert_level); in cx25840_ir_rx_s_parameters()
808 spin_lock_irqsave(&ir_state->rx_kfifo_lock, flags); in cx25840_ir_rx_s_parameters()
809 kfifo_reset(&ir_state->rx_kfifo); in cx25840_ir_rx_s_parameters()
810 spin_unlock_irqrestore(&ir_state->rx_kfifo_lock, flags); in cx25840_ir_rx_s_parameters()
816 mutex_unlock(&ir_state->rx_params_lock); in cx25840_ir_rx_s_parameters()
824 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_tx_write() local
826 if (ir_state == NULL) in cx25840_ir_tx_write()
846 n = CX25840_IR_TX_KFIFO_SIZE - kfifo_len(ir_state->tx_kfifo); in cx25840_ir_tx_write()
859 ir_state->txclk_divider); in cx25840_ir_tx_write()
864 kfifo_put(ir_state->tx_kfifo, (u8 *) fifo_pulse, in cx25840_ir_tx_write()
879 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_tx_g_parameters() local
881 if (ir_state == NULL) in cx25840_ir_tx_g_parameters()
884 mutex_lock(&ir_state->tx_params_lock); in cx25840_ir_tx_g_parameters()
885 memcpy(p, &ir_state->tx_params, in cx25840_ir_tx_g_parameters()
887 mutex_unlock(&ir_state->tx_params_lock); in cx25840_ir_tx_g_parameters()
893 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_tx_shutdown() local
896 if (ir_state == NULL) in cx25840_ir_tx_shutdown()
899 c = ir_state->c; in cx25840_ir_tx_shutdown()
900 mutex_lock(&ir_state->tx_params_lock); in cx25840_ir_tx_shutdown()
908 ir_state->tx_params.shutdown = true; in cx25840_ir_tx_shutdown()
910 mutex_unlock(&ir_state->tx_params_lock); in cx25840_ir_tx_shutdown()
917 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_tx_s_parameters() local
922 if (ir_state == NULL) in cx25840_ir_tx_s_parameters()
931 c = ir_state->c; in cx25840_ir_tx_s_parameters()
932 o = &ir_state->tx_params; in cx25840_ir_tx_s_parameters()
933 mutex_lock(&ir_state->tx_params_lock); in cx25840_ir_tx_s_parameters()
966 atomic_set(&ir_state->txclk_divider, txclk_divider); in cx25840_ir_tx_s_parameters()
994 mutex_unlock(&ir_state->tx_params_lock); in cx25840_ir_tx_s_parameters()
1189 struct cx25840_ir_state *ir_state; in cx25840_ir_probe() local
1196 ir_state = devm_kzalloc(&state->c->dev, sizeof(*ir_state), GFP_KERNEL); in cx25840_ir_probe()
1197 if (ir_state == NULL) in cx25840_ir_probe()
1200 spin_lock_init(&ir_state->rx_kfifo_lock); in cx25840_ir_probe()
1201 if (kfifo_alloc(&ir_state->rx_kfifo, in cx25840_ir_probe()
1205 ir_state->c = state->c; in cx25840_ir_probe()
1206 state->ir_state = ir_state; in cx25840_ir_probe()
1210 cx25840_write4(ir_state->c, CX25840_IR_IRQEN_REG, IRQEN_MSK); in cx25840_ir_probe()
1212 cx25840_write4(ir_state->c, CX25840_IR_IRQEN_REG, 0); in cx25840_ir_probe()
1214 mutex_init(&ir_state->rx_params_lock); in cx25840_ir_probe()
1218 mutex_init(&ir_state->tx_params_lock); in cx25840_ir_probe()
1228 struct cx25840_ir_state *ir_state = to_ir_state(sd); in cx25840_ir_remove() local
1230 if (ir_state == NULL) in cx25840_ir_remove()
1236 kfifo_free(&ir_state->rx_kfifo); in cx25840_ir_remove()
1237 state->ir_state = NULL; in cx25840_ir_remove()