6 Mar 16:51
PATCH dm9ks interrupt handling
From: chrispe <chris <at> edesix.com>
Subject: PATCH dm9ks interrupt handling
Newsgroups: gmane.comp.embedded.neuros.dm320
Date: 2007-03-06 15:51:50 GMT
Subject: PATCH dm9ks interrupt handling
Newsgroups: gmane.comp.embedded.neuros.dm320
Date: 2007-03-06 15:51:50 GMT
I was having problems with the OSD not receiving packets on a busy network. Typically I would notice this when a telnet session hung for 5-15 seconds when I pressed a key, but it also happened in many other circumstances. I discovered that the driver had some code that disabled the receive interrupt after 10 packets were received. The interrupt would be re- enabled by completing a transmit or by a 5 second timer. This somewhat crazy code was presumably designed to reduce the load on the processor (or maybe the IRQ system) when the device is not actively communicating. However, on a network with a moderate amount of broadcast traffic it was very common for the device to stop receiving for several seconds and then overrun its receive buffer when the interrupt was re-enabled. I have removed this mechanism and also removed the bogus ioctl handler that just returned success to all calls, which makes things like the mii interface look like they work, but always return junk! Patch below. Chris. --- dm9ks.c.orig 2007-03-06 15:10:23.000000000 +0000 +++ dm9ks.c 2007-03-06 15:15:16.000000000 +0000 @@ -37,6 +37,8 @@ V2.03 11/22/2005 Power-off and Power-on PHY in dmfe_init() support IOL 06/17/2006 Butchered for NTR3 OSD(Continue reading)
RSS Feed