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