Changeset 1253f39 in rtems
- Timestamp:
- 08/13/98 16:20:14 (25 years ago)
- Branches:
- 4.10, 4.11, 4.8, 4.9, 5, master
- Children:
- af3e81c9
- Parents:
- 70502bc4
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
c/src/lib/libbsp/powerpc/dmv177/sonic/sonic.c
r70502bc4 r1253f39 1 void break_when_you_get_here();2 1 /* 3 2 ******************************************************************* … … 57 56 #define SONIC_DEBUG_ERRORS 0x0020 58 57 59 #define SONIC_DEBUG (SONIC_DEBUG_ERRORS) 60 61 /* (SONIC_DEBUG_MEMORY|SONIC_DEBUG_DESCRIPTORS) */ 62 63 /* SONIC_DEBUG_ALL */ 64 58 #define SONIC_DEBUG (SONIC_DEBUG_NONE) 65 59 66 60 /* … … 132 126 */ 133 127 #define RDA_COUNT 20 134 #define TDA_COUNT 10 0128 #define TDA_COUNT 10 135 129 136 130 /* … … 372 366 { 373 367 struct sonic *dp = sonic; 368 unsigned32 isr, imr; 374 369 void *rp; 375 370 … … 393 388 dp->Interrupts++; 394 389 390 isr = sonic_read_register( rp, SONIC_REG_ISR ); 391 imr = sonic_read_register( rp, SONIC_REG_IMR ); 392 395 393 /* 396 394 * Packet received or receive buffer area exceeded? 397 395 */ 398 if ((sonic_read_register( rp, SONIC_REG_IMR ) & (IMR_PRXEN | IMR_RBAEEN)) && 399 (sonic_read_register( rp, SONIC_REG_ISR ) & (ISR_PKTRX | ISR_RBAE))) { 400 sonic_write_register( 401 rp, 402 SONIC_REG_IMR, 403 sonic_read_register( rp, SONIC_REG_IMR) & ~(IMR_PRXEN | IMR_RBAEEN) 404 ); 396 if ((imr & (IMR_PRXEN | IMR_RBAEEN)) && 397 (isr & (ISR_PKTRX | ISR_RBAE))) { 398 imr &= ~(IMR_PRXEN | IMR_RBAEEN); 405 399 dp->rxInterrupts++; 406 400 rtems_event_send (dp->iface->rxproc, INTERRUPT_EVENT); … … 410 404 * Packet started, transmitter done or transmitter error? 411 405 */ 412 if ((sonic_read_register( rp, SONIC_REG_IMR ) & (IMR_PINTEN | IMR_PTXEN | IMR_TXEREN)) 413 && (sonic_read_register( rp, SONIC_REG_ISR ) & (ISR_PINT | ISR_TXDN | ISR_TXER))) { 414 sonic_write_register( 415 rp, 416 SONIC_REG_IMR, 417 sonic_read_register( rp, SONIC_REG_IMR) & 418 ~(IMR_PINTEN | IMR_PTXEN | IMR_TXEREN) 419 ); 406 if ((imr & (IMR_PINTEN | IMR_PTXEN | IMR_TXEREN)) 407 && (isr & (ISR_PINT | ISR_TXDN | ISR_TXER))) { 408 imr &= ~(IMR_PINTEN | IMR_PTXEN | IMR_TXEREN); 420 409 dp->txInterrupts++; 421 410 rtems_event_send (dp->txWaitTid, INTERRUPT_EVENT); 422 411 } 412 413 sonic_write_register( rp, SONIC_REG_IMR, imr ); 423 414 } 424 415 … … 1524 1515 }; 1525 1516 #endif 1517 1526 1518 void sonic_write_register( 1527 1519 void *base,
Note: See TracChangeset
for help on using the changeset viewer.