X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=UDI%2Fdrivers%2Fnet_ne2000%2Fne2000_core.c;h=2e44db1879c6147214322acb924ebd03e1fcbb4f;hb=3fadd995d8e8c0d266f577c69999619445f0100c;hp=d6f0b97f61c14fa14b6ed3e6145e325b89978f05;hpb=5768f804e189e78b8993602aa835524b459414be;p=tpg%2Facess2.git diff --git a/UDI/drivers/net_ne2000/ne2000_core.c b/UDI/drivers/net_ne2000/ne2000_core.c index d6f0b97f..2e44db18 100644 --- a/UDI/drivers/net_ne2000/ne2000_core.c +++ b/UDI/drivers/net_ne2000/ne2000_core.c @@ -36,6 +36,10 @@ enum { // --- Management void ne2k_usage_ind(udi_usage_cb_t *cb, udi_ubit8_t resource_level) { + ne2k_rdata_t *rdata = UDI_GCB(cb)->context; + + rdata->rx_next_page = NE2K_RX_FIRST_PG; + udi_usage_res(cb); } void ne2k_enumerate_req(udi_enumerate_cb_t *cb, udi_ubit8_t enumeration_level) @@ -245,7 +249,14 @@ void ne2k_nd_ctrl_unbind_req(udi_nic_cb_t *cb) } void ne2k_nd_ctrl_enable_req(udi_nic_cb_t *cb) { - // Enable + udi_cb_t *gcb = UDI_GCB(cb); + ne2k_rdata_t *rdata = gcb->context; + udi_pio_trans(ne2k_nd_ctrl_enable_req__trans_done, gcb, + rdata->pio_handles[NE2K_PIO_ENABLE], 0, NULL, NULL); +} +void ne2k_nd_ctrl_enable_req__trans_done(udi_cb_t *gcb, udi_buf_t *new_buf, udi_status_t status, udi_ubit16_t res) +{ + udi_nsr_enable_ack( UDI_MCB(gcb, udi_nic_cb_t), status ); } void ne2k_nd_ctrl_disable_req(udi_nic_cb_t *cb) { @@ -262,10 +273,16 @@ void ne2k_bus_irq_channel_event_ind(udi_channel_event_cb_t *cb) } void ne2k_bus_irq_intr_event_ind(udi_intr_event_cb_t *cb, udi_ubit8_t flags) { + udi_debug_printf("ne2k_bus_irq_intr_event_ind: flags=%x, intr_result=%x\n", + flags, cb->intr_result); if( cb->intr_result & 0x01 ) { ne2k_intr__rx_ok( UDI_GCB(cb) ); } + if( cb->intr_result & 0x40 ) + { + // ne2k_intr__rdma( UDI_GCB(cb) ); + } // TODO: TX IRQs udi_intr_event_rdy(cb); }