[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:
parent
46c8f47711
commit
5ddc9c098d
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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 @@ out:
|
|||||||
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)
|
||||||
{
|
{
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user