/linux-6.12.1/drivers/media/rc/ |
D | iguanair.c | 3 * IguanaWorks USB IR Transceiver support 79 static void process_ir_data(struct iguanair *ir, unsigned len) in process_ir_data() argument 81 if (len >= 4 && ir->buf_in[0] == 0 && ir->buf_in[1] == 0) { in process_ir_data() 82 switch (ir->buf_in[3]) { in process_ir_data() 85 ir->version = (ir->buf_in[5] << 8) | in process_ir_data() 86 ir->buf_in[4]; in process_ir_data() 87 complete(&ir->completion); in process_ir_data() 92 ir->bufsize = ir->buf_in[4]; in process_ir_data() 93 complete(&ir->completion); in process_ir_data() 98 ir->cycle_overhead = ir->buf_in[5]; in process_ir_data() [all …]
|
D | mtk-cir.c | 3 * Driver for Mediatek IR Receiver Controller 19 /* Register to enable PWM and IR */ 22 /* Bit to enable IR pulse width detection */ 27 * indicating IR receiving completion and then making IRQ fires 32 /* Bit to enable IR hardware function */ 35 /* Bit to restart IR receiving */ 41 /* IR threshold */ 54 /* Indicate the end of IR message */ 73 /* Register to enable IR interrupt */ 75 /* Register to ack IR interrupt */ [all …]
|
D | meson-ir-tx.c | 3 * meson-ir-tx.c - Amlogic Meson IR TX driver 22 #define DEVICE_NAME "Meson IR TX" 23 #define DRIVER_NAME "meson-ir-tx" 79 static void meson_irtx_set_mod(struct meson_irtx *ir) in meson_irtx_set_mod() argument 81 unsigned int cnt = DIV_ROUND_CLOSEST(ir->clk_rate, ir->carrier); in meson_irtx_set_mod() 82 unsigned int pulse_cnt = DIV_ROUND_CLOSEST(cnt * ir->duty_cycle, 100); in meson_irtx_set_mod() 85 dev_dbg(ir->dev, "F_mod = %uHz, T_mod = %luns, duty_cycle = %u%%\n", in meson_irtx_set_mod() 86 ir->carrier, NSEC_PER_SEC / ir->clk_rate * cnt, in meson_irtx_set_mod() 90 ir->reg_base + IRB_ADDR1); in meson_irtx_set_mod() 93 static void meson_irtx_setup(struct meson_irtx *ir, unsigned int clk_nr) in meson_irtx_setup() argument [all …]
|
D | sunxi-cir.c | 3 * Driver for Allwinner sunXi IR controller 8 * Based on sun5i-ir.c: 22 #define SUNXI_IR_DEV "sunxi-ir" 25 /* IR Control */ 63 #define REG_RXSTA_GET_AC(val) (((val) >> 8) & (ir->fifo_size * 2 - 1)) 67 /* IR Sample Config */ 106 struct sunxi_ir *ir = dev_id; in sunxi_ir_irq() local 109 status = readl(ir->base + SUNXI_IR_RXSTA_REG); in sunxi_ir_irq() 112 writel(status | REG_RXSTA_CLEARALL, ir->base + SUNXI_IR_RXSTA_REG); in sunxi_ir_irq() 118 rc = rc > ir->fifo_size ? ir->fifo_size : rc; in sunxi_ir_irq() [all …]
|
D | mceusb.c | 14 * Initial port from lirc driver to ir-core drivery by Jarod, based 15 * partially on a port to an earlier proposed IR infrastructure by 17 * incoming IR buffer parsing routines. 22 * Windows-Media-Center-RC-IR-Collection-Green-Button-Specification-03-08-2011-V2.pdf 45 #define MCE_IRBUF_SIZE 128 /* TX IR buffer length */ 50 #define MCE_IRDATA_TRAILER 0x80 /* End of IR data */ 58 * The interface between the host and the IR hardware is command-response 76 #define MCE_CMD_PORT_IR 0x9f /* IR-related cmd/rsp */ 77 #define MCE_CMD_PORT_SYS 0xff /* System (non-IR) device cmd/rsp */ 138 * then we're looking at a raw IR data sample */ [all …]
|
D | igorplugusb.c | 3 * IgorPlug-USB IR Receiver 21 #define DRIVER_DESC "IgorPlug-USB IR Receiver" 46 static void igorplugusb_cmd(struct igorplugusb *ir, int cmd); 48 static void igorplugusb_irdata(struct igorplugusb *ir, unsigned len) in igorplugusb_irdata() argument 53 dev_dbg(ir->dev, "irdata: %*ph (len=%u)", len, ir->buf_in, len); in igorplugusb_irdata() 61 overflow = ir->buf_in[2]; in igorplugusb_irdata() 65 dev_err(ir->dev, "receive overflow invalid: %u", overflow); in igorplugusb_irdata() 68 dev_warn(ir->dev, "receive overflow, at least %u lost", in igorplugusb_irdata() 70 ir_raw_event_overflow(ir->rc); in igorplugusb_irdata() 74 rawir.duration = ir->buf_in[i] * 85; in igorplugusb_irdata() [all …]
|
D | meson-ir.c | 3 * Driver for Amlogic Meson IR remote receiver 21 #define DRIVER_NAME "meson-ir" 54 /* Meson 6b uses REG1 to configure IR mode */ 64 /* Meson 8b / GXBB use REG2 to configure IR mode */ 97 * struct meson_ir_protocol - describe IR Protocol parameter 99 * @hw_protocol: select IR Protocol from IR Controller 104 * Some IR Protocol send the same data as repeat frame. 188 static void meson_ir_nec_handler(struct meson_ir *ir) in meson_ir_nec_handler() argument 194 regmap_read(ir->reg, IR_DEC_STATUS, &status); in meson_ir_nec_handler() 197 rc_repeat(ir->rc); in meson_ir_nec_handler() [all …]
|
D | Kconfig | 9 standalone IR receivers/transmitters, and RF receivers. 12 if you don't need IR, as otherwise, you may not be able to 15 Say Y when you have a TV or an IR device. 26 syscall command BPF_PROG_ATTACH. This is supported for raw IR 29 These eBPF programs can be used to decode IR into scancodes, for 30 IR protocols not supported by the kernel decoders. 37 passes raw IR to and from userspace, which is needed for 38 IR transmitting (aka "blasting") and for the lirc daemon. 48 tristate "Enable IR raw decoder for the iMON protocol" 51 remote control and you would like to use it with a raw IR [all …]
|
D | Makefile | 5 rc-core-y := rc-main.o rc-ir-raw.o 12 # IR decoders - please keep it alphabetically sorted by Kconfig name 14 obj-$(CONFIG_IR_IMON_DECODER) += ir-imon-decoder.o 15 obj-$(CONFIG_IR_JVC_DECODER) += ir-jvc-decoder.o 16 obj-$(CONFIG_IR_MCE_KBD_DECODER) += ir-mce_kbd-decoder.o 17 obj-$(CONFIG_IR_NEC_DECODER) += ir-nec-decoder.o 18 obj-$(CONFIG_IR_RC5_DECODER) += ir-rc5-decoder.o 19 obj-$(CONFIG_IR_RC6_DECODER) += ir-rc6-decoder.o 20 obj-$(CONFIG_IR_RCMM_DECODER) += ir-rcmm-decoder.o 21 obj-$(CONFIG_IR_SANYO_DECODER) += ir-sanyo-decoder.o [all …]
|
/linux-6.12.1/drivers/media/pci/cx88/ |
D | cx88-input.c | 50 MODULE_PARM_DESC(ir_samplerate, "IR samplerate in kHz, 1 - 20, default 4"); 53 module_param(ir_debug, int, 0644); /* debug level [IR] */ 54 MODULE_PARM_DESC(ir_debug, "enable debug messages [IR]"); 58 printk(KERN_DEBUG "%s IR: " fmt, ir->core->name, ##arg);\ 63 printk(KERN_DEBUG "cx88 IR: " fmt, ##arg); \ 68 static void cx88_ir_handle_key(struct cx88_IR *ir) in cx88_ir_handle_key() argument 70 struct cx88_core *core = ir->core; in cx88_ir_handle_key() 74 gpio = cx_read(ir->gpio_addr); in cx88_ir_handle_key() 107 if (ir->polling) { in cx88_ir_handle_key() 108 if (ir->last_gpio == auxgpio) in cx88_ir_handle_key() [all …]
|
/linux-6.12.1/drivers/media/usb/au0828/ |
D | au0828-input.c | 2 // handle au0828 IR remotes via linux kernel input layer. 36 int (*get_key_i2c)(struct au0828_rc *ir); 40 * AU8522 has a builtin IR receiver. Add functions to get IR from it 43 static int au8522_rc_write(struct au0828_rc *ir, u16 reg, u8 data) in au8522_rc_write() argument 47 struct i2c_msg msg = { .addr = ir->i2c_dev_addr, .flags = 0, in au8522_rc_write() 50 rc = i2c_transfer(ir->dev->i2c_client.adapter, &msg, 1); in au8522_rc_write() 58 static int au8522_rc_read(struct au0828_rc *ir, u16 reg, int val, in au8522_rc_read() argument 63 struct i2c_msg msg[2] = { { .addr = ir->i2c_dev_addr, .flags = 0, in au8522_rc_read() 65 { .addr = ir->i2c_dev_addr, .flags = I2C_M_RD, in au8522_rc_read() 75 rc = i2c_transfer(ir->dev->i2c_client.adapter, msg, 2); in au8522_rc_read() [all …]
|
/linux-6.12.1/drivers/media/pci/bt8xx/ |
D | bttv-input.c | 42 struct bttv_ir *ir = btv->remote; in ir_handle_key() local 47 if (ir->polling) { in ir_handle_key() 48 if (ir->last_gpio == gpio) in ir_handle_key() 50 ir->last_gpio = gpio; in ir_handle_key() 54 data = ir_extract_bits(gpio, ir->mask_keycode); in ir_handle_key() 57 ir->polling ? "poll" : "irq", in ir_handle_key() 58 (gpio & ir->mask_keydown) ? " down" : "", in ir_handle_key() 59 (gpio & ir->mask_keyup) ? " up" : ""); in ir_handle_key() 61 if ((ir->mask_keydown && (gpio & ir->mask_keydown)) || in ir_handle_key() 62 (ir->mask_keyup && !(gpio & ir->mask_keyup))) { in ir_handle_key() [all …]
|
/linux-6.12.1/drivers/media/i2c/ |
D | ir-kbd-i2c.c | 4 * keyboard input driver for i2c IR remote controls 51 #include <media/i2c/ir-kbd-i2c.h> 59 static int get_key_haup_common(struct IR_i2c *ir, enum rc_proto *protocol, in get_key_haup_common() argument 65 /* poll IR chip */ in get_key_haup_common() 66 if (size != i2c_master_recv(ir->c, buf, size)) in get_key_haup_common() 96 dev_dbg(&ir->rc->dev, in get_key_haup_common() 97 "ir hauppauge (rc5): s%d r%d t%d dev=%d code=%d\n", in get_key_haup_common() 114 dev_dbg(&ir->rc->dev, in get_key_haup_common() 115 "ir hauppauge (rc6-mce): t%d vendor=%d dev=%d code=%d\n", in get_key_haup_common() 120 dev_dbg(&ir->rc->dev, in get_key_haup_common() [all …]
|
/linux-6.12.1/drivers/media/pci/smipcie/ |
D | smipcie-ir.c | 13 static void smi_ir_enableInterrupt(struct smi_rc *ir) in smi_ir_enableInterrupt() argument 15 struct smi_dev *dev = ir->dev; in smi_ir_enableInterrupt() 20 static void smi_ir_disableInterrupt(struct smi_rc *ir) in smi_ir_disableInterrupt() argument 22 struct smi_dev *dev = ir->dev; in smi_ir_disableInterrupt() 27 static void smi_ir_clearInterrupt(struct smi_rc *ir) in smi_ir_clearInterrupt() argument 29 struct smi_dev *dev = ir->dev; in smi_ir_clearInterrupt() 34 static void smi_ir_stop(struct smi_rc *ir) in smi_ir_stop() argument 36 struct smi_dev *dev = ir->dev; in smi_ir_stop() 38 smi_ir_disableInterrupt(ir); in smi_ir_stop() 59 static void smi_ir_decode(struct smi_rc *ir) in smi_ir_decode() argument [all …]
|
/linux-6.12.1/drivers/media/rc/img-ir/ |
D | Makefile | 2 img-ir-y := img-ir-core.o 3 img-ir-$(CONFIG_IR_IMG_RAW) += img-ir-raw.o 4 img-ir-$(CONFIG_IR_IMG_HW) += img-ir-hw.o 5 img-ir-$(CONFIG_IR_IMG_NEC) += img-ir-nec.o 6 img-ir-$(CONFIG_IR_IMG_JVC) += img-ir-jvc.o 7 img-ir-$(CONFIG_IR_IMG_SONY) += img-ir-sony.o 8 img-ir-$(CONFIG_IR_IMG_SHARP) += img-ir-sharp.o 9 img-ir-$(CONFIG_IR_IMG_SANYO) += img-ir-sanyo.o 10 img-ir-$(CONFIG_IR_IMG_RC5) += img-ir-rc5.o 11 img-ir-$(CONFIG_IR_IMG_RC6) += img-ir-rc6.o [all …]
|
/linux-6.12.1/drivers/media/usb/em28xx/ |
D | em28xx-input.c | 3 // handle em28xx IR remotes via linux kernel input layer. 27 MODULE_PARM_DESC(ir_debug, "enable debug messages [IR]"); 33 dev_printk(KERN_DEBUG, &ir->dev->intf->dev, \ 38 * Polling structure used by em28xx IR's 63 int (*get_key_i2c)(struct i2c_client *ir, enum rc_proto *protocol, 65 int (*get_key)(struct em28xx_IR *ir, struct em28xx_ir_poll_result *r); 69 * I2C IR based get keycodes - should be used with ir-kbd-i2c 78 /* poll IR chip */ in em28xx_get_key_terratec() 109 /* poll IR chip */ in em28xx_get_key_em_haup() 122 * The original Hauppauge Grey IR and another RC5 that uses addr=0x08 in em28xx_get_key_em_haup() [all …]
|
/linux-6.12.1/drivers/media/pci/saa7134/ |
D | saa7134-input.c | 4 * handle saa7134 IR remotes via linux kernel input layer. 24 MODULE_PARM_DESC(ir_debug,"enable debug messages [IR]"); 34 #define ir_dbg(ir, fmt, arg...) do { \ argument 36 printk(KERN_DEBUG pr_fmt("ir %s: " fmt), ir->rc->device_name, \ 47 struct saa7134_card_ir *ir = dev->remote; in build_key() local 62 if (ir->polling) { in build_key() 63 if (ir->last_gpio == gpio) in build_key() 65 ir->last_gpio = gpio; in build_key() 68 data = ir_extract_bits(gpio, ir->mask_keycode); in build_key() 70 gpio, ir->mask_keycode, data); in build_key() [all …]
|
/linux-6.12.1/arch/mips/math-emu/ |
D | cp1emu.c | 849 mips_instruction ir) in cop1_cfc() argument 854 switch (MIPSInst_RD(ir)) { in cop1_cfc() 858 (void *)xcp->cp0_epc, MIPSInst_RT(ir), value); in cop1_cfc() 868 (void *)xcp->cp0_epc, MIPSInst_RT(ir), value); in cop1_cfc() 876 (void *)xcp->cp0_epc, MIPSInst_RT(ir), value); in cop1_cfc() 887 (void *)xcp->cp0_epc, MIPSInst_RT(ir), value); in cop1_cfc() 898 if (MIPSInst_RT(ir)) in cop1_cfc() 899 xcp->regs[MIPSInst_RT(ir)] = value; in cop1_cfc() 906 mips_instruction ir) in cop1_ctc() argument 912 if (MIPSInst_RT(ir) == 0) in cop1_ctc() [all …]
|
/linux-6.12.1/drivers/media/common/siano/ |
D | smsir.c | 9 // - IR raw event decoding is now done at rc-core 34 ir_raw_event_store(coredev->ir.dev, &ev); in sms_ir_event() 36 ir_raw_event_handle(coredev->ir.dev); in sms_ir_event() 50 coredev->ir.controller = 0; /* Todo: vega/nova SPI number */ in sms_ir_init() 51 coredev->ir.timeout = US_TO_NS(IR_DEFAULT_TIMEOUT); in sms_ir_init() 52 pr_debug("IR port %d, timeout %d ms\n", in sms_ir_init() 53 coredev->ir.controller, coredev->ir.timeout); in sms_ir_init() 55 snprintf(coredev->ir.name, sizeof(coredev->ir.name), in sms_ir_init() 56 "SMS IR (%s)", sms_get_board(board_id)->name); in sms_ir_init() 58 strscpy(coredev->ir.phys, coredev->devpath, sizeof(coredev->ir.phys)); in sms_ir_init() [all …]
|
/linux-6.12.1/Documentation/devicetree/bindings/media/ |
D | allwinner,sun4i-a10-ir.yaml | 4 $id: http://devicetree.org/schemas/media/allwinner,sun4i-a10-ir.yaml# 19 - const: allwinner,sun4i-a10-ir 20 - const: allwinner,sun5i-a13-ir 21 - const: allwinner,sun6i-a31-ir 24 - allwinner,suniv-f1c100s-ir 25 - allwinner,sun8i-a83t-ir 26 - allwinner,sun8i-r40-ir 27 - allwinner,sun50i-a64-ir 28 - allwinner,sun50i-h6-ir 29 - allwinner,sun50i-h616-ir [all …]
|
/linux-6.12.1/Documentation/userspace-api/media/rc/ |
D | lirc-dev-intro.rst | 10 a bi-directional interface for transporting raw IR and decoded scancodes 13 file_operations defined on it. With respect to transporting raw IR and 17 raw IR into scancodes. 24 rc rc0: lirc_dev: driver mceusb registered at minor = 0, raw IR receiver, raw IR transmitter 36 - ir-ctl: can receive raw IR and transmit IR, as well as query LIRC 39 - ir-keytable: can load keymaps; allows you to set IR kernel protocols; load 40 BPF IR decoders and test IR decoding. Some BPF IR decoders are also 49 LIRC supports some modes of receiving and sending IR codes, as shown 58 This mode is for both sending and receiving IR. 62 set to the :ref:`IR protocol <Remote_controllers_Protocols>`, and all other [all …]
|
/linux-6.12.1/arch/mips/kernel/ |
D | mips-r2-to-r6-emul.c | 76 * @ir: Instruction 78 static inline int mipsr6_emul(struct pt_regs *regs, u32 ir) in mipsr6_emul() argument 80 switch (MIPSInst_OPCODE(ir)) { in mipsr6_emul() 82 if (MIPSInst_RT(ir)) in mipsr6_emul() 83 regs->regs[MIPSInst_RT(ir)] = in mipsr6_emul() 84 (s32)regs->regs[MIPSInst_RS(ir)] + in mipsr6_emul() 85 (s32)MIPSInst_SIMM(ir); in mipsr6_emul() 91 if (MIPSInst_RT(ir)) in mipsr6_emul() 92 regs->regs[MIPSInst_RT(ir)] = in mipsr6_emul() 93 (s64)regs->regs[MIPSInst_RS(ir)] + in mipsr6_emul() [all …]
|
/linux-6.12.1/arch/parisc/math-emu/ |
D | fpudispatch.c | 19 * emfpudispatch(ir, dummy1, dummy2, fpregs) 20 * fpudispatch(ir, excp_code, holder, fpregs) 182 fpudispatch(u_int ir, u_int excp_code, u_int holder, u_int fpregs[]) in fpudispatch() argument 194 class = get_class(ir); in fpudispatch() 197 subop = get_subop1_PA2_0(ir); in fpudispatch() 199 subop = get_subop1_PA1_1(ir); in fpudispatch() 202 subop = get_subop(ir); in fpudispatch() 209 return(decode_0c(ir,class,subop,fpregs)); in fpudispatch() 211 return(decode_0e(ir,class,subop,fpregs)); in fpudispatch() 213 return(decode_06(ir,fpregs)); in fpudispatch() [all …]
|
/linux-6.12.1/drivers/staging/media/av7110/ |
D | av7110_ir.c | 23 struct rc_dev *rcdev = av7110->ir.rcdev; in av7110_ir_handler() 28 dprintk(4, "ir command = %08x\n", ircom); in av7110_ir_handler() 31 switch (av7110->ir.ir_config) { in av7110_ir_handler() 62 dprintk(2, "unknown ir config %d\n", av7110->ir.ir_config); in av7110_ir_handler() 72 dprintk(4, "ir config = %08x\n", av7110->ir.ir_config); in av7110_set_ir_config() 75 av7110->ir.ir_config); in av7110_set_ir_config() 96 if (ir_config == av7110->ir.ir_config) in change_protocol() 99 av7110->ir.ir_config = ir_config; in change_protocol() 116 snprintf(av7110->ir.input_phys, sizeof(av7110->ir.input_phys), in av7110_ir_init() 121 rcdev->input_phys = av7110->ir.input_phys; in av7110_ir_init() [all …]
|
/linux-6.12.1/tools/testing/selftests/bpf/ |
D | test_lirc_mode2_user.c | 2 // test ir decoder 6 // A lirc chardev is a device representing a consumer IR (cir) device which 7 // can receive infrared signals from remote control and/or transmit IR. 9 // IR is sent as a series of pulses and space somewhat like morse code. The 13 // This test works by sending IR over rc-loopback, so the IR is processed by 15 // associated with rc-loopback, see the output of ir-keytable(1). 24 // 2. Attach bpf_lirc_mode2 program which decodes some IR. 25 // 3. Send some IR to the same IR device; since it is loopback, this will 27 // 4. bpf program should decode IR and report keycode 107 /* Write raw IR */ in main() [all …]
|