|
|
|
[PATCH 4/4] soc-camera: tw9910: use V4L2_FIELD_INTERLACED_TB/BT for field | |
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] | |
Signed-off-by: Kuninori Morimoto <morimoto.kuninori@xxxxxxxxxxx>
---
drivers/media/video/tw9910.c | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/media/video/tw9910.c b/drivers/media/video/tw9910.c
index 478be16..3bbdc76 100644
--- a/drivers/media/video/tw9910.c
+++ b/drivers/media/video/tw9910.c
@@ -828,13 +828,19 @@ static int tw9910_s_fmt(struct v4l2_subdev *sd, struct v4l2_format *f)
static int tw9910_try_fmt(struct v4l2_subdev *sd, struct v4l2_format *f)
{
struct i2c_client *client = sd->priv;
+ struct tw9910_priv *priv = to_tw9910(client);
struct soc_camera_device *icd = client->dev.platform_data;
struct v4l2_pix_format *pix = &f->fmt.pix;
const struct tw9910_scale_ctrl *scale;
+ enum v4l2_field field;
+
+ field = i2c_smbus_read_byte_data(client, STATUS1) & 0x10 ?
+ V4L2_FIELD_INTERLACED_TB : V4L2_FIELD_INTERLACED_BT;
- if (V4L2_FIELD_ANY == pix->field) {
- pix->field = V4L2_FIELD_INTERLACED;
- } else if (V4L2_FIELD_INTERLACED != pix->field) {
+ if ((V4L2_FIELD_ANY == pix->field) ||
+ (V4L2_FIELD_INTERLACED == pix->field)) {
+ pix->field = field;
+ } else if (field != pix->field) {
dev_err(&client->dev, "Field type invalid.\n");
return -EINVAL;
}
--
1.6.0.4
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@xxxxxxxxxx?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
[Linux Media] [Older V4L] [Linux DVB] [Video Disk Recorder] [Linux Kernel] [Asterisk] [Photo] [DCCP] [Netdev] [Xorg] [Util Linux NG] [Xfree86] [Free Photo Albums] [Fedora Users] [Fedora Women] [ALSA Users] [ALSA Devel] [SSH] [DVB Maintainers] [Linux USB] [Yosemite Information]
![]() |
![]() |