ov8830: Adding a new 16:9 preview mode
authorVinod Govindapillai <vinod.govindapillai@intel.com>
Tue, 3 Apr 2012 18:12:16 +0000 (21:12 +0300)
committerbuildbot <buildbot@intel.com>
Tue, 10 Apr 2012 20:19:39 +0000 (13:19 -0700)
BZ: 27476

Low resolution camera modes are not working in clovertrail because
the current preview modes in the lens driver do not support 16:9
resolutions. A new preview mode 1920x1080 is added to support wide
preview resolutions.

Change-Id: I41a5dd8d384d2a7bc1ef74a74c92674789584817
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
Reviewed-on: http://android.intel.com:8080/42398
Reviewed-by: Toivonen, Tuukka <tuukka.toivonen@intel.com>
Reviewed-by: Cohen, David A <david.a.cohen@intel.com>
Tested-by: Lampila, KalleX <kallex.lampila@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
drivers/media/video/ov8830.c

index aa30489..5a463d3 100644 (file)
@@ -608,6 +608,305 @@ static const struct ov8830_reg ov8830_mode_1600[] = {
        { OV8830_TOK_TERM, {0}, 0}
 };
 
+/* 60 RES_1920x1080_SCALE_31fps_4lane OV8830_AM35.ovd */
+static const struct ov8830_reg ov8830_mode_widepreview[] = {
+       { OV8830_8BIT, { 0x0100 }, 0x00 },
+       { OV8830_8BIT, { 0x0103 }, 0x01 },
+       { OV8830_8BIT, { 0x0100 }, 0x00 },
+       { OV8830_8BIT, { 0x0100 }, 0x00 },
+       { OV8830_8BIT, { 0x0100 }, 0x00 },
+       { OV8830_8BIT, { 0x0100 }, 0x00 },
+       { OV8830_8BIT, { 0x0102 }, 0x01 },
+       { OV8830_8BIT, { 0x3000 }, 0x00 },
+       { OV8830_8BIT, { 0x3001 }, 0x2a },
+       { OV8830_8BIT, { 0x3002 }, 0x88 },
+       { OV8830_8BIT, { 0x3003 }, 0x00 },
+       { OV8830_8BIT, { 0x3004 }, 0x00 },
+       { OV8830_8BIT, { 0x3005 }, 0x00 },
+       { OV8830_8BIT, { 0x3006 }, 0x00 },
+       { OV8830_8BIT, { 0x3007 }, 0x00 },
+       { OV8830_8BIT, { 0x3008 }, 0x00 },
+       { OV8830_8BIT, { 0x3009 }, 0x00 },
+       { OV8830_8BIT, { 0x3011 }, 0x41 },
+       { OV8830_8BIT, { 0x3012 }, 0x08 },
+       { OV8830_8BIT, { 0x3013 }, 0x10 },
+       { OV8830_8BIT, { 0x3014 }, 0x00 },
+       { OV8830_8BIT, { 0x3015 }, 0x08 },
+       { OV8830_8BIT, { 0x3016 }, 0xf0 },
+       { OV8830_8BIT, { 0x3017 }, 0xf0 },
+       { OV8830_8BIT, { 0x3018 }, 0xf0 },
+       { OV8830_8BIT, { 0x301b }, 0xb4 },
+       { OV8830_8BIT, { 0x301d }, 0x02 },
+       { OV8830_8BIT, { 0x3021 }, 0x00 },
+       { OV8830_8BIT, { 0x3022 }, 0x00 },
+       { OV8830_8BIT, { 0x3024 }, 0x00 },
+       { OV8830_8BIT, { 0x3026 }, 0x00 },
+       { OV8830_8BIT, { 0x3027 }, 0x00 },
+       { OV8830_8BIT, { 0x3081 }, 0x02 },
+       { OV8830_8BIT, { 0x3083 }, 0x01 },
+       { OV8830_8BIT, { 0x3090 }, 0x02 },
+       { OV8830_8BIT, { 0x3091 }, 0x17 },
+       { OV8830_8BIT, { 0x3092 }, 0x00 },
+       { OV8830_8BIT, { 0x3093 }, 0x00 },
+       { OV8830_8BIT, { 0x3098 }, 0x03 },
+       { OV8830_8BIT, { 0x3099 }, 0x13 },
+       { OV8830_8BIT, { 0x309a }, 0x00 },
+       { OV8830_8BIT, { 0x309b }, 0x00 },
+       { OV8830_8BIT, { 0x309c }, 0x01 },
+       { OV8830_8BIT, { 0x30a2 }, 0x01 },
+       { OV8830_8BIT, { 0x30b0 }, 0x05 },
+       { OV8830_8BIT, { 0x30b2 }, 0x00 },
+       { OV8830_8BIT, { 0x30b3 }, 0x5e },
+       { OV8830_8BIT, { 0x30b4 }, 0x03 },
+       { OV8830_8BIT, { 0x30b5 }, 0x04 },
+       { OV8830_8BIT, { 0x30b6 }, 0x01 },
+       { OV8830_8BIT, { 0x3104 }, 0xa1 },
+       { OV8830_8BIT, { 0x3106 }, 0x01 },
+       { OV8830_8BIT, { 0x3300 }, 0x00 },
+       { OV8830_8BIT, { 0x3400 }, 0x04 },
+       { OV8830_8BIT, { 0x3401 }, 0x00 },
+       { OV8830_8BIT, { 0x3402 }, 0x04 },
+       { OV8830_8BIT, { 0x3403 }, 0x00 },
+       { OV8830_8BIT, { 0x3404 }, 0x04 },
+       { OV8830_8BIT, { 0x3405 }, 0x00 },
+       { OV8830_8BIT, { 0x3406 }, 0x01 },
+       { OV8830_8BIT, { 0x3500 }, 0x00 },
+       { OV8830_8BIT, { 0x3501 }, 0x74 },
+       { OV8830_8BIT, { 0x3502 }, 0x80 },
+       { OV8830_8BIT, { 0x3503 }, 0x07 },
+       { OV8830_8BIT, { 0x3504 }, 0x00 },
+       { OV8830_8BIT, { 0x3505 }, 0x30 },
+       { OV8830_8BIT, { 0x3506 }, 0x00 },
+       { OV8830_8BIT, { 0x3507 }, 0x10 },
+       { OV8830_8BIT, { 0x3508 }, 0x80 },
+       { OV8830_8BIT, { 0x3509 }, 0x10 },
+       { OV8830_8BIT, { 0x350a }, 0x00 },
+       { OV8830_8BIT, { 0x350b }, 0x38 },
+       { OV8830_8BIT, { 0x350c }, 0x00 },
+       { OV8830_8BIT, { 0x350d }, 0x00 },
+       { OV8830_8BIT, { 0x3600 }, 0x78 },
+       { OV8830_8BIT, { 0x3601 }, 0x02 },
+       { OV8830_8BIT, { 0x3602 }, 0x1c },
+       { OV8830_8BIT, { 0x3604 }, 0x38 },
+       { OV8830_8BIT, { 0x3620 }, 0x64 },
+       { OV8830_8BIT, { 0x3625 }, 0x64 },
+       { OV8830_8BIT, { 0x3621 }, 0xb5 },
+       { OV8830_8BIT, { 0x3622 }, 0x03 },
+       { OV8830_8BIT, { 0x3630 }, 0x55 },
+       { OV8830_8BIT, { 0x3631 }, 0xd2 },
+       { OV8830_8BIT, { 0x3632 }, 0x00 },
+       { OV8830_8BIT, { 0x3633 }, 0x34 },
+       { OV8830_8BIT, { 0x3634 }, 0x03 },
+       { OV8830_8BIT, { 0x3660 }, 0x80 },
+       { OV8830_8BIT, { 0x3662 }, 0x10 },
+       { OV8830_8BIT, { 0x3665 }, 0x00 },
+       { OV8830_8BIT, { 0x3666 }, 0x00 },
+       { OV8830_8BIT, { 0x3667 }, 0x00 },
+       { OV8830_8BIT, { 0x366a }, 0x80 },
+       { OV8830_8BIT, { 0x366c }, 0x00 },
+       { OV8830_8BIT, { 0x366d }, 0x00 },
+       { OV8830_8BIT, { 0x366e }, 0x00 },
+       { OV8830_8BIT, { 0x366f }, 0x20 },
+       { OV8830_8BIT, { 0x3680 }, 0xe0 },
+       { OV8830_8BIT, { 0x3681 }, 0x00 },
+       { OV8830_8BIT, { 0x3701 }, 0x14 },
+       { OV8830_8BIT, { 0x3702 }, 0xbf },
+       { OV8830_8BIT, { 0x3703 }, 0x8c },
+       { OV8830_8BIT, { 0x3704 }, 0x78 },
+       { OV8830_8BIT, { 0x3705 }, 0x02 },
+       { OV8830_8BIT, { 0x3708 }, 0xe4 },
+       { OV8830_8BIT, { 0x3709 }, 0x03 },
+       { OV8830_8BIT, { 0x370a }, 0x00 },
+       { OV8830_8BIT, { 0x370b }, 0x20 },
+       { OV8830_8BIT, { 0x370c }, 0x0c },
+       { OV8830_8BIT, { 0x370d }, 0x11 },
+       { OV8830_8BIT, { 0x370e }, 0x00 },
+       { OV8830_8BIT, { 0x370f }, 0x00 },
+       { OV8830_8BIT, { 0x3710 }, 0x00 },
+       { OV8830_8BIT, { 0x371c }, 0x01 },
+       { OV8830_8BIT, { 0x371f }, 0x0c },
+       { OV8830_8BIT, { 0x3721 }, 0x00 },
+       { OV8830_8BIT, { 0x3724 }, 0x10 },
+       { OV8830_8BIT, { 0x3726 }, 0x00 },
+       { OV8830_8BIT, { 0x372a }, 0x01 },
+       { OV8830_8BIT, { 0x3730 }, 0x18 },
+       { OV8830_8BIT, { 0x3738 }, 0x22 },
+       { OV8830_8BIT, { 0x3739 }, 0x08 },
+       { OV8830_8BIT, { 0x373a }, 0x51 },
+       { OV8830_8BIT, { 0x373b }, 0x02 },
+       { OV8830_8BIT, { 0x373c }, 0x20 },
+       { OV8830_8BIT, { 0x373f }, 0x02 },
+       { OV8830_8BIT, { 0x3740 }, 0x42 },
+       { OV8830_8BIT, { 0x3741 }, 0x02 },
+       { OV8830_8BIT, { 0x3742 }, 0x18 },
+       { OV8830_8BIT, { 0x3743 }, 0x01 },
+       { OV8830_8BIT, { 0x3744 }, 0x02 },
+       { OV8830_8BIT, { 0x3747 }, 0x10 },
+       { OV8830_8BIT, { 0x374c }, 0x04 },
+       { OV8830_8BIT, { 0x3751 }, 0xf0 },
+       { OV8830_8BIT, { 0x3752 }, 0x00 },
+       { OV8830_8BIT, { 0x3753 }, 0x00 },
+       { OV8830_8BIT, { 0x3754 }, 0xc0 },
+       { OV8830_8BIT, { 0x3755 }, 0x00 },
+       { OV8830_8BIT, { 0x3756 }, 0x1a },
+       { OV8830_8BIT, { 0x3758 }, 0x00 },
+       { OV8830_8BIT, { 0x3759 }, 0x0f },
+       { OV8830_8BIT, { 0x375c }, 0x04 },
+       { OV8830_8BIT, { 0x3767 }, 0x01 },
+       { OV8830_8BIT, { 0x376b }, 0x44 },
+       { OV8830_8BIT, { 0x3774 }, 0x10 },
+       { OV8830_8BIT, { 0x3776 }, 0x00 },
+       { OV8830_8BIT, { 0x377f }, 0x08 },
+       { OV8830_8BIT, { 0x3780 }, 0x22 },
+       { OV8830_8BIT, { 0x3781 }, 0x0c },
+       { OV8830_8BIT, { 0x3784 }, 0x2c },
+       { OV8830_8BIT, { 0x3785 }, 0x1e },
+       { OV8830_8BIT, { 0x378f }, 0xf5 },
+       { OV8830_8BIT, { 0x3791 }, 0xb0 },
+       { OV8830_8BIT, { 0x3795 }, 0x00 },
+       { OV8830_8BIT, { 0x3796 }, 0x64 },
+       { OV8830_8BIT, { 0x3797 }, 0x11 },
+       { OV8830_8BIT, { 0x3798 }, 0x30 },
+       { OV8830_8BIT, { 0x3799 }, 0x41 },
+       { OV8830_8BIT, { 0x379a }, 0x07 },
+       { OV8830_8BIT, { 0x379b }, 0xb0 },
+       { OV8830_8BIT, { 0x379c }, 0x0c },
+       { OV8830_8BIT, { 0x37c0 }, 0x00 },
+       { OV8830_8BIT, { 0x37c1 }, 0x00 },
+       { OV8830_8BIT, { 0x37c2 }, 0x00 },
+       { OV8830_8BIT, { 0x37c3 }, 0x00 },
+       { OV8830_8BIT, { 0x37c4 }, 0x00 },
+       { OV8830_8BIT, { 0x37c5 }, 0x00 },
+       { OV8830_8BIT, { 0x37c6 }, 0xa0 },
+       { OV8830_8BIT, { 0x37c7 }, 0x00 },
+       { OV8830_8BIT, { 0x37c8 }, 0x00 },
+       { OV8830_8BIT, { 0x37c9 }, 0x00 },
+       { OV8830_8BIT, { 0x37ca }, 0x00 },
+       { OV8830_8BIT, { 0x37cb }, 0x00 },
+       { OV8830_8BIT, { 0x37cc }, 0x00 },
+       { OV8830_8BIT, { 0x37cd }, 0x00 },
+       { OV8830_8BIT, { 0x37ce }, 0x01 },
+       { OV8830_8BIT, { 0x37cf }, 0x00 },
+       { OV8830_8BIT, { 0x37d1 }, 0x01 },
+       { OV8830_8BIT, { 0x37de }, 0x00 },
+       { OV8830_8BIT, { 0x37df }, 0x00 },
+       { OV8830_8BIT, { 0x3800 }, 0x00 },
+       { OV8830_8BIT, { 0x3801 }, 0x0c },
+       { OV8830_8BIT, { 0x3802 }, 0x01 },
+       { OV8830_8BIT, { 0x3803 }, 0x40 },
+       { OV8830_8BIT, { 0x3804 }, 0x0c },
+       { OV8830_8BIT, { 0x3805 }, 0xd3 },
+       { OV8830_8BIT, { 0x3806 }, 0x08 },
+       { OV8830_8BIT, { 0x3807 }, 0x73 },
+       { OV8830_8BIT, { 0x3808 }, 0x07 },
+       { OV8830_8BIT, { 0x3809 }, 0x80 },
+       { OV8830_8BIT, { 0x380a }, 0x04 },
+       { OV8830_8BIT, { 0x380b }, 0x38 },
+       { OV8830_8BIT, { 0x380c }, 0x0e },
+       { OV8830_8BIT, { 0x380d }, 0x18 },
+       { OV8830_8BIT, { 0x380e }, 0x07 },
+       { OV8830_8BIT, { 0x380f }, 0x50 },
+       { OV8830_8BIT, { 0x3810 }, 0x00 },
+       { OV8830_8BIT, { 0x3811 }, 0x04 },
+       { OV8830_8BIT, { 0x3812 }, 0x00 },
+       { OV8830_8BIT, { 0x3813 }, 0x04 },
+       { OV8830_8BIT, { 0x3814 }, 0x11 },
+       { OV8830_8BIT, { 0x3815 }, 0x11 },
+       { OV8830_8BIT, { 0x3820 }, 0x10 },
+       { OV8830_8BIT, { 0x3821 }, 0x0e },
+       { OV8830_8BIT, { 0x3823 }, 0x00 },
+       { OV8830_8BIT, { 0x3824 }, 0x00 },
+       { OV8830_8BIT, { 0x3825 }, 0x00 },
+       { OV8830_8BIT, { 0x3826 }, 0x00 },
+       { OV8830_8BIT, { 0x3827 }, 0x00 },
+       { OV8830_8BIT, { 0x382a }, 0x04 },
+       { OV8830_8BIT, { 0x3a04 }, 0x07 },
+       { OV8830_8BIT, { 0x3a05 }, 0x49 },
+       { OV8830_8BIT, { 0x3a06 }, 0x00 },
+       { OV8830_8BIT, { 0x3a07 }, 0xf8 },
+       { OV8830_8BIT, { 0x3a18 }, 0x00 },
+       { OV8830_8BIT, { 0x3a19 }, 0x00 },
+       { OV8830_8BIT, { 0x3b00 }, 0x00 },
+       { OV8830_8BIT, { 0x3b01 }, 0x00 },
+       { OV8830_8BIT, { 0x3b02 }, 0x00 },
+       { OV8830_8BIT, { 0x3b03 }, 0x00 },
+       { OV8830_8BIT, { 0x3b04 }, 0x00 },
+       { OV8830_8BIT, { 0x3b05 }, 0x00 },
+       { OV8830_8BIT, { 0x3d00 }, 0x00 },
+       { OV8830_8BIT, { 0x3d01 }, 0x00 },
+       { OV8830_8BIT, { 0x3d02 }, 0x00 },
+       { OV8830_8BIT, { 0x3d03 }, 0x00 },
+       { OV8830_8BIT, { 0x3d04 }, 0x00 },
+       { OV8830_8BIT, { 0x3d05 }, 0x00 },
+       { OV8830_8BIT, { 0x3d06 }, 0x00 },
+       { OV8830_8BIT, { 0x3d07 }, 0x00 },
+       { OV8830_8BIT, { 0x3d08 }, 0x00 },
+       { OV8830_8BIT, { 0x3d09 }, 0x00 },
+       { OV8830_8BIT, { 0x3d0a }, 0x00 },
+       { OV8830_8BIT, { 0x3d0b }, 0x00 },
+       { OV8830_8BIT, { 0x3d0c }, 0x00 },
+       { OV8830_8BIT, { 0x3d0d }, 0x00 },
+       { OV8830_8BIT, { 0x3d0e }, 0x00 },
+       { OV8830_8BIT, { 0x3d0f }, 0x00 },
+       { OV8830_8BIT, { 0x3d80 }, 0x00 },
+       { OV8830_8BIT, { 0x3d81 }, 0x00 },
+       { OV8830_8BIT, { 0x3d84 }, 0x00 },
+       { OV8830_8BIT, { 0x3e07 }, 0x20 },
+       { OV8830_8BIT, { 0x4000 }, 0x18 },
+       { OV8830_8BIT, { 0x4001 }, 0x04 },
+       { OV8830_8BIT, { 0x4002 }, 0x45 },
+       { OV8830_8BIT, { 0x4004 }, 0x02 },
+       { OV8830_8BIT, { 0x4005 }, 0x18 },
+       { OV8830_8BIT, { 0x4006 }, 0x16 },
+       { OV8830_8BIT, { 0x4008 }, 0x20 },
+       { OV8830_8BIT, { 0x4009 }, 0x10 },
+       { OV8830_8BIT, { 0x400c }, 0x00 },
+       { OV8830_8BIT, { 0x400d }, 0x00 },
+       { OV8830_8BIT, { 0x4058 }, 0x00 },
+       { OV8830_8BIT, { 0x4101 }, 0x12 },
+       { OV8830_8BIT, { 0x4104 }, 0x5b },
+       { OV8830_8BIT, { 0x4303 }, 0x00 },
+       { OV8830_8BIT, { 0x4304 }, 0x08 },
+       { OV8830_8BIT, { 0x4307 }, 0x30 },
+       { OV8830_8BIT, { 0x4315 }, 0x00 },
+       { OV8830_8BIT, { 0x4511 }, 0x05 },
+       { OV8830_8BIT, { 0x4512 }, 0x01 },
+       { OV8830_8BIT, { 0x4750 }, 0x00 },
+       { OV8830_8BIT, { 0x4751 }, 0x00 },
+       { OV8830_8BIT, { 0x4752 }, 0x00 },
+       { OV8830_8BIT, { 0x4753 }, 0x00 },
+       { OV8830_8BIT, { 0x4805 }, 0x01 },
+       { OV8830_8BIT, { 0x4806 }, 0x00 },
+       { OV8830_8BIT, { 0x481f }, 0x36 },
+       { OV8830_8BIT, { 0x4831 }, 0x6c },
+       { OV8830_8BIT, { 0x4837 }, 0x0d },
+       { OV8830_8BIT, { 0x4a00 }, 0xaa },
+       { OV8830_8BIT, { 0x4a03 }, 0x01 },
+       { OV8830_8BIT, { 0x4a05 }, 0x08 },
+       { OV8830_8BIT, { 0x4a0a }, 0x88 },
+       { OV8830_8BIT, { 0x5000 }, 0x06 },
+       { OV8830_8BIT, { 0x5001 }, 0x01 },
+       { OV8830_8BIT, { 0x5002 }, 0x80 },
+       { OV8830_8BIT, { 0x5003 }, 0x20 },
+       { OV8830_8BIT, { 0x5013 }, 0x00 },
+       { OV8830_8BIT, { 0x5046 }, 0x4a },
+       { OV8830_8BIT, { 0x5780 }, 0x1c },
+       { OV8830_8BIT, { 0x5786 }, 0x20 },
+       { OV8830_8BIT, { 0x5787 }, 0x10 },
+       { OV8830_8BIT, { 0x5788 }, 0x18 },
+       { OV8830_8BIT, { 0x578a }, 0x04 },
+       { OV8830_8BIT, { 0x578b }, 0x02 },
+       { OV8830_8BIT, { 0x578c }, 0x02 },
+       { OV8830_8BIT, { 0x578e }, 0x06 },
+       { OV8830_8BIT, { 0x578f }, 0x02 },
+       { OV8830_8BIT, { 0x5790 }, 0x02 },
+       { OV8830_8BIT, { 0x5791 }, 0xff },
+       { OV8830_8BIT, { 0x5a08 }, 0x02 },
+       { OV8830_8BIT, { 0x5e00 }, 0x00 },
+       { OV8830_8BIT, { 0x5e10 }, 0x0c },
+       { OV8830_TOK_TERM, {0}, 0}
+};
+
 /* 30 RES_3264x2448_15fps_2lane OV8830_AM35.ovd */
 static const struct ov8830_reg ov8830_mode2[] = {
        { OV8830_8BIT, { 0x0100 }, 0x00 },
@@ -956,6 +1255,16 @@ static struct ov8830_resolution ov8830_res_preview[] = {
                 .regs =        ov8830_mode_1600        ,
        },
        {
+                .desc =        "MODE1920x1080" ,
+                .width =       1920    ,
+                .height =      1080    ,
+                .fps =         31      ,
+                .used =        0       ,
+                .pixels_per_line = 3608, /* consistent with regs arrays */
+                .lines_per_frame = 1872, /* consistent with regs arrays */
+                .regs =        ov8830_mode_widepreview ,
+       },
+       {
                .desc =        "STILL_8M_15fps"        ,
                .width =       3280    ,
                .height =      2464    ,