Lines Matching refs:dev

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