Commit ad1ecf8639e51ab8066cd4f37fd36b6b7cbdd8b3
Committed by
Mauro Carvalho Chehab
1 parent
08af245de0
Exists in
master
and in
4 other branches
[media] zoran: remove V4L1 compat code and zoran custom ioctls
All the functionality is now handled through V4L2. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Showing 4 changed files with 4 additions and 500 deletions Side-by-side Diff
Documentation/video4linux/Zoran
... | ... | @@ -322,76 +322,11 @@ |
322 | 322 | |
323 | 323 | 4. Programming interface |
324 | 324 | |
325 | -This driver conforms to video4linux and video4linux2, both can be used to | |
326 | -use the driver. Since video4linux didn't provide adequate calls to fully | |
327 | -use the cards' features, we've introduced several programming extensions, | |
328 | -which are currently officially accepted in the 2.4.x branch of the kernel. | |
329 | -These extensions are known as the v4l/mjpeg extensions. See zoran.h for | |
330 | -details (structs/ioctls). | |
325 | +This driver conforms to video4linux2. Support for V4L1 and for the custom | |
326 | +zoran ioctls has been removed in kernel 2.6.38. | |
331 | 327 | |
332 | -Information - video4linux: | |
333 | -http://linux.bytesex.org/v4l2/API.html | |
334 | -Documentation/video4linux/API.html | |
335 | -/usr/include/linux/videodev.h | |
336 | - | |
337 | -Information - video4linux/mjpeg extensions: | |
338 | -./zoran.h | |
339 | -(also see below) | |
340 | - | |
341 | -Information - video4linux2: | |
342 | -http://linuxtv.org | |
343 | -http://v4l2spec.bytesex.org/ | |
344 | -/usr/include/linux/videodev2.h | |
345 | - | |
346 | -More information on the video4linux/mjpeg extensions, by Serguei | |
347 | -Miridonovi and Rainer Johanni: | |
348 | --- | |
349 | -The ioctls for that interface are as follows: | |
350 | - | |
351 | -BUZIOC_G_PARAMS | |
352 | -BUZIOC_S_PARAMS | |
353 | - | |
354 | -Get and set the parameters of the buz. The user should always do a | |
355 | -BUZIOC_G_PARAMS (with a struct buz_params) to obtain the default | |
356 | -settings, change what he likes and then make a BUZIOC_S_PARAMS call. | |
357 | - | |
358 | -BUZIOC_REQBUFS | |
359 | - | |
360 | -Before being able to capture/playback, the user has to request | |
361 | -the buffers he is wanting to use. Fill the structure | |
362 | -zoran_requestbuffers with the size (recommended: 256*1024) and | |
363 | -the number (recommended 32 up to 256). There are no such restrictions | |
364 | -as for the Video for Linux buffers, you should LEAVE SUFFICIENT | |
365 | -MEMORY for your system however, else strange things will happen .... | |
366 | -On return, the zoran_requestbuffers structure contains number and | |
367 | -size of the actually allocated buffers. | |
368 | -You should use these numbers for doing a mmap of the buffers | |
369 | -into the user space. | |
370 | -The BUZIOC_REQBUFS ioctl also makes it happen, that the next mmap | |
371 | -maps the MJPEG buffer instead of the V4L buffers. | |
372 | - | |
373 | -BUZIOC_QBUF_CAPT | |
374 | -BUZIOC_QBUF_PLAY | |
375 | - | |
376 | -Queue a buffer for capture or playback. The first call also starts | |
377 | -streaming capture. When streaming capture is going on, you may | |
378 | -only queue further buffers or issue syncs until streaming | |
379 | -capture is switched off again with a argument of -1 to | |
380 | -a BUZIOC_QBUF_CAPT/BUZIOC_QBUF_PLAY ioctl. | |
381 | - | |
382 | -BUZIOC_SYNC | |
383 | - | |
384 | -Issue this ioctl when all buffers are queued. This ioctl will | |
385 | -block until the first buffer becomes free for saving its | |
386 | -data to disk (after BUZIOC_QBUF_CAPT) or for reuse (after BUZIOC_QBUF_PLAY). | |
387 | - | |
388 | -BUZIOC_G_STATUS | |
389 | - | |
390 | -Get the status of the input lines (video source connected/norm). | |
391 | - | |
392 | 328 | For programming example, please, look at lavrec.c and lavplay.c code in |
393 | -lavtools-1.2p2 package (URL: http://www.cicese.mx/) | |
394 | -and the 'examples' directory in the original Buz driver distribution. | |
329 | +the MJPEG-tools (http://mjpeg.sf.net/). | |
395 | 330 | |
396 | 331 | Additional notes for software developers: |
397 | 332 | |
... | ... | @@ -402,9 +337,6 @@ |
402 | 337 | standard is "more constant" for current country than geometry |
403 | 338 | settings of a variety of TV capture cards which may work in ITU or |
404 | 339 | square pixel format. |
405 | --- | |
406 | -Please note that lavplay/lavrec are also included in the MJPEG-tools | |
407 | -(http://mjpeg.sf.net/). | |
408 | 340 | |
409 | 341 | =========================== |
410 | 342 |
drivers/media/video/zoran/zoran.h
... | ... | @@ -33,15 +33,6 @@ |
33 | 33 | |
34 | 34 | #include <media/v4l2-device.h> |
35 | 35 | |
36 | -#define ZORAN_VIDMODE_PAL 0 | |
37 | -#define ZORAN_VIDMODE_NTSC 1 | |
38 | -#define ZORAN_VIDMODE_SECAM 2 | |
39 | - | |
40 | -struct zoran_requestbuffers { | |
41 | - unsigned long count; /* Number of buffers for MJPEG grabbing */ | |
42 | - unsigned long size; /* Size PER BUFFER in bytes */ | |
43 | -}; | |
44 | - | |
45 | 36 | struct zoran_sync { |
46 | 37 | unsigned long frame; /* number of buffer that has been free'd */ |
47 | 38 | unsigned long length; /* number of code bytes in buffer (capture only) */ |
48 | 39 | |
... | ... | @@ -49,103 +40,7 @@ |
49 | 40 | struct timeval timestamp; /* timestamp */ |
50 | 41 | }; |
51 | 42 | |
52 | -struct zoran_status { | |
53 | - int input; /* Input channel, has to be set prior to BUZIOC_G_STATUS */ | |
54 | - int signal; /* Returned: 1 if valid video signal detected */ | |
55 | - int norm; /* Returned: ZORAN_VIDMODE_PAL or ZORAN_VIDMODE_NTSC */ | |
56 | - int color; /* Returned: 1 if color signal detected */ | |
57 | -}; | |
58 | 43 | |
59 | -struct zoran_params { | |
60 | - | |
61 | - /* The following parameters can only be queried */ | |
62 | - | |
63 | - int major_version; /* Major version number of driver */ | |
64 | - int minor_version; /* Minor version number of driver */ | |
65 | - | |
66 | - /* Main control parameters */ | |
67 | - | |
68 | - int input; /* Input channel: 0 = Composite, 1 = S-VHS */ | |
69 | - int norm; /* Norm: ZORAN_VIDMODE_PAL or ZORAN_VIDMODE_NTSC */ | |
70 | - int decimation; /* decimation of captured video, | |
71 | - * enlargement of video played back. | |
72 | - * Valid values are 1, 2, 4 or 0. | |
73 | - * 0 is a special value where the user | |
74 | - * has full control over video scaling */ | |
75 | - | |
76 | - /* The following parameters only have to be set if decimation==0, | |
77 | - * for other values of decimation they provide the data how the image is captured */ | |
78 | - | |
79 | - int HorDcm; /* Horizontal decimation: 1, 2 or 4 */ | |
80 | - int VerDcm; /* Vertical decimation: 1 or 2 */ | |
81 | - int TmpDcm; /* Temporal decimation: 1 or 2, | |
82 | - * if TmpDcm==2 in capture every second frame is dropped, | |
83 | - * in playback every frame is played twice */ | |
84 | - int field_per_buff; /* Number of fields per buffer: 1 or 2 */ | |
85 | - int img_x; /* start of image in x direction */ | |
86 | - int img_y; /* start of image in y direction */ | |
87 | - int img_width; /* image width BEFORE decimation, | |
88 | - * must be a multiple of HorDcm*16 */ | |
89 | - int img_height; /* image height BEFORE decimation, | |
90 | - * must be a multiple of VerDcm*8 */ | |
91 | - | |
92 | - /* --- End of parameters for decimation==0 only --- */ | |
93 | - | |
94 | - /* JPEG control parameters */ | |
95 | - | |
96 | - int quality; /* Measure for quality of compressed images. | |
97 | - * Scales linearly with the size of the compressed images. | |
98 | - * Must be beetween 0 and 100, 100 is a compression | |
99 | - * ratio of 1:4 */ | |
100 | - | |
101 | - int odd_even; /* Which field should come first ??? */ | |
102 | - | |
103 | - int APPn; /* Number of APP segment to be written, must be 0..15 */ | |
104 | - int APP_len; /* Length of data in JPEG APPn segment */ | |
105 | - char APP_data[60]; /* Data in the JPEG APPn segment. */ | |
106 | - | |
107 | - int COM_len; /* Length of data in JPEG COM segment */ | |
108 | - char COM_data[60]; /* Data in JPEG COM segment */ | |
109 | - | |
110 | - unsigned long jpeg_markers; /* Which markers should go into the JPEG output. | |
111 | - * Unless you exactly know what you do, leave them untouched. | |
112 | - * Inluding less markers will make the resulting code | |
113 | - * smaller, but there will be fewer applications | |
114 | - * which can read it. | |
115 | - * The presence of the APP and COM marker is | |
116 | - * influenced by APP0_len and COM_len ONLY! */ | |
117 | -#define JPEG_MARKER_DHT (1<<3) /* Define Huffman Tables */ | |
118 | -#define JPEG_MARKER_DQT (1<<4) /* Define Quantization Tables */ | |
119 | -#define JPEG_MARKER_DRI (1<<5) /* Define Restart Interval */ | |
120 | -#define JPEG_MARKER_COM (1<<6) /* Comment segment */ | |
121 | -#define JPEG_MARKER_APP (1<<7) /* App segment, driver will allways use APP0 */ | |
122 | - | |
123 | - int VFIFO_FB; /* Flag for enabling Video Fifo Feedback. | |
124 | - * If this flag is turned on and JPEG decompressing | |
125 | - * is going to the screen, the decompress process | |
126 | - * is stopped every time the Video Fifo is full. | |
127 | - * This enables a smooth decompress to the screen | |
128 | - * but the video output signal will get scrambled */ | |
129 | - | |
130 | - /* Misc */ | |
131 | - | |
132 | - char reserved[312]; /* Makes 512 bytes for this structure */ | |
133 | -}; | |
134 | - | |
135 | -/* | |
136 | -Private IOCTL to set up for displaying MJPEG | |
137 | -*/ | |
138 | -#define BUZIOC_G_PARAMS _IOR ('v', BASE_VIDIOC_PRIVATE+0, struct zoran_params) | |
139 | -#define BUZIOC_S_PARAMS _IOWR('v', BASE_VIDIOC_PRIVATE+1, struct zoran_params) | |
140 | -#define BUZIOC_REQBUFS _IOWR('v', BASE_VIDIOC_PRIVATE+2, struct zoran_requestbuffers) | |
141 | -#define BUZIOC_QBUF_CAPT _IOW ('v', BASE_VIDIOC_PRIVATE+3, int) | |
142 | -#define BUZIOC_QBUF_PLAY _IOW ('v', BASE_VIDIOC_PRIVATE+4, int) | |
143 | -#define BUZIOC_SYNC _IOR ('v', BASE_VIDIOC_PRIVATE+5, struct zoran_sync) | |
144 | -#define BUZIOC_G_STATUS _IOWR('v', BASE_VIDIOC_PRIVATE+6, struct zoran_status) | |
145 | - | |
146 | - | |
147 | -#ifdef __KERNEL__ | |
148 | - | |
149 | 44 | #define MAJOR_VERSION 0 /* driver major version */ |
150 | 45 | #define MINOR_VERSION 10 /* driver minor version */ |
151 | 46 | #define RELEASE_VERSION 0 /* release version */ |
... | ... | @@ -506,8 +401,6 @@ |
506 | 401 | #define btand(dat,adr) btwrite((dat) & btread(adr), adr) |
507 | 402 | #define btor(dat,adr) btwrite((dat) | btread(adr), adr) |
508 | 403 | #define btaor(dat,mask,adr) btwrite((dat) | ((mask) & btread(adr)), adr) |
509 | - | |
510 | -#endif /* __kernel__ */ | |
511 | 404 | |
512 | 405 | #endif |
drivers/media/video/zoran/zoran_card.c
... | ... | @@ -943,7 +943,7 @@ |
943 | 943 | memset(zr->jpg_settings.jpg_comp.COM_data, 0, |
944 | 944 | sizeof(zr->jpg_settings.jpg_comp.COM_data)); |
945 | 945 | zr->jpg_settings.jpg_comp.jpeg_markers = |
946 | - JPEG_MARKER_DHT | JPEG_MARKER_DQT; | |
946 | + V4L2_JPEG_MARKER_DHT | V4L2_JPEG_MARKER_DQT; | |
947 | 947 | i = zoran_check_jpg_settings(zr, &zr->jpg_settings, 0); |
948 | 948 | if (i) |
949 | 949 | dprintk(1, KERN_ERR "%s: %s internal error\n", |
drivers/media/video/zoran/zoran_driver.c
... | ... | @@ -1528,323 +1528,6 @@ |
1528 | 1528 | * ioctl routine |
1529 | 1529 | */ |
1530 | 1530 | |
1531 | -#ifdef CONFIG_VIDEO_V4L1_COMPAT | |
1532 | -static long zoran_default(struct file *file, void *__fh, int cmd, void *arg) | |
1533 | -{ | |
1534 | - struct zoran_fh *fh = __fh; | |
1535 | - struct zoran *zr = fh->zr; | |
1536 | - struct zoran_jpg_settings settings; | |
1537 | - | |
1538 | - switch (cmd) { | |
1539 | - case BUZIOC_G_PARAMS: | |
1540 | - { | |
1541 | - struct zoran_params *bparams = arg; | |
1542 | - | |
1543 | - dprintk(3, KERN_DEBUG "%s: BUZIOC_G_PARAMS\n", ZR_DEVNAME(zr)); | |
1544 | - | |
1545 | - memset(bparams, 0, sizeof(struct zoran_params)); | |
1546 | - bparams->major_version = MAJOR_VERSION; | |
1547 | - bparams->minor_version = MINOR_VERSION; | |
1548 | - | |
1549 | - mutex_lock(&zr->resource_lock); | |
1550 | - | |
1551 | - if (zr->norm & V4L2_STD_NTSC) | |
1552 | - bparams->norm = ZORAN_VIDMODE_NTSC; | |
1553 | - else if (zr->norm & V4L2_STD_SECAM) | |
1554 | - bparams->norm = ZORAN_VIDMODE_SECAM; | |
1555 | - else | |
1556 | - bparams->norm = ZORAN_VIDMODE_PAL; | |
1557 | - | |
1558 | - bparams->input = zr->input; | |
1559 | - | |
1560 | - bparams->decimation = fh->jpg_settings.decimation; | |
1561 | - bparams->HorDcm = fh->jpg_settings.HorDcm; | |
1562 | - bparams->VerDcm = fh->jpg_settings.VerDcm; | |
1563 | - bparams->TmpDcm = fh->jpg_settings.TmpDcm; | |
1564 | - bparams->field_per_buff = fh->jpg_settings.field_per_buff; | |
1565 | - bparams->img_x = fh->jpg_settings.img_x; | |
1566 | - bparams->img_y = fh->jpg_settings.img_y; | |
1567 | - bparams->img_width = fh->jpg_settings.img_width; | |
1568 | - bparams->img_height = fh->jpg_settings.img_height; | |
1569 | - bparams->odd_even = fh->jpg_settings.odd_even; | |
1570 | - | |
1571 | - bparams->quality = fh->jpg_settings.jpg_comp.quality; | |
1572 | - bparams->APPn = fh->jpg_settings.jpg_comp.APPn; | |
1573 | - bparams->APP_len = fh->jpg_settings.jpg_comp.APP_len; | |
1574 | - memcpy(bparams->APP_data, | |
1575 | - fh->jpg_settings.jpg_comp.APP_data, | |
1576 | - sizeof(bparams->APP_data)); | |
1577 | - bparams->COM_len = zr->jpg_settings.jpg_comp.COM_len; | |
1578 | - memcpy(bparams->COM_data, | |
1579 | - fh->jpg_settings.jpg_comp.COM_data, | |
1580 | - sizeof(bparams->COM_data)); | |
1581 | - bparams->jpeg_markers = | |
1582 | - fh->jpg_settings.jpg_comp.jpeg_markers; | |
1583 | - | |
1584 | - mutex_unlock(&zr->resource_lock); | |
1585 | - | |
1586 | - bparams->VFIFO_FB = 0; | |
1587 | - | |
1588 | - return 0; | |
1589 | - } | |
1590 | - | |
1591 | - case BUZIOC_S_PARAMS: | |
1592 | - { | |
1593 | - struct zoran_params *bparams = arg; | |
1594 | - int res = 0; | |
1595 | - | |
1596 | - dprintk(3, KERN_DEBUG "%s: BUZIOC_S_PARAMS\n", ZR_DEVNAME(zr)); | |
1597 | - | |
1598 | - settings.decimation = bparams->decimation; | |
1599 | - settings.HorDcm = bparams->HorDcm; | |
1600 | - settings.VerDcm = bparams->VerDcm; | |
1601 | - settings.TmpDcm = bparams->TmpDcm; | |
1602 | - settings.field_per_buff = bparams->field_per_buff; | |
1603 | - settings.img_x = bparams->img_x; | |
1604 | - settings.img_y = bparams->img_y; | |
1605 | - settings.img_width = bparams->img_width; | |
1606 | - settings.img_height = bparams->img_height; | |
1607 | - settings.odd_even = bparams->odd_even; | |
1608 | - | |
1609 | - settings.jpg_comp.quality = bparams->quality; | |
1610 | - settings.jpg_comp.APPn = bparams->APPn; | |
1611 | - settings.jpg_comp.APP_len = bparams->APP_len; | |
1612 | - memcpy(settings.jpg_comp.APP_data, bparams->APP_data, | |
1613 | - sizeof(bparams->APP_data)); | |
1614 | - settings.jpg_comp.COM_len = bparams->COM_len; | |
1615 | - memcpy(settings.jpg_comp.COM_data, bparams->COM_data, | |
1616 | - sizeof(bparams->COM_data)); | |
1617 | - settings.jpg_comp.jpeg_markers = bparams->jpeg_markers; | |
1618 | - | |
1619 | - mutex_lock(&zr->resource_lock); | |
1620 | - | |
1621 | - if (zr->codec_mode != BUZ_MODE_IDLE) { | |
1622 | - dprintk(1, | |
1623 | - KERN_ERR | |
1624 | - "%s: BUZIOC_S_PARAMS called, but Buz in capture/playback mode\n", | |
1625 | - ZR_DEVNAME(zr)); | |
1626 | - res = -EINVAL; | |
1627 | - goto sparams_unlock_and_return; | |
1628 | - } | |
1629 | - | |
1630 | - /* Check the params first before overwriting our | |
1631 | - * nternal values */ | |
1632 | - if (zoran_check_jpg_settings(zr, &settings, 0)) { | |
1633 | - res = -EINVAL; | |
1634 | - goto sparams_unlock_and_return; | |
1635 | - } | |
1636 | - | |
1637 | - fh->jpg_settings = settings; | |
1638 | -sparams_unlock_and_return: | |
1639 | - mutex_unlock(&zr->resource_lock); | |
1640 | - | |
1641 | - return res; | |
1642 | - } | |
1643 | - | |
1644 | - case BUZIOC_REQBUFS: | |
1645 | - { | |
1646 | - struct zoran_requestbuffers *breq = arg; | |
1647 | - int res = 0; | |
1648 | - | |
1649 | - dprintk(3, | |
1650 | - KERN_DEBUG | |
1651 | - "%s: BUZIOC_REQBUFS - count=%lu, size=%lu\n", | |
1652 | - ZR_DEVNAME(zr), breq->count, breq->size); | |
1653 | - | |
1654 | - /* Enforce reasonable lower and upper limits */ | |
1655 | - if (breq->count < 4) | |
1656 | - breq->count = 4; /* Could be choosen smaller */ | |
1657 | - if (breq->count > jpg_nbufs) | |
1658 | - breq->count = jpg_nbufs; | |
1659 | - breq->size = PAGE_ALIGN(breq->size); | |
1660 | - if (breq->size < 8192) | |
1661 | - breq->size = 8192; /* Arbitrary */ | |
1662 | - /* breq->size is limited by 1 page for the stat_com | |
1663 | - * tables to a Maximum of 2 MB */ | |
1664 | - if (breq->size > jpg_bufsize) | |
1665 | - breq->size = jpg_bufsize; | |
1666 | - | |
1667 | - mutex_lock(&zr->resource_lock); | |
1668 | - | |
1669 | - if (fh->buffers.allocated) { | |
1670 | - dprintk(1, | |
1671 | - KERN_ERR | |
1672 | - "%s: BUZIOC_REQBUFS - buffers already allocated\n", | |
1673 | - ZR_DEVNAME(zr)); | |
1674 | - res = -EBUSY; | |
1675 | - goto jpgreqbuf_unlock_and_return; | |
1676 | - } | |
1677 | - | |
1678 | - /* The next mmap will map the MJPEG buffers - could | |
1679 | - * also be *_PLAY, but it doesn't matter here */ | |
1680 | - map_mode_jpg(fh, 0); | |
1681 | - fh->buffers.num_buffers = breq->count; | |
1682 | - fh->buffers.buffer_size = breq->size; | |
1683 | - | |
1684 | - if (jpg_fbuffer_alloc(fh)) { | |
1685 | - res = -ENOMEM; | |
1686 | - goto jpgreqbuf_unlock_and_return; | |
1687 | - } | |
1688 | - | |
1689 | -jpgreqbuf_unlock_and_return: | |
1690 | - mutex_unlock(&zr->resource_lock); | |
1691 | - | |
1692 | - return res; | |
1693 | - } | |
1694 | - | |
1695 | - case BUZIOC_QBUF_CAPT: | |
1696 | - { | |
1697 | - int *frame = arg, res; | |
1698 | - | |
1699 | - dprintk(3, KERN_DEBUG "%s: BUZIOC_QBUF_CAPT - frame=%d\n", | |
1700 | - ZR_DEVNAME(zr), *frame); | |
1701 | - | |
1702 | - mutex_lock(&zr->resource_lock); | |
1703 | - res = jpg_qbuf(fh, *frame, BUZ_MODE_MOTION_COMPRESS); | |
1704 | - mutex_unlock(&zr->resource_lock); | |
1705 | - | |
1706 | - return res; | |
1707 | - } | |
1708 | - | |
1709 | - case BUZIOC_QBUF_PLAY: | |
1710 | - { | |
1711 | - int *frame = arg, res; | |
1712 | - | |
1713 | - dprintk(3, KERN_DEBUG "%s: BUZIOC_QBUF_PLAY - frame=%d\n", | |
1714 | - ZR_DEVNAME(zr), *frame); | |
1715 | - | |
1716 | - mutex_lock(&zr->resource_lock); | |
1717 | - res = jpg_qbuf(fh, *frame, BUZ_MODE_MOTION_DECOMPRESS); | |
1718 | - mutex_unlock(&zr->resource_lock); | |
1719 | - | |
1720 | - return res; | |
1721 | - } | |
1722 | - | |
1723 | - case BUZIOC_SYNC: | |
1724 | - { | |
1725 | - struct zoran_sync *bsync = arg; | |
1726 | - int res; | |
1727 | - | |
1728 | - dprintk(3, KERN_DEBUG "%s: BUZIOC_SYNC\n", ZR_DEVNAME(zr)); | |
1729 | - | |
1730 | - mutex_lock(&zr->resource_lock); | |
1731 | - | |
1732 | - if (fh->map_mode == ZORAN_MAP_MODE_RAW) { | |
1733 | - dprintk(2, KERN_WARNING | |
1734 | - "%s: %s - not in jpg capture mode\n", | |
1735 | - ZR_DEVNAME(zr), __func__); | |
1736 | - res = -EINVAL; | |
1737 | - } else { | |
1738 | - res = jpg_sync(fh, bsync); | |
1739 | - } | |
1740 | - mutex_unlock(&zr->resource_lock); | |
1741 | - | |
1742 | - return res; | |
1743 | - } | |
1744 | - | |
1745 | - case BUZIOC_G_STATUS: | |
1746 | - { | |
1747 | - struct zoran_status *bstat = arg; | |
1748 | - int status = 0, res = 0; | |
1749 | - v4l2_std_id norm; | |
1750 | - | |
1751 | - dprintk(3, KERN_DEBUG "%s: BUZIOC_G_STATUS\n", ZR_DEVNAME(zr)); | |
1752 | - | |
1753 | - if (zr->codec_mode != BUZ_MODE_IDLE) { | |
1754 | - dprintk(1, | |
1755 | - KERN_ERR | |
1756 | - "%s: BUZIOC_G_STATUS called but Buz in capture/playback mode\n", | |
1757 | - ZR_DEVNAME(zr)); | |
1758 | - return -EINVAL; | |
1759 | - } | |
1760 | - | |
1761 | - mutex_lock(&zr->resource_lock); | |
1762 | - | |
1763 | - if (zr->codec_mode != BUZ_MODE_IDLE) { | |
1764 | - dprintk(1, | |
1765 | - KERN_ERR | |
1766 | - "%s: BUZIOC_G_STATUS called, but Buz in capture/playback mode\n", | |
1767 | - ZR_DEVNAME(zr)); | |
1768 | - res = -EINVAL; | |
1769 | - goto gstat_unlock_and_return; | |
1770 | - } | |
1771 | - | |
1772 | - decoder_call(zr, video, s_routing, | |
1773 | - zr->card.input[bstat->input].muxsel, 0, 0); | |
1774 | - | |
1775 | - /* sleep 1 second */ | |
1776 | - ssleep(1); | |
1777 | - | |
1778 | - /* Get status of video decoder */ | |
1779 | - decoder_call(zr, video, querystd, &norm); | |
1780 | - decoder_call(zr, video, g_input_status, &status); | |
1781 | - | |
1782 | - /* restore previous input and norm */ | |
1783 | - decoder_call(zr, video, s_routing, | |
1784 | - zr->card.input[zr->input].muxsel, 0, 0); | |
1785 | -gstat_unlock_and_return: | |
1786 | - mutex_unlock(&zr->resource_lock); | |
1787 | - | |
1788 | - if (!res) { | |
1789 | - bstat->signal = | |
1790 | - (status & V4L2_IN_ST_NO_SIGNAL) ? 0 : 1; | |
1791 | - if (norm & V4L2_STD_NTSC) | |
1792 | - bstat->norm = ZORAN_VIDMODE_NTSC; | |
1793 | - else if (norm & V4L2_STD_SECAM) | |
1794 | - bstat->norm = ZORAN_VIDMODE_SECAM; | |
1795 | - else | |
1796 | - bstat->norm = ZORAN_VIDMODE_PAL; | |
1797 | - | |
1798 | - bstat->color = | |
1799 | - (status & V4L2_IN_ST_NO_COLOR) ? 0 : 1; | |
1800 | - } | |
1801 | - | |
1802 | - return res; | |
1803 | - } | |
1804 | - | |
1805 | - default: | |
1806 | - return -EINVAL; | |
1807 | - } | |
1808 | -} | |
1809 | - | |
1810 | -static int zoran_vidiocgmbuf(struct file *file, void *__fh, struct video_mbuf *vmbuf) | |
1811 | -{ | |
1812 | - struct zoran_fh *fh = __fh; | |
1813 | - struct zoran *zr = fh->zr; | |
1814 | - int i, res = 0; | |
1815 | - | |
1816 | - | |
1817 | - mutex_lock(&zr->resource_lock); | |
1818 | - | |
1819 | - if (fh->buffers.allocated) { | |
1820 | - dprintk(1, | |
1821 | - KERN_ERR | |
1822 | - "%s: VIDIOCGMBUF - buffers already allocated\n", | |
1823 | - ZR_DEVNAME(zr)); | |
1824 | - res = -EINVAL; | |
1825 | - goto v4l1reqbuf_unlock_and_return; | |
1826 | - } | |
1827 | - | |
1828 | - /* The next mmap will map the V4L buffers */ | |
1829 | - map_mode_raw(fh); | |
1830 | - | |
1831 | - if (v4l_fbuffer_alloc(fh)) { | |
1832 | - res = -ENOMEM; | |
1833 | - goto v4l1reqbuf_unlock_and_return; | |
1834 | - } | |
1835 | - | |
1836 | - vmbuf->size = fh->buffers.num_buffers * fh->buffers.buffer_size; | |
1837 | - vmbuf->frames = fh->buffers.num_buffers; | |
1838 | - for (i = 0; i < vmbuf->frames; i++) | |
1839 | - vmbuf->offsets[i] = i * fh->buffers.buffer_size; | |
1840 | - | |
1841 | -v4l1reqbuf_unlock_and_return: | |
1842 | - mutex_unlock(&zr->resource_lock); | |
1843 | - | |
1844 | - return res; | |
1845 | -} | |
1846 | -#endif | |
1847 | - | |
1848 | 1531 | static int zoran_querycap(struct file *file, void *__fh, struct v4l2_capability *cap) |
1849 | 1532 | { |
1850 | 1533 | struct zoran_fh *fh = __fh; |
... | ... | @@ -3364,10 +3047,6 @@ |
3364 | 3047 | .vidioc_queryctrl = zoran_queryctrl, |
3365 | 3048 | .vidioc_s_ctrl = zoran_s_ctrl, |
3366 | 3049 | .vidioc_g_ctrl = zoran_g_ctrl, |
3367 | -#ifdef CONFIG_VIDEO_V4L1_COMPAT | |
3368 | - .vidioc_default = zoran_default, | |
3369 | - .vidiocgmbuf = zoran_vidiocgmbuf, | |
3370 | -#endif | |
3371 | 3050 | }; |
3372 | 3051 | |
3373 | 3052 | /* please use zr->resource_lock consistently and kill this wrapper */ |