By making better use of file->private_data in lirc_dev we can avoid digging around in the irctls[] array, thereby simplifying the code. External drivers need to use lirc_get_pdata() instead of mucking around in file->private_data. The newly introduced lirc_init_pdata() function isn't very elegant, but it's a stopgap measure which can be removed once lirc_zilog is converted to rc-core.
Showing the changes to include/media/lirc_dev.h (1 of 3 files). Show all
Unified · Split
| @@ -187,6 +187,9 @@ int lirc_register_driver(struct lirc_driver *d); · 186 unmodified lines | ||
| 187 | 187 | |
| 188 | 188 | void lirc_unregister_driver(struct lirc_driver *d); |
| 189 | 189 | |
| 190 | +/* Must be called in the open fop before lirc_get_pdata() can be used */ | |
| 191 | +void lirc_init_pdata(struct inode *inode, struct file *file); | |
| 192 | + | |
| 190 | 193 | /* Returns the private data stored in the lirc_driver |
| 191 | 194 | * associated with the given device file pointer. |
| 192 | 195 | */ |