comparison packages/devs/eth/cl/cs8900a/current/src/if_cs8900a.c @ 1397:9c818dd5d9fa

Updates for EC555 targets - from Bob Koninckx
author gthomas
date Mon, 24 Nov 2003 14:28:13 +0000
parents 01d8c3c977d9
children bf994e1a516c
comparison
equal deleted inserted replaced
1396:72d234fe1607 1397:9c818dd5d9fa
470 len = sg_list[i].len; 470 len = sg_list[i].len;
471 471
472 if (len > 0) { 472 if (len > 0) {
473 /* Finish the last word. */ 473 /* Finish the last word. */
474 if (odd_byte) { 474 if (odd_byte) {
475 #if(CYG_BYTEORDER == CYG_LSBFIRST)
475 // Add data to the most significant byte 476 // Add data to the most significant byte
476 #if(CYG_BYTEORDER == CYG_LSBFIRST)
477 saved_data |= ((cyg_uint16)*data++) << 8; 477 saved_data |= ((cyg_uint16)*data++) << 8;
478 #elif(CYG_BYTEORDER == CYG_MSBFIRST) 478 #elif(CYG_BYTEORDER == CYG_MSBFIRST)
479 saved_data = ((cyg_uint16)*data++) | (saved_data << 8); 479 // Add data to the least significant byte
480 saved_data |= *data++;
480 #endif 481 #endif
481 HAL_WRITE_UINT16(cpd->base+CS8900A_RTDATA, saved_data); 482 HAL_WRITE_UINT16(cpd->base+CS8900A_RTDATA, saved_data);
482 len--; 483 len--;
483 odd_byte = false; 484 odd_byte = false;
484 } 485 }
485 if ((CYG_ADDRESS)data & 0x1 == 0) { 486 if (((CYG_ADDRESS)data & 0x1) == 0) {
486 /* Aligned on 16-bit boundary, so output contiguous words. */ 487 /* Aligned on 16-bit boundary, so output contiguous words. */
487 sdata = (cyg_uint16 *)data; 488 sdata = (cyg_uint16 *)data;
488 while (len > 1) { 489 while (len > 1) {
489 HAL_WRITE_UINT16(cpd->base+CS8900A_RTDATA, *sdata++); 490 HAL_WRITE_UINT16(cpd->base+CS8900A_RTDATA, *sdata++);
490 len -= sizeof(cyg_uint16); 491 len -= sizeof(cyg_uint16);
504 } 505 }
505 } 506 }
506 /* Save last byte, if necessary. */ 507 /* Save last byte, if necessary. */
507 if (len == 1) { 508 if (len == 1) {
508 saved_data = (cyg_uint16)*data; 509 saved_data = (cyg_uint16)*data;
510 #if CYG_BYTEORDER == CYG_MSBFIRST
511 saved_data = (saved_data << 8);
512 #endif
509 odd_byte = true; 513 odd_byte = true;
510 } 514 }
511 } 515 }
512 } 516 }
513 if (odd_byte) { 517 if (odd_byte) {