• Simon Glass's avatar
    dm: eth: Avoid blocking on packet reception · a1ca92ea
    Simon Glass authored
    Some devices can take a long time to work out whether they have a new packet
    or now. For example the ASIX USB Ethernet dongle can take 5 seconds to do
    this, since it waits until it gets a new packet on the wire before allowing
    the USB bulk read packet to be submitted.
    
    At present with driver mode the Ethernet receive code reads 32 packets. This
    can take a very long time if we must wait for all 32 packets. The old code
    (before driver model) worked by reading a single set of packets from the USB
    device, then processing all the packets with in. It would be nice to use
    the same behaviour with driver model.
    
    Add a flag to the receive method which indicates that the driver should try
    to find a packet if available, by consulting the hardware. When the flag is
    not set, it should just return any packet data it has already received. If
    there is none, it should return -EAGAIN so that the loop will terminate.
    Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
    a1ca92ea
Name
Last commit
Last update
Licenses Loading commit data...
api Loading commit data...
arch Loading commit data...
board Loading commit data...
common Loading commit data...
configs Loading commit data...
disk Loading commit data...
doc Loading commit data...
drivers Loading commit data...
dts Loading commit data...
examples Loading commit data...
fs Loading commit data...
include Loading commit data...
lib Loading commit data...
net Loading commit data...
post Loading commit data...
scripts Loading commit data...
test Loading commit data...
tools Loading commit data...
.checkpatch.conf Loading commit data...
.gitignore Loading commit data...
.mailmap Loading commit data...
.travis.yml Loading commit data...
Kbuild Loading commit data...
Kconfig Loading commit data...
MAINTAINERS Loading commit data...
MAKEALL Loading commit data...
Makefile Loading commit data...
README Loading commit data...
config.mk Loading commit data...
snapshot.commit Loading commit data...