#define API_FAST (1 << 2) /* Short timeout */ #define API_SLOW (1 << 3) /* Additional 300ms timeout */ struct cx18_api_info { u32 cmd; u8 flags; /* Flags, see above */ u8 rpu; /* Processing unit */ const char *name; /* The name of the command */ }; #define API_ENTRY(rpu, x, f) { (x), (f), (rpu), #x } static const struct cx18_api_info api_info[] = { /* MPEG encoder API */ API_ENTRY(CPU, CX18_CPU_SET_CHANNEL_TYPE, 0), API_ENTRY(CPU, CX18_EPU_DEBUG, 0), API_ENTRY(CPU, CX18_CREATE_TASK, 0), API_ENTRY(CPU, CX18_DESTROY_TASK, 0), API_ENTRY(CPU, CX18_CPU_CAPTURE_START, API_SLOW), API_ENTRY(CPU, CX18_CPU_CAPTURE_STOP, API_SLOW), API_ENTRY(CPU, CX18_CPU_CAPTURE_PAUSE, 0), API_ENTRY(CPU, CX18_CPU_CAPTURE_RESUME, 0), API_ENTRY(CPU, CX18_CPU_SET_CHANNEL_TYPE, 0), API_ENTRY(CPU, CX18_CPU_SET_STREAM_OUTPUT_TYPE, 0), API_ENTRY(CPU, CX18_CPU_SET_VIDEO_IN, 0), API_ENTRY(CPU, CX18_CPU_SET_VIDEO_RATE, 0), API_ENTRY(CPU, CX18_CPU_SET_VIDEO_RESOLUTION, 0), API_ENTRY(CPU, CX18_CPU_SET_FILTER_PARAM, 0), API_ENTRY(CPU, CX18_CPU_SET_SPATIAL_FILTER_TYPE, 0), API_ENTRY(CPU, CX18_CPU_SET_MEDIAN_CORING, 0),
#define API_DMA (1 << 3) /* DMA mailbox, has special handling */ #define API_HIGH_VOL (1 << 5) /* High volume command (i.e. called during encoding or decoding) */ #define API_NO_WAIT_MB (1 << 4) /* Command may not wait for a free mailbox */ #define API_NO_WAIT_RES (1 << 5) /* Command may not wait for the result */ #define API_NO_POLL (1 << 6) /* Avoid pointless polling */ 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),