diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/video/mxc/capture/csi_v4l2_capture.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/media/video/mxc/capture/csi_v4l2_capture.c b/drivers/media/video/mxc/capture/csi_v4l2_capture.c index 48d2278789e0..6574ca7d95b7 100644 --- a/drivers/media/video/mxc/capture/csi_v4l2_capture.c +++ b/drivers/media/video/mxc/capture/csi_v4l2_capture.c @@ -1370,6 +1370,22 @@ static long csi_v4l_do_ioctl(struct file *file, break; } + crop->c.top = (crop->c.top < b->top) ? b->top + : crop->c.top; + if (crop->c.top > b->top + b->height) + crop->c.top = b->top + b->height - 1; + if (crop->c.height > b->top + b->height - crop->c.top) + crop->c.height = + b->top + b->height - crop->c.top; + + crop->c.left = (crop->c.left < b->left) ? b->left + : crop->c.left; + if (crop->c.left > b->left + b->width) + crop->c.left = b->left + b->width - 1; + if (crop->c.width > b->left - crop->c.left + b->width) + crop->c.width = + b->left - crop->c.left + b->width; + crop->c.width -= crop->c.width % 8; crop->c.height -= crop->c.height % 8; |