SDIO stability [was Re: SDIO Performance once again]
Sven Neumann
s.neumann at phase-zero.de
Wed Feb 11 08:38:06 EST 2009
Hi,
On Tue, 2009-02-10 at 15:24 -0500, Dan Williams wrote:
> can you add some debugging prints (just using "printk(KERN_INFO...") to
> if_sdio_card_to_host() in if_sdio.c to figure out what's making 'ret' be
> non-zero at function exit?
OK, here we go. This is output from if_sdio_card_to_host():
libertas: sdio_readsb() failed (-84)
libertas: problem fetching packet from firmware (-84)
libertas: sdio_readb(IF_SDIO_STATUS) failed (-84)
libertas: problem fetching packet from firmware (-84)
According to errno.h, 84 means EILSEQ (Illegal byte sequence).
In another test I first got a timeout:
NETDEV WATCHDOG: eth1 (libertas_sdio): transmit timed out
Followed by:
libertas: tx watch dog timeout
libertas: if_sdio_handle_data() failed (-7)
libertas: problem fetching packet from firmware (-7)
libertas: tx watch dog timeout
libertas: command 0x001f timed out
libertas: requeueing command 0x001f due to timeout (#1)
So it looks like after a timeout the amount of data exceeds
MRVDRV_ETH_RX_PACKET_BUFFER_SIZE (see if_sdio_handle_data).
Sven
More information about the libertas-dev
mailing list