/**
  * mei_hbm_cl_hdr - construct client hbm header
  *
- * @cl: - client
+ * @cl: client
  * @hbm_cmd: host bus message command
  * @buf: buffer for cl header
  * @len: buffer length
        cmd->me_addr = cl->me_client_id;
 }
 
+/**
+ * mei_hbm_cl_write - write simple hbm client message
+ *
+ * @dev: the device structure
+ * @cl: client
+ * @hbm_cmd: host bus message command
+ * @len: buffer length
+ */
+static inline
+int mei_hbm_cl_write(struct mei_device *dev,
+                    struct mei_cl *cl, u8 hbm_cmd, size_t len)
+{
+       struct mei_msg_hdr *mei_hdr = &dev->wr_msg.hdr;
+
+       mei_hbm_hdr(mei_hdr, len);
+       mei_hbm_cl_hdr(cl, hbm_cmd, dev->wr_msg.data, len);
+
+       return mei_write_message(dev, mei_hdr, dev->wr_msg.data);
+}
+
 /**
  * mei_hbm_cl_addr_equal - tells if they have the same address
  *
  */
 int mei_hbm_cl_flow_control_req(struct mei_device *dev, struct mei_cl *cl)
 {
-       struct mei_msg_hdr *mei_hdr = &dev->wr_msg.hdr;
        const size_t len = sizeof(struct hbm_flow_control);
-
-       mei_hbm_hdr(mei_hdr, len);
-       mei_hbm_cl_hdr(cl, MEI_FLOW_CONTROL_CMD, dev->wr_msg.data, len);
-
        cl_dbg(dev, cl, "sending flow control\n");
-
-       return mei_write_message(dev, mei_hdr, dev->wr_msg.data);
+       return mei_hbm_cl_write(dev, cl, MEI_FLOW_CONTROL_CMD, len);
 }
 
 /**
  */
 int mei_hbm_cl_disconnect_req(struct mei_device *dev, struct mei_cl *cl)
 {
-       struct mei_msg_hdr *mei_hdr = &dev->wr_msg.hdr;
        const size_t len = sizeof(struct hbm_client_connect_request);
-
-       mei_hbm_hdr(mei_hdr, len);
-       mei_hbm_cl_hdr(cl, CLIENT_DISCONNECT_REQ_CMD, dev->wr_msg.data, len);
-
-       return mei_write_message(dev, mei_hdr, dev->wr_msg.data);
+       return mei_hbm_cl_write(dev, cl, CLIENT_DISCONNECT_REQ_CMD, len);
 }
 
 /**
  */
 int mei_hbm_cl_disconnect_rsp(struct mei_device *dev, struct mei_cl *cl)
 {
-       struct mei_msg_hdr *mei_hdr = &dev->wr_msg.hdr;
        const size_t len = sizeof(struct hbm_client_connect_response);
-
-       mei_hbm_hdr(mei_hdr, len);
-       mei_hbm_cl_hdr(cl, CLIENT_DISCONNECT_RES_CMD, dev->wr_msg.data, len);
-
-       return mei_write_message(dev, mei_hdr, dev->wr_msg.data);
+       return mei_hbm_cl_write(dev, cl, CLIENT_DISCONNECT_RES_CMD, len);
 }
 
 /**
  */
 int mei_hbm_cl_connect_req(struct mei_device *dev, struct mei_cl *cl)
 {
-       struct mei_msg_hdr *mei_hdr = &dev->wr_msg.hdr;
        const size_t len = sizeof(struct hbm_client_connect_request);
-
-       mei_hbm_hdr(mei_hdr, len);
-       mei_hbm_cl_hdr(cl, CLIENT_CONNECT_REQ_CMD, dev->wr_msg.data, len);
-
-       return mei_write_message(dev, mei_hdr,  dev->wr_msg.data);
+       return mei_hbm_cl_write(dev, cl, CLIENT_CONNECT_REQ_CMD, len);
 }
 
 /**