drivers/media/pci/ivtv/ivtv-mailbox.c

Source file repositories/reference/linux-study-clean/drivers/media/pci/ivtv/ivtv-mailbox.c

File Facts

System
Linux kernel
Corpus path
drivers/media/pci/ivtv/ivtv-mailbox.c
Extension
.c
Size
12985 bytes
Lines
374
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

struct ivtv_api_info {
	int flags;		/* Flags, see above */
	const char *name;	/* The name of the command */
};

#define API_ENTRY(x, f) [x] = { (f), #x }

static const struct ivtv_api_info api_info[256] = {
	/* MPEG encoder API */
	API_ENTRY(CX2341X_ENC_PING_FW,			API_FAST_RESULT),
	API_ENTRY(CX2341X_ENC_START_CAPTURE,		API_RESULT | API_NO_POLL),
	API_ENTRY(CX2341X_ENC_STOP_CAPTURE,		API_RESULT),
	API_ENTRY(CX2341X_ENC_SET_AUDIO_ID,		API_CACHE),
	API_ENTRY(CX2341X_ENC_SET_VIDEO_ID,		API_CACHE),
	API_ENTRY(CX2341X_ENC_SET_PCR_ID,		API_CACHE),
	API_ENTRY(CX2341X_ENC_SET_FRAME_RATE,		API_CACHE),
	API_ENTRY(CX2341X_ENC_SET_FRAME_SIZE,		API_CACHE),
	API_ENTRY(CX2341X_ENC_SET_BIT_RATE,		API_CACHE),
	API_ENTRY(CX2341X_ENC_SET_GOP_PROPERTIES,	API_CACHE),
	API_ENTRY(CX2341X_ENC_SET_ASPECT_RATIO,		API_CACHE),
	API_ENTRY(CX2341X_ENC_SET_DNR_FILTER_MODE,	API_CACHE),
	API_ENTRY(CX2341X_ENC_SET_DNR_FILTER_PROPS,	API_CACHE),
	API_ENTRY(CX2341X_ENC_SET_CORING_LEVELS,	API_CACHE),
	API_ENTRY(CX2341X_ENC_SET_SPATIAL_FILTER_TYPE,	API_CACHE),
	API_ENTRY(CX2341X_ENC_SET_VBI_LINE,		API_RESULT),
	API_ENTRY(CX2341X_ENC_SET_STREAM_TYPE,		API_CACHE),
	API_ENTRY(CX2341X_ENC_SET_OUTPUT_PORT,		API_CACHE),
	API_ENTRY(CX2341X_ENC_SET_AUDIO_PROPERTIES,	API_CACHE),
	API_ENTRY(CX2341X_ENC_HALT_FW,			API_FAST_RESULT),
	API_ENTRY(CX2341X_ENC_GET_VERSION,		API_FAST_RESULT),
	API_ENTRY(CX2341X_ENC_SET_GOP_CLOSURE,		API_CACHE),
	API_ENTRY(CX2341X_ENC_GET_SEQ_END,		API_RESULT),
	API_ENTRY(CX2341X_ENC_SET_PGM_INDEX_INFO,	API_FAST_RESULT),
	API_ENTRY(CX2341X_ENC_SET_VBI_CONFIG,		API_RESULT),
	API_ENTRY(CX2341X_ENC_SET_DMA_BLOCK_SIZE,	API_CACHE),
	API_ENTRY(CX2341X_ENC_GET_PREV_DMA_INFO_MB_10,	API_FAST_RESULT),
	API_ENTRY(CX2341X_ENC_GET_PREV_DMA_INFO_MB_9,	API_FAST_RESULT),
	API_ENTRY(CX2341X_ENC_SCHED_DMA_TO_HOST,	API_DMA | API_HIGH_VOL),
	API_ENTRY(CX2341X_ENC_INITIALIZE_INPUT,		API_RESULT),
	API_ENTRY(CX2341X_ENC_SET_FRAME_DROP_RATE,	API_CACHE),
	API_ENTRY(CX2341X_ENC_PAUSE_ENCODER,		API_RESULT),
	API_ENTRY(CX2341X_ENC_REFRESH_INPUT,		API_NO_WAIT_MB | API_HIGH_VOL),
	API_ENTRY(CX2341X_ENC_SET_COPYRIGHT,		API_CACHE),
	API_ENTRY(CX2341X_ENC_SET_EVENT_NOTIFICATION,	API_RESULT),
	API_ENTRY(CX2341X_ENC_SET_NUM_VSYNC_LINES,	API_CACHE),
	API_ENTRY(CX2341X_ENC_SET_PLACEHOLDER,		API_CACHE),
	API_ENTRY(CX2341X_ENC_MUTE_VIDEO,		API_RESULT),
	API_ENTRY(CX2341X_ENC_MUTE_AUDIO,		API_RESULT),
	API_ENTRY(CX2341X_ENC_SET_VERT_CROP_LINE,	API_FAST_RESULT),
	API_ENTRY(CX2341X_ENC_MISC,			API_FAST_RESULT),
	/* Obsolete PULLDOWN API command */
	API_ENTRY(0xb1,					API_CACHE),

	/* MPEG decoder API */
	API_ENTRY(CX2341X_DEC_PING_FW,			API_FAST_RESULT),
	API_ENTRY(CX2341X_DEC_START_PLAYBACK,		API_RESULT | API_NO_POLL),
	API_ENTRY(CX2341X_DEC_STOP_PLAYBACK,		API_RESULT),
	API_ENTRY(CX2341X_DEC_SET_PLAYBACK_SPEED,	API_RESULT),
	API_ENTRY(CX2341X_DEC_STEP_VIDEO,		API_RESULT),
	API_ENTRY(CX2341X_DEC_SET_DMA_BLOCK_SIZE,	API_CACHE),
	API_ENTRY(CX2341X_DEC_GET_XFER_INFO,		API_FAST_RESULT),
	API_ENTRY(CX2341X_DEC_GET_DMA_STATUS,		API_FAST_RESULT),
	API_ENTRY(CX2341X_DEC_SCHED_DMA_FROM_HOST,	API_DMA | API_HIGH_VOL),
	API_ENTRY(CX2341X_DEC_PAUSE_PLAYBACK,		API_RESULT),
	API_ENTRY(CX2341X_DEC_HALT_FW,			API_FAST_RESULT),
	API_ENTRY(CX2341X_DEC_SET_STANDARD,		API_CACHE),
	API_ENTRY(CX2341X_DEC_GET_VERSION,		API_FAST_RESULT),
	API_ENTRY(CX2341X_DEC_SET_STREAM_INPUT,		API_CACHE),
	API_ENTRY(CX2341X_DEC_GET_TIMING_INFO,		API_RESULT /*| API_NO_WAIT_RES*/),
	API_ENTRY(CX2341X_DEC_SET_AUDIO_MODE,		API_CACHE),
	API_ENTRY(CX2341X_DEC_SET_EVENT_NOTIFICATION,	API_RESULT),
	API_ENTRY(CX2341X_DEC_SET_DISPLAY_BUFFERS,	API_CACHE),
	API_ENTRY(CX2341X_DEC_EXTRACT_VBI,		API_RESULT),
	API_ENTRY(CX2341X_DEC_SET_DECODER_SOURCE,	API_FAST_RESULT),
	API_ENTRY(CX2341X_DEC_SET_PREBUFFERING,		API_CACHE),

	/* OSD API */
	API_ENTRY(CX2341X_OSD_GET_FRAMEBUFFER,		API_FAST_RESULT),
	API_ENTRY(CX2341X_OSD_GET_PIXEL_FORMAT,		API_FAST_RESULT),
	API_ENTRY(CX2341X_OSD_SET_PIXEL_FORMAT,		API_CACHE),
	API_ENTRY(CX2341X_OSD_GET_STATE,		API_FAST_RESULT),
	API_ENTRY(CX2341X_OSD_SET_STATE,		API_CACHE),
	API_ENTRY(CX2341X_OSD_GET_OSD_COORDS,		API_FAST_RESULT),
	API_ENTRY(CX2341X_OSD_SET_OSD_COORDS,		API_CACHE),
	API_ENTRY(CX2341X_OSD_GET_SCREEN_COORDS,	API_FAST_RESULT),
	API_ENTRY(CX2341X_OSD_SET_SCREEN_COORDS,	API_CACHE),
	API_ENTRY(CX2341X_OSD_GET_GLOBAL_ALPHA,		API_FAST_RESULT),
	API_ENTRY(CX2341X_OSD_SET_GLOBAL_ALPHA,		API_CACHE),
	API_ENTRY(CX2341X_OSD_SET_BLEND_COORDS,		API_CACHE),
	API_ENTRY(CX2341X_OSD_GET_FLICKER_STATE,	API_FAST_RESULT),

Annotation

Implementation Notes