1 /* SPDX-License-Identifier: MIT */ 2 /* 3 * Copyright © 2026 Intel Corporation 4 */ 5 6 #ifndef _XE_SYSCTRL_MAILBOX_H_ 7 #define _XE_SYSCTRL_MAILBOX_H_ 8 9 #include <linux/bitfield.h> 10 #include <linux/types.h> 11 12 #include "abi/xe_sysctrl_abi.h" 13 14 struct xe_sysctrl; 15 struct xe_sysctrl_mailbox_command; 16 17 #define XE_SYSCTRL_APP_HDR_GROUP_ID(hdr) \ 18 FIELD_GET(APP_HDR_GROUP_ID_MASK, (hdr)->data) 19 20 #define XE_SYSCTRL_APP_HDR_COMMAND(hdr) \ 21 FIELD_GET(APP_HDR_COMMAND_MASK, (hdr)->data) 22 23 #define XE_SYSCTRL_APP_HDR_VERSION(hdr) \ 24 FIELD_GET(APP_HDR_VERSION_MASK, (hdr)->data) 25 26 void xe_sysctrl_create_command(struct xe_sysctrl_mailbox_command *command, u8 group_id, u8 cmd_id, 27 void *request, size_t request_len, void *response, 28 size_t response_len); 29 void xe_sysctrl_mailbox_init(struct xe_sysctrl *sc); 30 int xe_sysctrl_send_command(struct xe_sysctrl *sc, 31 struct xe_sysctrl_mailbox_command *cmd, 32 size_t *rdata_len); 33 34 #endif 35