|
@@ -644,6 +644,9 @@ static int adv7180_mbus_fmt(struct v4l2_subdev *sd,
|
|
|
fmt->width = 720;
|
|
|
fmt->height = state->curr_norm & V4L2_STD_525_60 ? 480 : 576;
|
|
|
|
|
|
+ if (state->field == V4L2_FIELD_ALTERNATE)
|
|
|
+ fmt->height /= 2;
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -711,11 +714,11 @@ static int adv7180_set_pad_format(struct v4l2_subdev *sd,
|
|
|
|
|
|
switch (format->format.field) {
|
|
|
case V4L2_FIELD_NONE:
|
|
|
- if (!(state->chip_info->flags & ADV7180_FLAG_I2P))
|
|
|
- format->format.field = V4L2_FIELD_INTERLACED;
|
|
|
- break;
|
|
|
+ if (state->chip_info->flags & ADV7180_FLAG_I2P)
|
|
|
+ break;
|
|
|
+ /* fall through */
|
|
|
default:
|
|
|
- format->format.field = V4L2_FIELD_INTERLACED;
|
|
|
+ format->format.field = V4L2_FIELD_ALTERNATE;
|
|
|
break;
|
|
|
}
|
|
|
|
|
@@ -1291,7 +1294,7 @@ static int adv7180_probe(struct i2c_client *client,
|
|
|
return -ENOMEM;
|
|
|
|
|
|
state->client = client;
|
|
|
- state->field = V4L2_FIELD_INTERLACED;
|
|
|
+ state->field = V4L2_FIELD_ALTERNATE;
|
|
|
state->chip_info = (struct adv7180_chip_info *)id->driver_data;
|
|
|
|
|
|
state->pwdn_gpio = devm_gpiod_get_optional(&client->dev, "powerdown",
|