@@ -659,12 +659,9 @@ static const u16 ds5_framerates[] = {5, 30};
659659#define DS5_FRAMERATE_DEFAULT_IDX 1
660660
661661static const u16 ds5_framerate_30 = 30 ;
662-
663- static const u16 ds5_framerate_15_30 [] = {15 , 30 };
664-
665662static const u16 ds5_framerate_25 = 25 ;
663+ static const u16 ds5_framerate_15_30 [] = {15 , 30 };
666664static const u16 ds5_framerate_15_25 [] = {15 , 25 };
667-
668665static const u16 ds5_depth_framerate_to_30 [] = {5 , 15 , 30 };
669666static const u16 ds5_framerate_to_30 [] = {5 , 10 , 15 , 30 };
670667static const u16 ds5_framerate_to_60 [] = {5 , 15 , 30 , 60 };
@@ -1005,6 +1002,15 @@ static const struct ds5_resolution d43x_calibration_sizes[] = {
10051002 },
10061003};
10071004
1005+ static const struct ds5_resolution d45x_calibration_sizes [] = {
1006+ {
1007+ .width = 1280 ,
1008+ .height = 800 ,
1009+ .framerates = ds5_framerate_15_25 ,
1010+ .n_framerates = ARRAY_SIZE (ds5_framerate_15_25 ),
1011+ },
1012+ };
1013+
10081014static const struct ds5_resolution d46x_calibration_sizes [] = {
10091015 {
10101016 .width = 1600 ,
@@ -1129,13 +1135,33 @@ static const struct ds5_format ds5_y_formats_41x[] = {
11291135 .n_resolutions = ARRAY_SIZE (y8_41x_sizes ),
11301136 .resolutions = y8_41x_sizes ,
11311137 }, {
1132- .data_type = GMSL_CSI_DT_RGB_888 , /* 24-bit Calibration */
1133- .mbus_code = MEDIA_BUS_FMT_RGB888_1X24 , /* FIXME */
1138+ .data_type = GMSL_CSI_DT_RGB_888 , /* Y12I, 24-bit Calibration */
1139+ .mbus_code = MEDIA_BUS_FMT_RGB888_1X24 ,
11341140 .n_resolutions = ARRAY_SIZE (d41x_calibration_sizes ),
11351141 .resolutions = d41x_calibration_sizes ,
11361142 },
11371143};
11381144
1145+ static const struct ds5_format ds5_y_formats_45x [] = {
1146+ {
1147+ /* First format: default */
1148+ .data_type = GMSL_CSI_DT_RAW_8 , /* Y8 */
1149+ .mbus_code = MEDIA_BUS_FMT_Y8_1X8 ,
1150+ .n_resolutions = ARRAY_SIZE (y8_sizes ),
1151+ .resolutions = y8_sizes ,
1152+ }, {
1153+ .data_type = GMSL_CSI_DT_YUV422_8 , /* Y8I */
1154+ .mbus_code = MEDIA_BUS_FMT_VYUY8_1X16 ,
1155+ .n_resolutions = ARRAY_SIZE (y8_sizes ),
1156+ .resolutions = y8_sizes ,
1157+ }, {
1158+ .data_type = GMSL_CSI_DT_RGB_888 , /* Y12I, 24-bit Calibration */
1159+ .mbus_code = MEDIA_BUS_FMT_RGB888_1X24 ,
1160+ .n_resolutions = ARRAY_SIZE (d45x_calibration_sizes ),
1161+ .resolutions = d45x_calibration_sizes ,
1162+ },
1163+ };
1164+
11391165static const struct ds5_format ds5_41x_rgb_format = {
11401166 .data_type = GMSL_CSI_DT_YUV422_8 , /* UYVY */
11411167 .mbus_code = MEDIA_BUS_FMT_YUYV8_1X16 ,
@@ -1713,9 +1739,7 @@ static int ds5_configure(struct ds5 *state)
17131739#ifdef CONFIG_VIDEO_D4XX_SERDES
17141740 data_type1 = sensor -> config .format -> data_type ;
17151741 data_type2 = state -> is_imu ? 0x00 : md_fmt ;
1716- /* do not have metadata for y12i */
1717- if (state -> is_y8 && data_type1 == GMSL_CSI_DT_RGB_888 )
1718- data_type2 = 0 ;
1742+
17191743 vc_id = state -> g_ctx .dst_vc ;
17201744
17211745 ret = ds5_setup_pipeline (state , data_type1 , data_type2 , sensor -> pipe_id ,
@@ -4817,6 +4841,10 @@ static int ds5_fixed_configuration(struct i2c_client *client, struct ds5 *state)
48174841 sensor -> formats = ds5_y_formats_41x ;
48184842 sensor -> n_formats = ARRAY_SIZE (ds5_y_formats_41x );
48194843 break ;
4844+ case DS5_DEVICE_TYPE_D45X :
4845+ sensor -> formats = ds5_y_formats_45x ;
4846+ sensor -> n_formats = ARRAY_SIZE (ds5_y_formats_45x );
4847+ break ;
48204848 default :
48214849 sensor -> formats = state -> variant -> formats ;
48224850 sensor -> n_formats = state -> variant -> n_formats ;
@@ -5897,4 +5925,4 @@ MODULE_AUTHOR("Guennadi Liakhovetski <guennadi.liakhovetski@intel.com>,\n\
58975925 Shikun Ding <shikun.ding@intel.com>,\n\
58985926 Dmitry Perchanov <dmitry.perchanov@intel.com>" );
58995927MODULE_LICENSE ("GPL v2" );
5900- MODULE_VERSION ("1.0.1.31 " );
5928+ MODULE_VERSION ("1.0.1.32 " );
0 commit comments