Re: sis190

Francois Romieu
2005-06-17T18:23:13Z

Pascal CHAPPERON <pascal.chapperon@wanadoo.fr> :
[...]
> I noticed that you remove NET_IP_ALIGN in sis190_alloc_rx_skb(),
> but not in sis190_try_rx_copy(); though the driver "worked" like
> yesterday...

NET_IP_ALIGN should be fine in sis190_alloc_rx_skb() as it only
applies to the skb where the driver memcopies (i.e. it is not
limited by the alignement requirement of the asic).

[...]
> PSize status addr size PSize status addr size
> 00:00000000 c0000000 13381010 00000600 00000000 c0000000 13847010 00000600
> 01:00000000 c0000000 1edcb810 00000600 00000000 c0000000 1b694810 00000600
> 02:00000000 c0000000 1b697010 00000600 00000000 c0000000 077c4810 00000600
> 03:00000000 c0000000 07e15010 00000600 00000000 c0000000 06e3e810 00000600
> 04:00000000 c0000000 1719e810 00000600 00000000 c0000000 1b69b810 00000600
> 05:00000000 c0000000 1b694010 00000600 00000000 c0000000 07741010 00000600
> 06:00000000 c0000000 065d8010 00000600 00000000 c0000000 07a84010 00000600
> 07:010100a6 76040040 13381810 00000600 00000000 c0000000 1f7c1010 00000600
^ -> bug
[...]
> So i removed the test "if (pkt_size < rx_copybreak) {" in sis190_try_rx_copy.
>
> The driver now works "correctly" (ping, ssh, scp) as long as i want,
> but probably not in the way you want...

It should be fixed now. Please try the patch of the day:
http://www.fr.zoreil.com/people/francois/misc/20050617-2.6.12-rc-sis190-test.patch

> I don't understand how the Rx packets are managed when pkt_size is
> greater than rx_copybreak...

They are directly given to the upper layer. The driver tags a hole in the
Rx ring.

[...]
> I also tried to force 10H, 10F, 100H, 100F autoneg off on the other card.
> All modes were working, but obviously something was wrong :
> - 10H 0,4Mo/s both directions
> - 10F 1,2Mo/s " "
> - 100H 5Mo/s " "
> - 100F 1,2Mo/s and 0,3Mo/s
>
> For 100F, sis190 reported "100 Mbps Half Duplex" and the other card 100 Full.

Did the sis190 driver report a link change event ?

--
Ueimor