You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
V4L/DVB (13554a): v4l: Use the video_drvdata function in drivers
Fix all device drivers to use the video_drvdata function instead of maintaining a local list of minor to private data mappings. Call video_set_drvdata to register the driver private pointer when not already done. Where applicable, the local list of mappings is completely removed when it becomes unused. [mchehab.redhat.com: removed tm6000 changes as tm6000 is not ready yet for submission even on staging] Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
committed by
Mauro Carvalho Chehab
parent
f0813b4c9f
commit
63b0d5ad20
@@ -95,35 +95,18 @@ static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
static int video_open(struct file *file)
|
||||
{
|
||||
int minor = video_devdata(file)->minor;
|
||||
struct cx25821_dev *h, *dev = NULL;
|
||||
struct cx25821_dev *dev = video_drvdata(file);
|
||||
struct cx25821_fh *fh;
|
||||
struct list_head *list;
|
||||
enum v4l2_buf_type type = 0;
|
||||
|
||||
lock_kernel();
|
||||
list_for_each(list, &cx25821_devlist) {
|
||||
h = list_entry(list, struct cx25821_dev, devlist);
|
||||
|
||||
if (h->video_dev[SRAM_CH11]
|
||||
&& h->video_dev[SRAM_CH11]->minor == minor) {
|
||||
dev = h;
|
||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
}
|
||||
}
|
||||
|
||||
if (NULL == dev) {
|
||||
unlock_kernel();
|
||||
return -ENODEV;
|
||||
}
|
||||
enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
|
||||
printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
|
||||
|
||||
/* allocate + initialize per filehandle data */
|
||||
fh = kzalloc(sizeof(*fh), GFP_KERNEL);
|
||||
if (NULL == fh) {
|
||||
unlock_kernel();
|
||||
if (NULL == fh)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
lock_kernel();
|
||||
|
||||
file->private_data = fh;
|
||||
fh->dev = dev;
|
||||
|
||||
@@ -189,6 +189,7 @@ struct video_device *cx25821_vdev_init(struct cx25821_dev *dev,
|
||||
vfd->release = video_device_release;
|
||||
snprintf(vfd->name, sizeof(vfd->name), "%s %s (%s)", dev->name, type,
|
||||
cx25821_boards[dev->board].name);
|
||||
video_set_drvdata(vfd, dev);
|
||||
return vfd;
|
||||
}
|
||||
|
||||
|
||||
@@ -95,36 +95,19 @@ static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
static int video_open(struct file *file)
|
||||
{
|
||||
int minor = video_devdata(file)->minor;
|
||||
struct cx25821_dev *h, *dev = NULL;
|
||||
struct cx25821_dev *dev = video_drvdata(file);
|
||||
struct cx25821_fh *fh;
|
||||
struct list_head *list;
|
||||
enum v4l2_buf_type type = 0;
|
||||
enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
u32 pix_format;
|
||||
|
||||
lock_kernel();
|
||||
list_for_each(list, &cx25821_devlist) {
|
||||
h = list_entry(list, struct cx25821_dev, devlist);
|
||||
|
||||
if (h->video_dev[SRAM_CH00]
|
||||
&& h->video_dev[SRAM_CH00]->minor == minor) {
|
||||
dev = h;
|
||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
}
|
||||
}
|
||||
|
||||
if (NULL == dev) {
|
||||
unlock_kernel();
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
|
||||
|
||||
/* allocate + initialize per filehandle data */
|
||||
fh = kzalloc(sizeof(*fh), GFP_KERNEL);
|
||||
if (NULL == fh) {
|
||||
unlock_kernel();
|
||||
if (NULL == fh)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
lock_kernel();
|
||||
|
||||
file->private_data = fh;
|
||||
fh->dev = dev;
|
||||
|
||||
@@ -95,36 +95,19 @@ static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
static int video_open(struct file *file)
|
||||
{
|
||||
int minor = video_devdata(file)->minor;
|
||||
struct cx25821_dev *h, *dev = NULL;
|
||||
struct cx25821_dev *dev = video_drvdata(file);
|
||||
struct cx25821_fh *fh;
|
||||
struct list_head *list;
|
||||
enum v4l2_buf_type type = 0;
|
||||
enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
u32 pix_format;
|
||||
|
||||
lock_kernel();
|
||||
list_for_each(list, &cx25821_devlist) {
|
||||
h = list_entry(list, struct cx25821_dev, devlist);
|
||||
|
||||
if (h->video_dev[SRAM_CH01]
|
||||
&& h->video_dev[SRAM_CH01]->minor == minor) {
|
||||
dev = h;
|
||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
}
|
||||
}
|
||||
|
||||
if (NULL == dev) {
|
||||
unlock_kernel();
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
|
||||
|
||||
/* allocate + initialize per filehandle data */
|
||||
fh = kzalloc(sizeof(*fh), GFP_KERNEL);
|
||||
if (NULL == fh) {
|
||||
unlock_kernel();
|
||||
if (NULL == fh)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
lock_kernel();
|
||||
|
||||
file->private_data = fh;
|
||||
fh->dev = dev;
|
||||
|
||||
@@ -95,36 +95,20 @@ static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
static int video_open(struct file *file)
|
||||
{
|
||||
int minor = video_devdata(file)->minor;
|
||||
struct cx25821_dev *h, *dev = NULL;
|
||||
struct cx25821_dev *dev = video_drvdata(file);
|
||||
struct cx25821_fh *fh;
|
||||
struct list_head *list;
|
||||
enum v4l2_buf_type type = 0;
|
||||
enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
u32 pix_format;
|
||||
|
||||
lock_kernel();
|
||||
list_for_each(list, &cx25821_devlist) {
|
||||
h = list_entry(list, struct cx25821_dev, devlist);
|
||||
|
||||
if (h->video_dev[SRAM_CH02]
|
||||
&& h->video_dev[SRAM_CH02]->minor == minor) {
|
||||
dev = h;
|
||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
}
|
||||
}
|
||||
|
||||
if (NULL == dev) {
|
||||
unlock_kernel();
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
|
||||
|
||||
/* allocate + initialize per filehandle data */
|
||||
fh = kzalloc(sizeof(*fh), GFP_KERNEL);
|
||||
if (NULL == fh) {
|
||||
unlock_kernel();
|
||||
if (NULL == fh)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
lock_kernel();
|
||||
|
||||
file->private_data = fh;
|
||||
fh->dev = dev;
|
||||
fh->type = type;
|
||||
|
||||
@@ -95,36 +95,20 @@ static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
static int video_open(struct file *file)
|
||||
{
|
||||
int minor = video_devdata(file)->minor;
|
||||
struct cx25821_dev *h, *dev = NULL;
|
||||
struct cx25821_dev *dev = video_drvdata(file);
|
||||
struct cx25821_fh *fh;
|
||||
struct list_head *list;
|
||||
enum v4l2_buf_type type = 0;
|
||||
enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
u32 pix_format;
|
||||
|
||||
lock_kernel();
|
||||
list_for_each(list, &cx25821_devlist) {
|
||||
h = list_entry(list, struct cx25821_dev, devlist);
|
||||
|
||||
if (h->video_dev[SRAM_CH03]
|
||||
&& h->video_dev[SRAM_CH03]->minor == minor) {
|
||||
dev = h;
|
||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
}
|
||||
}
|
||||
|
||||
if (NULL == dev) {
|
||||
unlock_kernel();
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
|
||||
|
||||
/* allocate + initialize per filehandle data */
|
||||
fh = kzalloc(sizeof(*fh), GFP_KERNEL);
|
||||
if (NULL == fh) {
|
||||
unlock_kernel();
|
||||
if (NULL == fh)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
lock_kernel();
|
||||
|
||||
file->private_data = fh;
|
||||
fh->dev = dev;
|
||||
fh->type = type;
|
||||
|
||||
@@ -95,36 +95,20 @@ static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
static int video_open(struct file *file)
|
||||
{
|
||||
int minor = video_devdata(file)->minor;
|
||||
struct cx25821_dev *h, *dev = NULL;
|
||||
struct cx25821_dev *dev = video_drvdata(file);
|
||||
struct cx25821_fh *fh;
|
||||
struct list_head *list;
|
||||
enum v4l2_buf_type type = 0;
|
||||
enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
u32 pix_format;
|
||||
|
||||
lock_kernel();
|
||||
list_for_each(list, &cx25821_devlist) {
|
||||
h = list_entry(list, struct cx25821_dev, devlist);
|
||||
|
||||
if (h->video_dev[SRAM_CH04]
|
||||
&& h->video_dev[SRAM_CH04]->minor == minor) {
|
||||
dev = h;
|
||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
}
|
||||
}
|
||||
|
||||
if (NULL == dev) {
|
||||
unlock_kernel();
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
|
||||
|
||||
/* allocate + initialize per filehandle data */
|
||||
fh = kzalloc(sizeof(*fh), GFP_KERNEL);
|
||||
if (NULL == fh) {
|
||||
unlock_kernel();
|
||||
if (NULL == fh)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
lock_kernel();
|
||||
|
||||
file->private_data = fh;
|
||||
fh->dev = dev;
|
||||
fh->type = type;
|
||||
|
||||
@@ -95,36 +95,20 @@ static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
static int video_open(struct file *file)
|
||||
{
|
||||
int minor = video_devdata(file)->minor;
|
||||
struct cx25821_dev *h, *dev = NULL;
|
||||
struct cx25821_dev *dev = video_drvdata(file);
|
||||
struct cx25821_fh *fh;
|
||||
struct list_head *list;
|
||||
enum v4l2_buf_type type = 0;
|
||||
enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
u32 pix_format;
|
||||
|
||||
lock_kernel();
|
||||
list_for_each(list, &cx25821_devlist) {
|
||||
h = list_entry(list, struct cx25821_dev, devlist);
|
||||
|
||||
if (h->video_dev[SRAM_CH05]
|
||||
&& h->video_dev[SRAM_CH05]->minor == minor) {
|
||||
dev = h;
|
||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
}
|
||||
}
|
||||
|
||||
if (NULL == dev) {
|
||||
unlock_kernel();
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
|
||||
|
||||
/* allocate + initialize per filehandle data */
|
||||
fh = kzalloc(sizeof(*fh), GFP_KERNEL);
|
||||
if (NULL == fh) {
|
||||
unlock_kernel();
|
||||
if (NULL == fh)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
lock_kernel();
|
||||
|
||||
file->private_data = fh;
|
||||
fh->dev = dev;
|
||||
fh->type = type;
|
||||
|
||||
@@ -95,36 +95,20 @@ static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
static int video_open(struct file *file)
|
||||
{
|
||||
int minor = video_devdata(file)->minor;
|
||||
struct cx25821_dev *h, *dev = NULL;
|
||||
struct cx25821_dev *dev = video_drvdata(file);
|
||||
struct cx25821_fh *fh;
|
||||
struct list_head *list;
|
||||
enum v4l2_buf_type type = 0;
|
||||
enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
u32 pix_format;
|
||||
|
||||
lock_kernel();
|
||||
list_for_each(list, &cx25821_devlist) {
|
||||
h = list_entry(list, struct cx25821_dev, devlist);
|
||||
|
||||
if (h->video_dev[SRAM_CH06]
|
||||
&& h->video_dev[SRAM_CH06]->minor == minor) {
|
||||
dev = h;
|
||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
}
|
||||
}
|
||||
|
||||
if (NULL == dev) {
|
||||
unlock_kernel();
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
|
||||
|
||||
/* allocate + initialize per filehandle data */
|
||||
fh = kzalloc(sizeof(*fh), GFP_KERNEL);
|
||||
if (NULL == fh) {
|
||||
unlock_kernel();
|
||||
if (NULL == fh)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
lock_kernel();
|
||||
|
||||
file->private_data = fh;
|
||||
fh->dev = dev;
|
||||
fh->type = type;
|
||||
|
||||
@@ -94,36 +94,20 @@ static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
static int video_open(struct file *file)
|
||||
{
|
||||
int minor = video_devdata(file)->minor;
|
||||
struct cx25821_dev *h, *dev = NULL;
|
||||
struct cx25821_dev *dev = video_drvdata(file);
|
||||
struct cx25821_fh *fh;
|
||||
struct list_head *list;
|
||||
enum v4l2_buf_type type = 0;
|
||||
enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
u32 pix_format;
|
||||
|
||||
lock_kernel();
|
||||
list_for_each(list, &cx25821_devlist) {
|
||||
h = list_entry(list, struct cx25821_dev, devlist);
|
||||
|
||||
if (h->video_dev[SRAM_CH07]
|
||||
&& h->video_dev[SRAM_CH07]->minor == minor) {
|
||||
dev = h;
|
||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
}
|
||||
}
|
||||
|
||||
if (NULL == dev) {
|
||||
unlock_kernel();
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
|
||||
|
||||
/* allocate + initialize per filehandle data */
|
||||
fh = kzalloc(sizeof(*fh), GFP_KERNEL);
|
||||
if (NULL == fh) {
|
||||
unlock_kernel();
|
||||
if (NULL == fh)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
lock_kernel();
|
||||
|
||||
file->private_data = fh;
|
||||
fh->dev = dev;
|
||||
fh->type = type;
|
||||
|
||||
@@ -95,35 +95,19 @@ static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
static int video_open(struct file *file)
|
||||
{
|
||||
int minor = video_devdata(file)->minor;
|
||||
struct cx25821_dev *h, *dev = NULL;
|
||||
struct cx25821_dev *dev = video_drvdata(file);
|
||||
struct cx25821_fh *fh;
|
||||
struct list_head *list;
|
||||
enum v4l2_buf_type type = 0;
|
||||
enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
u32 pix_format;
|
||||
|
||||
lock_kernel();
|
||||
list_for_each(list, &cx25821_devlist) {
|
||||
h = list_entry(list, struct cx25821_dev, devlist);
|
||||
|
||||
if (h->ioctl_dev && h->ioctl_dev->minor == minor) {
|
||||
dev = h;
|
||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
}
|
||||
}
|
||||
|
||||
if (NULL == dev) {
|
||||
unlock_kernel();
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
|
||||
|
||||
/* allocate + initialize per filehandle data */
|
||||
fh = kzalloc(sizeof(*fh), GFP_KERNEL);
|
||||
if (NULL == fh) {
|
||||
unlock_kernel();
|
||||
if (NULL == fh)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
lock_kernel();
|
||||
|
||||
file->private_data = fh;
|
||||
fh->dev = dev;
|
||||
|
||||
@@ -95,35 +95,18 @@ static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
static int video_open(struct file *file)
|
||||
{
|
||||
int minor = video_devdata(file)->minor;
|
||||
struct cx25821_dev *h, *dev = NULL;
|
||||
struct cx25821_dev *dev = video_drvdata(file);
|
||||
struct cx25821_fh *fh;
|
||||
struct list_head *list;
|
||||
enum v4l2_buf_type type = 0;
|
||||
|
||||
lock_kernel();
|
||||
list_for_each(list, &cx25821_devlist) {
|
||||
h = list_entry(list, struct cx25821_dev, devlist);
|
||||
|
||||
if (h->video_dev[SRAM_CH10]
|
||||
&& h->video_dev[SRAM_CH10]->minor == minor) {
|
||||
dev = h;
|
||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
}
|
||||
}
|
||||
|
||||
if (NULL == dev) {
|
||||
unlock_kernel();
|
||||
return -ENODEV;
|
||||
}
|
||||
enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
|
||||
printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
|
||||
|
||||
/* allocate + initialize per filehandle data */
|
||||
fh = kzalloc(sizeof(*fh), GFP_KERNEL);
|
||||
if (NULL == fh) {
|
||||
unlock_kernel();
|
||||
if (NULL == fh)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
lock_kernel();
|
||||
|
||||
file->private_data = fh;
|
||||
fh->dev = dev;
|
||||
|
||||
@@ -95,35 +95,18 @@ static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
static int video_open(struct file *file)
|
||||
{
|
||||
int minor = video_devdata(file)->minor;
|
||||
struct cx25821_dev *h, *dev = NULL;
|
||||
struct cx25821_dev *dev = video_drvdata(file);
|
||||
struct cx25821_fh *fh;
|
||||
struct list_head *list;
|
||||
enum v4l2_buf_type type = 0;
|
||||
|
||||
lock_kernel();
|
||||
list_for_each(list, &cx25821_devlist) {
|
||||
h = list_entry(list, struct cx25821_dev, devlist);
|
||||
|
||||
if (h->video_dev[SRAM_CH09]
|
||||
&& h->video_dev[SRAM_CH09]->minor == minor) {
|
||||
dev = h;
|
||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
}
|
||||
}
|
||||
|
||||
if (NULL == dev) {
|
||||
unlock_kernel();
|
||||
return -ENODEV;
|
||||
}
|
||||
enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
|
||||
printk("open minor=%d type=%s\n", minor, v4l2_type_names[type]);
|
||||
|
||||
/* allocate + initialize per filehandle data */
|
||||
fh = kzalloc(sizeof(*fh), GFP_KERNEL);
|
||||
if (NULL == fh) {
|
||||
unlock_kernel();
|
||||
if (NULL == fh)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
lock_kernel();
|
||||
|
||||
file->private_data = fh;
|
||||
fh->dev = dev;
|
||||
|
||||
Reference in New Issue
Block a user