• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/media/video/zoran/

Lines Matching refs:fh

190 static void v4l_fbuffer_free(struct zoran_fh *fh);
191 static void jpg_fbuffer_free(struct zoran_fh *fh);
194 static void map_mode_raw(struct zoran_fh *fh)
196 fh->map_mode = ZORAN_MAP_MODE_RAW;
197 fh->buffers.buffer_size = v4l_bufsize;
198 fh->buffers.num_buffers = v4l_nbufs;
200 static void map_mode_jpg(struct zoran_fh *fh, int play)
202 fh->map_mode = play ? ZORAN_MAP_MODE_JPG_PLAY : ZORAN_MAP_MODE_JPG_REC;
203 fh->buffers.buffer_size = jpg_bufsize;
204 fh->buffers.num_buffers = jpg_nbufs;
217 static int v4l_fbuffer_alloc(struct zoran_fh *fh)
219 struct zoran *zr = fh->zr;
223 for (i = 0; i < fh->buffers.num_buffers; i++) {
224 if (fh->buffers.buffer[i].v4l.fbuffer)
231 mem = kmalloc(fh->buffers.buffer_size,
238 v4l_fbuffer_free(fh);
241 fh->buffers.buffer[i].v4l.fbuffer = mem;
242 fh->buffers.buffer[i].v4l.fbuffer_phys = virt_to_phys(mem);
243 fh->buffers.buffer[i].v4l.fbuffer_bus = virt_to_bus(mem);
244 for (off = 0; off < fh->buffers.buffer_size;
254 fh->buffers.allocated = 1;
260 static void v4l_fbuffer_free(struct zoran_fh *fh)
262 struct zoran *zr = fh->zr;
268 for (i = 0; i < fh->buffers.num_buffers; i++) {
269 if (!fh->buffers.buffer[i].v4l.fbuffer)
272 mem = fh->buffers.buffer[i].v4l.fbuffer;
273 for (off = 0; off < fh->buffers.buffer_size;
276 kfree(fh->buffers.buffer[i].v4l.fbuffer);
277 fh->buffers.buffer[i].v4l.fbuffer = NULL;
280 fh->buffers.allocated = 0;
311 static int jpg_fbuffer_alloc(struct zoran_fh *fh)
313 struct zoran *zr = fh->zr;
317 for (i = 0; i < fh->buffers.num_buffers; i++) {
318 if (fh->buffers.buffer[i].jpg.frag_tab)
332 jpg_fbuffer_free(fh);
335 fh->buffers.buffer[i].jpg.frag_tab = (__le32 *)mem;
336 fh->buffers.buffer[i].jpg.frag_tab_bus = virt_to_bus(mem);
338 if (fh->buffers.need_contiguous) {
339 mem = kmalloc(fh->buffers.buffer_size, GFP_KERNEL);
345 jpg_fbuffer_free(fh);
348 fh->buffers.buffer[i].jpg.frag_tab[0] =
350 fh->buffers.buffer[i].jpg.frag_tab[1] =
351 cpu_to_le32((fh->buffers.buffer_size >> 1) | 1);
352 for (off = 0; off < fh->buffers.buffer_size; off += PAGE_SIZE)
356 for (j = 0; j < fh->buffers.buffer_size / PAGE_SIZE; j++) {
363 jpg_fbuffer_free(fh);
367 fh->buffers.buffer[i].jpg.frag_tab[2 * j] =
369 fh->buffers.buffer[i].jpg.frag_tab[2 * j + 1] =
374 fh->buffers.buffer[i].jpg.frag_tab[2 * j - 1] |= cpu_to_le32(1);
381 (fh->buffers.num_buffers * fh->buffers.buffer_size) >> 10);
383 fh->buffers.allocated = 1;
389 static void jpg_fbuffer_free(struct zoran_fh *fh)
391 struct zoran *zr = fh->zr;
399 for (i = 0, buffer = &fh->buffers.buffer[0];
400 i < fh->buffers.num_buffers; i++, buffer++) {
404 if (fh->buffers.need_contiguous) {
409 for (off = 0; off < fh->buffers.buffer_size; off += PAGE_SIZE)
416 for (j = 0; j < fh->buffers.buffer_size / PAGE_SIZE; j++) {
432 fh->buffers.allocated = 0;
440 zoran_v4l_set_format (struct zoran_fh *fh,
445 struct zoran *zr = fh->zr;
462 if (height * width * bpp > fh->buffers.buffer_size) {
466 ZR_DEVNAME(zr), __func__, fh->buffers.buffer_size >> 10);
480 fh->v4l_settings.width = width;
481 fh->v4l_settings.height = height;
482 fh->v4l_settings.format = format;
483 fh->v4l_settings.bytesperline = bpp * fh->v4l_settings.width;
488 static int zoran_v4l_queue_frame(struct zoran_fh *fh, int num)
490 struct zoran *zr = fh->zr;
494 if (!fh->buffers.allocated) {
503 if (num >= fh->buffers.num_buffers || num < 0) {
513 if (fh->buffers.active == ZORAN_FREE) {
515 zr->v4l_buffers = fh->buffers;
516 fh->buffers.active = ZORAN_ACTIVE;
532 fh->buffers.active = ZORAN_FREE;
548 fh->v4l_settings.bytesperline *
550 fh->buffers.buffer[num] = zr->v4l_buffers.buffer[num];
558 zr->v4l_buffers.active = fh->buffers.active;
567 static int v4l_sync(struct zoran_fh *fh, int frame)
569 struct zoran *zr = fh->zr;
572 if (fh->buffers.active == ZORAN_FREE) {
581 if (frame >= fh->buffers.num_buffers || frame < 0) {
611 fh->buffers.buffer[frame] = zr->v4l_buffers.buffer[frame];
619 fh->buffers.active = zr->v4l_buffers.active = ZORAN_FREE;
633 static int zoran_jpg_queue_frame(struct zoran_fh *fh, int num,
636 struct zoran *zr = fh->zr;
641 if (!fh->buffers.allocated) {
650 if (num >= fh->buffers.num_buffers || num < 0) {
660 zr->jpg_settings = fh->jpg_settings;
670 if (fh->buffers.active == ZORAN_FREE) {
672 zr->jpg_buffers = fh->buffers;
673 fh->buffers.active = ZORAN_ACTIVE;
702 fh->buffers.buffer[num] = zr->jpg_buffers.buffer[num];
709 fh->buffers.active = ZORAN_FREE;
720 zr->jpg_buffers.active = fh->buffers.active;
725 static int jpg_qbuf(struct zoran_fh *fh, int frame, enum zoran_codec_mode mode)
727 struct zoran *zr = fh->zr;
733 if (fh->buffers.active == ZORAN_FREE) {
740 fh->buffers.active = zr->jpg_buffers.active = ZORAN_FREE;
753 if ((res = zoran_jpg_queue_frame(fh, frame, mode)))
767 static int jpg_sync(struct zoran_fh *fh, struct zoran_sync *bs)
769 struct zoran *zr = fh->zr;
773 if (fh->buffers.active == ZORAN_FREE) {
825 fh->buffers.buffer[frame] = zr->jpg_buffers.buffer[frame];
832 static void zoran_open_init_session(struct zoran_fh *fh)
835 struct zoran *zr = fh->zr;
838 map_mode_raw(fh);
841 fh->overlay_settings = zr->overlay_settings;
842 fh->overlay_settings.is_set = 0;
843 fh->overlay_settings.format = zr->overlay_settings.format;
844 fh->overlay_active = ZORAN_FREE;
847 fh->v4l_settings = zr->v4l_settings;
849 fh->jpg_settings = zr->jpg_settings;
852 memset(&fh->buffers, 0, sizeof(fh->buffers));
854 fh->buffers.buffer[i].state = BUZ_STATE_USER; /* nothing going on */
855 fh->buffers.buffer[i].bs.frame = i;
857 fh->buffers.allocated = 0;
858 fh->buffers.active = ZORAN_FREE;
861 static void zoran_close_end_session(struct zoran_fh *fh)
863 struct zoran *zr = fh->zr;
866 if (fh->overlay_active != ZORAN_FREE) {
867 fh->overlay_active = zr->overlay_active = ZORAN_FREE;
874 if (fh->map_mode == ZORAN_MAP_MODE_RAW) {
876 if (fh->buffers.active != ZORAN_FREE) {
882 zr->v4l_buffers.active = fh->buffers.active = ZORAN_FREE;
887 if (fh->buffers.allocated)
888 v4l_fbuffer_free(fh);
891 if (fh->buffers.active != ZORAN_FREE) {
894 zr->jpg_buffers.active = fh->buffers.active = ZORAN_FREE;
898 if (fh->buffers.allocated)
899 jpg_fbuffer_free(fh);
910 struct zoran_fh *fh;
926 fh = kzalloc(sizeof(struct zoran_fh), GFP_KERNEL);
927 if (!fh) {
937 fh->overlay_mask =
939 if (!fh->overlay_mask) {
963 file->private_data = fh;
964 fh->zr = zr;
965 zoran_open_init_session(fh);
971 kfree(fh);
984 struct zoran_fh *fh = file->private_data;
985 struct zoran *zr = fh->zr;
994 zoran_close_end_session(fh);
1028 kfree(fh->overlay_mask);
1029 kfree(fh);
1059 static int setup_fbuffer(struct zoran_fh *fh,
1066 struct zoran *zr = fh->zr;
1120 static int setup_window(struct zoran_fh *fh, int x, int y, int width, int height,
1123 struct zoran *zr = fh->zr;
1136 if (!fh->overlay_settings.format) {
1175 fh->overlay_settings.x = x;
1176 fh->overlay_settings.y = y;
1177 fh->overlay_settings.width = width;
1178 fh->overlay_settings.height = height;
1179 fh->overlay_settings.clipcount = clipcount;
1191 fh->overlay_active != ZORAN_FREE;
1201 fh->overlay_settings.clipcount = 1;
1203 if (copy_from_user(fh->overlay_mask, bitmap,
1222 write_overlay_mask(fh, vcp, clipcount);
1226 fh->overlay_settings.is_set = 1;
1227 if (fh->overlay_active != ZORAN_FREE &&
1229 zr->overlay_settings = fh->overlay_settings;
1238 static int setup_overlay(struct zoran_fh *fh, int on)
1240 struct zoran *zr = fh->zr;
1243 if ((on && fh->overlay_active != ZORAN_FREE) ||
1244 (!on && fh->overlay_active == ZORAN_FREE))
1249 fh->overlay_active == ZORAN_FREE) {
1257 fh->overlay_active == ZORAN_FREE) {
1266 zr->overlay_active = fh->overlay_active = ZORAN_FREE;
1274 if (!zr->vbuf_base || !fh->overlay_settings.is_set) {
1281 if (!fh->overlay_settings.format) {
1288 zr->overlay_active = fh->overlay_active = ZORAN_LOCKED;
1290 zr->overlay_mask = fh->overlay_mask;
1291 zr->overlay_settings = fh->overlay_settings;
1303 static int zoran_v4l2_buffer_status(struct zoran_fh *fh,
1306 struct zoran *zr = fh->zr;
1311 switch (fh->map_mode) {
1314 if (num < 0 || num >= fh->buffers.num_buffers ||
1315 !fh->buffers.allocated) {
1328 "FAL"[fh->buffers.active], num,
1330 fh->buffers.buffer[num].map ? 'Y' : 'N');
1334 buf->length = fh->buffers.buffer_size;
1337 buf->bytesused = fh->buffers.buffer[num].bs.length;
1338 if (fh->buffers.buffer[num].state == BUZ_STATE_DONE ||
1339 fh->buffers.buffer[num].state == BUZ_STATE_USER) {
1340 buf->sequence = fh->buffers.buffer[num].bs.seq;
1342 buf->timestamp = fh->buffers.buffer[num].bs.timestamp;
1347 if (fh->v4l_settings.height <= BUZ_MAX_HEIGHT / 2)
1358 if (num < 0 || num >= fh->buffers.num_buffers ||
1359 !fh->buffers.allocated) {
1367 buf->type = (fh->map_mode == ZORAN_MAP_MODE_JPG_REC) ?
1370 buf->length = fh->buffers.buffer_size;
1373 if (fh->buffers.buffer[num].state == BUZ_STATE_DONE ||
1374 fh->buffers.buffer[num].state == BUZ_STATE_USER) {
1375 buf->sequence = fh->buffers.buffer[num].bs.seq;
1376 buf->timestamp = fh->buffers.buffer[num].bs.timestamp;
1377 buf->bytesused = fh->buffers.buffer[num].bs.length;
1384 if (fh->jpg_settings.TmpDcm != 1)
1385 buf->field = fh->jpg_settings.odd_even ?
1388 buf->field = fh->jpg_settings.odd_even ?
1398 ZR_DEVNAME(zr), __func__, buf->type, fh->map_mode);
1519 struct zoran_fh *fh = __fh;
1520 struct zoran *zr = fh->zr;
1545 bparams->decimation = fh->jpg_settings.decimation;
1546 bparams->HorDcm = fh->jpg_settings.HorDcm;
1547 bparams->VerDcm = fh->jpg_settings.VerDcm;
1548 bparams->TmpDcm = fh->jpg_settings.TmpDcm;
1549 bparams->field_per_buff = fh->jpg_settings.field_per_buff;
1550 bparams->img_x = fh->jpg_settings.img_x;
1551 bparams->img_y = fh->jpg_settings.img_y;
1552 bparams->img_width = fh->jpg_settings.img_width;
1553 bparams->img_height = fh->jpg_settings.img_height;
1554 bparams->odd_even = fh->jpg_settings.odd_even;
1556 bparams->quality = fh->jpg_settings.jpg_comp.quality;
1557 bparams->APPn = fh->jpg_settings.jpg_comp.APPn;
1558 bparams->APP_len = fh->jpg_settings.jpg_comp.APP_len;
1560 fh->jpg_settings.jpg_comp.APP_data,
1564 fh->jpg_settings.jpg_comp.COM_data,
1567 fh->jpg_settings.jpg_comp.jpeg_markers;
1622 fh->jpg_settings = settings;
1654 if (fh->buffers.allocated) {
1665 map_mode_jpg(fh, 0);
1666 fh->buffers.num_buffers = breq->count;
1667 fh->buffers.buffer_size = breq->size;
1669 if (jpg_fbuffer_alloc(fh)) {
1688 res = jpg_qbuf(fh, *frame, BUZ_MODE_MOTION_COMPRESS);
1702 res = jpg_qbuf(fh, *frame, BUZ_MODE_MOTION_DECOMPRESS);
1717 if (fh->map_mode == ZORAN_MAP_MODE_RAW) {
1723 res = jpg_sync(fh, bsync);
1797 struct zoran_fh *fh = __fh;
1798 struct zoran *zr = fh->zr;
1804 if (fh->buffers.allocated) {
1814 map_mode_raw(fh);
1816 if (v4l_fbuffer_alloc(fh)) {
1821 vmbuf->size = fh->buffers.num_buffers * fh->buffers.buffer_size;
1822 vmbuf->frames = fh->buffers.num_buffers;
1824 vmbuf->offsets[i] = i * fh->buffers.buffer_size;
1835 struct zoran_fh *fh = __fh;
1836 struct zoran *zr = fh->zr;
1871 struct zoran_fh *fh = __fh;
1872 struct zoran *zr = fh->zr;
1880 struct zoran_fh *fh = __fh;
1881 struct zoran *zr = fh->zr;
1889 struct zoran_fh *fh = __fh;
1890 struct zoran *zr = fh->zr;
1898 struct zoran_fh *fh = __fh;
1899 struct zoran *zr = fh->zr;
1903 fmt->fmt.pix.width = fh->jpg_settings.img_width / fh->jpg_settings.HorDcm;
1904 fmt->fmt.pix.height = fh->jpg_settings.img_height * 2 /
1905 (fh->jpg_settings.VerDcm * fh->jpg_settings.TmpDcm);
1906 fmt->fmt.pix.sizeimage = zoran_v4l2_calc_bufsize(&fh->jpg_settings);
1908 if (fh->jpg_settings.TmpDcm == 1)
1909 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ?
1912 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ?
1924 struct zoran_fh *fh = __fh;
1925 struct zoran *zr = fh->zr;
1927 if (fh->map_mode != ZORAN_MAP_MODE_RAW)
1928 return zoran_g_fmt_vid_out(file, fh, fmt);
1931 fmt->fmt.pix.width = fh->v4l_settings.width;
1932 fmt->fmt.pix.height = fh->v4l_settings.height;
1933 fmt->fmt.pix.sizeimage = fh->v4l_settings.bytesperline *
1934 fh->v4l_settings.height;
1935 fmt->fmt.pix.pixelformat = fh->v4l_settings.format->fourcc;
1936 fmt->fmt.pix.colorspace = fh->v4l_settings.format->colorspace;
1937 fmt->fmt.pix.bytesperline = fh->v4l_settings.bytesperline;
1938 if (BUZ_MAX_HEIGHT < (fh->v4l_settings.height * 2))
1949 struct zoran_fh *fh = __fh;
1950 struct zoran *zr = fh->zr;
1954 fmt->fmt.win.w.left = fh->overlay_settings.x;
1955 fmt->fmt.win.w.top = fh->overlay_settings.y;
1956 fmt->fmt.win.w.width = fh->overlay_settings.width;
1957 fmt->fmt.win.w.height = fh->overlay_settings.height;
1958 if (fh->overlay_settings.width * 2 > BUZ_MAX_HEIGHT)
1970 struct zoran_fh *fh = __fh;
1971 struct zoran *zr = fh->zr;
1991 struct zoran_fh *fh = __fh;
1992 struct zoran *zr = fh->zr;
2000 settings = fh->jpg_settings;
2008 if (fmt->fmt.pix.height <= fh->jpg_settings.img_height / 2)
2012 if (fmt->fmt.pix.width <= fh->jpg_settings.img_width / 4)
2014 else if (fmt->fmt.pix.width <= fh->jpg_settings.img_width / 2)
2041 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ?
2044 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ?
2058 struct zoran_fh *fh = __fh;
2059 struct zoran *zr = fh->zr;
2064 return zoran_try_fmt_vid_out(file, fh, fmt);
2089 struct zoran_fh *fh = __fh;
2090 struct zoran *zr = fh->zr;
2100 res = setup_window(fh, fmt->fmt.win.w.left, fmt->fmt.win.w.top,
2111 struct zoran_fh *fh = __fh;
2112 struct zoran *zr = fh->zr;
2126 if (fh->buffers.allocated) {
2133 settings = fh->jpg_settings;
2141 if (fmt->fmt.pix.height <= fh->jpg_settings.img_height / 2)
2145 if (fmt->fmt.pix.width <= fh->jpg_settings.img_width / 4)
2147 else if (fmt->fmt.pix.width <= fh->jpg_settings.img_width / 2)
2170 fh->jpg_settings = settings;
2172 map_mode_jpg(fh, fmt->type == V4L2_BUF_TYPE_VIDEO_OUTPUT);
2173 fh->buffers.buffer_size = zoran_v4l2_calc_bufsize(&fh->jpg_settings);
2180 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ?
2183 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ?
2186 fmt->fmt.pix.sizeimage = fh->buffers.buffer_size;
2197 struct zoran_fh *fh = __fh;
2198 struct zoran *zr = fh->zr;
2203 return zoran_s_fmt_vid_out(file, fh, fmt);
2216 if ((fh->map_mode != ZORAN_MAP_MODE_RAW && fh->buffers.allocated) ||
2217 fh->buffers.active != ZORAN_FREE) {
2228 map_mode_raw(fh);
2230 res = zoran_v4l_set_format(fh, fmt->fmt.pix.width, fmt->fmt.pix.height,
2236 fmt->fmt.pix.bytesperline = fh->v4l_settings.bytesperline;
2237 fmt->fmt.pix.sizeimage = fh->v4l_settings.height * fh->v4l_settings.bytesperline;
2238 fmt->fmt.pix.colorspace = fh->v4l_settings.format->colorspace;
2239 if (BUZ_MAX_HEIGHT < (fh->v4l_settings.height * 2))
2252 struct zoran_fh *fh = __fh;
2253 struct zoran *zr = fh->zr;
2261 fb->fmt.pixelformat = fh->overlay_settings.format->fourcc;
2275 struct zoran_fh *fh = __fh;
2276 struct zoran *zr = fh->zr;
2291 res = setup_fbuffer(fh, fb->base, &zoran_formats[i], fb->fmt.width,
2300 struct zoran_fh *fh = __fh;
2301 struct zoran *zr = fh->zr;
2305 res = setup_overlay(fh, on);
2315 struct zoran_fh *fh = __fh;
2316 struct zoran *zr = fh->zr;
2328 return zoran_streamoff(file, fh, req->type);
2331 if (fh->buffers.allocated) {
2340 if (fh->map_mode == ZORAN_MAP_MODE_RAW &&
2349 map_mode_raw(fh);
2350 fh->buffers.num_buffers = req->count;
2352 if (v4l_fbuffer_alloc(fh)) {
2356 } else if (fh->map_mode == ZORAN_MAP_MODE_JPG_REC ||
2357 fh->map_mode == ZORAN_MAP_MODE_JPG_PLAY) {
2365 map_mode_jpg(fh, req->type == V4L2_BUF_TYPE_VIDEO_OUTPUT);
2366 fh->buffers.num_buffers = req->count;
2367 fh->buffers.buffer_size = zoran_v4l2_calc_bufsize(&fh->jpg_settings);
2369 if (jpg_fbuffer_alloc(fh)) {
2389 struct zoran_fh *fh = __fh;
2390 struct zoran *zr = fh->zr;
2394 res = zoran_v4l2_buffer_status(fh, buf, buf->index);
2402 struct zoran_fh *fh = __fh;
2403 struct zoran *zr = fh->zr;
2408 switch (fh->map_mode) {
2413 ZR_DEVNAME(zr), buf->type, fh->map_mode);
2418 res = zoran_v4l_queue_frame(fh, buf->index);
2421 if (!zr->v4l_memgrab_active && fh->buffers.active == ZORAN_LOCKED)
2427 if (fh->map_mode == ZORAN_MAP_MODE_JPG_PLAY) {
2438 ZR_DEVNAME(zr), buf->type, fh->map_mode);
2443 res = zoran_jpg_queue_frame(fh, buf->index, codec_mode);
2447 fh->buffers.active == ZORAN_LOCKED)
2467 struct zoran_fh *fh = __fh;
2468 struct zoran *zr = fh->zr;
2473 switch (fh->map_mode) {
2478 ZR_DEVNAME(zr), buf->type, fh->map_mode);
2489 res = v4l_sync(fh, num);
2493 res = zoran_v4l2_buffer_status(fh, buf, num);
2501 if (fh->map_mode == ZORAN_MAP_MODE_JPG_PLAY)
2509 ZR_DEVNAME(zr), buf->type, fh->map_mode);
2521 res = jpg_sync(fh, &bs);
2524 res = zoran_v4l2_buffer_status(fh, buf, bs.frame);
2543 struct zoran_fh *fh = __fh;
2544 struct zoran *zr = fh->zr;
2549 switch (fh->map_mode) {
2552 fh->buffers.active != ZORAN_ACTIVE) {
2557 zr->v4l_buffers.active = fh->buffers.active = ZORAN_LOCKED;
2558 zr->v4l_settings = fh->v4l_settings;
2571 fh->buffers.active != ZORAN_ACTIVE) {
2576 zr->jpg_buffers.active = fh->buffers.active = ZORAN_LOCKED;
2588 ZR_DEVNAME(zr), fh->map_mode);
2600 struct zoran_fh *fh = __fh;
2601 struct zoran *zr = fh->zr;
2607 switch (fh->map_mode) {
2609 if (fh->buffers.active == ZORAN_FREE &&
2624 for (i = 0; i < fh->buffers.num_buffers; i++)
2626 fh->buffers = zr->v4l_buffers;
2628 zr->v4l_buffers.active = fh->buffers.active = ZORAN_FREE;
2640 if (fh->buffers.active == ZORAN_FREE &&
2648 res = jpg_qbuf(fh, -1,
2649 (fh->map_mode == ZORAN_MAP_MODE_JPG_REC) ?
2658 ZR_DEVNAME(zr), fh->map_mode);
2671 struct zoran_fh *fh = __fh;
2672 struct zoran *zr = fh->zr;
2686 struct zoran_fh *fh = __fh;
2687 struct zoran *zr = fh->zr;
2703 struct zoran_fh *fh = __fh;
2704 struct zoran *zr = fh->zr;
2720 struct zoran_fh *fh = __fh;
2721 struct zoran *zr = fh->zr;
2731 struct zoran_fh *fh = __fh;
2732 struct zoran *zr = fh->zr;
2749 struct zoran_fh *fh = __fh;
2750 struct zoran *zr = fh->zr;
2774 struct zoran_fh *fh = __fh;
2775 struct zoran *zr = fh->zr;
2786 struct zoran_fh *fh = __fh;
2787 struct zoran *zr = fh->zr;
2835 struct zoran_fh *fh = __fh;
2836 struct zoran *zr = fh->zr;
2846 fh->map_mode == ZORAN_MAP_MODE_RAW)) {
2867 struct zoran_fh *fh = __fh;
2868 struct zoran *zr = fh->zr;
2878 fh->map_mode == ZORAN_MAP_MODE_RAW)) {
2887 crop->c.top = fh->jpg_settings.img_y;
2888 crop->c.left = fh->jpg_settings.img_x;
2889 crop->c.width = fh->jpg_settings.img_width;
2890 crop->c.height = fh->jpg_settings.img_height;
2900 struct zoran_fh *fh = __fh;
2901 struct zoran *zr = fh->zr;
2905 settings = fh->jpg_settings;
2909 if (fh->buffers.allocated) {
2919 fh->map_mode == ZORAN_MAP_MODE_RAW)) {
2939 fh->jpg_settings = settings;
2949 struct zoran_fh *fh = __fh;
2950 struct zoran *zr = fh->zr;
2955 params->quality = fh->jpg_settings.jpg_comp.quality;
2956 params->APPn = fh->jpg_settings.jpg_comp.APPn;
2958 fh->jpg_settings.jpg_comp.APP_data,
2959 fh->jpg_settings.jpg_comp.APP_len);
2960 params->APP_len = fh->jpg_settings.jpg_comp.APP_len;
2962 fh->jpg_settings.jpg_comp.COM_data,
2963 fh->jpg_settings.jpg_comp.COM_len);
2964 params->COM_len = fh->jpg_settings.jpg_comp.COM_len;
2966 fh->jpg_settings.jpg_comp.jpeg_markers;
2976 struct zoran_fh *fh = __fh;
2977 struct zoran *zr = fh->zr;
2981 settings = fh->jpg_settings;
2987 if (fh->buffers.active != ZORAN_FREE) {
2998 if (!fh->buffers.allocated)
2999 fh->buffers.buffer_size =
3000 zoran_v4l2_calc_bufsize(&fh->jpg_settings);
3001 fh->jpg_settings.jpg_comp = *params = settings.jpg_comp;
3012 struct zoran_fh *fh = file->private_data;
3013 struct zoran *zr = fh->zr;
3027 switch (fh->map_mode) {
3037 "FAL"[fh->buffers.active], zr->v4l_sync_tail,
3041 if (fh->buffers.active != ZORAN_FREE &&
3059 "FAL"[fh->buffers.active], zr->jpg_que_tail,
3062 if (fh->buffers.active != ZORAN_FREE &&
3064 if (fh->map_mode == ZORAN_MAP_MODE_JPG_REC)
3077 ZR_DEVNAME(zr), __func__, fh->map_mode);
3090 * Depending on the state of fh->map_mode
3111 struct zoran_fh *fh = map->file->private_data;
3112 struct zoran *zr = fh->zr;
3119 __func__, mode_name(fh->map_mode));
3121 for (i = 0; i < fh->buffers.num_buffers; i++) {
3122 if (fh->buffers.buffer[i].map == map)
3123 fh->buffers.buffer[i].map = NULL;
3128 for (i = 0; i < fh->buffers.num_buffers; i++)
3129 if (fh->buffers.buffer[i].map)
3133 __func__, mode_name(fh->map_mode));
3137 if (fh->map_mode == ZORAN_MAP_MODE_RAW) {
3138 if (fh->buffers.active != ZORAN_FREE) {
3144 zr->v4l_buffers.active = fh->buffers.active = ZORAN_FREE;
3147 v4l_fbuffer_free(fh);
3149 if (fh->buffers.active != ZORAN_FREE) {
3150 jpg_qbuf(fh, -1, zr->codec_mode);
3152 zr->jpg_buffers.active = fh->buffers.active = ZORAN_FREE;
3154 jpg_fbuffer_free(fh);
3169 struct zoran_fh *fh = file->private_data;
3170 struct zoran *zr = fh->zr;
3182 mode_name(fh->map_mode), vma->vm_start, vma->vm_end, size);
3195 if (!fh->buffers.allocated) {
3199 ZR_DEVNAME(zr), __func__, mode_name(fh->map_mode));
3204 first = offset / fh->buffers.buffer_size;
3205 last = first - 1 + size / fh->buffers.buffer_size;
3206 if (offset % fh->buffers.buffer_size != 0 ||
3207 size % fh->buffers.buffer_size != 0 || first < 0 ||
3208 last < 0 || first >= fh->buffers.num_buffers ||
3209 last >= fh->buffers.buffer_size) {
3213 ZR_DEVNAME(zr), __func__, mode_name(fh->map_mode), offset, size,
3214 fh->buffers.buffer_size,
3215 fh->buffers.num_buffers);
3222 if (fh->buffers.buffer[i].map) {
3226 ZR_DEVNAME(zr), __func__, mode_name(fh->map_mode), i);
3245 if (fh->map_mode == ZORAN_MAP_MODE_RAW) {
3248 if (todo > fh->buffers.buffer_size)
3249 todo = fh->buffers.buffer_size;
3250 page = fh->buffers.buffer[i].v4l.fbuffer_phys;
3262 fh->buffers.buffer[i].map = map;
3269 j < fh->buffers.buffer_size / PAGE_SIZE;
3272 (le32_to_cpu(fh->buffers.buffer[i].jpg.
3278 le32_to_cpu(fh->buffers.
3296 if (le32_to_cpu(fh->buffers.buffer[i].jpg.
3300 fh->buffers.buffer[i].map = map;