Pull media updates from Mauro Carvalho Chehab: - uAPI documentation for stateless decoders - Added a new CEC ioctl together with its documentation - Improved IPU3 documentation - New i2c drivers: hi556 and imx290 - Added support on Vivid driver for meta streams - Added de-interlace support for sunxi subdriver - Added a few new remote controler keymaps - Added H.265 support for Sunxi Cedrus driver - Another round of random driver cleanups, fixes and improvements * tag 'media/v5.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (361 commits) media: Revert "media: mtk-vcodec: Remove extra area allocation in an input buffer on encoding" media: hantro: Set H264 FIELDPIC_FLAG_E flag correctly media: hantro: Remove now unused H264 pic_size media: hantro: Use output buffer width and height for H264 decoding media: hantro: Reduce H264 extra space for motion vectors media: hantro: Fix H264 motion vector buffer offset media: ti-vpe: vpe: fix compatible to match bindings media: dt-bindings: media: ti-vpe: Document VPE driver media: zr364xx: remove redundant assigmnent to idx, clean up code media: Documentation: media: *_DEFAULT targets for subdevs media: hantro: Fix s_fmt for dynamic resolution changes media: i2c: Use the correct style for SPDX License Identifier media: siano: Use the correct style for SPDX License Identifier media: vicodec: media_device_cleanup was called too early media: vim2m: media_device_cleanup was called too early media: cedrus: Increase maximum supported size media: cedrus: Fix H264 4k support media: cedrus: Properly signal size in mode register media: v4l2-ctrl: Lock main_hdl on operations of requests_queued. media: si470x-i2c: add missed operations in remove ...
Showing the changes to include/uapi/linux (4 of 299 files). Show all
Unified · Split
| @@ -923,7 +923,8 @@ static inline void cec_msg_give_deck_status(struct cec_msg *msg, · 922 unmodified lines | |||
| 923 | msg->len = 3; | 923 | msg->len = 3; |
| 924 | msg->msg[1] = CEC_MSG_GIVE_DECK_STATUS; | 924 | msg->msg[1] = CEC_MSG_GIVE_DECK_STATUS; |
| 925 | msg->msg[2] = status_req; | 925 | msg->msg[2] = status_req; |
| 926 | msg->reply = reply ? CEC_MSG_DECK_STATUS : 0; | 926 | msg->reply = (reply && status_req != CEC_OP_STATUS_REQ_OFF) ? |
| 927 | CEC_MSG_DECK_STATUS : 0; | ||
| 927 | } | 928 | } |
| 928 | 929 | ||
| 929 | static inline void cec_ops_give_deck_status(const struct cec_msg *msg, | 930 | static inline void cec_ops_give_deck_status(const struct cec_msg *msg, |
| @@ -1027,7 +1028,8 @@ static inline void cec_msg_give_tuner_device_status(struct cec_msg *msg, · 97 unmodified lines | |||
| 1027 | msg->len = 3; | 1028 | msg->len = 3; |
| 1028 | msg->msg[1] = CEC_MSG_GIVE_TUNER_DEVICE_STATUS; | 1029 | msg->msg[1] = CEC_MSG_GIVE_TUNER_DEVICE_STATUS; |
| 1029 | msg->msg[2] = status_req; | 1030 | msg->msg[2] = status_req; |
| 1030 | msg->reply = reply ? CEC_MSG_TUNER_DEVICE_STATUS : 0; | 1031 | msg->reply = (reply && status_req != CEC_OP_STATUS_REQ_OFF) ? |
| 1032 | CEC_MSG_TUNER_DEVICE_STATUS : 0; | ||
| 1031 | } | 1033 | } |
| 1032 | 1034 | ||
| 1033 | static inline void cec_ops_give_tuner_device_status(const struct cec_msg *msg, | 1035 | static inline void cec_ops_give_tuner_device_status(const struct cec_msg *msg, |
| @@ -1302,17 +1304,17 @@ static inline void cec_msg_user_control_pressed(struct cec_msg *msg, · 268 unmodified lines | |||
| 1302 | if (!ui_cmd->has_opt_arg) | 1304 | if (!ui_cmd->has_opt_arg) |
| 1303 | return; | 1305 | return; |
| 1304 | switch (ui_cmd->ui_cmd) { | 1306 | switch (ui_cmd->ui_cmd) { |
| 1305 | case 0x56: | 1307 | case CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE: |
| 1306 | case 0x57: | 1308 | case CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION: |
| 1307 | case 0x60: | 1309 | case CEC_OP_UI_CMD_PLAY_FUNCTION: |
| 1308 | case 0x68: | 1310 | case CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION: |
| 1309 | case 0x69: | 1311 | case CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION: |
| 1310 | case 0x6a: | 1312 | case CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION: |
| 1311 | /* The optional operand is one byte for all these ui commands */ | 1313 | /* The optional operand is one byte for all these ui commands */ |
| 1312 | msg->len++; | 1314 | msg->len++; |
| 1313 | msg->msg[3] = ui_cmd->play_mode; | 1315 | msg->msg[3] = ui_cmd->play_mode; |
| 1314 | break; | 1316 | break; |
| 1315 | case 0x67: | 1317 | case CEC_OP_UI_CMD_TUNE_FUNCTION: |
| 1316 | msg->len += 4; | 1318 | msg->len += 4; |
| 1317 | msg->msg[3] = (ui_cmd->channel_identifier.channel_number_fmt << 2) | | 1319 | msg->msg[3] = (ui_cmd->channel_identifier.channel_number_fmt << 2) | |
| 1318 | (ui_cmd->channel_identifier.major >> 8); | 1320 | (ui_cmd->channel_identifier.major >> 8); |
| @@ -1331,17 +1333,17 @@ static inline void cec_ops_user_control_pressed(const struct cec_msg *msg, · 12 unmodified lines | |||
| 1331 | if (msg->len == 3) | 1333 | if (msg->len == 3) |
| 1332 | return; | 1334 | return; |
| 1333 | switch (ui_cmd->ui_cmd) { | 1335 | switch (ui_cmd->ui_cmd) { |
| 1334 | case 0x56: | 1336 | case CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE: |
| 1335 | case 0x57: | 1337 | case CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION: |
| 1336 | case 0x60: | 1338 | case CEC_OP_UI_CMD_PLAY_FUNCTION: |
| 1337 | case 0x68: | 1339 | case CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION: |
| 1338 | case 0x69: | 1340 | case CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION: |
| 1339 | case 0x6a: | 1341 | case CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION: |
| 1340 | /* The optional operand is one byte for all these ui commands */ | 1342 | /* The optional operand is one byte for all these ui commands */ |
| 1341 | ui_cmd->play_mode = msg->msg[3]; | 1343 | ui_cmd->play_mode = msg->msg[3]; |
| 1342 | ui_cmd->has_opt_arg = 1; | 1344 | ui_cmd->has_opt_arg = 1; |
| 1343 | break; | 1345 | break; |
| 1344 | case 0x67: | 1346 | case CEC_OP_UI_CMD_TUNE_FUNCTION: |
| 1345 | if (msg->len < 7) | 1347 | if (msg->len < 7) |
| 1346 | break; | 1348 | break; |
| 1347 | ui_cmd->has_opt_arg = 1; | 1349 | ui_cmd->has_opt_arg = 1; |
| @@ -317,6 +317,8 @@ static inline int cec_is_unconfigured(__u16 log_addr_mask) · 316 unmodified lines | |||
| 317 | #define CEC_CAP_NEEDS_HPD (1 << 6) | 317 | #define CEC_CAP_NEEDS_HPD (1 << 6) |
| 318 | /* Hardware can monitor CEC pin transitions */ | 318 | /* Hardware can monitor CEC pin transitions */ |
| 319 | #define CEC_CAP_MONITOR_PIN (1 << 7) | 319 | #define CEC_CAP_MONITOR_PIN (1 << 7) |
| 320 | /* CEC_ADAP_G_CONNECTOR_INFO is available */ | ||
| 321 | #define CEC_CAP_CONNECTOR_INFO (1 << 8) | ||
| 320 | 322 | ||
| 321 | /** | 323 | /** |
| 322 | * struct cec_caps - CEC capabilities structure. | 324 | * struct cec_caps - CEC capabilities structure. |
| @@ -375,6 +377,34 @@ struct cec_log_addrs { · 52 unmodified lines | |||
| 375 | /* CDC-Only device: supports only CDC messages */ | 377 | /* CDC-Only device: supports only CDC messages */ |
| 376 | #define CEC_LOG_ADDRS_FL_CDC_ONLY (1 << 2) | 378 | #define CEC_LOG_ADDRS_FL_CDC_ONLY (1 << 2) |
| 377 | 379 | ||
| 380 | /** | ||
| 381 | * struct cec_drm_connector_info - tells which drm connector is | ||
| 382 | * associated with the CEC adapter. | ||
| 383 | * @card_no: drm card number | ||
| 384 | * @connector_id: drm connector ID | ||
| 385 | */ | ||
| 386 | struct cec_drm_connector_info { | ||
| 387 | __u32 card_no; | ||
| 388 | __u32 connector_id; | ||
| 389 | }; | ||
| 390 | |||
| 391 | #define CEC_CONNECTOR_TYPE_NO_CONNECTOR 0 | ||
| 392 | #define CEC_CONNECTOR_TYPE_DRM 1 | ||
| 393 | |||
| 394 | /** | ||
| 395 | * struct cec_connector_info - tells if and which connector is | ||
| 396 | * associated with the CEC adapter. | ||
| 397 | * @type: connector type (if any) | ||
| 398 | * @drm: drm connector info | ||
| 399 | */ | ||
| 400 | struct cec_connector_info { | ||
| 401 | __u32 type; | ||
| 402 | union { | ||
| 403 | struct cec_drm_connector_info drm; | ||
| 404 | __u32 raw[16]; | ||
| 405 | }; | ||
| 406 | }; | ||
| 407 | |||
| 378 | /* Events */ | 408 | /* Events */ |
| 379 | 409 | ||
| 380 | /* Event that occurs when the adapter state changes */ | 410 | /* Event that occurs when the adapter state changes */ |
| @@ -398,10 +428,17 @@ struct cec_log_addrs { · 17 unmodified lines | |||
| 398 | * struct cec_event_state_change - used when the CEC adapter changes state. | 428 | * struct cec_event_state_change - used when the CEC adapter changes state. |
| 399 | * @phys_addr: the current physical address | 429 | * @phys_addr: the current physical address |
| 400 | * @log_addr_mask: the current logical address mask | 430 | * @log_addr_mask: the current logical address mask |
| 431 | * @have_conn_info: if non-zero, then HDMI connector information is available. | ||
| 432 | * This field is only valid if CEC_CAP_CONNECTOR_INFO is set. If that | ||
| 433 | * capability is set and @have_conn_info is zero, then that indicates | ||
| 434 | * that the HDMI connector device is not instantiated, either because | ||
| 435 | * the HDMI driver is still configuring the device or because the HDMI | ||
| 436 | * device was unbound. | ||
| 401 | */ | 437 | */ |
| 402 | struct cec_event_state_change { | 438 | struct cec_event_state_change { |
| 403 | __u16 phys_addr; | 439 | __u16 phys_addr; |
| 404 | __u16 log_addr_mask; | 440 | __u16 log_addr_mask; |
| 441 | __u16 have_conn_info; | ||
| 405 | }; | 442 | }; |
| 406 | 443 | ||
| 407 | /** | 444 | /** |
| @@ -476,6 +513,9 @@ struct cec_event { · 68 unmodified lines | |||
| 476 | #define CEC_G_MODE _IOR('a', 8, __u32) | 513 | #define CEC_G_MODE _IOR('a', 8, __u32) |
| 477 | #define CEC_S_MODE _IOW('a', 9, __u32) | 514 | #define CEC_S_MODE _IOW('a', 9, __u32) |
| 478 | 515 | ||
| 516 | /* Get the connector info */ | ||
| 517 | #define CEC_ADAP_G_CONNECTOR_INFO _IOR('a', 10, struct cec_connector_info) | ||
| 518 | |||
| 479 | /* | 519 | /* |
| 480 | * The remainder of this header defines all CEC messages and operands. | 520 | * The remainder of this header defines all CEC messages and operands. |
| 481 | * The format matters since it the cec-ctl utility parses it to generate | 521 | * The format matters since it the cec-ctl utility parses it to generate |
| @@ -768,8 +808,8 @@ struct cec_event { · 286 unmodified lines | |||
| 768 | #define CEC_MSG_SELECT_DIGITAL_SERVICE 0x93 | 808 | #define CEC_MSG_SELECT_DIGITAL_SERVICE 0x93 |
| 769 | #define CEC_MSG_TUNER_DEVICE_STATUS 0x07 | 809 | #define CEC_MSG_TUNER_DEVICE_STATUS 0x07 |
| 770 | /* Recording Flag Operand (rec_flag) */ | 810 | /* Recording Flag Operand (rec_flag) */ |
| 771 | #define CEC_OP_REC_FLAG_USED 0 | 811 | #define CEC_OP_REC_FLAG_NOT_USED 0 |
| 772 | #define CEC_OP_REC_FLAG_NOT_USED 1 | 812 | #define CEC_OP_REC_FLAG_USED 1 |
| 773 | /* Tuner Display Info Operand (tuner_display_info) */ | 813 | /* Tuner Display Info Operand (tuner_display_info) */ |
| 774 | #define CEC_OP_TUNER_DISPLAY_INFO_DIGITAL 0 | 814 | #define CEC_OP_TUNER_DISPLAY_INFO_DIGITAL 0 |
| 775 | #define CEC_OP_TUNER_DISPLAY_INFO_NONE 1 | 815 | #define CEC_OP_TUNER_DISPLAY_INFO_NONE 1 |
| @@ -820,6 +860,95 @@ struct cec_event { · 44 unmodified lines | |||
| 820 | #define CEC_OP_MENU_STATE_DEACTIVATED 0x01 | 860 | #define CEC_OP_MENU_STATE_DEACTIVATED 0x01 |
| 821 | 861 | ||
| 822 | #define CEC_MSG_USER_CONTROL_PRESSED 0x44 | 862 | #define CEC_MSG_USER_CONTROL_PRESSED 0x44 |
| 863 | /* UI Command Operand (ui_cmd) */ | ||
| 864 | #define CEC_OP_UI_CMD_SELECT 0x00 | ||
| 865 | #define CEC_OP_UI_CMD_UP 0x01 | ||
| 866 | #define CEC_OP_UI_CMD_DOWN 0x02 | ||
| 867 | #define CEC_OP_UI_CMD_LEFT 0x03 | ||
| 868 | #define CEC_OP_UI_CMD_RIGHT 0x04 | ||
| 869 | #define CEC_OP_UI_CMD_RIGHT_UP 0x05 | ||
| 870 | #define CEC_OP_UI_CMD_RIGHT_DOWN 0x06 | ||
| 871 | #define CEC_OP_UI_CMD_LEFT_UP 0x07 | ||
| 872 | #define CEC_OP_UI_CMD_LEFT_DOWN 0x08 | ||
| 873 | #define CEC_OP_UI_CMD_DEVICE_ROOT_MENU 0x09 | ||
| 874 | #define CEC_OP_UI_CMD_DEVICE_SETUP_MENU 0x0a | ||
| 875 | #define CEC_OP_UI_CMD_CONTENTS_MENU 0x0b | ||
| 876 | #define CEC_OP_UI_CMD_FAVORITE_MENU 0x0c | ||
| 877 | #define CEC_OP_UI_CMD_BACK 0x0d | ||
| 878 | #define CEC_OP_UI_CMD_MEDIA_TOP_MENU 0x10 | ||
| 879 | #define CEC_OP_UI_CMD_MEDIA_CONTEXT_SENSITIVE_MENU 0x11 | ||
| 880 | #define CEC_OP_UI_CMD_NUMBER_ENTRY_MODE 0x1d | ||
| 881 | #define CEC_OP_UI_CMD_NUMBER_11 0x1e | ||
| 882 | #define CEC_OP_UI_CMD_NUMBER_12 0x1f | ||
| 883 | #define CEC_OP_UI_CMD_NUMBER_0_OR_NUMBER_10 0x20 | ||
| 884 | #define CEC_OP_UI_CMD_NUMBER_1 0x21 | ||
| 885 | #define CEC_OP_UI_CMD_NUMBER_2 0x22 | ||
| 886 | #define CEC_OP_UI_CMD_NUMBER_3 0x23 | ||
| 887 | #define CEC_OP_UI_CMD_NUMBER_4 0x24 | ||
| 888 | #define CEC_OP_UI_CMD_NUMBER_5 0x25 | ||
| 889 | #define CEC_OP_UI_CMD_NUMBER_6 0x26 | ||
| 890 | #define CEC_OP_UI_CMD_NUMBER_7 0x27 | ||
| 891 | #define CEC_OP_UI_CMD_NUMBER_8 0x28 | ||
| 892 | #define CEC_OP_UI_CMD_NUMBER_9 0x29 | ||
| 893 | #define CEC_OP_UI_CMD_DOT 0x2a | ||
| 894 | #define CEC_OP_UI_CMD_ENTER 0x2b | ||
| 895 | #define CEC_OP_UI_CMD_CLEAR 0x2c | ||
| 896 | #define CEC_OP_UI_CMD_NEXT_FAVORITE 0x2f | ||
| 897 | #define CEC_OP_UI_CMD_CHANNEL_UP 0x30 | ||
| 898 | #define CEC_OP_UI_CMD_CHANNEL_DOWN 0x31 | ||
| 899 | #define CEC_OP_UI_CMD_PREVIOUS_CHANNEL 0x32 | ||
| 900 | #define CEC_OP_UI_CMD_SOUND_SELECT 0x33 | ||
| 901 | #define CEC_OP_UI_CMD_INPUT_SELECT 0x34 | ||
| 902 | #define CEC_OP_UI_CMD_DISPLAY_INFORMATION 0x35 | ||
| 903 | #define CEC_OP_UI_CMD_HELP 0x36 | ||
| 904 | #define CEC_OP_UI_CMD_PAGE_UP 0x37 | ||
| 905 | #define CEC_OP_UI_CMD_PAGE_DOWN 0x38 | ||
| 906 | #define CEC_OP_UI_CMD_POWER 0x40 | ||
| 907 | #define CEC_OP_UI_CMD_VOLUME_UP 0x41 | ||
| 908 | #define CEC_OP_UI_CMD_VOLUME_DOWN 0x42 | ||
| 909 | #define CEC_OP_UI_CMD_MUTE 0x43 | ||
| 910 | #define CEC_OP_UI_CMD_PLAY 0x44 | ||
| 911 | #define CEC_OP_UI_CMD_STOP 0x45 | ||
| 912 | #define CEC_OP_UI_CMD_PAUSE 0x46 | ||
| 913 | #define CEC_OP_UI_CMD_RECORD 0x47 | ||
| 914 | #define CEC_OP_UI_CMD_REWIND 0x48 | ||
| 915 | #define CEC_OP_UI_CMD_FAST_FORWARD 0x49 | ||
| 916 | #define CEC_OP_UI_CMD_EJECT 0x4a | ||
| 917 | #define CEC_OP_UI_CMD_SKIP_FORWARD 0x4b | ||
| 918 | #define CEC_OP_UI_CMD_SKIP_BACKWARD 0x4c | ||
| 919 | #define CEC_OP_UI_CMD_STOP_RECORD 0x4d | ||
| 920 | #define CEC_OP_UI_CMD_PAUSE_RECORD 0x4e | ||
| 921 | #define CEC_OP_UI_CMD_ANGLE 0x50 | ||
| 922 | #define CEC_OP_UI_CMD_SUB_PICTURE 0x51 | ||
| 923 | #define CEC_OP_UI_CMD_VIDEO_ON_DEMAND 0x52 | ||
| 924 | #define CEC_OP_UI_CMD_ELECTRONIC_PROGRAM_GUIDE 0x53 | ||
| 925 | #define CEC_OP_UI_CMD_TIMER_PROGRAMMING 0x54 | ||
| 926 | #define CEC_OP_UI_CMD_INITIAL_CONFIGURATION 0x55 | ||
| 927 | #define CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE 0x56 | ||
| 928 | #define CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION 0x57 | ||
| 929 | #define CEC_OP_UI_CMD_AUDIO_DESCRIPTION 0x58 | ||
| 930 | #define CEC_OP_UI_CMD_INTERNET 0x59 | ||
| 931 | #define CEC_OP_UI_CMD_3D_MODE 0x5a | ||
| 932 | #define CEC_OP_UI_CMD_PLAY_FUNCTION 0x60 | ||
| 933 | #define CEC_OP_UI_CMD_PAUSE_PLAY_FUNCTION 0x61 | ||
| 934 | #define CEC_OP_UI_CMD_RECORD_FUNCTION 0x62 | ||
| 935 | #define CEC_OP_UI_CMD_PAUSE_RECORD_FUNCTION 0x63 | ||
| 936 | #define CEC_OP_UI_CMD_STOP_FUNCTION 0x64 | ||
| 937 | #define CEC_OP_UI_CMD_MUTE_FUNCTION 0x65 | ||
| 938 | #define CEC_OP_UI_CMD_RESTORE_VOLUME_FUNCTION 0x66 | ||
| 939 | #define CEC_OP_UI_CMD_TUNE_FUNCTION 0x67 | ||
| 940 | #define CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION 0x68 | ||
| 941 | #define CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION 0x69 | ||
| 942 | #define CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION 0x6a | ||
| 943 | #define CEC_OP_UI_CMD_POWER_TOGGLE_FUNCTION 0x6b | ||
| 944 | #define CEC_OP_UI_CMD_POWER_OFF_FUNCTION 0x6c | ||
| 945 | #define CEC_OP_UI_CMD_POWER_ON_FUNCTION 0x6d | ||
| 946 | #define CEC_OP_UI_CMD_F1_BLUE 0x71 | ||
| 947 | #define CEC_OP_UI_CMD_F2_RED 0x72 | ||
| 948 | #define CEC_OP_UI_CMD_F3_GREEN 0x73 | ||
| 949 | #define CEC_OP_UI_CMD_F4_YELLOW 0x74 | ||
| 950 | #define CEC_OP_UI_CMD_F5 0x75 | ||
| 951 | #define CEC_OP_UI_CMD_DATA 0x76 | ||
| 823 | /* UI Broadcast Type Operand (ui_bcast_type) */ | 952 | /* UI Broadcast Type Operand (ui_bcast_type) */ |
| 824 | #define CEC_OP_UI_BCAST_TYPE_TOGGLE_ALL 0x00 | 953 | #define CEC_OP_UI_BCAST_TYPE_TOGGLE_ALL 0x00 |
| 825 | #define CEC_OP_UI_BCAST_TYPE_TOGGLE_DIG_ANA 0x01 | 954 | #define CEC_OP_UI_BCAST_TYPE_TOGGLE_DIG_ANA 0x01 |
| @@ -1034,6 +1034,7 @@ enum v4l2_jpeg_chroma_subsampling { · 1033 unmodified lines | |||
| 1034 | #define V4L2_CID_TEST_PATTERN_GREENR (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 5) | 1034 | #define V4L2_CID_TEST_PATTERN_GREENR (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 5) |
| 1035 | #define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6) | 1035 | #define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6) |
| 1036 | #define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7) | 1036 | #define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7) |
| 1037 | #define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8) | ||
| 1037 | 1038 | ||
| 1038 | 1039 | ||
| 1039 | /* Image processing controls */ | 1040 | /* Image processing controls */ |
| @@ -422,6 +422,11 @@ struct v4l2_fract { · 421 unmodified lines | |||
| 422 | __u32 denominator; | 422 | __u32 denominator; |
| 423 | }; | 423 | }; |
| 424 | 424 | ||
| 425 | struct v4l2_area { | ||
| 426 | __u32 width; | ||
| 427 | __u32 height; | ||
| 428 | }; | ||
| 429 | |||
| 425 | /** | 430 | /** |
| 426 | * struct v4l2_capability - Describes V4L2 device caps returned by VIDIOC_QUERYCAP | 431 | * struct v4l2_capability - Describes V4L2 device caps returned by VIDIOC_QUERYCAP |
| 427 | * | 432 | * |
| @@ -755,6 +760,7 @@ struct v4l2_pix_format { · 327 unmodified lines | |||
| 755 | #define V4L2_META_FMT_VSP1_HGT v4l2_fourcc('V', 'S', 'P', 'T') /* R-Car VSP1 2-D Histogram */ | 760 | #define V4L2_META_FMT_VSP1_HGT v4l2_fourcc('V', 'S', 'P', 'T') /* R-Car VSP1 2-D Histogram */ |
| 756 | #define V4L2_META_FMT_UVC v4l2_fourcc('U', 'V', 'C', 'H') /* UVC Payload Header metadata */ | 761 | #define V4L2_META_FMT_UVC v4l2_fourcc('U', 'V', 'C', 'H') /* UVC Payload Header metadata */ |
| 757 | #define V4L2_META_FMT_D4XX v4l2_fourcc('D', '4', 'X', 'X') /* D4XX Payload Header metadata */ | 762 | #define V4L2_META_FMT_D4XX v4l2_fourcc('D', '4', 'X', 'X') /* D4XX Payload Header metadata */ |
| 763 | #define V4L2_META_FMT_VIVID v4l2_fourcc('V', 'I', 'V', 'D') /* Vivid Metadata */ | ||
| 758 | 764 | ||
| 759 | /* priv field value to indicates that subsequent fields are valid. */ | 765 | /* priv field value to indicates that subsequent fields are valid. */ |
| 760 | #define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe | 766 | #define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe |
| @@ -915,11 +921,12 @@ struct v4l2_requestbuffers { · 154 unmodified lines | |||
| 915 | }; | 921 | }; |
| 916 | 922 | ||
| 917 | /* capabilities for struct v4l2_requestbuffers and v4l2_create_buffers */ | 923 | /* capabilities for struct v4l2_requestbuffers and v4l2_create_buffers */ |
| 918 | #define V4L2_BUF_CAP_SUPPORTS_MMAP (1 << 0) | 924 | #define V4L2_BUF_CAP_SUPPORTS_MMAP (1 << 0) |
| 919 | #define V4L2_BUF_CAP_SUPPORTS_USERPTR (1 << 1) | 925 | #define V4L2_BUF_CAP_SUPPORTS_USERPTR (1 << 1) |
| 920 | #define V4L2_BUF_CAP_SUPPORTS_DMABUF (1 << 2) | 926 | #define V4L2_BUF_CAP_SUPPORTS_DMABUF (1 << 2) |
| 921 | #define V4L2_BUF_CAP_SUPPORTS_REQUESTS (1 << 3) | 927 | #define V4L2_BUF_CAP_SUPPORTS_REQUESTS (1 << 3) |
| 922 | #define V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS (1 << 4) | 928 | #define V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS (1 << 4) |
| 929 | #define V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF (1 << 5) | ||
| 923 | 930 | ||
| 924 | /** | 931 | /** |
| 925 | * struct v4l2_plane - plane info for multi-planar buffers | 932 | * struct v4l2_plane - plane info for multi-planar buffers |
| @@ -1041,6 +1048,8 @@ static inline __u64 v4l2_timeval_to_ns(const struct timeval *tv) · 115 unmodified lines | |||
| 1041 | #define V4L2_BUF_FLAG_IN_REQUEST 0x00000080 | 1048 | #define V4L2_BUF_FLAG_IN_REQUEST 0x00000080 |
| 1042 | /* timecode field is valid */ | 1049 | /* timecode field is valid */ |
| 1043 | #define V4L2_BUF_FLAG_TIMECODE 0x00000100 | 1050 | #define V4L2_BUF_FLAG_TIMECODE 0x00000100 |
| 1051 | /* Don't return the capture buffer until OUTPUT timestamp changes */ | ||
| 1052 | #define V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF 0x00000200 | ||
| 1044 | /* Buffer is prepared for queuing */ | 1053 | /* Buffer is prepared for queuing */ |
| 1045 | #define V4L2_BUF_FLAG_PREPARED 0x00000400 | 1054 | #define V4L2_BUF_FLAG_PREPARED 0x00000400 |
| 1046 | /* Cache handling flags */ | 1055 | /* Cache handling flags */ |
| @@ -1675,6 +1684,7 @@ struct v4l2_ext_control { · 628 unmodified lines | |||
| 1675 | __u8 __user *p_u8; | 1684 | __u8 __user *p_u8; |
| 1676 | __u16 __user *p_u16; | 1685 | __u16 __user *p_u16; |
| 1677 | __u32 __user *p_u32; | 1686 | __u32 __user *p_u32; |
| 1687 | struct v4l2_area __user *p_area; | ||
| 1678 | void __user *ptr; | 1688 | void __user *ptr; |
| 1679 | }; | 1689 | }; |
| 1680 | } __attribute__ ((packed)); | 1690 | } __attribute__ ((packed)); |
| @@ -1720,6 +1730,7 @@ enum v4l2_ctrl_type { · 39 unmodified lines | |||
| 1720 | V4L2_CTRL_TYPE_U8 = 0x0100, | 1730 | V4L2_CTRL_TYPE_U8 = 0x0100, |
| 1721 | V4L2_CTRL_TYPE_U16 = 0x0101, | 1731 | V4L2_CTRL_TYPE_U16 = 0x0101, |
| 1722 | V4L2_CTRL_TYPE_U32 = 0x0102, | 1732 | V4L2_CTRL_TYPE_U32 = 0x0102, |
| 1733 | V4L2_CTRL_TYPE_AREA = 0x0106, | ||
| 1723 | }; | 1734 | }; |
| 1724 | 1735 | ||
| 1725 | /* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */ | 1736 | /* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */ |
| @@ -1975,6 +1986,7 @@ struct v4l2_encoder_cmd { · 249 unmodified lines | |||
| 1975 | #define V4L2_DEC_CMD_STOP (1) | 1986 | #define V4L2_DEC_CMD_STOP (1) |
| 1976 | #define V4L2_DEC_CMD_PAUSE (2) | 1987 | #define V4L2_DEC_CMD_PAUSE (2) |
| 1977 | #define V4L2_DEC_CMD_RESUME (3) | 1988 | #define V4L2_DEC_CMD_RESUME (3) |
| 1989 | #define V4L2_DEC_CMD_FLUSH (4) | ||
| 1978 | 1990 | ||
| 1979 | /* Flags for V4L2_DEC_CMD_START */ | 1991 | /* Flags for V4L2_DEC_CMD_START */ |
| 1980 | #define V4L2_DEC_CMD_START_MUTE_AUDIO (1 << 0) | 1992 | #define V4L2_DEC_CMD_START_MUTE_AUDIO (1 << 0) |