• Home
  • Raw
  • Download

Lines Matching refs:meye

58 static struct meye meye;  variable
108 memset(meye.mchip_ptable, 0, sizeof(meye.mchip_ptable)); in ptable_alloc()
111 if (dma_set_mask(&meye.mchip_dev->dev, DMA_BIT_MASK(32))) in ptable_alloc()
114 meye.mchip_ptable_toc = dma_alloc_coherent(&meye.mchip_dev->dev, in ptable_alloc()
116 &meye.mchip_dmahandle, in ptable_alloc()
118 if (!meye.mchip_ptable_toc) { in ptable_alloc()
119 meye.mchip_dmahandle = 0; in ptable_alloc()
123 pt = meye.mchip_ptable_toc; in ptable_alloc()
126 meye.mchip_ptable[i] = dma_alloc_coherent(&meye.mchip_dev->dev, in ptable_alloc()
130 if (!meye.mchip_ptable[i]) { in ptable_alloc()
132 pt = meye.mchip_ptable_toc; in ptable_alloc()
135 dma_free_coherent(&meye.mchip_dev->dev, in ptable_alloc()
137 meye.mchip_ptable[j], dma); in ptable_alloc()
140 dma_free_coherent(&meye.mchip_dev->dev, in ptable_alloc()
142 meye.mchip_ptable_toc, in ptable_alloc()
143 meye.mchip_dmahandle); in ptable_alloc()
144 meye.mchip_ptable_toc = NULL; in ptable_alloc()
145 meye.mchip_dmahandle = 0; in ptable_alloc()
159 pt = meye.mchip_ptable_toc; in ptable_free()
162 if (meye.mchip_ptable[i]) in ptable_free()
163 dma_free_coherent(&meye.mchip_dev->dev, in ptable_free()
165 meye.mchip_ptable[i], dma); in ptable_free()
169 if (meye.mchip_ptable_toc) in ptable_free()
170 dma_free_coherent(&meye.mchip_dev->dev, in ptable_free()
172 meye.mchip_ptable_toc, in ptable_free()
173 meye.mchip_dmahandle); in ptable_free()
175 memset(meye.mchip_ptable, 0, sizeof(meye.mchip_ptable)); in ptable_free()
176 meye.mchip_ptable_toc = NULL; in ptable_free()
177 meye.mchip_dmahandle = 0; in ptable_free()
186 memcpy(buf + i, meye.mchip_ptable[start++], PAGE_SIZE); in ptable_copy()
190 memcpy(buf + i, meye.mchip_ptable[start], size % PAGE_SIZE); in ptable_copy()
390 return meye.params.subsample ? 320 : 640; in mchip_hsize()
396 return meye.params.subsample ? 240 : 480; in mchip_vsize()
407 status = readl(meye.mchip_mmregs + in mchip_sync()
421 status = readl(meye.mchip_mmregs + MCHIP_HIC_STATUS); in mchip_sync()
437 writel(v, meye.mchip_mmregs + reg); in mchip_set()
444 return readl(meye.mchip_mmregs + reg); in mchip_read()
459 mchip_set(MCHIP_MCC_R_SAMPLING, meye.params.subsample); in mchip_subsample()
470 mchip_set(MCHIP_HIC_S_RATE, meye.params.framerate); in mchip_set_framerate()
483 writel(tables[i], meye.mchip_mmregs + MCHIP_VRJ_TABLE_DATA); in mchip_load_tables()
485 tables = jpeg_quantisation_tables(&length, meye.params.quality); in mchip_load_tables()
487 writel(tables[i], meye.mchip_mmregs + MCHIP_VRJ_TABLE_DATA); in mchip_load_tables()
522 meye.mchip_fnum = 0; in mchip_dma_setup()
528 if (!meye.mchip_dmahandle) in mchip_dma_alloc()
537 if (meye.mchip_dmahandle) { in mchip_dma_free()
549 meye.mchip_mode = MCHIP_HIC_MODE_NOOP; in mchip_hic_stop()
576 return mchip_read(MCHIP_MM_FIR(meye.mchip_fnum)); in mchip_get_frame()
582 mchip_set(MCHIP_MM_FIR(meye.mchip_fnum), 0); in mchip_free_frame()
583 meye.mchip_fnum++; in mchip_free_frame()
584 meye.mchip_fnum %= 4; in mchip_free_frame()
650 mchip_dma_setup(meye.mchip_dmahandle); in mchip_take_picture()
695 mchip_dma_setup(meye.mchip_dmahandle); in mchip_continuous_start()
697 meye.mchip_mode = MCHIP_HIC_MODE_CONT_OUT; in mchip_continuous_start()
758 mchip_dma_setup(meye.mchip_dmahandle); in mchip_cont_compression_start()
760 meye.mchip_mode = MCHIP_HIC_MODE_CONT_COMP; in mchip_cont_compression_start()
780 if (meye.mchip_mode != MCHIP_HIC_MODE_CONT_OUT && in meye_irq()
781 meye.mchip_mode != MCHIP_HIC_MODE_CONT_COMP) in meye_irq()
789 if (meye.mchip_mode == MCHIP_HIC_MODE_CONT_OUT) { in meye_irq()
790 if (kfifo_out_locked(&meye.grabq, (unsigned char *)&reqnr, in meye_irq()
791 sizeof(int), &meye.grabq_lock) != sizeof(int)) { in meye_irq()
795 mchip_cont_read_frame(v, meye.grab_fbuffer + gbufsize * reqnr, in meye_irq()
797 meye.grab_buffer[reqnr].size = mchip_hsize() * mchip_vsize() * 2; in meye_irq()
798 meye.grab_buffer[reqnr].state = MEYE_BUF_DONE; in meye_irq()
799 meye.grab_buffer[reqnr].ts = ktime_get_ns(); in meye_irq()
800 meye.grab_buffer[reqnr].sequence = sequence++; in meye_irq()
801 kfifo_in_locked(&meye.doneq, (unsigned char *)&reqnr, in meye_irq()
802 sizeof(int), &meye.doneq_lock); in meye_irq()
803 wake_up_interruptible(&meye.proc_list); in meye_irq()
806 size = mchip_comp_read_frame(v, meye.grab_temp, gbufsize); in meye_irq()
811 if (kfifo_out_locked(&meye.grabq, (unsigned char *)&reqnr, in meye_irq()
812 sizeof(int), &meye.grabq_lock) != sizeof(int)) { in meye_irq()
816 memcpy(meye.grab_fbuffer + gbufsize * reqnr, meye.grab_temp, in meye_irq()
818 meye.grab_buffer[reqnr].size = size; in meye_irq()
819 meye.grab_buffer[reqnr].state = MEYE_BUF_DONE; in meye_irq()
820 meye.grab_buffer[reqnr].ts = ktime_get_ns(); in meye_irq()
821 meye.grab_buffer[reqnr].sequence = sequence++; in meye_irq()
822 kfifo_in_locked(&meye.doneq, (unsigned char *)&reqnr, in meye_irq()
823 sizeof(int), &meye.doneq_lock); in meye_irq()
824 wake_up_interruptible(&meye.proc_list); in meye_irq()
838 if (test_and_set_bit(0, &meye.in_use)) in meye_open()
845 clear_bit(0, &meye.in_use); in meye_open()
850 meye.grab_buffer[i].state = MEYE_BUF_UNUSED; in meye_open()
851 kfifo_reset(&meye.grabq); in meye_open()
852 kfifo_reset(&meye.doneq); in meye_open()
860 clear_bit(0, &meye.in_use); in meye_release()
866 *p = meye.params; in meyeioc_g_params()
884 mutex_lock(&meye.lock); in meyeioc_s_params()
886 if (meye.params.subsample != jp->subsample || in meyeioc_s_params()
887 meye.params.quality != jp->quality) in meyeioc_s_params()
890 meye.params = *jp; in meyeioc_s_params()
892 meye.params.sharpness); in meyeioc_s_params()
894 meye.params.agc); in meyeioc_s_params()
896 meye.params.picture); in meyeioc_s_params()
897 mutex_unlock(&meye.lock); in meyeioc_s_params()
904 if (!meye.grab_fbuffer) in meyeioc_qbuf_capt()
916 if (meye.grab_buffer[*nb].state != MEYE_BUF_UNUSED) in meyeioc_qbuf_capt()
919 mutex_lock(&meye.lock); in meyeioc_qbuf_capt()
921 if (meye.mchip_mode != MCHIP_HIC_MODE_CONT_COMP) in meyeioc_qbuf_capt()
924 meye.grab_buffer[*nb].state = MEYE_BUF_USING; in meyeioc_qbuf_capt()
925 kfifo_in_locked(&meye.grabq, (unsigned char *)nb, sizeof(int), in meyeioc_qbuf_capt()
926 &meye.grabq_lock); in meyeioc_qbuf_capt()
927 mutex_unlock(&meye.lock); in meyeioc_qbuf_capt()
939 mutex_lock(&meye.lock); in meyeioc_sync()
940 switch (meye.grab_buffer[*i].state) { in meyeioc_sync()
943 mutex_unlock(&meye.lock); in meyeioc_sync()
947 mutex_unlock(&meye.lock); in meyeioc_sync()
950 if (wait_event_interruptible(meye.proc_list, in meyeioc_sync()
951 (meye.grab_buffer[*i].state != MEYE_BUF_USING))) { in meyeioc_sync()
952 mutex_unlock(&meye.lock); in meyeioc_sync()
957 meye.grab_buffer[*i].state = MEYE_BUF_UNUSED; in meyeioc_sync()
958 if (kfifo_out_locked(&meye.doneq, (unsigned char *)&unused, in meyeioc_sync()
959 sizeof(int), &meye.doneq_lock) != sizeof(int)) in meyeioc_sync()
962 *i = meye.grab_buffer[*i].size; in meyeioc_sync()
963 mutex_unlock(&meye.lock); in meyeioc_sync()
969 if (!meye.grab_fbuffer) in meyeioc_stillcapt()
972 if (meye.grab_buffer[0].state != MEYE_BUF_UNUSED) in meyeioc_stillcapt()
975 mutex_lock(&meye.lock); in meyeioc_stillcapt()
976 meye.grab_buffer[0].state = MEYE_BUF_USING; in meyeioc_stillcapt()
979 mchip_get_picture(meye.grab_fbuffer, in meyeioc_stillcapt()
982 meye.grab_buffer[0].state = MEYE_BUF_DONE; in meyeioc_stillcapt()
983 mutex_unlock(&meye.lock); in meyeioc_stillcapt()
990 if (!meye.grab_fbuffer) in meyeioc_stilljcapt()
993 if (meye.grab_buffer[0].state != MEYE_BUF_UNUSED) in meyeioc_stilljcapt()
996 mutex_lock(&meye.lock); in meyeioc_stilljcapt()
997 meye.grab_buffer[0].state = MEYE_BUF_USING; in meyeioc_stilljcapt()
1002 *len = mchip_compress_frame(meye.grab_fbuffer, gbufsize); in meyeioc_stilljcapt()
1005 meye.grab_buffer[0].state = MEYE_BUF_DONE; in meyeioc_stilljcapt()
1006 mutex_unlock(&meye.lock); in meyeioc_stilljcapt()
1015 sprintf(cap->bus_info, "PCI:%s", pci_name(meye.mchip_dev)); in vidioc_querycap()
1046 mutex_lock(&meye.lock); in meye_s_ctrl()
1051 meye.brightness = ctrl->val << 10; in meye_s_ctrl()
1056 meye.hue = ctrl->val << 10; in meye_s_ctrl()
1061 meye.contrast = ctrl->val << 10; in meye_s_ctrl()
1066 meye.colour = ctrl->val << 10; in meye_s_ctrl()
1071 meye.params.agc = ctrl->val; in meye_s_ctrl()
1076 meye.params.sharpness = ctrl->val; in meye_s_ctrl()
1081 meye.params.picture = ctrl->val; in meye_s_ctrl()
1084 meye.params.quality = ctrl->val; in meye_s_ctrl()
1087 meye.params.framerate = ctrl->val; in meye_s_ctrl()
1090 mutex_unlock(&meye.lock); in meye_s_ctrl()
1093 mutex_unlock(&meye.lock); in meye_s_ctrl()
1148 switch (meye.mchip_mode) { in vidioc_g_fmt_vid_cap()
1180 mutex_lock(&meye.lock); in vidioc_s_fmt_vid_cap()
1185 meye.params.subsample = 1; in vidioc_s_fmt_vid_cap()
1189 meye.params.subsample = 0; in vidioc_s_fmt_vid_cap()
1194 meye.mchip_mode = MCHIP_HIC_MODE_CONT_OUT; in vidioc_s_fmt_vid_cap()
1197 meye.mchip_mode = MCHIP_HIC_MODE_CONT_COMP; in vidioc_s_fmt_vid_cap()
1201 mutex_unlock(&meye.lock); in vidioc_s_fmt_vid_cap()
1218 if (meye.grab_fbuffer && req->count == gbuffers) { in vidioc_reqbufs()
1223 mutex_lock(&meye.lock); in vidioc_reqbufs()
1224 if (meye.grab_fbuffer) { in vidioc_reqbufs()
1226 if (meye.vma_use_count[i]) { in vidioc_reqbufs()
1227 mutex_unlock(&meye.lock); in vidioc_reqbufs()
1230 rvfree(meye.grab_fbuffer, gbuffers * gbufsize); in vidioc_reqbufs()
1231 meye.grab_fbuffer = NULL; in vidioc_reqbufs()
1236 meye.grab_fbuffer = rvmalloc(gbuffers * gbufsize); in vidioc_reqbufs()
1238 if (!meye.grab_fbuffer) { in vidioc_reqbufs()
1240 mutex_unlock(&meye.lock); in vidioc_reqbufs()
1245 meye.vma_use_count[i] = 0; in vidioc_reqbufs()
1247 mutex_unlock(&meye.lock); in vidioc_reqbufs()
1259 buf->bytesused = meye.grab_buffer[index].size; in vidioc_querybuf()
1262 if (meye.grab_buffer[index].state == MEYE_BUF_USING) in vidioc_querybuf()
1265 if (meye.grab_buffer[index].state == MEYE_BUF_DONE) in vidioc_querybuf()
1269 v4l2_buffer_set_timestamp(buf, meye.grab_buffer[index].ts); in vidioc_querybuf()
1270 buf->sequence = meye.grab_buffer[index].sequence; in vidioc_querybuf()
1286 if (meye.grab_buffer[buf->index].state != MEYE_BUF_UNUSED) in vidioc_qbuf()
1289 mutex_lock(&meye.lock); in vidioc_qbuf()
1292 meye.grab_buffer[buf->index].state = MEYE_BUF_USING; in vidioc_qbuf()
1293 kfifo_in_locked(&meye.grabq, (unsigned char *)&buf->index, in vidioc_qbuf()
1294 sizeof(int), &meye.grabq_lock); in vidioc_qbuf()
1295 mutex_unlock(&meye.lock); in vidioc_qbuf()
1307 mutex_lock(&meye.lock); in vidioc_dqbuf()
1309 if (kfifo_len(&meye.doneq) == 0 && file->f_flags & O_NONBLOCK) { in vidioc_dqbuf()
1310 mutex_unlock(&meye.lock); in vidioc_dqbuf()
1314 if (wait_event_interruptible(meye.proc_list, in vidioc_dqbuf()
1315 kfifo_len(&meye.doneq) != 0) < 0) { in vidioc_dqbuf()
1316 mutex_unlock(&meye.lock); in vidioc_dqbuf()
1320 if (!kfifo_out_locked(&meye.doneq, (unsigned char *)&reqnr, in vidioc_dqbuf()
1321 sizeof(int), &meye.doneq_lock)) { in vidioc_dqbuf()
1322 mutex_unlock(&meye.lock); in vidioc_dqbuf()
1326 if (meye.grab_buffer[reqnr].state != MEYE_BUF_DONE) { in vidioc_dqbuf()
1327 mutex_unlock(&meye.lock); in vidioc_dqbuf()
1332 buf->bytesused = meye.grab_buffer[reqnr].size; in vidioc_dqbuf()
1335 v4l2_buffer_set_timestamp(buf, meye.grab_buffer[reqnr].ts); in vidioc_dqbuf()
1336 buf->sequence = meye.grab_buffer[reqnr].sequence; in vidioc_dqbuf()
1340 meye.grab_buffer[reqnr].state = MEYE_BUF_UNUSED; in vidioc_dqbuf()
1341 mutex_unlock(&meye.lock); in vidioc_dqbuf()
1348 mutex_lock(&meye.lock); in vidioc_streamon()
1350 switch (meye.mchip_mode) { in vidioc_streamon()
1358 mutex_unlock(&meye.lock); in vidioc_streamon()
1362 mutex_unlock(&meye.lock); in vidioc_streamon()
1369 mutex_lock(&meye.lock); in vidioc_streamoff()
1371 kfifo_reset(&meye.grabq); in vidioc_streamoff()
1372 kfifo_reset(&meye.doneq); in vidioc_streamoff()
1375 meye.grab_buffer[i].state = MEYE_BUF_UNUSED; in vidioc_streamoff()
1377 mutex_unlock(&meye.lock); in vidioc_streamoff()
1413 mutex_lock(&meye.lock); in meye_poll()
1414 poll_wait(file, &meye.proc_list, wait); in meye_poll()
1415 if (kfifo_len(&meye.doneq)) in meye_poll()
1417 mutex_unlock(&meye.lock); in meye_poll()
1424 meye.vma_use_count[idx]++; in meye_vm_open()
1430 meye.vma_use_count[idx]--; in meye_vm_close()
1445 mutex_lock(&meye.lock); in meye_mmap()
1447 mutex_unlock(&meye.lock); in meye_mmap()
1450 if (!meye.grab_fbuffer) { in meye_mmap()
1454 meye.grab_fbuffer = rvmalloc(gbuffers*gbufsize); in meye_mmap()
1455 if (!meye.grab_fbuffer) { in meye_mmap()
1457 mutex_unlock(&meye.lock); in meye_mmap()
1461 meye.vma_use_count[i] = 0; in meye_mmap()
1463 pos = (unsigned long)meye.grab_fbuffer + offset; in meye_mmap()
1468 mutex_unlock(&meye.lock); in meye_mmap()
1485 mutex_unlock(&meye.lock); in meye_mmap()
1533 meye.pm_mchip_mode = meye.mchip_mode; in meye_suspend()
1541 pci_write_config_word(meye.mchip_dev, MCHIP_PCI_SOFTRESET_SET, 1); in meye_resume()
1552 switch (meye.pm_mchip_mode) { in meye_resume()
1591 struct v4l2_device *v4l2_dev = &meye.v4l2_dev; in meye_probe()
1595 if (meye.mchip_dev != NULL) { in meye_probe()
1606 meye.mchip_dev = pcidev; in meye_probe()
1608 meye.grab_temp = vmalloc(array_size(PAGE_SIZE, MCHIP_NB_PAGES_MJPEG)); in meye_probe()
1609 if (!meye.grab_temp) in meye_probe()
1612 spin_lock_init(&meye.grabq_lock); in meye_probe()
1613 if (kfifo_alloc(&meye.grabq, sizeof(int) * MEYE_MAX_BUFNBRS, in meye_probe()
1617 spin_lock_init(&meye.doneq_lock); in meye_probe()
1618 if (kfifo_alloc(&meye.doneq, sizeof(int) * MEYE_MAX_BUFNBRS, in meye_probe()
1622 meye.vdev = meye_template; in meye_probe()
1623 meye.vdev.v4l2_dev = &meye.v4l2_dev; in meye_probe()
1632 ret = pci_enable_device(meye.mchip_dev); in meye_probe()
1639 mchip_adr = pci_resource_start(meye.mchip_dev,0); in meye_probe()
1644 if (!request_mem_region(pci_resource_start(meye.mchip_dev, 0), in meye_probe()
1645 pci_resource_len(meye.mchip_dev, 0), in meye_probe()
1650 meye.mchip_mmregs = ioremap(mchip_adr, MCHIP_MM_REGS); in meye_probe()
1651 if (!meye.mchip_mmregs) { in meye_probe()
1656 meye.mchip_irq = pcidev->irq; in meye_probe()
1657 if (request_irq(meye.mchip_irq, meye_irq, in meye_probe()
1663 pci_write_config_byte(meye.mchip_dev, PCI_CACHE_LINE_SIZE, 8); in meye_probe()
1664 pci_write_config_byte(meye.mchip_dev, PCI_LATENCY_TIMER, 64); in meye_probe()
1666 pci_set_master(meye.mchip_dev); in meye_probe()
1669 pci_write_config_word(meye.mchip_dev, MCHIP_PCI_SOFTRESET_SET, 1); in meye_probe()
1683 mutex_init(&meye.lock); in meye_probe()
1684 init_waitqueue_head(&meye.proc_list); in meye_probe()
1686 v4l2_ctrl_handler_init(&meye.hdl, 3); in meye_probe()
1687 v4l2_ctrl_new_std(&meye.hdl, &meye_ctrl_ops, in meye_probe()
1689 v4l2_ctrl_new_std(&meye.hdl, &meye_ctrl_ops, in meye_probe()
1691 v4l2_ctrl_new_std(&meye.hdl, &meye_ctrl_ops, in meye_probe()
1693 v4l2_ctrl_new_std(&meye.hdl, &meye_ctrl_ops, in meye_probe()
1695 v4l2_ctrl_new_custom(&meye.hdl, &ctrl_agc, NULL); in meye_probe()
1696 v4l2_ctrl_new_std(&meye.hdl, &meye_ctrl_ops, in meye_probe()
1698 v4l2_ctrl_new_custom(&meye.hdl, &ctrl_picture, NULL); in meye_probe()
1699 v4l2_ctrl_new_std(&meye.hdl, &meye_ctrl_ops, in meye_probe()
1701 v4l2_ctrl_new_custom(&meye.hdl, &ctrl_framerate, NULL); in meye_probe()
1702 if (meye.hdl.error) { in meye_probe()
1707 v4l2_ctrl_handler_setup(&meye.hdl); in meye_probe()
1708 meye.vdev.ctrl_handler = &meye.hdl; in meye_probe()
1710 if (video_register_device(&meye.vdev, VFL_TYPE_VIDEO, in meye_probe()
1719 meye.mchip_dev->revision, mchip_adr, meye.mchip_irq); in meye_probe()
1724 v4l2_ctrl_handler_free(&meye.hdl); in meye_probe()
1725 free_irq(meye.mchip_irq, meye_irq); in meye_probe()
1727 iounmap(meye.mchip_mmregs); in meye_probe()
1729 release_mem_region(pci_resource_start(meye.mchip_dev, 0), in meye_probe()
1730 pci_resource_len(meye.mchip_dev, 0)); in meye_probe()
1732 pci_disable_device(meye.mchip_dev); in meye_probe()
1736 kfifo_free(&meye.doneq); in meye_probe()
1738 kfifo_free(&meye.grabq); in meye_probe()
1740 vfree(meye.grab_temp); in meye_probe()
1747 video_unregister_device(&meye.vdev); in meye_remove()
1756 free_irq(meye.mchip_irq, meye_irq); in meye_remove()
1758 iounmap(meye.mchip_mmregs); in meye_remove()
1760 release_mem_region(pci_resource_start(meye.mchip_dev, 0), in meye_remove()
1761 pci_resource_len(meye.mchip_dev, 0)); in meye_remove()
1763 pci_disable_device(meye.mchip_dev); in meye_remove()
1767 kfifo_free(&meye.doneq); in meye_remove()
1768 kfifo_free(&meye.grabq); in meye_remove()
1770 vfree(meye.grab_temp); in meye_remove()
1772 if (meye.grab_fbuffer) { in meye_remove()
1773 rvfree(meye.grab_fbuffer, gbuffers*gbufsize); in meye_remove()
1774 meye.grab_fbuffer = NULL; in meye_remove()