Lines Matching refs:vio
76 ldc_disconnect(port->vio.lp); in vnet_handle_unknown()
83 static int vnet_send_attr(struct vio_driver_state *vio) in vnet_send_attr() argument
85 struct vnet_port *port = to_vnet_port(vio); in vnet_send_attr()
91 err = vnet_port_alloc_tx_ring(to_vnet_port(vio)); in vnet_send_attr()
99 pkt.tag.sid = vio_send_sid(vio); in vnet_send_attr()
100 if (vio_version_before(vio, 1, 2)) in vnet_send_attr()
108 if (vio_version_after(vio, 1, 3)) { in vnet_send_attr()
116 if (vio_version_after_eq(vio, 1, 6)) in vnet_send_attr()
118 } else if (vio_version_before(vio, 1, 3)) { in vnet_send_attr()
125 if (vio_version_after_eq(vio, 1, 7) && port->tso) { in vnet_send_attr()
143 return vio_ldc_send(vio, &pkt, sizeof(pkt)); in vnet_send_attr()
146 static int handle_attr_info(struct vio_driver_state *vio, in handle_attr_info() argument
149 struct vnet_port *port = to_vnet_port(vio); in handle_attr_info()
162 pkt->tag.sid = vio_send_sid(vio); in handle_attr_info()
166 if (vio_version_before(vio, 1, 2) && xfer_mode == VIO_DRING_MODE) in handle_attr_info()
175 if (vio_version_before(vio, 1, 3)) { in handle_attr_info()
177 } else if (vio_version_after(vio, 1, 3)) { in handle_attr_info()
187 if (vio_version_after_eq(vio, 1, 7)) in handle_attr_info()
207 if (vio_version_after_eq(vio, 1, 6)) { in handle_attr_info()
219 (void) vio_ldc_send(vio, pkt, sizeof(*pkt)); in handle_attr_info()
234 return vio_ldc_send(vio, pkt, sizeof(*pkt)); in handle_attr_info()
239 static int handle_attr_ack(struct vio_driver_state *vio, in handle_attr_ack() argument
247 static int handle_attr_nack(struct vio_driver_state *vio, in handle_attr_nack() argument
255 static int vnet_handle_attr(struct vio_driver_state *vio, void *arg) in vnet_handle_attr() argument
261 return handle_attr_info(vio, pkt); in vnet_handle_attr()
264 return handle_attr_ack(vio, pkt); in vnet_handle_attr()
267 return handle_attr_nack(vio, pkt); in vnet_handle_attr()
274 static void vnet_handshake_complete(struct vio_driver_state *vio) in vnet_handshake_complete() argument
278 dr = &vio->drings[VIO_DRIVER_RX_RING]; in vnet_handshake_complete()
281 dr = &vio->drings[VIO_DRIVER_TX_RING]; in vnet_handshake_complete()
377 err = ldc_copy(port->vio.lp, LDC_COPY_IN, in vnet_rx_one()
389 if (vio_version_after_eq(&port->vio, 1, 8)) { in vnet_rx_one()
434 .sid = vio_send_sid(&port->vio), in vnet_send_ack()
447 err = vio_ldc_send(&port->vio, &hdr, sizeof(hdr)); in vnet_send_ack()
479 struct vio_net_desc *desc = port->vio.desc_buf; in get_rx_desc()
482 err = ldc_get_dring_entry(port->vio.lp, desc, dr->entry_size, in get_rx_desc()
498 err = ldc_put_dring_entry(port->vio.lp, desc, dr->entry_size, in put_rx_desc()
512 struct vio_driver_state *vio = &port->vio; in vnet_walk_rx_one() local
544 struct vio_driver_state *vio = &port->vio; in vnet_walk_rx() local
593 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_RX_RING]; in vnet_rx()
594 struct vio_driver_state *vio = &port->vio; in vnet_rx() local
633 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in vnet_ack()
714 dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in maybe_tx_wakeup()
722 struct vio_driver_state *vio = &vnet->vio; in port_is_up() local
724 return !!(vio->hs_state & VIO_HS_COMPLETE); in port_is_up()
729 struct vio_driver_state *vio = &port->vio; in vnet_event_napi() local
737 vio_link_state_change(vio, event); in vnet_event_napi()
741 vio_port_up(vio); in vnet_event_napi()
769 &port->vio.drings[VIO_DRIVER_RX_RING]; in vnet_event_napi()
779 err = ldc_read(vio->lp, &msgbuf, sizeof(msgbuf)); in vnet_event_napi()
782 vio_conn_reset(vio); in vnet_event_napi()
792 err = vio_validate_sid(vio, &msgbuf.tag); in vnet_event_napi()
822 err = vio_control_pkt_engine(vio, &msgbuf); in vnet_event_napi()
839 struct vio_driver_state *vio = &port->vio; in vnet_poll() local
845 vio_set_intr(vio->vdev->rx_ino, HV_INTR_ENABLED); in vnet_poll()
853 struct vio_driver_state *vio = &port->vio; in vnet_event() local
856 vio_set_intr(vio->vdev->rx_ino, HV_INTR_DISABLED); in vnet_event()
863 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in __vnet_tx_trigger()
869 .sid = vio_send_sid(&port->vio), in __vnet_tx_trigger()
880 &port->vio.drings[VIO_DRIVER_RX_RING], in __vnet_tx_trigger()
890 err = vio_ldc_send(&port->vio, &hdr, sizeof(hdr)); in __vnet_tx_trigger()
930 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in vnet_clean_tx_ring()
960 ldc_unmap(port->vio.lp, in vnet_clean_tx_ring()
1150 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in vnet_handle_offloads()
1276 if (vio_version_after_eq(&port->vio, 1, 3)) in vnet_start_xmit()
1313 dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in vnet_start_xmit()
1340 err = vnet_skb_map(port->vio.lp, skb, port->tx_bufs[txi].cookies, 2, in vnet_start_xmit()
1364 if (vio_version_after_eq(&port->vio, 1, 7)) { in vnet_start_xmit()
1373 if (vio_version_after_eq(&port->vio, 1, 8) && in vnet_start_xmit()
1524 info.tag.sid = vio_send_sid(&port->vio); in __send_mc_list()
1537 (void) vio_ldc_send(&port->vio, &info, in __send_mc_list()
1544 (void) vio_ldc_send(&port->vio, &info, sizeof(info)); in __send_mc_list()
1562 (void) vio_ldc_send(&port->vio, &info, in __send_mc_list()
1572 (void) vio_ldc_send(&port->vio, &info, sizeof(info)); in __send_mc_list()
1638 dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in vnet_port_free_tx_bufs()
1652 ldc_unmap(port->vio.lp, in vnet_port_free_tx_bufs()
1659 ldc_free_exp_dring(port->vio.lp, dr->base, in vnet_port_free_tx_bufs()
1685 dr = &port->vio.drings[VIO_DRIVER_TX_RING]; in vnet_port_alloc_tx_ring()
1689 if (vio_version_after_eq(&port->vio, 1, 7)) in vnet_port_alloc_tx_ring()
1694 dring = ldc_alloc_exp_dring(port->vio.lp, len, in vnet_port_alloc_tx_ring()
1950 err = vio_driver_init(&port->vio, vdev, VDEV_NETWORK, in vnet_port_probe()
1956 err = vio_ldc_alloc(&port->vio, &vnet_ldc_cfg, port); in vnet_port_probe()
1991 vio_port_up(&port->vio); in vnet_port_probe()
2011 del_timer_sync(&port->vio.timer); in vnet_port_remove()
2023 vio_ldc_free(&port->vio); in vnet_port_remove()
2039 MODULE_DEVICE_TABLE(vio, vnet_port_match);