Commit 9d89ddfc authored by Tomas Winkler's avatar Tomas Winkler Committed by Greg Kroah-Hartman

mei: hbm: introduce dma bit in the message header

Add dma_ring bit in the mei message header for conveying
that the message data itself are on the dma ring.
Signed-off-by: default avatarTomas Winkler <tomas.winkler@intel.com>
Signed-off-by: default avatarAlexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent ee7aba5a
...@@ -1551,6 +1551,7 @@ static void mei_msg_hdr_init(struct mei_msg_hdr *mei_hdr, struct mei_cl_cb *cb) ...@@ -1551,6 +1551,7 @@ static void mei_msg_hdr_init(struct mei_msg_hdr *mei_hdr, struct mei_cl_cb *cb)
mei_hdr->length = 0; mei_hdr->length = 0;
mei_hdr->reserved = 0; mei_hdr->reserved = 0;
mei_hdr->msg_complete = 0; mei_hdr->msg_complete = 0;
mei_hdr->dma_ring = 0;
mei_hdr->internal = cb->internal; mei_hdr->internal = cb->internal;
} }
......
...@@ -145,6 +145,7 @@ static inline void mei_hbm_hdr(struct mei_msg_hdr *hdr, size_t length) ...@@ -145,6 +145,7 @@ static inline void mei_hbm_hdr(struct mei_msg_hdr *hdr, size_t length)
hdr->me_addr = 0; hdr->me_addr = 0;
hdr->length = length; hdr->length = length;
hdr->msg_complete = 1; hdr->msg_complete = 1;
hdr->dma_ring = 0;
hdr->reserved = 0; hdr->reserved = 0;
hdr->internal = 0; hdr->internal = 0;
} }
......
...@@ -190,19 +190,27 @@ enum mei_cl_disconnect_status { ...@@ -190,19 +190,27 @@ enum mei_cl_disconnect_status {
MEI_CL_DISCONN_SUCCESS = MEI_HBMS_SUCCESS MEI_CL_DISCONN_SUCCESS = MEI_HBMS_SUCCESS
}; };
/* /**
* MEI BUS Interface Section * struct mei_msg_hdr - MEI BUS Interface Section
*
* @me_addr: device address
* @host_addr: host address
* @length: message length
* @reserved: reserved
* @dma_ring: message is on dma ring
* @internal: message is internal
* @msg_complete: last packet of the message
*/ */
struct mei_msg_hdr { struct mei_msg_hdr {
u32 me_addr:8; u32 me_addr:8;
u32 host_addr:8; u32 host_addr:8;
u32 length:9; u32 length:9;
u32 reserved:5; u32 reserved:4;
u32 dma_ring:1;
u32 internal:1; u32 internal:1;
u32 msg_complete:1; u32 msg_complete:1;
} __packed; } __packed;
struct mei_bus_message { struct mei_bus_message {
u8 hbm_cmd; u8 hbm_cmd;
u8 data[0]; u8 data[0];
......
...@@ -714,10 +714,10 @@ static inline void mei_dbgfs_deregister(struct mei_device *dev) {} ...@@ -714,10 +714,10 @@ static inline void mei_dbgfs_deregister(struct mei_device *dev) {}
int mei_register(struct mei_device *dev, struct device *parent); int mei_register(struct mei_device *dev, struct device *parent);
void mei_deregister(struct mei_device *dev); void mei_deregister(struct mei_device *dev);
#define MEI_HDR_FMT "hdr:host=%02d me=%02d len=%d internal=%1d comp=%1d" #define MEI_HDR_FMT "hdr:host=%02d me=%02d len=%d dma=%1d internal=%1d comp=%1d"
#define MEI_HDR_PRM(hdr) \ #define MEI_HDR_PRM(hdr) \
(hdr)->host_addr, (hdr)->me_addr, \ (hdr)->host_addr, (hdr)->me_addr, \
(hdr)->length, (hdr)->internal, (hdr)->msg_complete (hdr)->length, (hdr)->dma_ring, (hdr)->internal, (hdr)->msg_complete
ssize_t mei_fw_status2str(struct mei_fw_status *fw_sts, char *buf, size_t len); ssize_t mei_fw_status2str(struct mei_fw_status *fw_sts, char *buf, size_t len);
/** /**
......
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