Hi, David S. Miller writes: > > Richard Mortimer writes: > > static int csr0 = 0x00800000 | 0x9000 > > Can you try values 0x00e00000 or just plain 0x0? > > These are the values the dmfe.c driver uses.
Well the Tx timeouts seem to have stopped happening without me doing anything! I did try a number of different values - as follows 0x00e00000 - network not working (has MRM bit set so not surprising). 0x00c00000 - as above but without MRM - seems to work ok 0x0 - seems to work ok 0x00809000 - seems to work ok. (this is my original settings). With these results in mind it seems most sensible to use the last value because this has the correct address boundary alignment value for SPARC. Find below a patch which seems to work for me. I've assumed that this is generic to all DM9102 based cards so it isn't protected by any ifdefs or whatever. I would be grateful if people could try this and see if it works for you. patch is based on cvs as of today. Richard diff --recursive -u linux-cvs.010805.orig/drivers/net/tulip/tulip_core.c linux-cvs.010805/drivers/net/tulip/tulip_core.c --- linux-cvs.010805.orig/drivers/net/tulip/tulip_core.c Sun Aug 5 11:16:04 2001 +++ linux-cvs.010805/drivers/net/tulip/tulip_core.c Sun Aug 5 15:50:51 2001 @@ -1420,6 +1420,10 @@ if (chip_idx == LC82C168) csr0 &= ~0xfff10000; /* zero reserved bits 31:20, 16 */ + /* DM9102A MRM doesn't work... */ + if (pdev->vendor == 0x1282 && pdev->device == 0x9102) + csr0 &= ~0x01200000; /* zero MRM bit 21 & bit 24 too */ + /* * And back to business */ @@ -1762,9 +1766,9 @@ kfree (tp->mtable); #ifndef USE_IO_OPS iounmap((void *)ioaddr); -#endif err_out_free_res: +#endif pci_release_regions (pdev); err_out_free_netdev: -- Richard Mortimer - [EMAIL PROTECTED] dot netscapeonline dot co dot uk