.. | .. |
---|
144 | 144 | |
---|
145 | 145 | /* cec_msg flags field */ |
---|
146 | 146 | #define CEC_MSG_FL_REPLY_TO_FOLLOWERS (1 << 0) |
---|
| 147 | +#define CEC_MSG_FL_RAW (1 << 1) |
---|
147 | 148 | |
---|
148 | 149 | /* cec_msg tx/rx_status field */ |
---|
149 | 150 | #define CEC_TX_STATUS_OK (1 << 0) |
---|
.. | .. |
---|
316 | 317 | #define CEC_CAP_NEEDS_HPD (1 << 6) |
---|
317 | 318 | /* Hardware can monitor CEC pin transitions */ |
---|
318 | 319 | #define CEC_CAP_MONITOR_PIN (1 << 7) |
---|
| 320 | +/* CEC_ADAP_G_CONNECTOR_INFO is available */ |
---|
| 321 | +#define CEC_CAP_CONNECTOR_INFO (1 << 8) |
---|
319 | 322 | |
---|
320 | 323 | /** |
---|
321 | 324 | * struct cec_caps - CEC capabilities structure. |
---|
.. | .. |
---|
374 | 377 | /* CDC-Only device: supports only CDC messages */ |
---|
375 | 378 | #define CEC_LOG_ADDRS_FL_CDC_ONLY (1 << 2) |
---|
376 | 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 | + |
---|
377 | 408 | /* Events */ |
---|
378 | 409 | |
---|
379 | 410 | /* Event that occurs when the adapter state changes */ |
---|
.. | .. |
---|
397 | 428 | * struct cec_event_state_change - used when the CEC adapter changes state. |
---|
398 | 429 | * @phys_addr: the current physical address |
---|
399 | 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. |
---|
400 | 437 | */ |
---|
401 | 438 | struct cec_event_state_change { |
---|
402 | 439 | __u16 phys_addr; |
---|
403 | 440 | __u16 log_addr_mask; |
---|
| 441 | + __u16 have_conn_info; |
---|
404 | 442 | }; |
---|
405 | 443 | |
---|
406 | 444 | /** |
---|
.. | .. |
---|
474 | 512 | */ |
---|
475 | 513 | #define CEC_G_MODE _IOR('a', 8, __u32) |
---|
476 | 514 | #define CEC_S_MODE _IOW('a', 9, __u32) |
---|
| 515 | + |
---|
| 516 | +/* Get the connector info */ |
---|
| 517 | +#define CEC_ADAP_G_CONNECTOR_INFO _IOR('a', 10, struct cec_connector_info) |
---|
| 518 | + |
---|
| 519 | +/* set cec into standby mode */ |
---|
| 520 | +#define CEC_STANDBY _IOW('a', 10, __u8) |
---|
| 521 | + |
---|
| 522 | +/* set cec wake up function enable */ |
---|
| 523 | +#define CEC_FUNC_EN _IOW('a', 11, int) |
---|
477 | 524 | |
---|
478 | 525 | /* |
---|
479 | 526 | * The remainder of this header defines all CEC messages and operands. |
---|
.. | .. |
---|
819 | 866 | #define CEC_OP_MENU_STATE_DEACTIVATED 0x01 |
---|
820 | 867 | |
---|
821 | 868 | #define CEC_MSG_USER_CONTROL_PRESSED 0x44 |
---|
| 869 | +/* UI Command Operand (ui_cmd) */ |
---|
| 870 | +#define CEC_OP_UI_CMD_SELECT 0x00 |
---|
| 871 | +#define CEC_OP_UI_CMD_UP 0x01 |
---|
| 872 | +#define CEC_OP_UI_CMD_DOWN 0x02 |
---|
| 873 | +#define CEC_OP_UI_CMD_LEFT 0x03 |
---|
| 874 | +#define CEC_OP_UI_CMD_RIGHT 0x04 |
---|
| 875 | +#define CEC_OP_UI_CMD_RIGHT_UP 0x05 |
---|
| 876 | +#define CEC_OP_UI_CMD_RIGHT_DOWN 0x06 |
---|
| 877 | +#define CEC_OP_UI_CMD_LEFT_UP 0x07 |
---|
| 878 | +#define CEC_OP_UI_CMD_LEFT_DOWN 0x08 |
---|
| 879 | +#define CEC_OP_UI_CMD_DEVICE_ROOT_MENU 0x09 |
---|
| 880 | +#define CEC_OP_UI_CMD_DEVICE_SETUP_MENU 0x0a |
---|
| 881 | +#define CEC_OP_UI_CMD_CONTENTS_MENU 0x0b |
---|
| 882 | +#define CEC_OP_UI_CMD_FAVORITE_MENU 0x0c |
---|
| 883 | +#define CEC_OP_UI_CMD_BACK 0x0d |
---|
| 884 | +#define CEC_OP_UI_CMD_MEDIA_TOP_MENU 0x10 |
---|
| 885 | +#define CEC_OP_UI_CMD_MEDIA_CONTEXT_SENSITIVE_MENU 0x11 |
---|
| 886 | +#define CEC_OP_UI_CMD_NUMBER_ENTRY_MODE 0x1d |
---|
| 887 | +#define CEC_OP_UI_CMD_NUMBER_11 0x1e |
---|
| 888 | +#define CEC_OP_UI_CMD_NUMBER_12 0x1f |
---|
| 889 | +#define CEC_OP_UI_CMD_NUMBER_0_OR_NUMBER_10 0x20 |
---|
| 890 | +#define CEC_OP_UI_CMD_NUMBER_1 0x21 |
---|
| 891 | +#define CEC_OP_UI_CMD_NUMBER_2 0x22 |
---|
| 892 | +#define CEC_OP_UI_CMD_NUMBER_3 0x23 |
---|
| 893 | +#define CEC_OP_UI_CMD_NUMBER_4 0x24 |
---|
| 894 | +#define CEC_OP_UI_CMD_NUMBER_5 0x25 |
---|
| 895 | +#define CEC_OP_UI_CMD_NUMBER_6 0x26 |
---|
| 896 | +#define CEC_OP_UI_CMD_NUMBER_7 0x27 |
---|
| 897 | +#define CEC_OP_UI_CMD_NUMBER_8 0x28 |
---|
| 898 | +#define CEC_OP_UI_CMD_NUMBER_9 0x29 |
---|
| 899 | +#define CEC_OP_UI_CMD_DOT 0x2a |
---|
| 900 | +#define CEC_OP_UI_CMD_ENTER 0x2b |
---|
| 901 | +#define CEC_OP_UI_CMD_CLEAR 0x2c |
---|
| 902 | +#define CEC_OP_UI_CMD_NEXT_FAVORITE 0x2f |
---|
| 903 | +#define CEC_OP_UI_CMD_CHANNEL_UP 0x30 |
---|
| 904 | +#define CEC_OP_UI_CMD_CHANNEL_DOWN 0x31 |
---|
| 905 | +#define CEC_OP_UI_CMD_PREVIOUS_CHANNEL 0x32 |
---|
| 906 | +#define CEC_OP_UI_CMD_SOUND_SELECT 0x33 |
---|
| 907 | +#define CEC_OP_UI_CMD_INPUT_SELECT 0x34 |
---|
| 908 | +#define CEC_OP_UI_CMD_DISPLAY_INFORMATION 0x35 |
---|
| 909 | +#define CEC_OP_UI_CMD_HELP 0x36 |
---|
| 910 | +#define CEC_OP_UI_CMD_PAGE_UP 0x37 |
---|
| 911 | +#define CEC_OP_UI_CMD_PAGE_DOWN 0x38 |
---|
| 912 | +#define CEC_OP_UI_CMD_POWER 0x40 |
---|
| 913 | +#define CEC_OP_UI_CMD_VOLUME_UP 0x41 |
---|
| 914 | +#define CEC_OP_UI_CMD_VOLUME_DOWN 0x42 |
---|
| 915 | +#define CEC_OP_UI_CMD_MUTE 0x43 |
---|
| 916 | +#define CEC_OP_UI_CMD_PLAY 0x44 |
---|
| 917 | +#define CEC_OP_UI_CMD_STOP 0x45 |
---|
| 918 | +#define CEC_OP_UI_CMD_PAUSE 0x46 |
---|
| 919 | +#define CEC_OP_UI_CMD_RECORD 0x47 |
---|
| 920 | +#define CEC_OP_UI_CMD_REWIND 0x48 |
---|
| 921 | +#define CEC_OP_UI_CMD_FAST_FORWARD 0x49 |
---|
| 922 | +#define CEC_OP_UI_CMD_EJECT 0x4a |
---|
| 923 | +#define CEC_OP_UI_CMD_SKIP_FORWARD 0x4b |
---|
| 924 | +#define CEC_OP_UI_CMD_SKIP_BACKWARD 0x4c |
---|
| 925 | +#define CEC_OP_UI_CMD_STOP_RECORD 0x4d |
---|
| 926 | +#define CEC_OP_UI_CMD_PAUSE_RECORD 0x4e |
---|
| 927 | +#define CEC_OP_UI_CMD_ANGLE 0x50 |
---|
| 928 | +#define CEC_OP_UI_CMD_SUB_PICTURE 0x51 |
---|
| 929 | +#define CEC_OP_UI_CMD_VIDEO_ON_DEMAND 0x52 |
---|
| 930 | +#define CEC_OP_UI_CMD_ELECTRONIC_PROGRAM_GUIDE 0x53 |
---|
| 931 | +#define CEC_OP_UI_CMD_TIMER_PROGRAMMING 0x54 |
---|
| 932 | +#define CEC_OP_UI_CMD_INITIAL_CONFIGURATION 0x55 |
---|
| 933 | +#define CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE 0x56 |
---|
| 934 | +#define CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION 0x57 |
---|
| 935 | +#define CEC_OP_UI_CMD_AUDIO_DESCRIPTION 0x58 |
---|
| 936 | +#define CEC_OP_UI_CMD_INTERNET 0x59 |
---|
| 937 | +#define CEC_OP_UI_CMD_3D_MODE 0x5a |
---|
| 938 | +#define CEC_OP_UI_CMD_PLAY_FUNCTION 0x60 |
---|
| 939 | +#define CEC_OP_UI_CMD_PAUSE_PLAY_FUNCTION 0x61 |
---|
| 940 | +#define CEC_OP_UI_CMD_RECORD_FUNCTION 0x62 |
---|
| 941 | +#define CEC_OP_UI_CMD_PAUSE_RECORD_FUNCTION 0x63 |
---|
| 942 | +#define CEC_OP_UI_CMD_STOP_FUNCTION 0x64 |
---|
| 943 | +#define CEC_OP_UI_CMD_MUTE_FUNCTION 0x65 |
---|
| 944 | +#define CEC_OP_UI_CMD_RESTORE_VOLUME_FUNCTION 0x66 |
---|
| 945 | +#define CEC_OP_UI_CMD_TUNE_FUNCTION 0x67 |
---|
| 946 | +#define CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION 0x68 |
---|
| 947 | +#define CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION 0x69 |
---|
| 948 | +#define CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION 0x6a |
---|
| 949 | +#define CEC_OP_UI_CMD_POWER_TOGGLE_FUNCTION 0x6b |
---|
| 950 | +#define CEC_OP_UI_CMD_POWER_OFF_FUNCTION 0x6c |
---|
| 951 | +#define CEC_OP_UI_CMD_POWER_ON_FUNCTION 0x6d |
---|
| 952 | +#define CEC_OP_UI_CMD_F1_BLUE 0x71 |
---|
| 953 | +#define CEC_OP_UI_CMD_F2_RED 0x72 |
---|
| 954 | +#define CEC_OP_UI_CMD_F3_GREEN 0x73 |
---|
| 955 | +#define CEC_OP_UI_CMD_F4_YELLOW 0x74 |
---|
| 956 | +#define CEC_OP_UI_CMD_F5 0x75 |
---|
| 957 | +#define CEC_OP_UI_CMD_DATA 0x76 |
---|
822 | 958 | /* UI Broadcast Type Operand (ui_bcast_type) */ |
---|
823 | 959 | #define CEC_OP_UI_BCAST_TYPE_TOGGLE_ALL 0x00 |
---|
824 | 960 | #define CEC_OP_UI_BCAST_TYPE_TOGGLE_DIG_ANA 0x01 |
---|