aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorHans Verkuil <hans.verkuil@cisco.com>2012-06-09 09:02:49 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-07-06 16:19:31 -0400
commitd806f2df48098efca104d00a7db237dc39eea858 (patch)
treee1d9a187f52bee4c5bd9a4d308ec22e7a2b8c975 /drivers
parentd84f2d9483efa6fc69afb82b89ed9615c159470f (diff)
[media] v4l2-ioctl.c: use the new table for compression ioctls
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/video/v4l2-ioctl.c123
1 files changed, 46 insertions, 77 deletions
diff --git a/drivers/media/video/v4l2-ioctl.c b/drivers/media/video/v4l2-ioctl.c
index 179b22c80b4d..935fcbc2d50b 100644
--- a/drivers/media/video/v4l2-ioctl.c
+++ b/drivers/media/video/v4l2-ioctl.c
@@ -590,6 +590,45 @@ static void v4l_print_selection(const void *arg, bool write_only)
590 p->r.width, p->r.height, p->r.left, p->r.top); 590 p->r.width, p->r.height, p->r.left, p->r.top);
591} 591}
592 592
593static void v4l_print_jpegcompression(const void *arg, bool write_only)
594{
595 const struct v4l2_jpegcompression *p = arg;
596
597 pr_cont("quality=%d, APPn=%d, APP_len=%d, "
598 "COM_len=%d, jpeg_markers=0x%x\n",
599 p->quality, p->APPn, p->APP_len,
600 p->COM_len, p->jpeg_markers);
601}
602
603static void v4l_print_enc_idx(const void *arg, bool write_only)
604{
605 const struct v4l2_enc_idx *p = arg;
606
607 pr_cont("entries=%d, entries_cap=%d\n",
608 p->entries, p->entries_cap);
609}
610
611static void v4l_print_encoder_cmd(const void *arg, bool write_only)
612{
613 const struct v4l2_encoder_cmd *p = arg;
614
615 pr_cont("cmd=%d, flags=0x%x\n",
616 p->cmd, p->flags);
617}
618
619static void v4l_print_decoder_cmd(const void *arg, bool write_only)
620{
621 const struct v4l2_decoder_cmd *p = arg;
622
623 pr_cont("cmd=%d, flags=0x%x\n", p->cmd, p->flags);
624
625 if (p->cmd == V4L2_DEC_CMD_START)
626 pr_info("speed=%d, format=%u\n",
627 p->start.speed, p->start.format);
628 else if (p->cmd == V4L2_DEC_CMD_STOP)
629 pr_info("pts=%llu\n", p->stop.pts);
630}
631
593static void v4l_print_u32(const void *arg, bool write_only) 632static void v4l_print_u32(const void *arg, bool write_only)
594{ 633{
595 pr_cont("value=%u\n", *(const u32 *)arg); 634 pr_cont("value=%u\n", *(const u32 *)arg);
@@ -1592,8 +1631,8 @@ static struct v4l2_ioctl_info v4l2_ioctls[] = {
1592 IOCTL_INFO_FNC(VIDIOC_S_CROP, v4l_s_crop, v4l_print_crop, INFO_FL_PRIO), 1631 IOCTL_INFO_FNC(VIDIOC_S_CROP, v4l_s_crop, v4l_print_crop, INFO_FL_PRIO),
1593 IOCTL_INFO_STD(VIDIOC_G_SELECTION, vidioc_g_selection, v4l_print_selection, 0), 1632 IOCTL_INFO_STD(VIDIOC_G_SELECTION, vidioc_g_selection, v4l_print_selection, 0),
1594 IOCTL_INFO_STD(VIDIOC_S_SELECTION, vidioc_s_selection, v4l_print_selection, INFO_FL_PRIO), 1633 IOCTL_INFO_STD(VIDIOC_S_SELECTION, vidioc_s_selection, v4l_print_selection, INFO_FL_PRIO),
1595 IOCTL_INFO(VIDIOC_G_JPEGCOMP, 0), 1634 IOCTL_INFO_STD(VIDIOC_G_JPEGCOMP, vidioc_g_jpegcomp, v4l_print_jpegcompression, 0),
1596 IOCTL_INFO(VIDIOC_S_JPEGCOMP, INFO_FL_PRIO), 1635 IOCTL_INFO_STD(VIDIOC_S_JPEGCOMP, vidioc_s_jpegcomp, v4l_print_jpegcompression, INFO_FL_PRIO),
1597 IOCTL_INFO_FNC(VIDIOC_QUERYSTD, v4l_querystd, v4l_print_std, 0), 1636 IOCTL_INFO_FNC(VIDIOC_QUERYSTD, v4l_querystd, v4l_print_std, 0),
1598 IOCTL_INFO_FNC(VIDIOC_TRY_FMT, v4l_try_fmt, v4l_print_format, 0), 1637 IOCTL_INFO_FNC(VIDIOC_TRY_FMT, v4l_try_fmt, v4l_print_format, 0),
1599 IOCTL_INFO_STD(VIDIOC_ENUMAUDIO, vidioc_enumaudio, v4l_print_audio, INFO_FL_CLEAR(v4l2_audio, index)), 1638 IOCTL_INFO_STD(VIDIOC_ENUMAUDIO, vidioc_enumaudio, v4l_print_audio, INFO_FL_CLEAR(v4l2_audio, index)),
@@ -1607,11 +1646,11 @@ static struct v4l2_ioctl_info v4l2_ioctls[] = {
1607 IOCTL_INFO_FNC(VIDIOC_TRY_EXT_CTRLS, v4l_try_ext_ctrls, v4l_print_ext_controls, 0), 1646 IOCTL_INFO_FNC(VIDIOC_TRY_EXT_CTRLS, v4l_try_ext_ctrls, v4l_print_ext_controls, 0),
1608 IOCTL_INFO(VIDIOC_ENUM_FRAMESIZES, INFO_FL_CLEAR(v4l2_frmsizeenum, pixel_format)), 1647 IOCTL_INFO(VIDIOC_ENUM_FRAMESIZES, INFO_FL_CLEAR(v4l2_frmsizeenum, pixel_format)),
1609 IOCTL_INFO(VIDIOC_ENUM_FRAMEINTERVALS, INFO_FL_CLEAR(v4l2_frmivalenum, height)), 1648 IOCTL_INFO(VIDIOC_ENUM_FRAMEINTERVALS, INFO_FL_CLEAR(v4l2_frmivalenum, height)),
1610 IOCTL_INFO(VIDIOC_G_ENC_INDEX, 0), 1649 IOCTL_INFO_STD(VIDIOC_G_ENC_INDEX, vidioc_g_enc_index, v4l_print_enc_idx, 0),
1611 IOCTL_INFO(VIDIOC_ENCODER_CMD, INFO_FL_PRIO | INFO_FL_CLEAR(v4l2_encoder_cmd, flags)), 1650 IOCTL_INFO_STD(VIDIOC_ENCODER_CMD, vidioc_encoder_cmd, v4l_print_encoder_cmd, INFO_FL_PRIO | INFO_FL_CLEAR(v4l2_encoder_cmd, flags)),
1612 IOCTL_INFO(VIDIOC_TRY_ENCODER_CMD, INFO_FL_CLEAR(v4l2_encoder_cmd, flags)), 1651 IOCTL_INFO_STD(VIDIOC_TRY_ENCODER_CMD, vidioc_try_encoder_cmd, v4l_print_encoder_cmd, INFO_FL_CLEAR(v4l2_encoder_cmd, flags)),
1613 IOCTL_INFO(VIDIOC_DECODER_CMD, INFO_FL_PRIO), 1652 IOCTL_INFO_STD(VIDIOC_DECODER_CMD, vidioc_decoder_cmd, v4l_print_decoder_cmd, INFO_FL_PRIO),
1614 IOCTL_INFO(VIDIOC_TRY_DECODER_CMD, 0), 1653 IOCTL_INFO_STD(VIDIOC_TRY_DECODER_CMD, vidioc_try_decoder_cmd, v4l_print_decoder_cmd, 0),
1615 IOCTL_INFO(VIDIOC_DBG_S_REGISTER, 0), 1654 IOCTL_INFO(VIDIOC_DBG_S_REGISTER, 0),
1616 IOCTL_INFO(VIDIOC_DBG_G_REGISTER, 0), 1655 IOCTL_INFO(VIDIOC_DBG_G_REGISTER, 0),
1617 IOCTL_INFO(VIDIOC_DBG_G_CHIP_IDENT, 0), 1656 IOCTL_INFO(VIDIOC_DBG_G_CHIP_IDENT, 0),
@@ -1736,76 +1775,6 @@ static long __video_do_ioctl(struct file *file,
1736 } 1775 }
1737 1776
1738 switch (cmd) { 1777 switch (cmd) {
1739 case VIDIOC_G_JPEGCOMP:
1740 {
1741 struct v4l2_jpegcompression *p = arg;
1742
1743 ret = ops->vidioc_g_jpegcomp(file, fh, p);
1744 if (!ret)
1745 dbgarg(cmd, "quality=%d, APPn=%d, "
1746 "APP_len=%d, COM_len=%d, "
1747 "jpeg_markers=%d\n",
1748 p->quality, p->APPn, p->APP_len,
1749 p->COM_len, p->jpeg_markers);
1750 break;
1751 }
1752 case VIDIOC_S_JPEGCOMP:
1753 {
1754 struct v4l2_jpegcompression *p = arg;
1755
1756 dbgarg(cmd, "quality=%d, APPn=%d, APP_len=%d, "
1757 "COM_len=%d, jpeg_markers=%d\n",
1758 p->quality, p->APPn, p->APP_len,
1759 p->COM_len, p->jpeg_markers);
1760 ret = ops->vidioc_s_jpegcomp(file, fh, p);
1761 break;
1762 }
1763 case VIDIOC_G_ENC_INDEX:
1764 {
1765 struct v4l2_enc_idx *p = arg;
1766
1767 ret = ops->vidioc_g_enc_index(file, fh, p);
1768 if (!ret)
1769 dbgarg(cmd, "entries=%d, entries_cap=%d\n",
1770 p->entries, p->entries_cap);
1771 break;
1772 }
1773 case VIDIOC_ENCODER_CMD:
1774 {
1775 struct v4l2_encoder_cmd *p = arg;
1776
1777 ret = ops->vidioc_encoder_cmd(file, fh, p);
1778 if (!ret)
1779 dbgarg(cmd, "cmd=%d, flags=%x\n", p->cmd, p->flags);
1780 break;
1781 }
1782 case VIDIOC_TRY_ENCODER_CMD:
1783 {
1784 struct v4l2_encoder_cmd *p = arg;
1785
1786 ret = ops->vidioc_try_encoder_cmd(file, fh, p);
1787 if (!ret)
1788 dbgarg(cmd, "cmd=%d, flags=%x\n", p->cmd, p->flags);
1789 break;
1790 }
1791 case VIDIOC_DECODER_CMD:
1792 {
1793 struct v4l2_decoder_cmd *p = arg;
1794
1795 ret = ops->vidioc_decoder_cmd(file, fh, p);
1796 if (!ret)
1797 dbgarg(cmd, "cmd=%d, flags=%x\n", p->cmd, p->flags);
1798 break;
1799 }
1800 case VIDIOC_TRY_DECODER_CMD:
1801 {
1802 struct v4l2_decoder_cmd *p = arg;
1803
1804 ret = ops->vidioc_try_decoder_cmd(file, fh, p);
1805 if (!ret)
1806 dbgarg(cmd, "cmd=%d, flags=%x\n", p->cmd, p->flags);
1807 break;
1808 }
1809 case VIDIOC_G_SLICED_VBI_CAP: 1778 case VIDIOC_G_SLICED_VBI_CAP:
1810 { 1779 {
1811 struct v4l2_sliced_vbi_cap *p = arg; 1780 struct v4l2_sliced_vbi_cap *p = arg;