|
|
@@ -726,6 +726,21 @@ static int adv7180_g_mbus_config(struct v4l2_subdev *sd,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+static int adv7180_cropcap(struct v4l2_subdev *sd, struct v4l2_cropcap *cropcap)
|
|
|
+{
|
|
|
+ struct adv7180_state *state = to_state(sd);
|
|
|
+
|
|
|
+ if (state->curr_norm & V4L2_STD_525_60) {
|
|
|
+ cropcap->pixelaspect.numerator = 11;
|
|
|
+ cropcap->pixelaspect.denominator = 10;
|
|
|
+ } else {
|
|
|
+ cropcap->pixelaspect.numerator = 54;
|
|
|
+ cropcap->pixelaspect.denominator = 59;
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
static const struct v4l2_subdev_video_ops adv7180_video_ops = {
|
|
|
.s_std = adv7180_s_std,
|
|
|
.g_std = adv7180_g_std,
|
|
|
@@ -733,6 +748,7 @@ static const struct v4l2_subdev_video_ops adv7180_video_ops = {
|
|
|
.g_input_status = adv7180_g_input_status,
|
|
|
.s_routing = adv7180_s_routing,
|
|
|
.g_mbus_config = adv7180_g_mbus_config,
|
|
|
+ .cropcap = adv7180_cropcap,
|
|
|
};
|
|
|
|
|
|
|