Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

media: ipu6: isys: Add support for monochrome media bus formats

Add support for monochrome media bus formats, for use with monochrome/IR
camera sensors.

This has been tested on a Dell XPS 13 9320 with OV1A1B IR sensor.

Signed-off-by: Hans de Goede <hansg@kernel.org>
Reviewed-by: Bingbu Cao <bingbu.cao@intel.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>

authored by

Hans de Goede and committed by
Hans Verkuil
4985b66f 15ac3d54

+43 -9
+4
drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
··· 42 42 MEDIA_BUS_FMT_SGBRG8_1X8, 43 43 MEDIA_BUS_FMT_SGRBG8_1X8, 44 44 MEDIA_BUS_FMT_SRGGB8_1X8, 45 + MEDIA_BUS_FMT_Y8_1X8, 46 + MEDIA_BUS_FMT_Y10_1X10, 47 + MEDIA_BUS_FMT_Y12_1X12, 48 + MEDIA_BUS_FMT_Y16_1X16, 45 49 MEDIA_BUS_FMT_META_8, 46 50 MEDIA_BUS_FMT_META_10, 47 51 MEDIA_BUS_FMT_META_12,
+25 -9
drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c
··· 25 25 case MEDIA_BUS_FMT_RGB565_1X16: 26 26 case MEDIA_BUS_FMT_UYVY8_1X16: 27 27 case MEDIA_BUS_FMT_YUYV8_1X16: 28 + case MEDIA_BUS_FMT_Y16_1X16: 28 29 case MEDIA_BUS_FMT_META_16: 29 30 return 16; 30 31 case MEDIA_BUS_FMT_SBGGR12_1X12: 31 32 case MEDIA_BUS_FMT_SGBRG12_1X12: 32 33 case MEDIA_BUS_FMT_SGRBG12_1X12: 33 34 case MEDIA_BUS_FMT_SRGGB12_1X12: 35 + case MEDIA_BUS_FMT_Y12_1X12: 34 36 case MEDIA_BUS_FMT_META_12: 35 37 return 12; 36 38 case MEDIA_BUS_FMT_SBGGR10_1X10: 37 39 case MEDIA_BUS_FMT_SGBRG10_1X10: 38 40 case MEDIA_BUS_FMT_SGRBG10_1X10: 39 41 case MEDIA_BUS_FMT_SRGGB10_1X10: 42 + case MEDIA_BUS_FMT_Y10_1X10: 40 43 case MEDIA_BUS_FMT_META_10: 41 44 return 10; 42 45 case MEDIA_BUS_FMT_SBGGR8_1X8: 43 46 case MEDIA_BUS_FMT_SGBRG8_1X8: 44 47 case MEDIA_BUS_FMT_SGRBG8_1X8: 45 48 case MEDIA_BUS_FMT_SRGGB8_1X8: 49 + case MEDIA_BUS_FMT_Y8_1X8: 46 50 case MEDIA_BUS_FMT_META_8: 47 51 return 8; 48 52 default: ··· 69 65 case MEDIA_BUS_FMT_SGBRG16_1X16: 70 66 case MEDIA_BUS_FMT_SGRBG16_1X16: 71 67 case MEDIA_BUS_FMT_SRGGB16_1X16: 68 + case MEDIA_BUS_FMT_Y16_1X16: 72 69 return MIPI_CSI2_DT_RAW16; 73 70 case MEDIA_BUS_FMT_SBGGR12_1X12: 74 71 case MEDIA_BUS_FMT_SGBRG12_1X12: 75 72 case MEDIA_BUS_FMT_SGRBG12_1X12: 76 73 case MEDIA_BUS_FMT_SRGGB12_1X12: 74 + case MEDIA_BUS_FMT_Y12_1X12: 77 75 return MIPI_CSI2_DT_RAW12; 78 76 case MEDIA_BUS_FMT_SBGGR10_1X10: 79 77 case MEDIA_BUS_FMT_SGBRG10_1X10: 80 78 case MEDIA_BUS_FMT_SGRBG10_1X10: 81 79 case MEDIA_BUS_FMT_SRGGB10_1X10: 80 + case MEDIA_BUS_FMT_Y10_1X10: 82 81 return MIPI_CSI2_DT_RAW10; 83 82 case MEDIA_BUS_FMT_SBGGR8_1X8: 84 83 case MEDIA_BUS_FMT_SGBRG8_1X8: 85 84 case MEDIA_BUS_FMT_SGRBG8_1X8: 86 85 case MEDIA_BUS_FMT_SRGGB8_1X8: 86 + case MEDIA_BUS_FMT_Y8_1X8: 87 87 return MIPI_CSI2_DT_RAW8; 88 88 case MEDIA_BUS_FMT_META_8: 89 89 case MEDIA_BUS_FMT_META_10: ··· 104 96 105 97 bool ipu6_isys_is_bayer_format(u32 code) 106 98 { 107 - switch (ipu6_isys_mbus_code_to_mipi(code)) { 108 - case MIPI_CSI2_DT_RAW8: 109 - case MIPI_CSI2_DT_RAW10: 110 - case MIPI_CSI2_DT_RAW12: 111 - case MIPI_CSI2_DT_RAW14: 112 - case MIPI_CSI2_DT_RAW16: 113 - case MIPI_CSI2_DT_RAW20: 114 - case MIPI_CSI2_DT_RAW24: 115 - case MIPI_CSI2_DT_RAW28: 99 + switch (code) { 100 + case MEDIA_BUS_FMT_SBGGR8_1X8: 101 + case MEDIA_BUS_FMT_SGBRG8_1X8: 102 + case MEDIA_BUS_FMT_SGRBG8_1X8: 103 + case MEDIA_BUS_FMT_SRGGB8_1X8: 104 + case MEDIA_BUS_FMT_SBGGR10_1X10: 105 + case MEDIA_BUS_FMT_SGBRG10_1X10: 106 + case MEDIA_BUS_FMT_SGRBG10_1X10: 107 + case MEDIA_BUS_FMT_SRGGB10_1X10: 108 + case MEDIA_BUS_FMT_SBGGR12_1X12: 109 + case MEDIA_BUS_FMT_SGBRG12_1X12: 110 + case MEDIA_BUS_FMT_SGRBG12_1X12: 111 + case MEDIA_BUS_FMT_SRGGB12_1X12: 112 + case MEDIA_BUS_FMT_SRGGB16_1X16: 113 + case MEDIA_BUS_FMT_SGRBG16_1X16: 114 + case MEDIA_BUS_FMT_SGBRG16_1X16: 115 + case MEDIA_BUS_FMT_SBGGR16_1X16: 116 116 return true; 117 117 default: 118 118 return false;
+14
drivers/media/pci/intel/ipu6/ipu6-isys-video.c
··· 77 77 IPU6_FW_ISYS_FRAME_FORMAT_RAW10 }, 78 78 { V4L2_PIX_FMT_SRGGB10P, 10, 10, MEDIA_BUS_FMT_SRGGB10_1X10, 79 79 IPU6_FW_ISYS_FRAME_FORMAT_RAW10 }, 80 + 81 + { V4L2_PIX_FMT_GREY, 8, 8, MEDIA_BUS_FMT_Y8_1X8, 82 + IPU6_FW_ISYS_FRAME_FORMAT_RAW8 }, 83 + { V4L2_PIX_FMT_Y10, 16, 10, MEDIA_BUS_FMT_Y10_1X10, 84 + IPU6_FW_ISYS_FRAME_FORMAT_RAW16 }, 85 + { V4L2_PIX_FMT_Y12, 16, 12, MEDIA_BUS_FMT_Y12_1X12, 86 + IPU6_FW_ISYS_FRAME_FORMAT_RAW16 }, 87 + { V4L2_PIX_FMT_Y16, 16, 16, MEDIA_BUS_FMT_Y16_1X16, 88 + IPU6_FW_ISYS_FRAME_FORMAT_RAW16 }, 89 + { V4L2_PIX_FMT_Y10P, 10, 10, MEDIA_BUS_FMT_Y10_1X10, 90 + IPU6_FW_ISYS_FRAME_FORMAT_RAW10 }, 91 + { V4L2_PIX_FMT_Y12P, 12, 12, MEDIA_BUS_FMT_Y12_1X12, 92 + IPU6_FW_ISYS_FRAME_FORMAT_RAW12 }, 93 + 80 94 { V4L2_PIX_FMT_UYVY, 16, 16, MEDIA_BUS_FMT_UYVY8_1X16, 81 95 IPU6_FW_ISYS_FRAME_FORMAT_UYVY}, 82 96 { V4L2_PIX_FMT_YUYV, 16, 16, MEDIA_BUS_FMT_YUYV8_1X16,