drivers/media/platform/qcom/camss/camss-vfe.c

Source file repositories/reference/linux-study-clean/drivers/media/platform/qcom/camss/camss-vfe.c

File Facts

System
Linux kernel
Corpus path
drivers/media/platform/qcom/camss/camss-vfe.c
Extension
.c
Size
55672 bytes
Lines
2191
Domain
Driver Families
Bucket
drivers/media
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

switch (sink_code) {
		case MEDIA_BUS_FMT_YUYV8_1X16:
		{
			u32 src_code[] = {
				MEDIA_BUS_FMT_YUYV8_1X16,
				MEDIA_BUS_FMT_YUYV8_1_5X8,
			};

			return camss_format_find_code(src_code, ARRAY_SIZE(src_code),
						      index, src_req_code);
		}
		case MEDIA_BUS_FMT_YVYU8_1X16:
		{
			u32 src_code[] = {
				MEDIA_BUS_FMT_YVYU8_1X16,
				MEDIA_BUS_FMT_YVYU8_1_5X8,
			};

			return camss_format_find_code(src_code, ARRAY_SIZE(src_code),
						      index, src_req_code);
		}
		case MEDIA_BUS_FMT_UYVY8_1X16:
		{
			u32 src_code[] = {
				MEDIA_BUS_FMT_UYVY8_1X16,
				MEDIA_BUS_FMT_UYVY8_1_5X8,
			};

			return camss_format_find_code(src_code, ARRAY_SIZE(src_code),
						      index, src_req_code);
		}
		case MEDIA_BUS_FMT_VYUY8_1X16:
		{
			u32 src_code[] = {
				MEDIA_BUS_FMT_VYUY8_1X16,
				MEDIA_BUS_FMT_VYUY8_1_5X8,
			};

			return camss_format_find_code(src_code, ARRAY_SIZE(src_code),
						      index, src_req_code);
		}
		default:
			if (index > 0)
				return 0;

			return sink_code;
		}
		break;
	case CAMSS_660:
	case CAMSS_2290:
	case CAMSS_6150:
	case CAMSS_6350:
	case CAMSS_7280:
	case CAMSS_8x96:
	case CAMSS_8250:
	case CAMSS_8280XP:
	case CAMSS_8300:
	case CAMSS_845:
	case CAMSS_8550:
	case CAMSS_8650:
	case CAMSS_8775P:
	case CAMSS_X1E80100:
		switch (sink_code) {
		case MEDIA_BUS_FMT_YUYV8_1X16:
		{
			u32 src_code[] = {
				MEDIA_BUS_FMT_YUYV8_1X16,
				MEDIA_BUS_FMT_YVYU8_1X16,
				MEDIA_BUS_FMT_UYVY8_1X16,
				MEDIA_BUS_FMT_VYUY8_1X16,
				MEDIA_BUS_FMT_YUYV8_1_5X8,
			};

			return camss_format_find_code(src_code, ARRAY_SIZE(src_code),
						      index, src_req_code);
		}
		case MEDIA_BUS_FMT_YVYU8_1X16:
		{
			u32 src_code[] = {
				MEDIA_BUS_FMT_YVYU8_1X16,
				MEDIA_BUS_FMT_YUYV8_1X16,
				MEDIA_BUS_FMT_UYVY8_1X16,
				MEDIA_BUS_FMT_VYUY8_1X16,
				MEDIA_BUS_FMT_YVYU8_1_5X8,
			};

			return camss_format_find_code(src_code, ARRAY_SIZE(src_code),
						      index, src_req_code);
		}
		case MEDIA_BUS_FMT_UYVY8_1X16:

Annotation

Implementation Notes