master/ethernet.c
changeset 146 73a5f7dd3024
parent 145 11a82e4fd31b
child 195 674071846ee3
equal deleted inserted replaced
145:11a82e4fd31b 146:73a5f7dd3024
    34 void ec_eoe_run(ec_eoe_t *eoe)
    34 void ec_eoe_run(ec_eoe_t *eoe)
    35 {
    35 {
    36     uint8_t *data;
    36     uint8_t *data;
    37     ec_master_t *master;
    37     ec_master_t *master;
    38     size_t rec_size;
    38     size_t rec_size;
       
    39 #if 0
       
    40     unsigned int i;
       
    41     uint8_t fragment_number;
       
    42     uint8_t complete_size;
       
    43     uint8_t frame_number;
       
    44     uint8_t last_fragment;
       
    45 #endif
    39 
    46 
    40     master = eoe->slave->master;
    47     master = eoe->slave->master;
    41 
    48 
    42     if (eoe->rx_state == EC_EOE_IDLE) {
    49     if (eoe->rx_state == EC_EOE_IDLE) {
    43         ec_slave_mbox_prepare_check(eoe->slave);
    50         ec_slave_mbox_prepare_check(eoe->slave);
    61         eoe->rx_state = EC_EOE_FETCHING;
    68         eoe->rx_state = EC_EOE_FETCHING;
    62         return;
    69         return;
    63     }
    70     }
    64 
    71 
    65     if (eoe->rx_state == EC_EOE_FETCHING) {
    72     if (eoe->rx_state == EC_EOE_FETCHING) {
    66         EC_DBG("EOE fetching\n");
       
    67         if (eoe->slave->mbox_command.state != EC_CMD_RECEIVED) {
    73         if (eoe->slave->mbox_command.state != EC_CMD_RECEIVED) {
    68             master->stats.eoe_errors++;
    74             master->stats.eoe_errors++;
    69             eoe->rx_state = EC_EOE_IDLE;
    75             eoe->rx_state = EC_EOE_IDLE;
    70             return;
    76             return;
    71         }
    77         }
    72         if (!(data = ec_slave_mbox_fetch(eoe->slave, 0x02, &rec_size))) {
    78         if (!(data = ec_slave_mbox_fetch(eoe->slave, 0x02, &rec_size))) {
    73             master->stats.eoe_errors++;
    79             master->stats.eoe_errors++;
    74             eoe->rx_state = EC_EOE_IDLE;
    80             eoe->rx_state = EC_EOE_IDLE;
    75             return;
    81             return;
    76         }
    82         }
    77         EC_DBG("EOE received: %i\n", rec_size);
    83 
       
    84 #if 0
       
    85         fragment_number = EC_READ_U16(data + 2) & 0x003F;
       
    86         complete_size = (EC_READ_U16(data + 2) >> 6) & 0x003F;
       
    87         frame_number = (EC_READ_U16(data + 2) >> 12) & 0x0003;
       
    88         last_fragment = (EC_READ_U16(data + 2) >> 15) & 0x0001;
       
    89 
       
    90         EC_DBG("EOE %s received, fragment: %i, complete size: %i (0x%02X),"
       
    91                " frame %i%s\n",
       
    92                fragment_number ? "fragment" : "initiate", fragment_number,
       
    93                (complete_size - 31) / 32, complete_size, frame_number,
       
    94                last_fragment ? ", last fragment" : "");
       
    95         EC_DBG("");
       
    96         for (i = 0; i < rec_size - 2; i++) {
       
    97             printk("%02X ", data[i + 2]);
       
    98             if ((i + 1) % 16 == 0) {
       
    99                 printk("\n");
       
   100                 EC_DBG("");
       
   101             }
       
   102         }
       
   103         printk("\n");
       
   104 #endif
       
   105 
    78         eoe->rx_state = EC_EOE_IDLE;
   106         eoe->rx_state = EC_EOE_IDLE;
    79         return;
   107         return;
    80     }
   108     }
    81 }
   109 }
    82 
   110