Lines Matching refs:dev

38 void lirc_raw_event(struct rc_dev *dev, struct ir_raw_event ev)  in lirc_raw_event()  argument
53 dev_dbg(&dev->dev, "delivering overflow to lirc_dev\n"); in lirc_raw_event()
58 dev_dbg(&dev->dev, "carrier report (freq: %d)\n", sample); in lirc_raw_event()
62 dev->gap_start = ktime_get(); in lirc_raw_event()
65 dev_dbg(&dev->dev, "timeout report (duration: %d)\n", sample); in lirc_raw_event()
69 if (dev->gap_start) { in lirc_raw_event()
71 dev->gap_start); in lirc_raw_event()
76 spin_lock_irqsave(&dev->lirc_fh_lock, flags); in lirc_raw_event()
77 list_for_each_entry(fh, &dev->lirc_fh, list) in lirc_raw_event()
79 spin_unlock_irqrestore(&dev->lirc_fh_lock, flags); in lirc_raw_event()
80 dev->gap_start = 0; in lirc_raw_event()
85 dev_dbg(&dev->dev, "delivering %uus %s to lirc_dev\n", in lirc_raw_event()
93 lirc_bpf_run(dev, sample); in lirc_raw_event()
95 spin_lock_irqsave(&dev->lirc_fh_lock, flags); in lirc_raw_event()
96 list_for_each_entry(fh, &dev->lirc_fh, list) { in lirc_raw_event()
100 spin_unlock_irqrestore(&dev->lirc_fh_lock, flags); in lirc_raw_event()
109 void lirc_scancode_event(struct rc_dev *dev, struct lirc_scancode *lsc) in lirc_scancode_event() argument
116 spin_lock_irqsave(&dev->lirc_fh_lock, flags); in lirc_scancode_event()
117 list_for_each_entry(fh, &dev->lirc_fh, list) { in lirc_scancode_event()
121 spin_unlock_irqrestore(&dev->lirc_fh_lock, flags); in lirc_scancode_event()
127 struct rc_dev *dev = container_of(inode->i_cdev, struct rc_dev, in lirc_open() local
136 get_device(&dev->dev); in lirc_open()
138 if (!dev->registered) { in lirc_open()
143 if (dev->driver_type == RC_DRIVER_IR_RAW) { in lirc_open()
150 if (dev->driver_type != RC_DRIVER_IR_RAW_TX) { in lirc_open()
158 fh->rc = dev; in lirc_open()
160 if (dev->driver_type == RC_DRIVER_SCANCODE) in lirc_open()
165 retval = rc_open(dev); in lirc_open()
172 spin_lock_irqsave(&dev->lirc_fh_lock, flags); in lirc_open()
173 list_add(&fh->list, &dev->lirc_fh); in lirc_open()
174 spin_unlock_irqrestore(&dev->lirc_fh_lock, flags); in lirc_open()
180 if (dev->driver_type != RC_DRIVER_IR_RAW_TX) in lirc_open()
183 if (dev->driver_type == RC_DRIVER_IR_RAW) in lirc_open()
187 put_device(&dev->dev); in lirc_open()
195 struct rc_dev *dev = fh->rc; in lirc_close() local
198 spin_lock_irqsave(&dev->lirc_fh_lock, flags); in lirc_close()
200 spin_unlock_irqrestore(&dev->lirc_fh_lock, flags); in lirc_close()
202 if (dev->driver_type == RC_DRIVER_IR_RAW) in lirc_close()
204 if (dev->driver_type != RC_DRIVER_IR_RAW_TX) in lirc_close()
208 rc_close(dev); in lirc_close()
209 put_device(&dev->dev); in lirc_close()
218 struct rc_dev *dev = fh->rc; in lirc_transmit() local
228 ret = mutex_lock_interruptible(&dev->lock); in lirc_transmit()
232 if (!dev->registered) { in lirc_transmit()
237 if (!dev->tx_ir) { in lirc_transmit()
294 if (dev->s_tx_carrier) { in lirc_transmit()
298 dev->s_tx_carrier(dev, carrier); in lirc_transmit()
330 ret = dev->tx_ir(dev, txbuf, count); in lirc_transmit()
336 mutex_unlock(&dev->lock); in lirc_transmit()
356 mutex_unlock(&dev->lock); in lirc_transmit()
363 struct rc_dev *dev = fh->rc; in lirc_ioctl() local
374 ret = mutex_lock_interruptible(&dev->lock); in lirc_ioctl()
378 if (!dev->registered) { in lirc_ioctl()
385 if (dev->driver_type == RC_DRIVER_SCANCODE) in lirc_ioctl()
388 if (dev->driver_type == RC_DRIVER_IR_RAW) { in lirc_ioctl()
390 if (dev->rx_resolution) in lirc_ioctl()
394 if (dev->tx_ir) { in lirc_ioctl()
396 if (dev->s_tx_mask) in lirc_ioctl()
398 if (dev->s_tx_carrier) in lirc_ioctl()
400 if (dev->s_tx_duty_cycle) in lirc_ioctl()
404 if (dev->s_rx_carrier_range) in lirc_ioctl()
408 if (dev->s_wideband_receiver) in lirc_ioctl()
411 if (dev->s_carrier_report) in lirc_ioctl()
414 if (dev->max_timeout) in lirc_ioctl()
421 if (dev->driver_type == RC_DRIVER_IR_RAW_TX) in lirc_ioctl()
428 switch (dev->driver_type) { in lirc_ioctl()
448 if (!dev->tx_ir) in lirc_ioctl()
455 if (!dev->tx_ir) in lirc_ioctl()
465 if (!dev->s_tx_mask) in lirc_ioctl()
468 ret = dev->s_tx_mask(dev, val); in lirc_ioctl()
472 if (!dev->s_tx_carrier) in lirc_ioctl()
475 ret = dev->s_tx_carrier(dev, val); in lirc_ioctl()
479 if (!dev->s_tx_duty_cycle) in lirc_ioctl()
484 ret = dev->s_tx_duty_cycle(dev, val); in lirc_ioctl()
489 if (!dev->s_rx_carrier_range) in lirc_ioctl()
494 ret = dev->s_rx_carrier_range(dev, fh->carrier_low, in lirc_ioctl()
499 if (!dev->s_rx_carrier_range) in lirc_ioctl()
508 if (!dev->rx_resolution) in lirc_ioctl()
511 val = dev->rx_resolution; in lirc_ioctl()
515 if (!dev->s_wideband_receiver) in lirc_ioctl()
518 ret = dev->s_wideband_receiver(dev, !!val); in lirc_ioctl()
522 if (!dev->s_carrier_report) in lirc_ioctl()
525 ret = dev->s_carrier_report(dev, !!val); in lirc_ioctl()
530 if (!dev->max_timeout) in lirc_ioctl()
533 val = dev->min_timeout; in lirc_ioctl()
537 if (!dev->max_timeout) in lirc_ioctl()
540 val = dev->max_timeout; in lirc_ioctl()
544 if (!dev->max_timeout) { in lirc_ioctl()
547 if (val < dev->min_timeout || val > dev->max_timeout) in lirc_ioctl()
549 else if (dev->s_timeout) in lirc_ioctl()
550 ret = dev->s_timeout(dev, val); in lirc_ioctl()
552 dev->timeout = val; in lirc_ioctl()
557 if (!dev->timeout) in lirc_ioctl()
560 val = dev->timeout; in lirc_ioctl()
564 if (dev->driver_type != RC_DRIVER_IR_RAW) in lirc_ioctl()
576 mutex_unlock(&dev->lock); in lirc_ioctl()
714 put_device(&rcdev->dev); in lirc_release_device()
717 int lirc_register(struct rc_dev *dev) in lirc_register() argument
726 device_initialize(&dev->lirc_dev); in lirc_register()
727 dev->lirc_dev.class = lirc_class; in lirc_register()
728 dev->lirc_dev.parent = &dev->dev; in lirc_register()
729 dev->lirc_dev.release = lirc_release_device; in lirc_register()
730 dev->lirc_dev.devt = MKDEV(MAJOR(lirc_base_dev), minor); in lirc_register()
731 dev_set_name(&dev->lirc_dev, "lirc%d", minor); in lirc_register()
733 INIT_LIST_HEAD(&dev->lirc_fh); in lirc_register()
734 spin_lock_init(&dev->lirc_fh_lock); in lirc_register()
736 cdev_init(&dev->lirc_cdev, &lirc_fops); in lirc_register()
738 err = cdev_device_add(&dev->lirc_cdev, &dev->lirc_dev); in lirc_register()
742 get_device(&dev->dev); in lirc_register()
744 switch (dev->driver_type) { in lirc_register()
756 if (dev->tx_ir) in lirc_register()
761 dev_info(&dev->dev, "lirc_dev: driver %s registered at minor = %d, %s receiver, %s transmitter", in lirc_register()
762 dev->driver_name, minor, rx_type, tx_type); in lirc_register()
771 void lirc_unregister(struct rc_dev *dev) in lirc_unregister() argument
776 dev_dbg(&dev->dev, "lirc_dev: driver %s unregistered from minor = %d\n", in lirc_unregister()
777 dev->driver_name, MINOR(dev->lirc_dev.devt)); in lirc_unregister()
779 spin_lock_irqsave(&dev->lirc_fh_lock, flags); in lirc_unregister()
780 list_for_each_entry(fh, &dev->lirc_fh, list) in lirc_unregister()
782 spin_unlock_irqrestore(&dev->lirc_fh_lock, flags); in lirc_unregister()
784 cdev_device_del(&dev->lirc_cdev, &dev->lirc_dev); in lirc_unregister()
785 ida_free(&lirc_ida, MINOR(dev->lirc_dev.devt)); in lirc_unregister()
821 struct rc_dev *dev; in rc_dev_get_from_fd() local
837 dev = fh->rc; in rc_dev_get_from_fd()
839 get_device(&dev->dev); in rc_dev_get_from_fd()
842 return dev; in rc_dev_get_from_fd()