From 911e09392fecbb353b6313fde0bc59a9098778e3 Mon Sep 17 00:00:00 2001 From: Martin Troxler Date: Mon, 18 Oct 2010 10:30:57 +0200 Subject: [PATCH] Inplace I/O: prevent pairing with already paired fmmus --- master/slave_config.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/master/slave_config.c b/master/slave_config.c index 90a5c006..8a727bb3 100644 --- a/master/slave_config.c +++ b/master/slave_config.c @@ -188,7 +188,9 @@ int ec_slave_config_prepare_fmmu( tx_size = fmmu->data_size; if (sc->allow_overlapping_pdos && sc->used_fmmus > 0) { prev_fmmu = &sc->fmmu_configs[sc->used_fmmus-1]; - if (fmmu->dir != prev_fmmu->dir) { + if (fmmu->dir != prev_fmmu->dir && prev_fmmu->tx_size != 0) { + // prev fmmu has opposite direction + // and is not already paired with prev-prev fmmu prev_fmmu->tx_size = max(fmmu->data_size,prev_fmmu->data_size); tx_size = 0; fmmu_logical_start_address = prev_fmmu->logical_start_address;