aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/tvp514x.c
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2010-05-09 05:37:14 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-06-01 00:21:44 -0400
commitc2fc80961fc2059c05bf07c92decfffde2a0f9ef (patch)
tree155d00456508a91697d65a18a4e60c85e2e38a80 /drivers/media/video/tvp514x.c
parenta75ffc124611a535aec8f403817d382d106c68d7 (diff)
V4L/DVB: tvp514x: there is only one supported format, so simplify the code
Get rid of unnecessary code since this driver supports only one pixel format. Removing this code will make the transition to the mbus API easier as well. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Reviewed-by: Vaibhav Hiremath <hvaibhav@ti.com> Tested-by: Vaibhav Hiremath <hvaibhav@ti.com> Acked-by: Vaibhav Hiremath <hvaibhav@ti.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/tvp514x.c')
-rw-r--r--drivers/media/video/tvp514x.c45
1 files changed, 9 insertions, 36 deletions
diff --git a/drivers/media/video/tvp514x.c b/drivers/media/video/tvp514x.c
index b802da713114..cb4284384133 100644
--- a/drivers/media/video/tvp514x.c
+++ b/drivers/media/video/tvp514x.c
@@ -89,8 +89,6 @@ static int tvp514x_s_stream(struct v4l2_subdev *sd, int enable);
89 * @ver: Chip version 89 * @ver: Chip version
90 * @streaming: TVP5146/47 decoder streaming - enabled or disabled. 90 * @streaming: TVP5146/47 decoder streaming - enabled or disabled.
91 * @pix: Current pixel format 91 * @pix: Current pixel format
92 * @num_fmts: Number of formats
93 * @fmt_list: Format list
94 * @current_std: Current standard 92 * @current_std: Current standard
95 * @num_stds: Number of standards 93 * @num_stds: Number of standards
96 * @std_list: Standards list 94 * @std_list: Standards list
@@ -106,8 +104,6 @@ struct tvp514x_decoder {
106 int streaming; 104 int streaming;
107 105
108 struct v4l2_pix_format pix; 106 struct v4l2_pix_format pix;
109 int num_fmts;
110 const struct v4l2_fmtdesc *fmt_list;
111 107
112 enum tvp514x_std current_std; 108 enum tvp514x_std current_std;
113 int num_stds; 109 int num_stds;
@@ -960,27 +956,18 @@ tvp514x_s_ctrl(struct v4l2_subdev *sd, struct v4l2_control *ctrl)
960static int 956static int
961tvp514x_enum_fmt_cap(struct v4l2_subdev *sd, struct v4l2_fmtdesc *fmt) 957tvp514x_enum_fmt_cap(struct v4l2_subdev *sd, struct v4l2_fmtdesc *fmt)
962{ 958{
963 struct tvp514x_decoder *decoder = to_decoder(sd); 959 if (fmt == NULL || fmt->index)
964 int index;
965
966 if (fmt == NULL)
967 return -EINVAL;
968
969 index = fmt->index;
970 if ((index >= decoder->num_fmts) || (index < 0))
971 /* Index out of bound */
972 return -EINVAL; 960 return -EINVAL;
973 961
974 if (fmt->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) 962 if (fmt->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
975 /* only capture is supported */ 963 /* only capture is supported */
976 return -EINVAL; 964 return -EINVAL;
977 965
978 memcpy(fmt, &decoder->fmt_list[index], 966 /* only one format */
979 sizeof(struct v4l2_fmtdesc)); 967 fmt->flags = 0;
980 968 strlcpy(fmt->description, "8-bit UYVY 4:2:2 Format",
981 v4l2_dbg(1, debug, sd, "Current FMT: index - %d (%s)", 969 sizeof(fmt->description));
982 decoder->fmt_list[index].index, 970 fmt->pixelformat = V4L2_PIX_FMT_UYVY;
983 decoder->fmt_list[index].description);
984 return 0; 971 return 0;
985} 972}
986 973
@@ -997,7 +984,6 @@ static int
997tvp514x_try_fmt_cap(struct v4l2_subdev *sd, struct v4l2_format *f) 984tvp514x_try_fmt_cap(struct v4l2_subdev *sd, struct v4l2_format *f)
998{ 985{
999 struct tvp514x_decoder *decoder = to_decoder(sd); 986 struct tvp514x_decoder *decoder = to_decoder(sd);
1000 int ifmt;
1001 struct v4l2_pix_format *pix; 987 struct v4l2_pix_format *pix;
1002 enum tvp514x_std current_std; 988 enum tvp514x_std current_std;
1003 989
@@ -1013,28 +999,18 @@ tvp514x_try_fmt_cap(struct v4l2_subdev *sd, struct v4l2_format *f)
1013 /* Calculate height and width based on current standard */ 999 /* Calculate height and width based on current standard */
1014 current_std = decoder->current_std; 1000 current_std = decoder->current_std;
1015 1001
1002 pix->pixelformat = V4L2_PIX_FMT_UYVY;
1016 pix->width = decoder->std_list[current_std].width; 1003 pix->width = decoder->std_list[current_std].width;
1017 pix->height = decoder->std_list[current_std].height; 1004 pix->height = decoder->std_list[current_std].height;
1018
1019 for (ifmt = 0; ifmt < decoder->num_fmts; ifmt++) {
1020 if (pix->pixelformat ==
1021 decoder->fmt_list[ifmt].pixelformat)
1022 break;
1023 }
1024 if (ifmt == decoder->num_fmts)
1025 /* None of the format matched, select default */
1026 ifmt = 0;
1027 pix->pixelformat = decoder->fmt_list[ifmt].pixelformat;
1028
1029 pix->field = V4L2_FIELD_INTERLACED; 1005 pix->field = V4L2_FIELD_INTERLACED;
1030 pix->bytesperline = pix->width * 2; 1006 pix->bytesperline = pix->width * 2;
1031 pix->sizeimage = pix->bytesperline * pix->height; 1007 pix->sizeimage = pix->bytesperline * pix->height;
1032 pix->colorspace = V4L2_COLORSPACE_SMPTE170M; 1008 pix->colorspace = V4L2_COLORSPACE_SMPTE170M;
1033 pix->priv = 0; 1009 pix->priv = 0;
1034 1010
1035 v4l2_dbg(1, debug, sd, "Try FMT: pixelformat - %s, bytesperline - %d" 1011 v4l2_dbg(1, debug, sd, "Try FMT: bytesperline - %d"
1036 "Width - %d, Height - %d", 1012 "Width - %d, Height - %d",
1037 decoder->fmt_list[ifmt].description, pix->bytesperline, 1013 pix->bytesperline,
1038 pix->width, pix->height); 1014 pix->width, pix->height);
1039 return 0; 1015 return 0;
1040} 1016}
@@ -1254,9 +1230,6 @@ static const struct v4l2_subdev_ops tvp514x_ops = {
1254static struct tvp514x_decoder tvp514x_dev = { 1230static struct tvp514x_decoder tvp514x_dev = {
1255 .streaming = 0, 1231 .streaming = 0,
1256 1232
1257 .fmt_list = tvp514x_fmt_list,
1258 .num_fmts = ARRAY_SIZE(tvp514x_fmt_list),
1259
1260 .pix = { 1233 .pix = {
1261 /* Default to NTSC 8-bit YUV 422 */ 1234 /* Default to NTSC 8-bit YUV 422 */
1262 .width = NTSC_NUM_ACTIVE_PIXELS, 1235 .width = NTSC_NUM_ACTIVE_PIXELS,