Searched hist:"850 ba7555dbd4ca8d14fc475b864d534797adab3" (Results 1 – 1 of 1) sorted by relevance
| /rk3399_rockchip-uboot/drivers/net/ |
| H A D | dm9000x.c | 850ba7555dbd4ca8d14fc475b864d534797adab3 Tue Jun 03 13:26:25 UTC 2008 Remy Bohmer <linux@bohmer.net> DM9000: Make driver work properly for DM9000A
The DM9000A network controller does not work with the U-boot DM9000x driver. Analysis showed that many incoming packets are lost.
The DM9000A Application Notes V1.20 (section 5.6.1) recommend that the poll to check for a valid rx packet be done on the interrupt status register, not directly by performing the dummy read and the rx status check as is currently the case in the u-boot driver.
When the recommended poll is done as suggested the driver starts working correctly on 10Mbit/HD, but on 100MBit/FD packets come in faster so that there can be more than 1 package in the fifo at the same time.
The driver must perform the rx-status check in a loop and read and handle all packages until there is no more left _after_ the interrupt RX flag is set.
This change has been tested with DM9000A, DM9000E, DM9000EP.
Signed-off-by: Remy Bohmer <linux@bohmer.net> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
|