Lines Matching refs:d
51 struct lirc_driver d; member
78 ir->d.minor = NOPLUG; in lirc_irctl_init()
83 dev_dbg(ir->d.dev, LOGHEAD "cleaning up\n", ir->d.name, ir->d.minor); in lirc_irctl_cleanup()
85 device_destroy(lirc_class, MKDEV(MAJOR(lirc_base_dev), ir->d.minor)); in lirc_irctl_cleanup()
87 if (ir->buf != ir->d.rbuf) { in lirc_irctl_cleanup()
100 if (ir->d.add_to_buf) { in lirc_add_to_buf()
109 res = ir->d.add_to_buf(ir->d.data, ir->buf); in lirc_add_to_buf()
130 dev_dbg(ir->d.dev, LOGHEAD "poll thread started\n", in lirc_thread()
131 ir->d.name, ir->d.minor); in lirc_thread()
149 dev_dbg(ir->d.dev, LOGHEAD "poll thread ended\n", in lirc_thread()
150 ir->d.name, ir->d.minor); in lirc_thread()
173 struct lirc_driver *d = &ir->d; in lirc_cdev_add() local
180 if (d->fops) { in lirc_cdev_add()
181 cdev_init(cdev, d->fops); in lirc_cdev_add()
182 cdev->owner = d->owner; in lirc_cdev_add()
187 retval = kobject_set_name(&cdev->kobj, "lirc%d", d->minor); in lirc_cdev_add()
191 retval = cdev_add(cdev, MKDEV(MAJOR(lirc_base_dev), d->minor), 1); in lirc_cdev_add()
206 int lirc_register_driver(struct lirc_driver *d) in lirc_register_driver() argument
215 if (!d) { in lirc_register_driver()
222 if (!d->dev) { in lirc_register_driver()
228 if (MAX_IRCTL_DEVICES <= d->minor) { in lirc_register_driver()
229 dev_err(d->dev, "lirc_dev: lirc_register_driver: " in lirc_register_driver()
231 MAX_IRCTL_DEVICES - 1, d->minor); in lirc_register_driver()
236 if (1 > d->code_length || (BUFLEN * 8) < d->code_length) { in lirc_register_driver()
237 dev_err(d->dev, "lirc_dev: lirc_register_driver: " in lirc_register_driver()
240 d->minor, BUFLEN * 8); in lirc_register_driver()
245 dev_dbg(d->dev, "lirc_dev: lirc_register_driver: sample_rate: %d\n", in lirc_register_driver()
246 d->sample_rate); in lirc_register_driver()
247 if (d->sample_rate) { in lirc_register_driver()
248 if (2 > d->sample_rate || HZ < d->sample_rate) { in lirc_register_driver()
249 dev_err(d->dev, "lirc_dev: lirc_register_driver: " in lirc_register_driver()
254 if (!d->add_to_buf) { in lirc_register_driver()
255 dev_err(d->dev, "lirc_dev: lirc_register_driver: " in lirc_register_driver()
261 } else if (!(d->fops && d->fops->read) && !d->rbuf) { in lirc_register_driver()
262 dev_err(d->dev, "lirc_dev: lirc_register_driver: " in lirc_register_driver()
266 } else if (!d->rbuf) { in lirc_register_driver()
267 if (!(d->fops && d->fops->read && d->fops->poll && in lirc_register_driver()
268 d->fops->unlocked_ioctl)) { in lirc_register_driver()
269 dev_err(d->dev, "lirc_dev: lirc_register_driver: " in lirc_register_driver()
278 minor = d->minor; in lirc_register_driver()
286 dev_err(d->dev, "lirc_dev: lirc_register_driver: " in lirc_register_driver()
292 dev_err(d->dev, "lirc_dev: lirc_register_driver: " in lirc_register_driver()
305 d->minor = minor; in lirc_register_driver()
307 if (d->sample_rate) { in lirc_register_driver()
308 ir->jiffies_to_wait = HZ / d->sample_rate; in lirc_register_driver()
315 d->name[sizeof(d->name)-1] = '\0'; in lirc_register_driver()
317 bytes_in_key = BITS_TO_LONGS(d->code_length) + in lirc_register_driver()
318 (d->code_length % 8 ? 1 : 0); in lirc_register_driver()
319 buffer_size = d->buffer_size ? d->buffer_size : BUFLEN / bytes_in_key; in lirc_register_driver()
320 chunk_size = d->chunk_size ? d->chunk_size : bytes_in_key; in lirc_register_driver()
322 if (d->rbuf) { in lirc_register_driver()
323 ir->buf = d->rbuf; in lirc_register_driver()
338 if (d->features == 0) in lirc_register_driver()
339 d->features = LIRC_CAN_REC_LIRCCODE; in lirc_register_driver()
341 ir->d = *d; in lirc_register_driver()
343 device_create(lirc_class, ir->d.dev, in lirc_register_driver()
344 MKDEV(MAJOR(lirc_base_dev), ir->d.minor), NULL, in lirc_register_driver()
345 "lirc%u", ir->d.minor); in lirc_register_driver()
347 if (d->sample_rate) { in lirc_register_driver()
351 dev_err(d->dev, "lirc_dev: lirc_register_driver: " in lirc_register_driver()
353 d->minor); in lirc_register_driver()
366 dev_info(ir->d.dev, "lirc_dev: driver %s registered at minor = %d\n", in lirc_register_driver()
367 ir->d.name, ir->d.minor); in lirc_register_driver()
371 device_destroy(lirc_class, MKDEV(MAJOR(lirc_base_dev), ir->d.minor)); in lirc_register_driver()
401 if (ir->d.minor != minor) { in lirc_unregister_driver()
412 dev_dbg(ir->d.dev, "lirc_dev: driver %s unregistered from minor = %d\n", in lirc_unregister_driver()
413 ir->d.name, ir->d.minor); in lirc_unregister_driver()
417 dev_dbg(ir->d.dev, LOGHEAD "releasing opened driver\n", in lirc_unregister_driver()
418 ir->d.name, ir->d.minor); in lirc_unregister_driver()
421 ir->d.set_use_dec(ir->d.data); in lirc_unregister_driver()
459 dev_dbg(ir->d.dev, LOGHEAD "open called\n", ir->d.name, ir->d.minor); in lirc_dev_fop_open()
461 if (ir->d.minor == NOPLUG) { in lirc_dev_fop_open()
471 if (ir->d.rdev) { in lirc_dev_fop_open()
472 retval = rc_open(ir->d.rdev); in lirc_dev_fop_open()
480 retval = ir->d.set_use_inc(ir->d.data); in lirc_dev_fop_open()
494 dev_dbg(ir->d.dev, LOGHEAD "open result = %d\n", in lirc_dev_fop_open()
495 ir->d.name, ir->d.minor, retval); in lirc_dev_fop_open()
517 dev_dbg(ir->d.dev, LOGHEAD "close called\n", ir->d.name, ir->d.minor); in lirc_dev_fop_close()
521 rc_close(ir->d.rdev); in lirc_dev_fop_close()
525 ir->d.set_use_dec(ir->d.data); in lirc_dev_fop_close()
530 irctls[ir->d.minor] = NULL; in lirc_dev_fop_close()
551 dev_dbg(ir->d.dev, LOGHEAD "poll called\n", ir->d.name, ir->d.minor); in lirc_dev_fop_poll()
566 dev_dbg(ir->d.dev, LOGHEAD "poll result = %d\n", in lirc_dev_fop_poll()
567 ir->d.name, ir->d.minor, ret); in lirc_dev_fop_poll()
584 dev_dbg(ir->d.dev, LOGHEAD "ioctl called (0x%x)\n", in lirc_dev_fop_ioctl()
585 ir->d.name, ir->d.minor, cmd); in lirc_dev_fop_ioctl()
587 if (ir->d.minor == NOPLUG || !ir->attached) { in lirc_dev_fop_ioctl()
588 dev_dbg(ir->d.dev, LOGHEAD "ioctl result = -ENODEV\n", in lirc_dev_fop_ioctl()
589 ir->d.name, ir->d.minor); in lirc_dev_fop_ioctl()
597 result = put_user(ir->d.features, (__u32 __user *)arg); in lirc_dev_fop_ioctl()
600 if (!(ir->d.features & LIRC_CAN_REC_MASK)) { in lirc_dev_fop_ioctl()
606 (ir->d.features & LIRC_CAN_REC_MASK), in lirc_dev_fop_ioctl()
610 if (!(ir->d.features & LIRC_CAN_REC_MASK)) { in lirc_dev_fop_ioctl()
616 if (!result && !(LIRC_MODE2REC(mode) & ir->d.features)) in lirc_dev_fop_ioctl()
624 result = put_user(ir->d.code_length, (__u32 __user *)arg); in lirc_dev_fop_ioctl()
627 if (!(ir->d.features & LIRC_CAN_SET_REC_TIMEOUT) || in lirc_dev_fop_ioctl()
628 ir->d.min_timeout == 0) { in lirc_dev_fop_ioctl()
633 result = put_user(ir->d.min_timeout, (__u32 __user *)arg); in lirc_dev_fop_ioctl()
636 if (!(ir->d.features & LIRC_CAN_SET_REC_TIMEOUT) || in lirc_dev_fop_ioctl()
637 ir->d.max_timeout == 0) { in lirc_dev_fop_ioctl()
642 result = put_user(ir->d.max_timeout, (__u32 __user *)arg); in lirc_dev_fop_ioctl()
648 dev_dbg(ir->d.dev, LOGHEAD "ioctl result = %d\n", in lirc_dev_fop_ioctl()
649 ir->d.name, ir->d.minor, result); in lirc_dev_fop_ioctl()
672 dev_dbg(ir->d.dev, LOGHEAD "read called\n", ir->d.name, ir->d.minor); in lirc_dev_fop_read()
755 dev_dbg(ir->d.dev, LOGHEAD "read result = %s (%d)\n", in lirc_dev_fop_read()
756 ir->d.name, ir->d.minor, ret ? "<fail>" : "<ok>", ret); in lirc_dev_fop_read()
764 return irctls[iminor(file_inode(file))]->d.data; in lirc_get_pdata()
779 dev_dbg(ir->d.dev, LOGHEAD "write called\n", ir->d.name, ir->d.minor); in lirc_dev_fop_write()