David, Kevin,

Here is an update on the DM9000 issue.

I spent some time on debugging DM9000 issue - "tx timeout and a kernel crash".

In the current version of dm9000 driver (1.3), the hard_start_xmit API for 
DM9000 - dm9000_start_xmiit() uses spin_lock_irqsave(&db->lock, flags); to 
disable the interrupts, before accessing/setting DM9000 TX registers. It also 
calls spin_unlock_irqrestore(&db->lock, flags); after initiating a tx. 

In an older version of the dm9000.c (1.2 from kernel 2.6.18 to 2.6.22) we just 
disabled dm9000 rx/tx interrupts by writing to the dm9000 register and enabled 
them after initiating the tx.

It does look like, dm9000 stopped receiving the tx interrupts (at least 
dm9000_interrupt is not getting called for tx completion) and thus we starting 
seeing tx timeout from the netdev.

I can get NFS working, if I change the spin_lock/spin_unlock function calls to 
dm9000 specific rx/tx interrupt disable/enable functions.

I believe, dm9000 specific rx/tx interrupt functions were replaced by the 
spin_lock/spin_unlock functions to a fix a hang problem under heavy load.

I will continue to debug this further, wanted to see, if you have any inputs in 
this area.

I did not see this issue being reported on the netdev kernel.org mailing list, 
so not sure, if there is a DM355 specific irq initialization we have missed.

Thanks
Sneha

> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf
> Of Kevin Hilman
> Sent: Friday, December 19, 2008 11:01 AM
> To: David Brownell
> Cc: [email protected]
> Subject: Re: [patch 2.6.28-rc8-davinci-git] dm355: mmc0 works for pio
> 
> David Brownell <[email protected]> writes:
> 
> > On Thursday 18 December 2008, Kevin Hilman wrote:
> >> Strange.  I get NETDEV WATCHDOG timeouts whether I try to mount over
> >> NFS, or whether I simply ssh from a MMC rootfs to linux box.  This is
> >> with current davinci git head.  Have I missed any of your patches?
> >
> > Nothing related to the dm9000 or AEMIF, it seems.  Does using
> >
> >   CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y
> >
> > change things?
> >
> 
> Nope.
> 
> Kevin
> 
> 
> 
> 
> _______________________________________________
> Davinci-linux-open-source mailing list
> [email protected]
> http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to