From: YAEGASHI T. <yae...@ma...> - 2000-09-18 06:12:07
|
smc9194.c is known not to work well on SuperH because of its unaligned memory access. This change seems to be enough for my own SH-4 board. I believe here are many users of this driver. Any comments? -- YAEGASHI Takeshi <yae...@ma...> Index: drivers/net/smc9194.c =================================================================== RCS file: /cvsroot/thorondor/kernel/drivers/net/smc9194.c,v retrieving revision 1.1.1.5 retrieving revision 1.2 diff -u -r1.1.1.5 -r1.2 --- drivers/net/smc9194.c 2000/09/02 16:01:29 1.1.1.5 +++ drivers/net/smc9194.c 2000/09/17 00:59:53 1.2 @@ -87,7 +87,11 @@ . Do you want to use 32 bit xfers? This should work on all chips, as . the chipset is designed to accommodate them. */ +#ifdef __sh__ +#undef USE_32_BIT +#else #define USE_32_BIT 1 +#endif /* .the SMC9194 can be at any of the following port addresses. To change, @@ -1405,13 +1409,11 @@ packet_length & 0x3 ); #else PRINTK3((" Reading %d words and %d byte(s) \n", - (packet_length >> 1 ), packet_length & 1 ); - if ( packet_length & 1 ) - *(data++) = inb( ioaddr + DATA_1 ); - insw(ioaddr + DATA_1 , data, (packet_length + 1 ) >> 1); + (packet_length >> 1 ), packet_length & 1 )); + insw(ioaddr + DATA_1 , data, packet_length >> 1); if ( packet_length & 1 ) { data += packet_length & ~1; - *((data++) = inb( ioaddr + DATA_1 ); + *(data++) = inb( ioaddr + DATA_1 ); } #endif #if SMC_DEBUG > 2 |