From 307384c3b50b68cafebb51986c5faddb9bfbcbf1 Mon Sep 17 00:00:00 2001
From: Florian Pose <fp@igh-essen.com>
Date: Wed, 28 Oct 2009 13:47:39 +0100
Subject: [PATCH] Avoid zeroing mailbox datagram because of VoE handlers.

---
 master/fsm_coe.c     | 1 +
 master/mailbox.c     | 1 -
 master/voe_handler.c | 1 +
 3 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/master/fsm_coe.c b/master/fsm_coe.c
index 978690b6..6f5b216d 100644
--- a/master/fsm_coe.c
+++ b/master/fsm_coe.c
@@ -1526,6 +1526,7 @@ void ec_fsm_coe_up_prepare_segment_request(
     EC_WRITE_U16(data, 0x2 << 12); // SDO request
     EC_WRITE_U8 (data + 2, (fsm->toggle << 4 // toggle
                 | 0x3 << 5)); // upload segment request
+    memset(data + 3, 0x00, 7);
 
     if (fsm->slave->master->debug_level) {
         EC_DBG("Upload segment request:\n");
diff --git a/master/mailbox.c b/master/mailbox.c
index 71ba6e80..57de8a4e 100644
--- a/master/mailbox.c
+++ b/master/mailbox.c
@@ -71,7 +71,6 @@ uint8_t *ec_slave_mbox_prepare_send(const ec_slave_t *slave, /**< slave */
         return ERR_PTR(-EOVERFLOW);
     }
 
-    ec_datagram_zero(datagram);
     ret = ec_datagram_fpwr(datagram, slave->station_address,
             slave->configured_rx_mailbox_offset,
             slave->configured_rx_mailbox_size);
diff --git a/master/voe_handler.c b/master/voe_handler.c
index 3f62de18..b9271f74 100644
--- a/master/voe_handler.c
+++ b/master/voe_handler.c
@@ -234,6 +234,7 @@ void ec_voe_handler_state_write_start(ec_voe_handler_t *voe)
 
     EC_WRITE_U32(data,     voe->vendor_id);
     EC_WRITE_U16(data + 4, voe->vendor_type);
+    /* data already in datagram */
 
     voe->retries = EC_FSM_RETRIES;
     voe->jiffies_start = jiffies;
-- 
GitLab