• Home
  • Raw
  • Download

Lines Matching refs:ar

108 struct ar {  struct
124 static struct ar ardev; argument
248 static void wait_for_vertical_sync(struct ar *ar, int exp_line) in wait_for_vertical_sync() argument
263 v4l2_err(&ar->v4l2_dev, "lost %d -> %d\n", exp_line, l); in wait_for_vertical_sync()
272 struct ar *ar = video_drvdata(file); in ar_read() local
273 long ret = ar->frame_bytes; /* return read bytes */ in ar_read()
285 if (ar->size == AR_SIZE_QVGA) in ar_read()
287 if (ar->mode == AR_MODE_NORMAL) in ar_read()
290 mutex_lock(&ar->lock); in ar_read()
301 ar_outl(ar->line_buff, M32R_DMA0CDA_PORTL); /* destination addr. */ in ar_read()
302 ar_outl(ar->line_buff, M32R_DMA0RDA_PORTL); /* reload address */ in ar_read()
303 ar_outl(ar->line_bytes, M32R_DMA0CBCUT_PORTL); /* byte count (bytes) */ in ar_read()
304 ar_outl(ar->line_bytes, M32R_DMA0RBCUT_PORTL); /* reload count (bytes) */ in ar_read()
309 ar->start_capture = 0; in ar_read()
313 interruptible_sleep_on(&ar->wait); in ar_read()
328 ar_outl(ar->line_bytes, M32R_DMA0CBCUT_PORTL); in ar_read()
329 ar_outl(ar->line_bytes, M32R_DMA0RBCUT_PORTL); in ar_read()
334 if (ar->mode == AR_MODE_INTERLACE && ar->size == AR_SIZE_VGA) { in ar_read()
335 for (h = 0; h < ar->height; h++) { in ar_read()
336 wait_for_vertical_sync(ar, h); in ar_read()
341 ar_outl(virt_to_phys(ar->frame[l]), M32R_DMA0CDA_PORTL); in ar_read()
350 for (h = 0; h < ar->height; h++) { in ar_read()
351 wait_for_vertical_sync(ar, h); in ar_read()
352 ar_outl(virt_to_phys(ar->frame[h]), M32R_DMA0CDA_PORTL); in ar_read()
376 pu = py + (ar->frame_bytes / 2); in ar_read()
377 pv = pu + (ar->frame_bytes / 4); in ar_read()
378 for (h = 0; h < ar->height; h++) { in ar_read()
379 p = ar->frame[h]; in ar_read()
380 for (w = 0; w < ar->line_bytes; w += 4) { in ar_read()
387 if (copy_to_user(buf, yuv, ar->frame_bytes)) { in ar_read()
388 v4l2_err(&ar->v4l2_dev, "failed while copy_to_user yuv.\n"); in ar_read()
394 mutex_unlock(&ar->lock); in ar_read()
401 struct ar *ar = video_drvdata(file); in ar_querycap() local
403 strlcpy(vcap->driver, ar->vdev.name, sizeof(vcap->driver)); in ar_querycap()
436 struct ar *ar = video_drvdata(file); in ar_g_fmt_vid_cap() local
439 pix->width = ar->width; in ar_g_fmt_vid_cap()
440 pix->height = ar->height; in ar_g_fmt_vid_cap()
442 pix->field = (ar->mode == AR_MODE_NORMAL) ? V4L2_FIELD_NONE : V4L2_FIELD_INTERLACED; in ar_g_fmt_vid_cap()
443 pix->bytesperline = ar->width; in ar_g_fmt_vid_cap()
444 pix->sizeimage = 2 * ar->width * ar->height; in ar_g_fmt_vid_cap()
452 struct ar *ar = video_drvdata(file); in ar_try_fmt_vid_cap() local
465 pix->bytesperline = ar->width; in ar_try_fmt_vid_cap()
466 pix->sizeimage = 2 * ar->width * ar->height; in ar_try_fmt_vid_cap()
474 struct ar *ar = video_drvdata(file); in ar_s_fmt_vid_cap() local
480 mutex_lock(&ar->lock); in ar_s_fmt_vid_cap()
481 ar->width = pix->width; in ar_s_fmt_vid_cap()
482 ar->height = pix->height; in ar_s_fmt_vid_cap()
483 if (ar->width == AR_WIDTH_VGA) { in ar_s_fmt_vid_cap()
484 ar->size = AR_SIZE_VGA; in ar_s_fmt_vid_cap()
485 ar->frame_bytes = AR_FRAME_BYTES_VGA; in ar_s_fmt_vid_cap()
486 ar->line_bytes = AR_LINE_BYTES_VGA; in ar_s_fmt_vid_cap()
488 ar->mode = AR_MODE_INTERLACE; in ar_s_fmt_vid_cap()
490 ar->mode = AR_MODE_NORMAL; in ar_s_fmt_vid_cap()
492 ar->size = AR_SIZE_QVGA; in ar_s_fmt_vid_cap()
493 ar->frame_bytes = AR_FRAME_BYTES_QVGA; in ar_s_fmt_vid_cap()
494 ar->line_bytes = AR_LINE_BYTES_QVGA; in ar_s_fmt_vid_cap()
495 ar->mode = AR_MODE_INTERLACE; in ar_s_fmt_vid_cap()
498 mutex_unlock(&ar->lock); in ar_s_fmt_vid_cap()
526 struct ar *ar = dev; in ar_interrupt() local
532 if (ar->mode == AR_MODE_INTERLACE && ar->size == AR_SIZE_VGA) { in ar_interrupt()
550 ar_outl(ar->line_buff, M32R_DMA0CDA_PORTL); /* needless? */ in ar_interrupt()
552 memcpy(ar->frame[0], ar->line_buff, ar->line_bytes); in ar_interrupt()
557 ar->start_capture = 1; /* during capture */ in ar_interrupt()
561 if (ar->start_capture == 1 && line_number <= (ar->height - 1)) { in ar_interrupt()
563 memcpy(ar->frame[line_number], ar->line_buff, ar->line_bytes); in ar_interrupt()
569 if (line_number == (ar->height - 1)) { /* end of line */ in ar_interrupt()
571 ar->start_capture = 0; in ar_interrupt()
577 wake_up_interruptible(&ar->wait); in ar_interrupt()
580 ar_outl(ar->line_buff, M32R_DMA0CDA_PORTL); in ar_interrupt()
598 static int ar_initialize(struct ar *ar) in ar_initialize() argument
618 if (ar->size == AR_SIZE_QVGA) in ar_initialize()
620 if (ar->mode == AR_MODE_NORMAL) in ar_initialize()
640 v4l2_info(&ar->v4l2_dev, "Initializing "); in ar_initialize()
731 struct ar *ar; in ar_init() local
736 ar = &ardev; in ar_init()
737 v4l2_dev = &ar->v4l2_dev; in ar_init()
750 ar->line_buff = kmalloc(MAX_AR_LINE_BYTES, GFP_KERNEL | GFP_DMA); in ar_init()
751 if (ar->line_buff == NULL || !ALIGN4(ar->line_buff)) { in ar_init()
759 ar->frame[i] = kmalloc(MAX_AR_LINE_BYTES, GFP_KERNEL); in ar_init()
760 if (ar->frame[i] == NULL || !ALIGN4(ar->frame[i])) { in ar_init()
767 strlcpy(ar->vdev.name, "Colour AR VGA", sizeof(ar->vdev.name)); in ar_init()
768 ar->vdev.v4l2_dev = v4l2_dev; in ar_init()
769 ar->vdev.fops = &ar_fops; in ar_init()
770 ar->vdev.ioctl_ops = &ar_ioctl_ops; in ar_init()
771 ar->vdev.release = video_device_release_empty; in ar_init()
772 video_set_drvdata(&ar->vdev, ar); in ar_init()
775 ar->width = AR_WIDTH_VGA; in ar_init()
776 ar->height = AR_HEIGHT_VGA; in ar_init()
777 ar->size = AR_SIZE_VGA; in ar_init()
778 ar->frame_bytes = AR_FRAME_BYTES_VGA; in ar_init()
779 ar->line_bytes = AR_LINE_BYTES_VGA; in ar_init()
781 ar->mode = AR_MODE_INTERLACE; in ar_init()
783 ar->mode = AR_MODE_NORMAL; in ar_init()
785 ar->width = AR_WIDTH_QVGA; in ar_init()
786 ar->height = AR_HEIGHT_QVGA; in ar_init()
787 ar->size = AR_SIZE_QVGA; in ar_init()
788 ar->frame_bytes = AR_FRAME_BYTES_QVGA; in ar_init()
789 ar->line_bytes = AR_LINE_BYTES_QVGA; in ar_init()
790 ar->mode = AR_MODE_INTERLACE; in ar_init()
792 mutex_init(&ar->lock); in ar_init()
793 init_waitqueue_head(&ar->wait); in ar_init()
796 if (request_irq(M32R_IRQ_INT3, ar_interrupt, 0, "arv", ar)) { in ar_init()
803 if (ar_initialize(ar) != 0) { in ar_init()
815 if (video_register_device(&ar->vdev, VFL_TYPE_GRABBER, video_nr) != 0) { in ar_init()
823 video_device_node_name(&ar->vdev), M32R_IRQ_INT3, freq); in ar_init()
829 free_irq(M32R_IRQ_INT3, ar); in ar_init()
834 kfree(ar->frame[i]); in ar_init()
838 kfree(ar->line_buff); in ar_init()
842 v4l2_device_unregister(&ar->v4l2_dev); in ar_init()
858 struct ar *ar; in ar_cleanup_module() local
861 ar = &ardev; in ar_cleanup_module()
862 video_unregister_device(&ar->vdev); in ar_cleanup_module()
864 free_irq(M32R_IRQ_INT3, ar); in ar_cleanup_module()
867 kfree(ar->frame[i]); in ar_cleanup_module()
869 kfree(ar->line_buff); in ar_cleanup_module()
871 v4l2_device_unregister(&ar->v4l2_dev); in ar_cleanup_module()