If your 16bits data output from adv7180 is BT1120 format (on 16 bits data bus, the 8 MSB is always the Y and SAV/EAV, the 8 LSB is U,V,U,V ......), then you don't need modify the mxc_v4l2_capture.c, in adv7180 driver, function ioctl_g_ifparm(), you should return the followed parameters:
p->if_type = V4L2_IF_TYPE_BT1120;
p->u.bt1120.mode = V4L2_IF_TYPE_BT1120_MODE_BT_8BIT;
p->u.bt1120.nobt_hs_inv = 0;
p->u.bt1120.nobt_vs_inv = 0;
p->u.bt1120.latch_clk_inv = 0;
p->u.bt1120.clock_curr = 0;
p->u.bt1120.bt_sync_correct = 0;
For V4L2_IF_TYPE_BT1120_MODE_BT_8BIT, that means each Y,U,V data is 8bits, so the IPU_CSI_DATA_WIDTH is till set to 8, not 16.
And for BT1120 16bits mode, in function adv7180_probe(), adv7180_data.pix.pixelformat should be changed from V4L2_PIX_FMT_UYVY to V4L2_PIX_FMT_YUYV.
No code modification was needed in mxc_v4l2_capture.c, my patch had already tuned that file well to support 8bits BT565 and 16bits BT1120.