mirror of
https://github.com/ukui/kernel.git
synced 2026-03-09 10:07:04 -07:00
[media] media/pci: convert drivers to use the new vb2_queue dev field
Stop using alloc_ctx and just fill in the device pointer. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Cc: Federico Vaga <federico.vaga@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
committed by
Mauro Carvalho Chehab
parent
0e2f511894
commit
2bc46b3ad3
@@ -691,17 +691,10 @@ static int cobalt_probe(struct pci_dev *pci_dev,
|
||||
cobalt->pci_dev = pci_dev;
|
||||
cobalt->instance = i;
|
||||
|
||||
cobalt->alloc_ctx = vb2_dma_sg_init_ctx(&pci_dev->dev);
|
||||
if (IS_ERR(cobalt->alloc_ctx)) {
|
||||
kfree(cobalt);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
retval = v4l2_device_register(&pci_dev->dev, &cobalt->v4l2_dev);
|
||||
if (retval) {
|
||||
pr_err("cobalt: v4l2_device_register of card %d failed\n",
|
||||
cobalt->instance);
|
||||
vb2_dma_sg_cleanup_ctx(cobalt->alloc_ctx);
|
||||
kfree(cobalt);
|
||||
return retval;
|
||||
}
|
||||
@@ -782,7 +775,6 @@ err:
|
||||
cobalt_err("error %d on initialization\n", retval);
|
||||
|
||||
v4l2_device_unregister(&cobalt->v4l2_dev);
|
||||
vb2_dma_sg_cleanup_ctx(cobalt->alloc_ctx);
|
||||
kfree(cobalt);
|
||||
return retval;
|
||||
}
|
||||
@@ -818,7 +810,6 @@ static void cobalt_remove(struct pci_dev *pci_dev)
|
||||
cobalt_info("removed cobalt card\n");
|
||||
|
||||
v4l2_device_unregister(v4l2_dev);
|
||||
vb2_dma_sg_cleanup_ctx(cobalt->alloc_ctx);
|
||||
kfree(cobalt);
|
||||
}
|
||||
|
||||
|
||||
@@ -262,7 +262,6 @@ struct cobalt {
|
||||
int instance;
|
||||
struct pci_dev *pci_dev;
|
||||
struct v4l2_device v4l2_dev;
|
||||
void *alloc_ctx;
|
||||
|
||||
void __iomem *bar0, *bar1;
|
||||
|
||||
|
||||
@@ -54,7 +54,6 @@ static int cobalt_queue_setup(struct vb2_queue *q,
|
||||
*num_buffers = 3;
|
||||
if (*num_buffers > NR_BUFS)
|
||||
*num_buffers = NR_BUFS;
|
||||
alloc_ctxs[0] = s->cobalt->alloc_ctx;
|
||||
if (*num_planes)
|
||||
return sizes[0] < size ? -EINVAL : 0;
|
||||
*num_planes = 1;
|
||||
@@ -1224,6 +1223,7 @@ static int cobalt_node_register(struct cobalt *cobalt, int node)
|
||||
q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
|
||||
q->min_buffers_needed = 2;
|
||||
q->lock = &s->lock;
|
||||
q->dev = &cobalt->pci_dev->dev;
|
||||
vdev->queue = q;
|
||||
|
||||
video_set_drvdata(vdev, s);
|
||||
|
||||
@@ -1148,7 +1148,6 @@ static int queue_setup(struct vb2_queue *q,
|
||||
dev->ts1.ts_packet_count = mpeglines;
|
||||
*num_planes = 1;
|
||||
sizes[0] = mpeglinesize * mpeglines;
|
||||
alloc_ctxs[0] = dev->alloc_ctx;
|
||||
*num_buffers = mpegbufs;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2005,14 +2005,9 @@ static int cx23885_initdev(struct pci_dev *pci_dev,
|
||||
err = pci_set_dma_mask(pci_dev, 0xffffffff);
|
||||
if (err) {
|
||||
printk("%s/0: Oops: no 32bit PCI DMA ???\n", dev->name);
|
||||
goto fail_context;
|
||||
goto fail_ctrl;
|
||||
}
|
||||
|
||||
dev->alloc_ctx = vb2_dma_sg_init_ctx(&pci_dev->dev);
|
||||
if (IS_ERR(dev->alloc_ctx)) {
|
||||
err = PTR_ERR(dev->alloc_ctx);
|
||||
goto fail_context;
|
||||
}
|
||||
err = request_irq(pci_dev->irq, cx23885_irq,
|
||||
IRQF_SHARED, dev->name, dev);
|
||||
if (err < 0) {
|
||||
@@ -2041,8 +2036,6 @@ static int cx23885_initdev(struct pci_dev *pci_dev,
|
||||
return 0;
|
||||
|
||||
fail_irq:
|
||||
vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
|
||||
fail_context:
|
||||
cx23885_dev_unregister(dev);
|
||||
fail_ctrl:
|
||||
v4l2_ctrl_handler_free(hdl);
|
||||
@@ -2068,7 +2061,6 @@ static void cx23885_finidev(struct pci_dev *pci_dev)
|
||||
pci_disable_device(pci_dev);
|
||||
|
||||
cx23885_dev_unregister(dev);
|
||||
vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
|
||||
v4l2_ctrl_handler_free(&dev->ctrl_handler);
|
||||
v4l2_device_unregister(v4l2_dev);
|
||||
kfree(dev);
|
||||
|
||||
@@ -102,7 +102,6 @@ static int queue_setup(struct vb2_queue *q,
|
||||
port->ts_packet_count = 32;
|
||||
*num_planes = 1;
|
||||
sizes[0] = port->ts_packet_size * port->ts_packet_count;
|
||||
alloc_ctxs[0] = port->dev->alloc_ctx;
|
||||
*num_buffers = 32;
|
||||
return 0;
|
||||
}
|
||||
@@ -2397,6 +2396,7 @@ int cx23885_dvb_register(struct cx23885_tsport *port)
|
||||
q->mem_ops = &vb2_dma_sg_memops;
|
||||
q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
|
||||
q->lock = &dev->lock;
|
||||
q->dev = &dev->pci->dev;
|
||||
|
||||
err = vb2_queue_init(q);
|
||||
if (err < 0)
|
||||
|
||||
@@ -131,7 +131,6 @@ static int queue_setup(struct vb2_queue *q,
|
||||
lines = VBI_NTSC_LINE_COUNT;
|
||||
*num_planes = 1;
|
||||
sizes[0] = lines * VBI_LINE_LENGTH * 2;
|
||||
alloc_ctxs[0] = dev->alloc_ctx;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -341,7 +341,6 @@ static int queue_setup(struct vb2_queue *q,
|
||||
|
||||
*num_planes = 1;
|
||||
sizes[0] = (dev->fmt->depth * dev->width * dev->height) >> 3;
|
||||
alloc_ctxs[0] = dev->alloc_ctx;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1268,6 +1267,7 @@ int cx23885_video_register(struct cx23885_dev *dev)
|
||||
q->mem_ops = &vb2_dma_sg_memops;
|
||||
q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
|
||||
q->lock = &dev->lock;
|
||||
q->dev = &dev->pci->dev;
|
||||
|
||||
err = vb2_queue_init(q);
|
||||
if (err < 0)
|
||||
@@ -1284,6 +1284,7 @@ int cx23885_video_register(struct cx23885_dev *dev)
|
||||
q->mem_ops = &vb2_dma_sg_memops;
|
||||
q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
|
||||
q->lock = &dev->lock;
|
||||
q->dev = &dev->pci->dev;
|
||||
|
||||
err = vb2_queue_init(q);
|
||||
if (err < 0)
|
||||
|
||||
@@ -430,7 +430,6 @@ struct cx23885_dev {
|
||||
struct vb2_queue vb2_vidq;
|
||||
struct cx23885_dmaqueue vbiq;
|
||||
struct vb2_queue vb2_vbiq;
|
||||
void *alloc_ctx;
|
||||
|
||||
spinlock_t slock;
|
||||
|
||||
|
||||
@@ -1301,15 +1301,10 @@ static int cx25821_initdev(struct pci_dev *pci_dev,
|
||||
|
||||
goto fail_unregister_device;
|
||||
}
|
||||
dev->alloc_ctx = vb2_dma_sg_init_ctx(&pci_dev->dev);
|
||||
if (IS_ERR(dev->alloc_ctx)) {
|
||||
err = PTR_ERR(dev->alloc_ctx);
|
||||
goto fail_unregister_pci;
|
||||
}
|
||||
|
||||
err = cx25821_dev_setup(dev);
|
||||
if (err)
|
||||
goto fail_free_ctx;
|
||||
goto fail_unregister_pci;
|
||||
|
||||
/* print pci info */
|
||||
pci_read_config_byte(pci_dev, PCI_CLASS_REVISION, &dev->pci_rev);
|
||||
@@ -1340,8 +1335,6 @@ fail_irq:
|
||||
pr_info("cx25821_initdev() can't get IRQ !\n");
|
||||
cx25821_dev_unregister(dev);
|
||||
|
||||
fail_free_ctx:
|
||||
vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
|
||||
fail_unregister_pci:
|
||||
pci_disable_device(pci_dev);
|
||||
fail_unregister_device:
|
||||
@@ -1365,7 +1358,6 @@ static void cx25821_finidev(struct pci_dev *pci_dev)
|
||||
free_irq(pci_dev->irq, dev);
|
||||
|
||||
cx25821_dev_unregister(dev);
|
||||
vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
|
||||
v4l2_device_unregister(v4l2_dev);
|
||||
kfree(dev);
|
||||
}
|
||||
|
||||
@@ -148,8 +148,6 @@ static int cx25821_queue_setup(struct vb2_queue *q,
|
||||
struct cx25821_channel *chan = q->drv_priv;
|
||||
unsigned size = (chan->fmt->depth * chan->width * chan->height) >> 3;
|
||||
|
||||
alloc_ctxs[0] = chan->dev->alloc_ctx;
|
||||
|
||||
if (*num_planes)
|
||||
return sizes[0] < size ? -EINVAL : 0;
|
||||
|
||||
@@ -759,6 +757,7 @@ int cx25821_video_register(struct cx25821_dev *dev)
|
||||
q->mem_ops = &vb2_dma_sg_memops;
|
||||
q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
|
||||
q->lock = &dev->lock;
|
||||
q->dev = &dev->pci->dev;
|
||||
|
||||
if (!is_output) {
|
||||
err = vb2_queue_init(q);
|
||||
|
||||
@@ -249,7 +249,6 @@ struct cx25821_dev {
|
||||
int hwrevision;
|
||||
/* used by cx25821-alsa */
|
||||
struct snd_card *card;
|
||||
void *alloc_ctx;
|
||||
|
||||
u32 clk_freq;
|
||||
|
||||
|
||||
@@ -647,7 +647,6 @@ static int queue_setup(struct vb2_queue *q,
|
||||
dev->ts_packet_size = 188 * 4;
|
||||
dev->ts_packet_count = 32;
|
||||
sizes[0] = dev->ts_packet_size * dev->ts_packet_count;
|
||||
alloc_ctxs[0] = dev->alloc_ctx;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1183,6 +1182,7 @@ static int cx8802_blackbird_probe(struct cx8802_driver *drv)
|
||||
q->mem_ops = &vb2_dma_sg_memops;
|
||||
q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
|
||||
q->lock = &core->lock;
|
||||
q->dev = &dev->pci->dev;
|
||||
|
||||
err = vb2_queue_init(q);
|
||||
if (err < 0)
|
||||
|
||||
@@ -92,7 +92,6 @@ static int queue_setup(struct vb2_queue *q,
|
||||
dev->ts_packet_size = 188 * 4;
|
||||
dev->ts_packet_count = dvb_buf_tscnt;
|
||||
sizes[0] = dev->ts_packet_size * dev->ts_packet_count;
|
||||
alloc_ctxs[0] = dev->alloc_ctx;
|
||||
*num_buffers = dvb_buf_tscnt;
|
||||
return 0;
|
||||
}
|
||||
@@ -1793,6 +1792,7 @@ static int cx8802_dvb_probe(struct cx8802_driver *drv)
|
||||
q->mem_ops = &vb2_dma_sg_memops;
|
||||
q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
|
||||
q->lock = &core->lock;
|
||||
q->dev = &dev->pci->dev;
|
||||
|
||||
err = vb2_queue_init(q);
|
||||
if (err < 0)
|
||||
|
||||
@@ -726,11 +726,6 @@ static int cx8802_probe(struct pci_dev *pci_dev,
|
||||
if (NULL == dev)
|
||||
goto fail_core;
|
||||
dev->pci = pci_dev;
|
||||
dev->alloc_ctx = vb2_dma_sg_init_ctx(&pci_dev->dev);
|
||||
if (IS_ERR(dev->alloc_ctx)) {
|
||||
err = PTR_ERR(dev->alloc_ctx);
|
||||
goto fail_dev;
|
||||
}
|
||||
dev->core = core;
|
||||
|
||||
/* Maintain a reference so cx88-video can query the 8802 device. */
|
||||
@@ -738,7 +733,7 @@ static int cx8802_probe(struct pci_dev *pci_dev,
|
||||
|
||||
err = cx8802_init_common(dev);
|
||||
if (err != 0)
|
||||
goto fail_free;
|
||||
goto fail_dev;
|
||||
|
||||
INIT_LIST_HEAD(&dev->drvlist);
|
||||
mutex_lock(&cx8802_mutex);
|
||||
@@ -749,8 +744,6 @@ static int cx8802_probe(struct pci_dev *pci_dev,
|
||||
request_modules(dev);
|
||||
return 0;
|
||||
|
||||
fail_free:
|
||||
vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
|
||||
fail_dev:
|
||||
kfree(dev);
|
||||
fail_core:
|
||||
@@ -798,7 +791,6 @@ static void cx8802_remove(struct pci_dev *pci_dev)
|
||||
/* common */
|
||||
cx8802_fini_common(dev);
|
||||
cx88_core_put(dev->core,dev->pci);
|
||||
vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
|
||||
kfree(dev);
|
||||
}
|
||||
|
||||
|
||||
@@ -118,7 +118,6 @@ static int queue_setup(struct vb2_queue *q,
|
||||
sizes[0] = VBI_LINE_NTSC_COUNT * VBI_LINE_LENGTH * 2;
|
||||
else
|
||||
sizes[0] = VBI_LINE_PAL_COUNT * VBI_LINE_LENGTH * 2;
|
||||
alloc_ctxs[0] = dev->alloc_ctx;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -438,7 +438,6 @@ static int queue_setup(struct vb2_queue *q,
|
||||
|
||||
*num_planes = 1;
|
||||
sizes[0] = (dev->fmt->depth * core->width * core->height) >> 3;
|
||||
alloc_ctxs[0] = dev->alloc_ctx;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1319,12 +1318,6 @@ static int cx8800_initdev(struct pci_dev *pci_dev,
|
||||
printk("%s/0: Oops: no 32bit PCI DMA ???\n",core->name);
|
||||
goto fail_core;
|
||||
}
|
||||
dev->alloc_ctx = vb2_dma_sg_init_ctx(&pci_dev->dev);
|
||||
if (IS_ERR(dev->alloc_ctx)) {
|
||||
err = PTR_ERR(dev->alloc_ctx);
|
||||
goto fail_core;
|
||||
}
|
||||
|
||||
|
||||
/* initialize driver struct */
|
||||
spin_lock_init(&dev->slock);
|
||||
@@ -1445,6 +1438,7 @@ static int cx8800_initdev(struct pci_dev *pci_dev,
|
||||
q->mem_ops = &vb2_dma_sg_memops;
|
||||
q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
|
||||
q->lock = &core->lock;
|
||||
q->dev = &dev->pci->dev;
|
||||
|
||||
err = vb2_queue_init(q);
|
||||
if (err < 0)
|
||||
@@ -1461,6 +1455,7 @@ static int cx8800_initdev(struct pci_dev *pci_dev,
|
||||
q->mem_ops = &vb2_dma_sg_memops;
|
||||
q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
|
||||
q->lock = &core->lock;
|
||||
q->dev = &dev->pci->dev;
|
||||
|
||||
err = vb2_queue_init(q);
|
||||
if (err < 0)
|
||||
@@ -1530,7 +1525,6 @@ fail_unreg:
|
||||
free_irq(pci_dev->irq, dev);
|
||||
mutex_unlock(&core->lock);
|
||||
fail_core:
|
||||
vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
|
||||
core->v4ldev = NULL;
|
||||
cx88_core_put(core,dev->pci);
|
||||
fail_free:
|
||||
@@ -1564,7 +1558,6 @@ static void cx8800_finidev(struct pci_dev *pci_dev)
|
||||
|
||||
/* free memory */
|
||||
cx88_core_put(core,dev->pci);
|
||||
vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
|
||||
kfree(dev);
|
||||
}
|
||||
|
||||
|
||||
@@ -485,7 +485,6 @@ struct cx8800_dev {
|
||||
/* pci i/o */
|
||||
struct pci_dev *pci;
|
||||
unsigned char pci_rev,pci_lat;
|
||||
void *alloc_ctx;
|
||||
|
||||
const struct cx8800_fmt *fmt;
|
||||
|
||||
@@ -549,7 +548,6 @@ struct cx8802_dev {
|
||||
/* pci i/o */
|
||||
struct pci_dev *pci;
|
||||
unsigned char pci_rev,pci_lat;
|
||||
void *alloc_ctx;
|
||||
|
||||
/* dma queues */
|
||||
struct cx88_dmaqueue mpegq;
|
||||
|
||||
@@ -141,7 +141,6 @@ dt3155_queue_setup(struct vb2_queue *vq,
|
||||
|
||||
if (vq->num_buffers + *nbuffers < 2)
|
||||
*nbuffers = 2 - vq->num_buffers;
|
||||
alloc_ctxs[0] = pd->alloc_ctx;
|
||||
if (*num_planes)
|
||||
return sizes[0] < size ? -EINVAL : 0;
|
||||
*num_planes = 1;
|
||||
@@ -544,21 +543,16 @@ static int dt3155_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
pd->vidq.min_buffers_needed = 2;
|
||||
pd->vidq.gfp_flags = GFP_DMA32;
|
||||
pd->vidq.lock = &pd->mux; /* for locking v4l2_file_operations */
|
||||
pd->vidq.dev = &pdev->dev;
|
||||
pd->vdev.queue = &pd->vidq;
|
||||
err = vb2_queue_init(&pd->vidq);
|
||||
if (err < 0)
|
||||
goto err_v4l2_dev_unreg;
|
||||
pd->alloc_ctx = vb2_dma_contig_init_ctx(&pdev->dev);
|
||||
if (IS_ERR(pd->alloc_ctx)) {
|
||||
dev_err(&pdev->dev, "Can't allocate buffer context");
|
||||
err = PTR_ERR(pd->alloc_ctx);
|
||||
goto err_v4l2_dev_unreg;
|
||||
}
|
||||
spin_lock_init(&pd->lock);
|
||||
pd->config = ACQ_MODE_EVEN;
|
||||
err = pci_enable_device(pdev);
|
||||
if (err)
|
||||
goto err_free_ctx;
|
||||
goto err_v4l2_dev_unreg;
|
||||
err = pci_request_region(pdev, 0, pci_name(pdev));
|
||||
if (err)
|
||||
goto err_pci_disable;
|
||||
@@ -588,8 +582,6 @@ err_free_reg:
|
||||
pci_release_region(pdev, 0);
|
||||
err_pci_disable:
|
||||
pci_disable_device(pdev);
|
||||
err_free_ctx:
|
||||
vb2_dma_contig_cleanup_ctx(pd->alloc_ctx);
|
||||
err_v4l2_dev_unreg:
|
||||
v4l2_device_unregister(&pd->v4l2_dev);
|
||||
return err;
|
||||
@@ -608,7 +600,6 @@ static void dt3155_remove(struct pci_dev *pdev)
|
||||
pci_iounmap(pdev, pd->regs);
|
||||
pci_release_region(pdev, 0);
|
||||
pci_disable_device(pdev);
|
||||
vb2_dma_contig_cleanup_ctx(pd->alloc_ctx);
|
||||
}
|
||||
|
||||
static const struct pci_device_id pci_ids[] = {
|
||||
|
||||
@@ -161,7 +161,6 @@
|
||||
* @vdev: video_device structure
|
||||
* @pdev: pointer to pci_dev structure
|
||||
* @vidq: vb2_queue structure
|
||||
* @alloc_ctx: dma_contig allocation context
|
||||
* @curr_buf: pointer to curren buffer
|
||||
* @mux: mutex to protect the instance
|
||||
* @dmaq: queue for dma buffers
|
||||
@@ -181,7 +180,6 @@ struct dt3155_priv {
|
||||
struct video_device vdev;
|
||||
struct pci_dev *pdev;
|
||||
struct vb2_queue vidq;
|
||||
struct vb2_alloc_ctx *alloc_ctx;
|
||||
struct vb2_v4l2_buffer *curr_buf;
|
||||
struct mutex mux;
|
||||
struct list_head dmaq;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user