DM9000 fix status check fail 0x6d error for trizeps board
authorRemy Bohmer <linux@bohmer.net>
Thu, 5 Jun 2008 11:03:36 +0000 (13:03 +0200)
committerBen Warren <biggerbadderben@gmail.com>
Fri, 6 Jun 2008 06:47:28 +0000 (23:47 -0700)
commit0e38c938ed4bcadb4f4fc1419a541431e94fc202
tree9f4bb909b9b43c08e9e73b31ead3473092384943
parent6b52cfe16cd539935e32bd8cf19146522e462a4d
DM9000 fix status check fail 0x6d error for trizeps board

According to the Application Notes of the DM9000, only the 2 bits 0:1 of
the status byte need to be checked to identify a valid packet in the fifo

But, The several different Application Notes do not all speak the same
language on these bits. They do not disagree, but only 1 Application Note
noted explicitly that only these 2 bits need to be checked.
Even the datasheets do not mention anything about these 2 bits.

Because the old code, and the kernel check the whole byte, I left this piece
untouched.

However, I tested all board/DM9000[A|E|EP] devices with this 2 bit check, so
it should work.

Notice, that the 2nd iteration through this receive loop (when a 2nd packet is
in the fifo) is much shorter now, compared to the older U-boot driver code,
so that we can maybe run into a hardware condition now that was never seen
before, or maybe was seen very unfrequently.

Additionaly added a cleanup of a stack variable.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
drivers/net/dm9000x.c