summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVic Yang <victoryang@chromium.org>2014-06-11 10:53:50 -0700
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-06-12 01:37:53 +0000
commitb78f9594ae64b9937950e81bd408952d6894d46c (patch)
treefc1328d82075c7970a3d4e96beba24182e035dd6
parent4670e537169b2ed4befa375cbd9c13a2bd8c39c7 (diff)
downloadchrome-ec-b78f9594ae64b9937950e81bd408952d6894d46c.tar.gz
Keyborg: add debug info on sync failure
It's often hard to find out which sync call failed when one happens. Let's add debug info. BUG=None TEST=Add a sync call on master side only, and see the file name and line number. BRANCH=None Change-Id: I68d0fa12d5d84293870e845fbb5f83aa3a8125fa Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/203339 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r--board/keyborg/master_slave.c4
-rw-r--r--board/keyborg/master_slave.h4
2 files changed, 6 insertions, 2 deletions
diff --git a/board/keyborg/master_slave.c b/board/keyborg/master_slave.c
index 5bb03c4e70..564bc502d6 100644
--- a/board/keyborg/master_slave.c
+++ b/board/keyborg/master_slave.c
@@ -32,7 +32,7 @@ static int wait_sync_signal(int mask, int v, int timeout_ms)
return EC_SUCCESS;
}
-int master_slave_sync(int timeout_ms)
+int master_slave_sync_impl(const char *filename, int line, int timeout_ms)
{
int err = EC_SUCCESS;
if (is_master) {
@@ -50,6 +50,8 @@ int master_slave_sync(int timeout_ms)
err = EC_ERROR_TIMEOUT;
STM32_GPIO_BSRR(GPIO_I) = SYNC2 << 16;
}
+ if (err != EC_SUCCESS)
+ debug_printf("Sync failed at %s:%d\n", filename, line);
return err;
}
diff --git a/board/keyborg/master_slave.h b/board/keyborg/master_slave.h
index b64b88819e..8cc1c8ce64 100644
--- a/board/keyborg/master_slave.h
+++ b/board/keyborg/master_slave.h
@@ -24,7 +24,9 @@ int master_slave_is_master(void);
*
* @return EC_SUCCESS, or non-zero if any error.
*/
-int master_slave_sync(int timeout_ms);
+#define master_slave_sync(timeout_ms) \
+ master_slave_sync_impl(__FILE__, __LINE__, timeout_ms)
+int master_slave_sync_impl(const char *filename, int line, int timeout_ms);
/**
* Identify this chip and shake hands with the other chip.