[media] media: rename struct lirc_driver to struct lirc_dev

This is in preparation for the later patches which do away with
struct irctl entirely.

Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
David Härdeman 2017-09-21 16:13:34 -03:00 committed by Mauro Carvalho Chehab
parent 46c8f47711
commit 5ddc9c098d
5 changed files with 51 additions and 73 deletions

View file

@ -35,7 +35,7 @@ static int ir_lirc_decode(struct rc_dev *dev, struct ir_raw_event ev)
struct lirc_codec *lirc = &dev->raw->lirc; struct lirc_codec *lirc = &dev->raw->lirc;
int sample; int sample;
if (!dev->raw->lirc.drv || !dev->raw->lirc.drv->rbuf) if (!dev->raw->lirc.ldev || !dev->raw->lirc.ldev->rbuf)
return -EINVAL; return -EINVAL;
/* Packet start */ /* Packet start */
@ -84,8 +84,8 @@ static int ir_lirc_decode(struct rc_dev *dev, struct ir_raw_event ev)
(u64)LIRC_VALUE_MASK); (u64)LIRC_VALUE_MASK);
gap_sample = LIRC_SPACE(lirc->gap_duration); gap_sample = LIRC_SPACE(lirc->gap_duration);
lirc_buffer_write(dev->raw->lirc.drv->rbuf, lirc_buffer_write(dev->raw->lirc.ldev->rbuf,
(unsigned char *) &gap_sample); (unsigned char *)&gap_sample);
lirc->gap = false; lirc->gap = false;
} }
@ -95,9 +95,9 @@ static int ir_lirc_decode(struct rc_dev *dev, struct ir_raw_event ev)
TO_US(ev.duration), TO_STR(ev.pulse)); TO_US(ev.duration), TO_STR(ev.pulse));
} }
lirc_buffer_write(dev->raw->lirc.drv->rbuf, lirc_buffer_write(dev->raw->lirc.ldev->rbuf,
(unsigned char *) &sample); (unsigned char *) &sample);
wake_up(&dev->raw->lirc.drv->rbuf->wait_poll); wake_up(&dev->raw->lirc.ldev->rbuf->wait_poll);
return 0; return 0;
} }
@ -343,12 +343,12 @@ static const struct file_operations lirc_fops = {
static int ir_lirc_register(struct rc_dev *dev) static int ir_lirc_register(struct rc_dev *dev)
{ {
struct lirc_driver *drv; struct lirc_dev *ldev;
int rc = -ENOMEM; int rc = -ENOMEM;
unsigned long features = 0; unsigned long features = 0;
drv = kzalloc(sizeof(struct lirc_driver), GFP_KERNEL); ldev = kzalloc(sizeof(*ldev), GFP_KERNEL);
if (!drv) if (!ldev)
return rc; return rc;
if (dev->driver_type != RC_DRIVER_IR_RAW_TX) { if (dev->driver_type != RC_DRIVER_IR_RAW_TX) {
@ -380,29 +380,29 @@ static int ir_lirc_register(struct rc_dev *dev)
if (dev->max_timeout) if (dev->max_timeout)
features |= LIRC_CAN_SET_REC_TIMEOUT; features |= LIRC_CAN_SET_REC_TIMEOUT;
snprintf(drv->name, sizeof(drv->name), "ir-lirc-codec (%s)", snprintf(ldev->name, sizeof(ldev->name), "ir-lirc-codec (%s)",
dev->driver_name); dev->driver_name);
drv->features = features; ldev->features = features;
drv->data = &dev->raw->lirc; ldev->data = &dev->raw->lirc;
drv->rbuf = NULL; ldev->rbuf = NULL;
drv->code_length = sizeof(struct ir_raw_event) * 8; ldev->code_length = sizeof(struct ir_raw_event) * 8;
drv->chunk_size = sizeof(int); ldev->chunk_size = sizeof(int);
drv->buffer_size = LIRCBUF_SIZE; ldev->buffer_size = LIRCBUF_SIZE;
drv->fops = &lirc_fops; ldev->fops = &lirc_fops;
drv->dev = &dev->dev; ldev->dev = &dev->dev;
drv->rdev = dev; ldev->rdev = dev;
drv->owner = THIS_MODULE; ldev->owner = THIS_MODULE;
rc = lirc_register_driver(drv); rc = lirc_register_device(ldev);
if (rc < 0) if (rc < 0)
goto out; goto out;
dev->raw->lirc.drv = drv; dev->raw->lirc.ldev = ldev;
dev->raw->lirc.dev = dev; dev->raw->lirc.dev = dev;
return 0; return 0;
out: out:
kfree(drv); kfree(ldev);
return rc; return rc;
} }
@ -410,9 +410,9 @@ static int ir_lirc_unregister(struct rc_dev *dev)
{ {
struct lirc_codec *lirc = &dev->raw->lirc; struct lirc_codec *lirc = &dev->raw->lirc;
lirc_unregister_driver(lirc->drv); lirc_unregister_device(lirc->ldev);
kfree(lirc->drv); kfree(lirc->ldev);
lirc->drv = NULL; lirc->ldev = NULL;
return 0; return 0;
} }

View file

@ -35,7 +35,7 @@
static dev_t lirc_base_dev; static dev_t lirc_base_dev;
struct irctl { struct irctl {
struct lirc_driver d; struct lirc_dev d;
bool attached; bool attached;
int open; int open;
@ -76,7 +76,7 @@ static void lirc_release(struct device *ld)
static int lirc_allocate_buffer(struct irctl *ir) static int lirc_allocate_buffer(struct irctl *ir)
{ {
int err = 0; int err = 0;
struct lirc_driver *d = &ir->d; struct lirc_dev *d = &ir->d;
if (d->rbuf) { if (d->rbuf) {
ir->buf = d->rbuf; ir->buf = d->rbuf;
@ -103,7 +103,7 @@ static int lirc_allocate_buffer(struct irctl *ir)
return err; return err;
} }
int lirc_register_driver(struct lirc_driver *d) int lirc_register_device(struct lirc_dev *d)
{ {
struct irctl *ir; struct irctl *ir;
int minor; int minor;
@ -204,9 +204,9 @@ int lirc_register_driver(struct lirc_driver *d)
return 0; return 0;
} }
EXPORT_SYMBOL(lirc_register_driver); EXPORT_SYMBOL(lirc_register_device);
void lirc_unregister_driver(struct lirc_driver *d) void lirc_unregister_device(struct lirc_dev *d)
{ {
struct irctl *ir; struct irctl *ir;
@ -234,7 +234,7 @@ void lirc_unregister_driver(struct lirc_driver *d)
ida_simple_remove(&lirc_ida, d->minor); ida_simple_remove(&lirc_ida, d->minor);
put_device(&ir->dev); put_device(&ir->dev);
} }
EXPORT_SYMBOL(lirc_unregister_driver); EXPORT_SYMBOL(lirc_unregister_device);
int lirc_dev_fop_open(struct inode *inode, struct file *file) int lirc_dev_fop_open(struct inode *inode, struct file *file)
{ {

View file

@ -106,7 +106,7 @@ struct ir_raw_event_ctrl {
} mce_kbd; } mce_kbd;
struct lirc_codec { struct lirc_codec {
struct rc_dev *dev; struct rc_dev *dev;
struct lirc_driver *drv; struct lirc_dev *ldev;
int carrier_low; int carrier_low;
ktime_t gap_start; ktime_t gap_start;

View file

@ -100,7 +100,7 @@ struct IR {
struct list_head list; struct list_head list;
/* FIXME spinlock access to l.features */ /* FIXME spinlock access to l.features */
struct lirc_driver l; struct lirc_dev l;
struct lirc_buffer rbuf; struct lirc_buffer rbuf;
struct mutex ir_lock; struct mutex ir_lock;
@ -183,7 +183,7 @@ static void release_ir_device(struct kref *ref)
* ir->open_count == 0 - happens on final close() * ir->open_count == 0 - happens on final close()
* ir_lock, tx_ref_lock, rx_ref_lock, all released * ir_lock, tx_ref_lock, rx_ref_lock, all released
*/ */
lirc_unregister_driver(&ir->l); lirc_unregister_device(&ir->l);
if (kfifo_initialized(&ir->rbuf.fifo)) if (kfifo_initialized(&ir->rbuf.fifo))
lirc_buffer_free(&ir->rbuf); lirc_buffer_free(&ir->rbuf);
@ -1345,7 +1345,7 @@ static const struct file_operations lirc_fops = {
.release = close .release = close
}; };
static struct lirc_driver lirc_template = { static struct lirc_dev lirc_template = {
.name = "lirc_zilog", .name = "lirc_zilog",
.code_length = 13, .code_length = 13,
.fops = &lirc_fops, .fops = &lirc_fops,
@ -1441,7 +1441,7 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
spin_lock_init(&ir->rx_ref_lock); spin_lock_init(&ir->rx_ref_lock);
/* set lirc_dev stuff */ /* set lirc_dev stuff */
memcpy(&ir->l, &lirc_template, sizeof(struct lirc_driver)); memcpy(&ir->l, &lirc_template, sizeof(struct lirc_dev));
/* /*
* FIXME this is a pointer reference to us, but no refcount. * FIXME this is a pointer reference to us, but no refcount.
* *
@ -1559,10 +1559,10 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
} }
/* register with lirc */ /* register with lirc */
ret = lirc_register_driver(&ir->l); ret = lirc_register_device(&ir->l);
if (ret < 0) { if (ret < 0) {
dev_err(tx->ir->l.dev, dev_err(tx->ir->l.dev,
"%s: lirc_register_driver() failed: %i\n", "%s: lirc_register_device() failed: %i\n",
__func__, ret); __func__, ret);
goto out_put_xx; goto out_put_xx;
} }

View file

@ -111,54 +111,32 @@ static inline unsigned int lirc_buffer_write(struct lirc_buffer *buf,
} }
/** /**
* struct lirc_driver - Defines the parameters on a LIRC driver * struct lirc_dev - represents a LIRC device
*
* @name: this string will be used for logs
*
* @minor: the minor device (/dev/lircX) number for a registered
* driver.
*
* @code_length: length of the remote control key code expressed in bits.
* *
* @name: used for logging
* @minor: the minor device (/dev/lircX) number for the device
* @code_length: length of a remote control key code expressed in bits
* @features: lirc compatible hardware features, like LIRC_MODE_RAW, * @features: lirc compatible hardware features, like LIRC_MODE_RAW,
* LIRC_CAN\_\*, as defined at include/media/lirc.h. * LIRC_CAN\_\*, as defined at include/media/lirc.h.
*
* @buffer_size: Number of FIFO buffers with @chunk_size size. * @buffer_size: Number of FIFO buffers with @chunk_size size.
* Only used if @rbuf is NULL. * Only used if @rbuf is NULL.
*
* @chunk_size: Size of each FIFO buffer. * @chunk_size: Size of each FIFO buffer.
* Only used if @rbuf is NULL. * Only used if @rbuf is NULL.
* * @data: private per-driver data
* @data: it may point to any driver data and this pointer will
* be passed to all callback functions.
*
* @min_timeout: Minimum timeout for record. Valid only if * @min_timeout: Minimum timeout for record. Valid only if
* LIRC_CAN_SET_REC_TIMEOUT is defined. * LIRC_CAN_SET_REC_TIMEOUT is defined.
*
* @max_timeout: Maximum timeout for record. Valid only if * @max_timeout: Maximum timeout for record. Valid only if
* LIRC_CAN_SET_REC_TIMEOUT is defined. * LIRC_CAN_SET_REC_TIMEOUT is defined.
*
* @rbuf: if not NULL, it will be used as a read buffer, you will * @rbuf: if not NULL, it will be used as a read buffer, you will
* have to write to the buffer by other means, like irq's * have to write to the buffer by other means, like irq's
* (see also lirc_serial.c). * (see also lirc_serial.c).
* * @rdev: &struct rc_dev associated with the device
* @rdev: Pointed to struct rc_dev associated with the LIRC * @fops: &struct file_operations for the device
* device. * @dev: &struct device assigned to the device
*
* @fops: file_operations for drivers which don't fit the current
* driver model.
* Some ioctl's can be directly handled by lirc_dev if the
* driver's ioctl function is NULL or if it returns
* -ENOIOCTLCMD (see also lirc_serial.c).
*
* @dev: pointer to the struct device associated with the LIRC
* device.
*
* @owner: the module owning this struct * @owner: the module owning this struct
* * @irctl: &struct irctl assigned to the device
* @irctl: the struct irctl for this LIRC device.
*/ */
struct lirc_driver { struct lirc_dev {
char name[40]; char name[40];
unsigned int minor; unsigned int minor;
__u32 code_length; __u32 code_length;
@ -183,14 +161,14 @@ struct lirc_driver {
* returns negative value on error or zero * returns negative value on error or zero
* contents of the structure pointed by p is copied * contents of the structure pointed by p is copied
*/ */
int lirc_register_driver(struct lirc_driver *d); int lirc_register_device(struct lirc_dev *d);
void lirc_unregister_driver(struct lirc_driver *d); void lirc_unregister_device(struct lirc_dev *d);
/* Must be called in the open fop before lirc_get_pdata() can be used */ /* Must be called in the open fop before lirc_get_pdata() can be used */
void lirc_init_pdata(struct inode *inode, struct file *file); void lirc_init_pdata(struct inode *inode, struct file *file);
/* Returns the private data stored in the lirc_driver /* Returns the private data stored in the lirc_dev
* associated with the given device file pointer. * associated with the given device file pointer.
*/ */
void *lirc_get_pdata(struct file *file); void *lirc_get_pdata(struct file *file);