Revision e824012b

b/hw/eepro100.c
120 120
#define  RU_NOP         0x0000
121 121
#define  RX_START       0x0001
122 122
#define  RX_RESUME      0x0002
123
#define  RX_ABORT       0x0004
123
#define  RU_ABORT       0x0004
124 124
#define  RX_ADDR_LOAD   0x0006
125 125
#define  RX_RESUMENR    0x0007
126 126
#define INT_MASK        0x0100
......
426 426
    eepro100_interrupt(s, 0x40);
427 427
}
428 428

  
429
#if 0
430 429
static void eepro100_rnr_interrupt(EEPRO100State * s)
431 430
{
432 431
    /* RU is not ready. */
433 432
    eepro100_interrupt(s, 0x10);
434 433
}
435
#endif
436 434

  
437 435
static void eepro100_mdi_interrupt(EEPRO100State * s)
438 436
{
......
1065 1063
        }
1066 1064
        set_ru_state(s, ru_ready);
1067 1065
        break;
1066
    case RU_ABORT:
1067
        /* RU abort. */
1068
        if (get_ru_state(s) == ru_ready) {
1069
            eepro100_rnr_interrupt(s);
1070
        }
1071
        set_ru_state(s, ru_idle);
1072
        break;
1068 1073
    case RX_ADDR_LOAD:
1069 1074
        /* Load RU base. */
1070 1075
        TRACE(OTHER, logout("val=0x%02x (RU base address)\n", val));
......
1747 1752
    if (get_ru_state(s) != ru_ready) {
1748 1753
        /* No resources available. */
1749 1754
        logout("no resources, state=%u\n", get_ru_state(s));
1755
        /* TODO: RNR interrupt only at first failed frame? */
1756
        eepro100_rnr_interrupt(s);
1750 1757
        s->statistics.rx_resource_errors++;
1751 1758
        //~ assert(!"no resources");
1752 1759
        return -1;

Also available in: Unified diff