soc/intel/common/block/cse: Add helper function heci_send_receive

Aggregate sending and receiving HECI messages into a single function.

TEST=Verified sending and receiving reply HECI message on CML RVP & Hatch board

Change-Id: Ic95239eef8591d3aadf56a857c97f3f1e12b16ac
Signed-off-by: Rizwan Qureshi <rizwan.qureshi@intel.com>
Signed-off-by: Sridhar Siricilla <sridhar.siricilla@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/35224
Reviewed-by: Subrata Banik <subrata.banik@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/soc/intel/common/block/cse/cse.c b/src/soc/intel/common/block/cse/cse.c
index 446c5ac..9520242 100644
--- a/src/soc/intel/common/block/cse/cse.c
+++ b/src/soc/intel/common/block/cse/cse.c
@@ -458,6 +458,22 @@
 	return 0;
 }
 
+int heci_send_receive(const void *snd_msg, size_t snd_sz, void *rcv_msg, size_t *rcv_sz)
+{
+	if (!heci_send(snd_msg, snd_sz, BIOS_HOST_ADDR, HECI_MKHI_ADDR)) {
+		printk(BIOS_ERR, "HECI: send Failed\n");
+		return 0;
+	}
+
+	if (rcv_msg != NULL) {
+		if (!heci_receive(rcv_msg, rcv_sz)) {
+			printk(BIOS_ERR, "HECI: receive Failed\n");
+			return 0;
+		}
+	}
+	return 1;
+}
+
 /*
  * Attempt to reset the device. This is useful when host and ME are out
  * of sync during transmission or ME didn't understand the message.