This is an automated email from Gerrit.

Andreas Fritiofson (andreas.fritiof...@gmail.com) just uploaded a new patch set 
to Gerrit, which you can find at http://openocd.zylin.com/1999

-- gerrit

commit 5297c7be9c04cf8bdf128ddeacb5fa5b330b2344
Author: Andreas Fritiofson <andreas.fritiof...@gmail.com>
Date:   Thu Feb 27 22:23:58 2014 +0100

    ftdi: Optimize GPIO toggling
    
    Only send the new I/O state for the bytes that changed.
    
    Change-Id: I930edc9518e6019331e68e4756acc5e92dda25a4
    Signed-off-by: Andreas Fritiofson <andreas.fritiof...@gmail.com>

diff --git a/src/jtag/drivers/ftdi.c b/src/jtag/drivers/ftdi.c
index 5617599..b13d6f8 100644
--- a/src/jtag/drivers/ftdi.c
+++ b/src/jtag/drivers/ftdi.c
@@ -182,14 +182,19 @@ static int ftdi_set_signal(const struct signal *s, char 
value)
                return ERROR_FAIL;
        }
 
+       uint16_t old_output = output;
+       uint16_t old_direction = direction;
+
        output = data ? output | s->data_mask : output & ~s->data_mask;
        if (s->oe_mask == s->data_mask)
                direction = oe ? direction | s->oe_mask : direction & 
~s->oe_mask;
        else
                output = oe ? output | s->oe_mask : output & ~s->oe_mask;
 
-       mpsse_set_data_bits_low_byte(mpsse_ctx, output & 0xff, direction & 
0xff);
-       mpsse_set_data_bits_high_byte(mpsse_ctx, output >> 8, direction >> 8);
+       if ((output & 0xff) != (old_output & 0xff) || (direction & 0xff) != 
(old_direction & 0xff))
+               mpsse_set_data_bits_low_byte(mpsse_ctx, output & 0xff, 
direction & 0xff);
+       if ((output >> 8 != old_output >> 8) || (direction >> 8 != 
old_direction >> 8))
+               mpsse_set_data_bits_high_byte(mpsse_ctx, output >> 8, direction 
>> 8);
 
        return ERROR_OK;
 }

-- 

------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
OpenOCD-devel mailing list
OpenOCD-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to