Commit 4f870f1f authored by Gao, Fred's avatar Gao, Fred Committed by Zhenyu Wang

drm/i915/gvt: Utility for valid command length check

Add utility for valid command length check.

v2: Add F_VAL_CONST flag to identify the value is const
    although LEN maybe variable. (Zhenyu)
v3: unused code removal, flag rename/conflict. (Zhenyu)
v4: redefine F_IP_ADVANCE_CUSTOM and move the check function to
    next patch. (Zhenyu)
Reviewed-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: default avatarGao, Fred <fred.gao@intel.com>
Signed-off-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
parent 8cfbca78
...@@ -378,17 +378,17 @@ struct cmd_info { ...@@ -378,17 +378,17 @@ struct cmd_info {
const char *name; const char *name;
u32 opcode; u32 opcode;
#define F_LEN_MASK (1U<<0) #define F_LEN_MASK 3U
#define F_LEN_CONST 1U #define F_LEN_CONST 1U
#define F_LEN_VAR 0U #define F_LEN_VAR 0U
/* value is const although LEN maybe variable */
#define F_LEN_VAR_FIXED (1<<1)
/* /*
* command has its own ip advance logic * command has its own ip advance logic
* e.g. MI_BATCH_START, MI_BATCH_END * e.g. MI_BATCH_START, MI_BATCH_END
*/ */
#define F_IP_ADVANCE_CUSTOM (1<<1) #define F_IP_ADVANCE_CUSTOM (1<<2)
#define F_POST_HANDLE (1<<2)
u32 flag; u32 flag;
#define R_RCS BIT(RCS0) #define R_RCS BIT(RCS0)
...@@ -418,9 +418,12 @@ struct cmd_info { ...@@ -418,9 +418,12 @@ struct cmd_info {
* flag == F_LEN_VAR : length bias bits * flag == F_LEN_VAR : length bias bits
* Note: length is in DWord * Note: length is in DWord
*/ */
u8 len; u32 len;
parser_cmd_handler handler; parser_cmd_handler handler;
/* valid length in DWord */
u32 valid_len;
}; };
struct cmd_entry { struct cmd_entry {
...@@ -1912,7 +1915,7 @@ static const struct cmd_info cmd_info[] = { ...@@ -1912,7 +1915,7 @@ static const struct cmd_info cmd_info[] = {
{"MI_RS_CONTEXT", OP_MI_RS_CONTEXT, F_LEN_CONST, R_RCS, D_ALL, 0, 1, {"MI_RS_CONTEXT", OP_MI_RS_CONTEXT, F_LEN_CONST, R_RCS, D_ALL, 0, 1,
NULL}, NULL},
{"MI_DISPLAY_FLIP", OP_MI_DISPLAY_FLIP, F_LEN_VAR | F_POST_HANDLE, {"MI_DISPLAY_FLIP", OP_MI_DISPLAY_FLIP, F_LEN_VAR,
R_RCS | R_BCS, D_ALL, 0, 8, cmd_handler_mi_display_flip}, R_RCS | R_BCS, D_ALL, 0, 8, cmd_handler_mi_display_flip},
{"MI_SEMAPHORE_MBOX", OP_MI_SEMAPHORE_MBOX, F_LEN_VAR, R_ALL, D_ALL, {"MI_SEMAPHORE_MBOX", OP_MI_SEMAPHORE_MBOX, F_LEN_VAR, R_ALL, D_ALL,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment