aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/video/gspca/gspca.c53
1 files changed, 1 insertions, 52 deletions
diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c
index 03a24510d66f..69b1058daeeb 100644
--- a/drivers/media/video/gspca/gspca.c
+++ b/drivers/media/video/gspca/gspca.c
@@ -1724,49 +1724,6 @@ static int vidioc_s_parm(struct file *filp, void *priv,
1724 return 0; 1724 return 0;
1725} 1725}
1726 1726
1727#ifdef CONFIG_VIDEO_V4L1_COMPAT
1728static int vidiocgmbuf(struct file *file, void *priv,
1729 struct video_mbuf *mbuf)
1730{
1731 struct gspca_dev *gspca_dev = file->private_data;
1732 int i;
1733
1734 PDEBUG(D_STREAM, "cgmbuf");
1735 if (gspca_dev->nframes == 0) {
1736 int ret;
1737
1738 {
1739 struct v4l2_format fmt;
1740
1741 fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
1742 i = gspca_dev->cam.nmodes - 1; /* highest mode */
1743 fmt.fmt.pix.width = gspca_dev->cam.cam_mode[i].width;
1744 fmt.fmt.pix.height = gspca_dev->cam.cam_mode[i].height;
1745 fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_BGR24;
1746 ret = vidioc_s_fmt_vid_cap(file, priv, &fmt);
1747 if (ret != 0)
1748 return ret;
1749 }
1750 {
1751 struct v4l2_requestbuffers rb;
1752
1753 memset(&rb, 0, sizeof rb);
1754 rb.count = 4;
1755 rb.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
1756 rb.memory = V4L2_MEMORY_MMAP;
1757 ret = vidioc_reqbufs(file, priv, &rb);
1758 if (ret != 0)
1759 return ret;
1760 }
1761 }
1762 mbuf->frames = gspca_dev->nframes;
1763 mbuf->size = gspca_dev->frsz * gspca_dev->nframes;
1764 for (i = 0; i < mbuf->frames; i++)
1765 mbuf->offsets[i] = gspca_dev->frame[i].v4l2_buf.m.offset;
1766 return 0;
1767}
1768#endif
1769
1770static int dev_mmap(struct file *file, struct vm_area_struct *vma) 1727static int dev_mmap(struct file *file, struct vm_area_struct *vma)
1771{ 1728{
1772 struct gspca_dev *gspca_dev = file->private_data; 1729 struct gspca_dev *gspca_dev = file->private_data;
@@ -1807,12 +1764,7 @@ static int dev_mmap(struct file *file, struct vm_area_struct *vma)
1807 ret = -EINVAL; 1764 ret = -EINVAL;
1808 goto out; 1765 goto out;
1809 } 1766 }
1810#ifdef CONFIG_VIDEO_V4L1_COMPAT 1767 if (size != frame->v4l2_buf.length) {
1811 /* v4l1 maps all the buffers */
1812 if (i != 0
1813 || size != frame->v4l2_buf.length * gspca_dev->nframes)
1814#endif
1815 if (size != frame->v4l2_buf.length) {
1816 PDEBUG(D_STREAM, "mmap bad size"); 1768 PDEBUG(D_STREAM, "mmap bad size");
1817 ret = -EINVAL; 1769 ret = -EINVAL;
1818 goto out; 1770 goto out;
@@ -2204,9 +2156,6 @@ static const struct v4l2_ioctl_ops dev_ioctl_ops = {
2204 .vidioc_s_register = vidioc_s_register, 2156 .vidioc_s_register = vidioc_s_register,
2205#endif 2157#endif
2206 .vidioc_g_chip_ident = vidioc_g_chip_ident, 2158 .vidioc_g_chip_ident = vidioc_g_chip_ident,
2207#ifdef CONFIG_VIDEO_V4L1_COMPAT
2208 .vidiocgmbuf = vidiocgmbuf,
2209#endif
2210}; 2159};
2211 2160
2212static struct video_device gspca_template = { 2161static struct video_device gspca_template = {