mei: hbm: introduce dma bit in the message header
authorTomas Winkler <tomas.winkler@intel.com>
Tue, 31 Jul 2018 06:35:35 +0000 (09:35 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Aug 2018 08:18:30 +0000 (10:18 +0200)
Add dma_ring bit in the mei message header for conveying
that the message data itself are on the dma ring.

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/mei/client.c
drivers/misc/mei/hbm.c
drivers/misc/mei/hw.h
drivers/misc/mei/mei_dev.h

index 0a91738..4ab6251 100644 (file)
@@ -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->reserved = 0;
        mei_hdr->msg_complete = 0;
+       mei_hdr->dma_ring = 0;
        mei_hdr->internal = cb->internal;
 }
 
index 8b3fd9f..b0086c4 100644 (file)
@@ -145,6 +145,7 @@ static inline void mei_hbm_hdr(struct mei_msg_hdr *hdr, size_t length)
        hdr->me_addr = 0;
        hdr->length = length;
        hdr->msg_complete = 1;
+       hdr->dma_ring = 0;
        hdr->reserved = 0;
        hdr->internal = 0;
 }
index 76fb502..5fb8844 100644 (file)
@@ -190,19 +190,27 @@ enum  mei_cl_disconnect_status {
        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 {
        u32 me_addr:8;
        u32 host_addr:8;
        u32 length:9;
-       u32 reserved:5;
+       u32 reserved:4;
+       u32 dma_ring:1;
        u32 internal:1;
        u32 msg_complete:1;
 } __packed;
 
-
 struct mei_bus_message {
        u8 hbm_cmd;
        u8 data[0];
index 06fb5fc..975afaa 100644 (file)
@@ -714,10 +714,10 @@ static inline void mei_dbgfs_deregister(struct mei_device *dev) {}
 int mei_register(struct mei_device *dev, struct device *parent);
 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)                  \
        (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);
 /**