Camera DOL doesn't support BGGR12?

Hi,
I’m bringing up the IMX485 image sensor driver with DOL HDR support. The sensor bayer pattern is RGGB, and I would like to use 12bits. But in code (sensor_common.c file) there is no DOL RGGB 12bits supported, only DOL rggb10 available.
So, it is impossible for me to use 12bits on DOL mode? Thank you.

static int extract_pixel_format(
	const char *pixel_t, u32 *format)
{
	size_t size = strnlen(pixel_t, OF_MAX_STR_LEN);

	if (strncmp(pixel_t, "bayer_bggr10", size) == 0)
		*format = V4L2_PIX_FMT_SBGGR10;
	else if (strncmp(pixel_t, "bayer_rggb10", size) == 0)
		*format = V4L2_PIX_FMT_SRGGB10;
	else if (strncmp(pixel_t, "bayer_grbg10", size) == 0)
		*format = V4L2_PIX_FMT_SGRBG10;
	else if (strncmp(pixel_t, "bayer_gbrg10", size) == 0)
		*format = V4L2_PIX_FMT_SGBRG10;
	else if (strncmp(pixel_t, "bayer_bggr12", size) == 0)
		*format = V4L2_PIX_FMT_SBGGR12;
	else if (strncmp(pixel_t, "bayer_rggb12", size) == 0)
		*format = V4L2_PIX_FMT_SRGGB12;
	else if (strncmp(pixel_t, "rgb_rgb88824", size) == 0)
		*format = V4L2_PIX_FMT_RGB24;
	else if (strncmp(pixel_t, "bayer_grbg12", size) == 0)
		*format = V4L2_PIX_FMT_SGRBG12;
	else if (strncmp(pixel_t, "bayer_gbrg12", size) == 0)
		*format = V4L2_PIX_FMT_SGBRG12;
	else if (strncmp(pixel_t, "bayer_gbrg8", size) == 0)
		*format = V4L2_PIX_FMT_SGBRG8;
	else if (strncmp(pixel_t, "bayer_rggb8", size) == 0)
		*format = V4L2_PIX_FMT_SRGGB8;
	else if (strncmp(pixel_t, "bayer_grbg8", size) == 0)
		*format = V4L2_PIX_FMT_SGRBG8;
	else if (strncmp(pixel_t, "bayer_wdr_pwl_rggb12", size) == 0)
		*format = V4L2_PIX_FMT_SRGGB12;
	else if (strncmp(pixel_t, "bayer_wdr_dol_rggb10", size) == 0)
		*format = V4L2_PIX_FMT_SRGGB10;
	else if (strncmp(pixel_t, "bayer_xbggr10p", size) == 0)
		*format = V4L2_PIX_FMT_XBGGR10P;
	else if (strncmp(pixel_t, "bayer_xrggb10p", size) == 0)
		*format = V4L2_PIX_FMT_XRGGB10P;
	else if (strncmp(pixel_t, "yuv_yuyv16", size) == 0)
		*format = V4L2_PIX_FMT_YUYV;
	else if (strncmp(pixel_t, "yuv_yvyu16", size) == 0)
		*format = V4L2_PIX_FMT_YVYU;
	else if (strncmp(pixel_t, "yuv_uyvy16", size) == 0)
		*format = V4L2_PIX_FMT_UYVY;
	else if (strncmp(pixel_t, "yuv_vyuy16", size) == 0)
		*format = V4L2_PIX_FMT_VYUY;
	else {
		pr_err("%s: Need to extend format%s\n", __func__, pixel_t);
		return -EINVAL;
	}

	return 0;
}

Can you try to add it by yourself to verify it.

Thanks

I added

else if (strncmp(pixel_t, "bayer_wdr_dol_rggb12", size) == 0)
		*format = V4L2_PIX_FMT_SRGGB12;

and tried with DOL 12bit in device tree. There is no error message. But unfortunately, my DOL didn’t work yet. Will wait for DOL on my sensor works then test and will update later.
Thanks.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.