162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2003-2022, Intel Corporation. All rights reserved.
462306a36Sopenharmony_ci * Intel Management Engine Interface (Intel MEI) Linux driver
562306a36Sopenharmony_ci */
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci#ifndef _MEI_MKHI_H_
862306a36Sopenharmony_ci#define _MEI_MKHI_H_
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#include <linux/types.h>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci#define MKHI_FEATURE_PTT 0x10
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci#define MKHI_FWCAPS_GROUP_ID 0x3
1562306a36Sopenharmony_ci#define MKHI_FWCAPS_SET_OS_VER_APP_RULE_CMD 6
1662306a36Sopenharmony_ci#define MKHI_GEN_GROUP_ID 0xFF
1762306a36Sopenharmony_ci#define MKHI_GEN_GET_FW_VERSION_CMD 0x2
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci#define MKHI_GROUP_ID_GFX              0x30
2062306a36Sopenharmony_ci#define MKHI_GFX_RESET_WARN_CMD_REQ    0x0
2162306a36Sopenharmony_ci#define MKHI_GFX_MEMORY_READY_CMD_REQ  0x1
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci/* Allow transition to PXP mode without approval */
2462306a36Sopenharmony_ci#define MKHI_GFX_MEM_READY_PXP_ALLOWED  0x1
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_cistruct mkhi_rule_id {
2762306a36Sopenharmony_ci	__le16 rule_type;
2862306a36Sopenharmony_ci	u8 feature_id;
2962306a36Sopenharmony_ci	u8 reserved;
3062306a36Sopenharmony_ci} __packed;
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_cistruct mkhi_fwcaps {
3362306a36Sopenharmony_ci	struct mkhi_rule_id id;
3462306a36Sopenharmony_ci	u8 len;
3562306a36Sopenharmony_ci	u8 data[];
3662306a36Sopenharmony_ci} __packed;
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_cistruct mkhi_msg_hdr {
3962306a36Sopenharmony_ci	u8  group_id;
4062306a36Sopenharmony_ci	u8  command;
4162306a36Sopenharmony_ci	u8  reserved;
4262306a36Sopenharmony_ci	u8  result;
4362306a36Sopenharmony_ci} __packed;
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_cistruct mkhi_msg {
4662306a36Sopenharmony_ci	struct mkhi_msg_hdr hdr;
4762306a36Sopenharmony_ci	u8 data[];
4862306a36Sopenharmony_ci} __packed;
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_cistruct mkhi_gfx_mem_ready {
5162306a36Sopenharmony_ci	struct mkhi_msg_hdr hdr;
5262306a36Sopenharmony_ci	u32    flags;
5362306a36Sopenharmony_ci} __packed;
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci#endif /* _MEI_MKHI_H_ */
56