diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-04-17 20:38:38 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-04-24 13:09:41 -0400 |
commit | 52284c3e47bf502aaff72ab2ede509193b628b1b (patch) | |
tree | fc7d554be7fa0cc2872c585200027eceb17c0d7a /drivers/media/video/em28xx/em28xx-dvb.c | |
parent | bdfbf9520372daf2b4d6941474c92310848ccb27 (diff) |
V4L/DVB (7599): em28xx-dvb: videobuf callbacks are waiting for em28xx_fh
Thanks to Devin Heitmueller <devin.heitmueller@gmail.com> for pointing
this issue.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/em28xx/em28xx-dvb.c')
-rw-r--r-- | drivers/media/video/em28xx/em28xx-dvb.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/media/video/em28xx/em28xx-dvb.c b/drivers/media/video/em28xx/em28xx-dvb.c index cbc155d302c8..d3d52972cd84 100644 --- a/drivers/media/video/em28xx/em28xx-dvb.c +++ b/drivers/media/video/em28xx/em28xx-dvb.c | |||
@@ -45,6 +45,7 @@ buffer_setup(struct videobuf_queue *vq, unsigned int *count, unsigned int *size) | |||
45 | struct em28xx_fh *fh = vq->priv_data; | 45 | struct em28xx_fh *fh = vq->priv_data; |
46 | struct em28xx *dev = fh->dev; | 46 | struct em28xx *dev = fh->dev; |
47 | 47 | ||
48 | /* FIXME: The better would be to allocate a smaller buffer */ | ||
48 | *size = 16 * fh->dev->width * fh->dev->height >> 3; | 49 | *size = 16 * fh->dev->width * fh->dev->height >> 3; |
49 | if (0 == *count) | 50 | if (0 == *count) |
50 | *count = EM28XX_DEF_BUF; | 51 | *count = EM28XX_DEF_BUF; |
@@ -109,11 +110,16 @@ static int dvb_init(struct em28xx *dev) | |||
109 | 110 | ||
110 | dev->qops->buf_setup = buffer_setup; | 111 | dev->qops->buf_setup = buffer_setup; |
111 | 112 | ||
113 | /* FIXME: Do we need more initialization here? */ | ||
114 | memset(&dev->dvb_fh, 0, sizeof (dev->dvb_fh)); | ||
115 | dev->dvb_fh.dev = dev; | ||
116 | dev->dvb_fh.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; | ||
117 | |||
112 | videobuf_queue_vmalloc_init(&dev->dvb.dvbq, dev->qops, | 118 | videobuf_queue_vmalloc_init(&dev->dvb.dvbq, dev->qops, |
113 | &dev->udev->dev, &dev->slock, | 119 | &dev->udev->dev, &dev->slock, |
114 | V4L2_BUF_TYPE_VIDEO_CAPTURE, | 120 | V4L2_BUF_TYPE_VIDEO_CAPTURE, |
115 | V4L2_FIELD_ALTERNATE, | 121 | V4L2_FIELD_ALTERNATE, |
116 | sizeof(struct em28xx_buffer), dev); | 122 | sizeof(struct em28xx_buffer), &dev->dvb_fh); |
117 | 123 | ||
118 | /* init frontend */ | 124 | /* init frontend */ |
119 | switch (dev->model) { | 125 | switch (dev->model) { |