projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge git://git.denx.de/u-boot-dm
[oweals/u-boot.git]
/
drivers
/
net
/
sandbox.c
diff --git
a/drivers/net/sandbox.c
b/drivers/net/sandbox.c
index e239ff44479d07cbd04d3906c46646bae2f3c9c1..d538d379bbec77cb54c7072b63480218f3d456dd 100644
(file)
--- a/
drivers/net/sandbox.c
+++ b/
drivers/net/sandbox.c
@@
-11,6
+11,7
@@
#include <dm.h>
#include <malloc.h>
#include <net.h>
#include <dm.h>
#include <malloc.h>
#include <net.h>
+#include <asm/test.h>
DECLARE_GLOBAL_DATA_PTR;
DECLARE_GLOBAL_DATA_PTR;
@@
-30,6
+31,7
@@
struct eth_sandbox_priv {
};
static bool disabled[8] = {false};
};
static bool disabled[8] = {false};
+static bool skip_timeout;
/*
* sandbox_eth_disable_response()
/*
* sandbox_eth_disable_response()
@@
-42,6
+44,16
@@
void sandbox_eth_disable_response(int index, bool disable)
disabled[index] = disable;
}
disabled[index] = disable;
}
+/*
+ * sandbox_eth_skip_timeout()
+ *
+ * When the first packet read is attempted, fast-forward time
+ */
+void sandbox_eth_skip_timeout(void)
+{
+ skip_timeout = true;
+}
+
static int sb_eth_start(struct udevice *dev)
{
struct eth_sandbox_priv *priv = dev_get_priv(dev);
static int sb_eth_start(struct udevice *dev)
{
struct eth_sandbox_priv *priv = dev_get_priv(dev);
@@
-140,10
+152,15
@@
static int sb_eth_send(struct udevice *dev, void *packet, int length)
return 0;
}
return 0;
}
-static int sb_eth_recv(struct udevice *dev, uchar **packetp)
+static int sb_eth_recv(struct udevice *dev,
int flags,
uchar **packetp)
{
struct eth_sandbox_priv *priv = dev_get_priv(dev);
{
struct eth_sandbox_priv *priv = dev_get_priv(dev);
+ if (skip_timeout) {
+ sandbox_timer_add_offset(11000UL);
+ skip_timeout = false;
+ }
+
if (priv->recv_packet_length) {
int lcl_recv_packet_length = priv->recv_packet_length;
if (priv->recv_packet_length) {
int lcl_recv_packet_length = priv->recv_packet_length;