arch/sparc/include/asm/vio.h
379
int (*send_attr)(struct vio_driver_state *vio);
arch/sparc/include/asm/vio.h
380
int (*handle_attr)(struct vio_driver_state *vio, void *pkt);
arch/sparc/include/asm/vio.h
381
void (*handshake_complete)(struct vio_driver_state *vio);
arch/sparc/include/asm/vio.h
444
static inline bool vio_version_before(struct vio_driver_state *vio,
arch/sparc/include/asm/vio.h
447
u32 have = (u32)vio->ver.major << 16 | vio->ver.minor;
arch/sparc/include/asm/vio.h
453
static inline bool vio_version_after(struct vio_driver_state *vio,
arch/sparc/include/asm/vio.h
456
u32 have = (u32)vio->ver.major << 16 | vio->ver.minor;
arch/sparc/include/asm/vio.h
462
static inline bool vio_version_after_eq(struct vio_driver_state *vio,
arch/sparc/include/asm/vio.h
465
u32 have = (u32)vio->ver.major << 16 | vio->ver.minor;
arch/sparc/include/asm/vio.h
472
do { if (vio->debug & VIO_DEBUG_##TYPE) \
arch/sparc/include/asm/vio.h
474
vio->vdev->channel_id, ## a); \
arch/sparc/include/asm/vio.h
489
int vio_ldc_send(struct vio_driver_state *vio, void *data, int len);
arch/sparc/include/asm/vio.h
490
void vio_link_state_change(struct vio_driver_state *vio, int event);
arch/sparc/include/asm/vio.h
491
void vio_conn_reset(struct vio_driver_state *vio);
arch/sparc/include/asm/vio.h
492
int vio_control_pkt_engine(struct vio_driver_state *vio, void *pkt);
arch/sparc/include/asm/vio.h
493
int vio_validate_sid(struct vio_driver_state *vio,
arch/sparc/include/asm/vio.h
495
u32 vio_send_sid(struct vio_driver_state *vio);
arch/sparc/include/asm/vio.h
496
int vio_ldc_alloc(struct vio_driver_state *vio,
arch/sparc/include/asm/vio.h
498
void vio_ldc_free(struct vio_driver_state *vio);
arch/sparc/include/asm/vio.h
499
int vio_driver_init(struct vio_driver_state *vio, struct vio_dev *vdev,
arch/sparc/include/asm/vio.h
504
void vio_port_up(struct vio_driver_state *vio);
arch/sparc/kernel/viohs.c
101
void vio_link_state_change(struct vio_driver_state *vio, int event)
arch/sparc/kernel/viohs.c
104
vio->hs_state = VIO_HS_INVALID;
arch/sparc/kernel/viohs.c
106
switch (vio->dev_class) {
arch/sparc/kernel/viohs.c
109
vio->dr_state = (VIO_DR_STATE_TXREQ |
arch/sparc/kernel/viohs.c
114
vio->dr_state = VIO_DR_STATE_TXREQ;
arch/sparc/kernel/viohs.c
117
vio->dr_state = VIO_DR_STATE_RXREQ;
arch/sparc/kernel/viohs.c
120
start_handshake(vio);
arch/sparc/kernel/viohs.c
122
vio->hs_state = VIO_HS_INVALID;
arch/sparc/kernel/viohs.c
124
if (vio->dr_state & VIO_DR_STATE_RXREG)
arch/sparc/kernel/viohs.c
125
flush_rx_dring(vio);
arch/sparc/kernel/viohs.c
127
vio->dr_state = 0x00;
arch/sparc/kernel/viohs.c
128
memset(&vio->ver, 0, sizeof(vio->ver));
arch/sparc/kernel/viohs.c
130
ldc_disconnect(vio->lp);
arch/sparc/kernel/viohs.c
135
static int handshake_failure(struct vio_driver_state *vio)
arch/sparc/kernel/viohs.c
146
vio->dr_state &= ~(VIO_DR_STATE_TXREG |
arch/sparc/kernel/viohs.c
149
dr = &vio->drings[VIO_DRIVER_RX_RING];
arch/sparc/kernel/viohs.c
152
kfree(vio->desc_buf);
arch/sparc/kernel/viohs.c
153
vio->desc_buf = NULL;
arch/sparc/kernel/viohs.c
154
vio->desc_buf_len = 0;
arch/sparc/kernel/viohs.c
156
vio->hs_state = VIO_HS_INVALID;
arch/sparc/kernel/viohs.c
161
static int process_unknown(struct vio_driver_state *vio, void *arg)
arch/sparc/kernel/viohs.c
169
vio->vdev->channel_id);
arch/sparc/kernel/viohs.c
171
ldc_disconnect(vio->lp);
arch/sparc/kernel/viohs.c
176
static int send_dreg(struct vio_driver_state *vio)
arch/sparc/kernel/viohs.c
178
struct vio_dring_state *dr = &vio->drings[VIO_DRIVER_TX_RING];
arch/sparc/kernel/viohs.c
18
int vio_ldc_send(struct vio_driver_state *vio, void *data, int len)
arch/sparc/kernel/viohs.c
215
return send_ctrl(vio, &u.pkt.tag, bytes);
arch/sparc/kernel/viohs.c
218
static int send_rdx(struct vio_driver_state *vio)
arch/sparc/kernel/viohs.c
228
return send_ctrl(vio, &pkt.tag, sizeof(pkt));
arch/sparc/kernel/viohs.c
231
static int send_attr(struct vio_driver_state *vio)
arch/sparc/kernel/viohs.c
233
if (!vio->ops)
arch/sparc/kernel/viohs.c
236
return vio->ops->send_attr(vio);
arch/sparc/kernel/viohs.c
239
static struct vio_version *find_by_major(struct vio_driver_state *vio,
arch/sparc/kernel/viohs.c
24
err = ldc_write(vio->lp, data, len);
arch/sparc/kernel/viohs.c
245
for (i = 0; i < vio->ver_table_entries; i++) {
arch/sparc/kernel/viohs.c
246
struct vio_version *v = &vio->ver_table[i];
arch/sparc/kernel/viohs.c
255
static int process_ver_info(struct vio_driver_state *vio,
arch/sparc/kernel/viohs.c
264
if (vio->hs_state != VIO_HS_INVALID) {
arch/sparc/kernel/viohs.c
266
memset(&vio->ver, 0, sizeof(vio->ver));
arch/sparc/kernel/viohs.c
267
vio->hs_state = VIO_HS_INVALID;
arch/sparc/kernel/viohs.c
270
vap = find_by_major(vio, pkt->major);
arch/sparc/kernel/viohs.c
272
vio->_peer_sid = pkt->tag.sid;
arch/sparc/kernel/viohs.c
279
err = send_ctrl(vio, &pkt->tag, sizeof(*pkt));
arch/sparc/kernel/viohs.c
286
err = send_ctrl(vio, &pkt->tag, sizeof(*pkt));
arch/sparc/kernel/viohs.c
296
pkt->dev_class = vio->dev_class;
arch/sparc/kernel/viohs.c
299
err = send_ctrl(vio, &pkt->tag, sizeof(*pkt));
arch/sparc/kernel/viohs.c
301
vio->ver = ver;
arch/sparc/kernel/viohs.c
302
vio->hs_state = VIO_HS_GOTVERS;
arch/sparc/kernel/viohs.c
306
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
311
static int process_ver_ack(struct vio_driver_state *vio,
arch/sparc/kernel/viohs.c
317
if (vio->hs_state & VIO_HS_GOTVERS) {
arch/sparc/kernel/viohs.c
318
if (vio->ver.major != pkt->major ||
arch/sparc/kernel/viohs.c
319
vio->ver.minor != pkt->minor) {
arch/sparc/kernel/viohs.c
321
(void) send_ctrl(vio, &pkt->tag, sizeof(*pkt));
arch/sparc/kernel/viohs.c
322
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
325
vio->ver.major = pkt->major;
arch/sparc/kernel/viohs.c
326
vio->ver.minor = pkt->minor;
arch/sparc/kernel/viohs.c
327
vio->hs_state = VIO_HS_GOTVERS;
arch/sparc/kernel/viohs.c
330
switch (vio->dev_class) {
arch/sparc/kernel/viohs.c
333
if (send_attr(vio) < 0)
arch/sparc/kernel/viohs.c
334
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
34
static int send_ctrl(struct vio_driver_state *vio,
arch/sparc/kernel/viohs.c
344
static int process_ver_nack(struct vio_driver_state *vio,
arch/sparc/kernel/viohs.c
353
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
354
nver = find_by_major(vio, pkt->major);
arch/sparc/kernel/viohs.c
356
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
358
if (send_version(vio, nver->major, nver->minor) < 0)
arch/sparc/kernel/viohs.c
359
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
364
static int process_ver(struct vio_driver_state *vio, struct vio_ver_info *pkt)
arch/sparc/kernel/viohs.c
368
return process_ver_info(vio, pkt);
arch/sparc/kernel/viohs.c
37
tag->sid = vio_send_sid(vio);
arch/sparc/kernel/viohs.c
371
return process_ver_ack(vio, pkt);
arch/sparc/kernel/viohs.c
374
return process_ver_nack(vio, pkt);
arch/sparc/kernel/viohs.c
377
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
38
return vio_ldc_send(vio, tag, len);
arch/sparc/kernel/viohs.c
381
static int process_attr(struct vio_driver_state *vio, void *pkt)
arch/sparc/kernel/viohs.c
385
if (!(vio->hs_state & VIO_HS_GOTVERS))
arch/sparc/kernel/viohs.c
386
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
388
if (!vio->ops)
arch/sparc/kernel/viohs.c
391
err = vio->ops->handle_attr(vio, pkt);
arch/sparc/kernel/viohs.c
393
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
395
vio->hs_state |= VIO_HS_GOT_ATTR;
arch/sparc/kernel/viohs.c
397
if ((vio->dr_state & VIO_DR_STATE_TXREQ) &&
arch/sparc/kernel/viohs.c
398
!(vio->hs_state & VIO_HS_SENT_DREG)) {
arch/sparc/kernel/viohs.c
399
if (send_dreg(vio) < 0)
arch/sparc/kernel/viohs.c
400
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
402
vio->hs_state |= VIO_HS_SENT_DREG;
arch/sparc/kernel/viohs.c
409
static int all_drings_registered(struct vio_driver_state *vio)
arch/sparc/kernel/viohs.c
413
need_rx = (vio->dr_state & VIO_DR_STATE_RXREQ);
arch/sparc/kernel/viohs.c
414
need_tx = (vio->dr_state & VIO_DR_STATE_TXREQ);
arch/sparc/kernel/viohs.c
417
!(vio->dr_state & VIO_DR_STATE_RXREG))
arch/sparc/kernel/viohs.c
421
!(vio->dr_state & VIO_DR_STATE_TXREG))
arch/sparc/kernel/viohs.c
427
static int process_dreg_info(struct vio_driver_state *vio,
arch/sparc/kernel/viohs.c
439
if (!(vio->dr_state & VIO_DR_STATE_RXREQ))
arch/sparc/kernel/viohs.c
442
if (vio->dr_state & VIO_DR_STATE_RXREG)
arch/sparc/kernel/viohs.c
446
if (vio_version_after_eq(vio, 1, 6)) {
arch/sparc/kernel/viohs.c
452
BUG_ON(vio->desc_buf);
arch/sparc/kernel/viohs.c
454
vio->desc_buf = kzalloc(pkt->descr_size, GFP_ATOMIC);
arch/sparc/kernel/viohs.c
455
if (!vio->desc_buf)
arch/sparc/kernel/viohs.c
458
vio->desc_buf_len = pkt->descr_size;
arch/sparc/kernel/viohs.c
460
dr = &vio->drings[VIO_DRIVER_RX_RING];
arch/sparc/kernel/viohs.c
48
static int send_version(struct vio_driver_state *vio, u16 major, u16 minor)
arch/sparc/kernel/viohs.c
485
if (send_ctrl(vio, &pkt->tag, struct_size(pkt, cookies, dr->ncookies)) < 0)
arch/sparc/kernel/viohs.c
488
vio->dr_state |= VIO_DR_STATE_RXREG;
arch/sparc/kernel/viohs.c
495
(void) send_ctrl(vio, &pkt->tag, sizeof(*pkt));
arch/sparc/kernel/viohs.c
497
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
500
static int process_dreg_ack(struct vio_driver_state *vio,
arch/sparc/kernel/viohs.c
511
dr = &vio->drings[VIO_DRIVER_TX_RING];
arch/sparc/kernel/viohs.c
513
if (!(vio->dr_state & VIO_DR_STATE_TXREQ))
arch/sparc/kernel/viohs.c
514
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
517
vio->dr_state |= VIO_DR_STATE_TXREG;
arch/sparc/kernel/viohs.c
519
if (all_drings_registered(vio)) {
arch/sparc/kernel/viohs.c
52
vio->_local_sid = (u32) sched_clock();
arch/sparc/kernel/viohs.c
520
if (send_rdx(vio) < 0)
arch/sparc/kernel/viohs.c
521
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
522
vio->hs_state = VIO_HS_SENT_RDX;
arch/sparc/kernel/viohs.c
527
static int process_dreg_nack(struct vio_driver_state *vio,
arch/sparc/kernel/viohs.c
536
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
539
static int process_dreg(struct vio_driver_state *vio,
arch/sparc/kernel/viohs.c
542
if (!(vio->hs_state & VIO_HS_GOTVERS))
arch/sparc/kernel/viohs.c
543
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
547
return process_dreg_info(vio, pkt);
arch/sparc/kernel/viohs.c
550
return process_dreg_ack(vio, pkt);
arch/sparc/kernel/viohs.c
553
return process_dreg_nack(vio, pkt);
arch/sparc/kernel/viohs.c
556
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
560
static int process_dunreg(struct vio_driver_state *vio,
arch/sparc/kernel/viohs.c
563
struct vio_dring_state *dr = &vio->drings[VIO_DRIVER_RX_RING];
arch/sparc/kernel/viohs.c
570
vio->dr_state &= ~VIO_DR_STATE_RXREG;
arch/sparc/kernel/viohs.c
574
kfree(vio->desc_buf);
arch/sparc/kernel/viohs.c
575
vio->desc_buf = NULL;
arch/sparc/kernel/viohs.c
576
vio->desc_buf_len = 0;
arch/sparc/kernel/viohs.c
58
pkt.dev_class = vio->dev_class;
arch/sparc/kernel/viohs.c
581
static int process_rdx_info(struct vio_driver_state *vio, struct vio_rdx *pkt)
arch/sparc/kernel/viohs.c
587
if (send_ctrl(vio, &pkt->tag, sizeof(*pkt)) < 0)
arch/sparc/kernel/viohs.c
588
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
590
vio->hs_state |= VIO_HS_SENT_RDX_ACK;
arch/sparc/kernel/viohs.c
594
static int process_rdx_ack(struct vio_driver_state *vio, struct vio_rdx *pkt)
arch/sparc/kernel/viohs.c
598
if (!(vio->hs_state & VIO_HS_SENT_RDX))
arch/sparc/kernel/viohs.c
599
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
601
vio->hs_state |= VIO_HS_GOT_RDX_ACK;
arch/sparc/kernel/viohs.c
605
static int process_rdx_nack(struct vio_driver_state *vio, struct vio_rdx *pkt)
arch/sparc/kernel/viohs.c
609
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
61
major, minor, vio->dev_class);
arch/sparc/kernel/viohs.c
612
static int process_rdx(struct vio_driver_state *vio, struct vio_rdx *pkt)
arch/sparc/kernel/viohs.c
614
if (!all_drings_registered(vio))
arch/sparc/kernel/viohs.c
615
handshake_failure(vio);
arch/sparc/kernel/viohs.c
619
return process_rdx_info(vio, pkt);
arch/sparc/kernel/viohs.c
622
return process_rdx_ack(vio, pkt);
arch/sparc/kernel/viohs.c
625
return process_rdx_nack(vio, pkt);
arch/sparc/kernel/viohs.c
628
return handshake_failure(vio);
arch/sparc/kernel/viohs.c
63
return send_ctrl(vio, &pkt.tag, sizeof(pkt));
arch/sparc/kernel/viohs.c
632
int vio_control_pkt_engine(struct vio_driver_state *vio, void *pkt)
arch/sparc/kernel/viohs.c
635
u8 prev_state = vio->hs_state;
arch/sparc/kernel/viohs.c
640
err = process_ver(vio, pkt);
arch/sparc/kernel/viohs.c
644
err = process_attr(vio, pkt);
arch/sparc/kernel/viohs.c
648
err = process_dreg(vio, pkt);
arch/sparc/kernel/viohs.c
652
err = process_dunreg(vio, pkt);
arch/sparc/kernel/viohs.c
656
err = process_rdx(vio, pkt);
arch/sparc/kernel/viohs.c
66
static int start_handshake(struct vio_driver_state *vio)
arch/sparc/kernel/viohs.c
660
err = process_unknown(vio, pkt);
arch/sparc/kernel/viohs.c
665
vio->hs_state != prev_state &&
arch/sparc/kernel/viohs.c
666
(vio->hs_state & VIO_HS_COMPLETE)) {
arch/sparc/kernel/viohs.c
667
if (vio->ops)
arch/sparc/kernel/viohs.c
668
vio->ops->handshake_complete(vio);
arch/sparc/kernel/viohs.c
675
void vio_conn_reset(struct vio_driver_state *vio)
arch/sparc/kernel/viohs.c
685
int vio_validate_sid(struct vio_driver_state *vio, struct vio_msg_tag *tp)
arch/sparc/kernel/viohs.c
698
switch (vio->dev_class) {
arch/sparc/kernel/viohs.c
703
sid = vio->_peer_sid;
arch/sparc/kernel/viohs.c
707
sid = vio->_local_sid;
arch/sparc/kernel/viohs.c
714
tp->sid, vio->_peer_sid, vio->_local_sid);
arch/sparc/kernel/viohs.c
719
u32 vio_send_sid(struct vio_driver_state *vio)
arch/sparc/kernel/viohs.c
72
vio->hs_state = VIO_HS_INVALID;
arch/sparc/kernel/viohs.c
721
switch (vio->dev_class) {
arch/sparc/kernel/viohs.c
726
return vio->_local_sid;
arch/sparc/kernel/viohs.c
729
return vio->_peer_sid;
arch/sparc/kernel/viohs.c
734
int vio_ldc_alloc(struct vio_driver_state *vio,
arch/sparc/kernel/viohs.c
74
err = send_version(vio,
arch/sparc/kernel/viohs.c
741
cfg.tx_irq = vio->vdev->tx_irq;
arch/sparc/kernel/viohs.c
742
cfg.rx_irq = vio->vdev->rx_irq;
arch/sparc/kernel/viohs.c
744
lp = ldc_alloc(vio->vdev->channel_id, &cfg, event_arg, vio->name);
arch/sparc/kernel/viohs.c
748
vio->lp = lp;
arch/sparc/kernel/viohs.c
75
vio->ver_table[0].major,
arch/sparc/kernel/viohs.c
754
void vio_ldc_free(struct vio_driver_state *vio)
arch/sparc/kernel/viohs.c
756
ldc_free(vio->lp);
arch/sparc/kernel/viohs.c
757
vio->lp = NULL;
arch/sparc/kernel/viohs.c
759
kfree(vio->desc_buf);
arch/sparc/kernel/viohs.c
76
vio->ver_table[0].minor);
arch/sparc/kernel/viohs.c
760
vio->desc_buf = NULL;
arch/sparc/kernel/viohs.c
761
vio->desc_buf_len = 0;
arch/sparc/kernel/viohs.c
765
void vio_port_up(struct vio_driver_state *vio)
arch/sparc/kernel/viohs.c
770
spin_lock_irqsave(&vio->lock, flags);
arch/sparc/kernel/viohs.c
772
state = ldc_state(vio->lp);
arch/sparc/kernel/viohs.c
776
err = ldc_bind(vio->lp);
arch/sparc/kernel/viohs.c
780
vio->name, vio->vdev->channel_id, err);
arch/sparc/kernel/viohs.c
784
if (ldc_mode(vio->lp) == LDC_MODE_RAW)
arch/sparc/kernel/viohs.c
785
ldc_set_state(vio->lp, LDC_STATE_CONNECTED);
arch/sparc/kernel/viohs.c
787
err = ldc_connect(vio->lp);
arch/sparc/kernel/viohs.c
792
vio->name, vio->vdev->channel_id, err);
arch/sparc/kernel/viohs.c
798
mod_timer(&vio->timer, expires);
arch/sparc/kernel/viohs.c
801
spin_unlock_irqrestore(&vio->lock, flags);
arch/sparc/kernel/viohs.c
807
struct vio_driver_state *vio = timer_container_of(vio, t, timer);
arch/sparc/kernel/viohs.c
809
vio_port_up(vio);
arch/sparc/kernel/viohs.c
812
int vio_driver_init(struct vio_driver_state *vio, struct vio_dev *vdev,
arch/sparc/kernel/viohs.c
83
static void flush_rx_dring(struct vio_driver_state *vio)
arch/sparc/kernel/viohs.c
844
spin_lock_init(&vio->lock);
arch/sparc/kernel/viohs.c
846
vio->name = name;
arch/sparc/kernel/viohs.c
848
vio->dev_class = dev_class;
arch/sparc/kernel/viohs.c
849
vio->vdev = vdev;
arch/sparc/kernel/viohs.c
851
vio->ver_table = ver_table;
arch/sparc/kernel/viohs.c
852
vio->ver_table_entries = ver_table_size;
arch/sparc/kernel/viohs.c
854
vio->ops = ops;
arch/sparc/kernel/viohs.c
856
timer_setup(&vio->timer, vio_port_timer, 0);
arch/sparc/kernel/viohs.c
88
BUG_ON(!(vio->dr_state & VIO_DR_STATE_RXREG));
arch/sparc/kernel/viohs.c
90
dr = &vio->drings[VIO_DRIVER_RX_RING];
arch/sparc/kernel/viohs.c
93
BUG_ON(!vio->desc_buf);
arch/sparc/kernel/viohs.c
94
kfree(vio->desc_buf);
arch/sparc/kernel/viohs.c
95
vio->desc_buf = NULL;
drivers/block/sunvdc.c
1020
err = vio_driver_init(&port->vio, vdev, VDEV_DISK,
drivers/block/sunvdc.c
1030
err = vio_ldc_alloc(&port->vio, &vdc_ldc_cfg, port);
drivers/block/sunvdc.c
1055
vio_ldc_free(&port->vio);
drivers/block/sunvdc.c
1074
timer_delete_sync(&port->vio.timer);
drivers/block/sunvdc.c
1081
vio_ldc_free(&port->vio);
drivers/block/sunvdc.c
1091
struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
drivers/block/sunvdc.c
1099
ldc_unmap(port->vio.lp, desc->cookies, desc->ncookies);
drivers/block/sunvdc.c
110
return port->vio.ver.major == major && port->vio.ver.minor >= minor;
drivers/block/sunvdc.c
1124
spin_unlock_irq(&port->vio.lock);
drivers/block/sunvdc.c
1129
spin_lock_irq(&port->vio.lock);
drivers/block/sunvdc.c
1138
struct vio_driver_state *vio;
drivers/block/sunvdc.c
1141
vio = &port->vio;
drivers/block/sunvdc.c
1143
spin_lock_irq(&vio->lock);
drivers/block/sunvdc.c
1144
if (!(port->vio.hs_state & VIO_HS_COMPLETE)) {
drivers/block/sunvdc.c
1150
spin_unlock_irq(&vio->lock);
drivers/block/sunvdc.c
1156
struct vio_driver_state *vio;
drivers/block/sunvdc.c
1160
vio = &port->vio;
drivers/block/sunvdc.c
1162
spin_lock_irqsave(&vio->lock, flags);
drivers/block/sunvdc.c
1164
spin_unlock_irqrestore(&vio->lock, flags);
drivers/block/sunvdc.c
1171
assert_spin_locked(&port->vio.lock);
drivers/block/sunvdc.c
1178
err = vio_ldc_alloc(&port->vio, &vdc_ldc_cfg, port);
drivers/block/sunvdc.c
1193
mod_timer(&port->vio.timer, round_jiffies(jiffies + HZ));
drivers/block/sunvdc.c
1197
vio_ldc_free(&port->vio);
drivers/block/sunvdc.c
1206
MODULE_DEVICE_TABLE(vio, vdc_port_match);
drivers/block/sunvdc.c
180
struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
drivers/block/sunvdc.c
190
static void vdc_finish(struct vio_driver_state *vio, int err, int waiting_for)
drivers/block/sunvdc.c
192
if (vio->cmp &&
drivers/block/sunvdc.c
194
vio->cmp->waiting_for == waiting_for)) {
drivers/block/sunvdc.c
195
vio->cmp->err = err;
drivers/block/sunvdc.c
196
complete(&vio->cmp->com);
drivers/block/sunvdc.c
197
vio->cmp = NULL;
drivers/block/sunvdc.c
201
static void vdc_handshake_complete(struct vio_driver_state *vio)
drivers/block/sunvdc.c
203
struct vdc_port *port = to_vdc_port(vio);
drivers/block/sunvdc.c
206
vdc_finish(vio, 0, WAITING_FOR_LINK_UP);
drivers/block/sunvdc.c
218
ldc_disconnect(port->vio.lp);
drivers/block/sunvdc.c
223
static int vdc_send_attr(struct vio_driver_state *vio)
drivers/block/sunvdc.c
225
struct vdc_port *port = to_vdc_port(vio);
drivers/block/sunvdc.c
233
pkt.tag.sid = vio_send_sid(vio);
drivers/block/sunvdc.c
242
return vio_ldc_send(&port->vio, &pkt, sizeof(pkt));
drivers/block/sunvdc.c
245
static int vdc_handle_attr(struct vio_driver_state *vio, void *arg)
drivers/block/sunvdc.c
247
struct vdc_port *port = to_vdc_port(vio);
drivers/block/sunvdc.c
265
vio->name, pkt->vdisk_type);
drivers/block/sunvdc.c
272
vio->name,
drivers/block/sunvdc.c
293
printk(KERN_ERR PFX "%s: Attribute NACK\n", vio->name);
drivers/block/sunvdc.c
303
vdc_finish(&port->vio, -err, WAITING_FOR_GEN_CMD);
drivers/block/sunvdc.c
316
ldc_unmap(port->vio.lp, desc->cookies, desc->ncookies);
drivers/block/sunvdc.c
335
struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
drivers/block/sunvdc.c
357
struct vio_driver_state *vio = &port->vio;
drivers/block/sunvdc.c
361
spin_lock_irqsave(&vio->lock, flags);
drivers/block/sunvdc.c
364
vio_link_state_change(vio, event);
drivers/block/sunvdc.c
370
vio_link_state_change(vio, event);
drivers/block/sunvdc.c
386
err = ldc_read(vio->lp, &msgbuf, sizeof(msgbuf));
drivers/block/sunvdc.c
389
vio_conn_reset(vio);
drivers/block/sunvdc.c
399
err = vio_validate_sid(vio, &msgbuf.tag);
drivers/block/sunvdc.c
411
err = vio_control_pkt_engine(vio, &msgbuf);
drivers/block/sunvdc.c
419
vdc_finish(&port->vio, err, WAITING_FOR_ANY);
drivers/block/sunvdc.c
421
spin_unlock_irqrestore(&vio->lock, flags);
drivers/block/sunvdc.c
426
struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
drivers/block/sunvdc.c
432
.sid = vio_send_sid(&port->vio),
drivers/block/sunvdc.c
444
err = vio_ldc_send(&port->vio, &hdr, sizeof(hdr));
drivers/block/sunvdc.c
464
struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
drivers/block/sunvdc.c
495
err = ldc_map_sg(port->vio.lp, sg, nsg,
drivers/block/sunvdc.c
543
dr = &port->vio.drings[VIO_DRIVER_TX_RING];
drivers/block/sunvdc.c
547
spin_lock_irqsave(&port->vio.lock, flags);
drivers/block/sunvdc.c
553
spin_unlock_irqrestore(&port->vio.lock, flags);
drivers/block/sunvdc.c
558
spin_unlock_irqrestore(&port->vio.lock, flags);
drivers/block/sunvdc.c
564
spin_unlock_irqrestore(&port->vio.lock, flags);
drivers/block/sunvdc.c
568
spin_unlock_irqrestore(&port->vio.lock, flags);
drivers/block/sunvdc.c
57
struct vio_driver_state vio;
drivers/block/sunvdc.c
654
spin_lock_irqsave(&port->vio.lock, flags);
drivers/block/sunvdc.c
656
dr = &port->vio.drings[VIO_DRIVER_TX_RING];
drivers/block/sunvdc.c
663
err = ldc_map_single(port->vio.lp, req_buf, op_len,
drivers/block/sunvdc.c
667
spin_unlock_irqrestore(&port->vio.lock, flags);
drivers/block/sunvdc.c
674
port->vio.cmp = ∁
drivers/block/sunvdc.c
695
spin_unlock_irqrestore(&port->vio.lock, flags);
drivers/block/sunvdc.c
700
port->vio.cmp = NULL;
drivers/block/sunvdc.c
701
spin_unlock_irqrestore(&port->vio.lock, flags);
drivers/block/sunvdc.c
714
struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
drivers/block/sunvdc.c
724
dring = ldc_alloc_exp_dring(port->vio.lp, len,
drivers/block/sunvdc.c
744
struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
drivers/block/sunvdc.c
747
ldc_free_exp_dring(port->vio.lp, dr->base,
drivers/block/sunvdc.c
765
port->vio.cmp = ∁
drivers/block/sunvdc.c
767
vio_port_up(&port->vio);
drivers/block/sunvdc.c
774
ldc_disconnect(port->vio.lp);
drivers/block/sunvdc.c
775
ldc_unbind(port->vio.lp);
drivers/block/sunvdc.c
777
vio_ldc_free(&port->vio);
drivers/block/sunvdc.c
838
port->vio.name);
drivers/block/sunvdc.c
847
g->first_minor = port->vio.vdev->dev_no << PARTITION_SHIFT;
drivers/block/sunvdc.c
880
port->vio.ver.major, port->vio.ver.minor);
drivers/block/sunvdc.c
882
err = device_add_disk(&port->vio.vdev->dev, g, NULL);
drivers/block/sunvdc.c
95
static inline struct vdc_port *to_vdc_port(struct vio_driver_state *vio)
drivers/block/sunvdc.c
97
return container_of(vio, struct vdc_port, vio);
drivers/char/hw_random/pseries-rng.c
66
MODULE_DEVICE_TABLE(vio, pseries_rng_driver_ids);
drivers/char/tpm/tpm_ibmvtpm.c
35
MODULE_DEVICE_TABLE(vio, tpm_ibmvtpm_device_table);
drivers/crypto/nx/nx-common-pseries.c
1198
MODULE_DEVICE_TABLE(vio, nx842_vio_driver_ids);
drivers/crypto/nx/nx.c
812
MODULE_DEVICE_TABLE(vio, nx_crypto_driver_ids);
drivers/iio/light/gp2ap002.c
144
struct regulator *vio;
drivers/iio/light/gp2ap002.c
522
gp2ap002->vio = devm_regulator_get(dev, "vio");
drivers/iio/light/gp2ap002.c
523
if (IS_ERR(gp2ap002->vio))
drivers/iio/light/gp2ap002.c
524
return dev_err_probe(dev, PTR_ERR(gp2ap002->vio),
drivers/iio/light/gp2ap002.c
540
ret = regulator_set_voltage(gp2ap002->vio, 1650000, ret);
drivers/iio/light/gp2ap002.c
551
ret = regulator_enable(gp2ap002->vio);
drivers/iio/light/gp2ap002.c
613
regulator_disable(gp2ap002->vio);
drivers/iio/light/gp2ap002.c
629
regulator_disable(gp2ap002->vio);
drivers/iio/light/gp2ap002.c
652
regulator_disable(gp2ap002->vio);
drivers/iio/light/gp2ap002.c
669
ret = regulator_enable(gp2ap002->vio);
drivers/md/dm-vdo/block-map.c
1049
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/block-map.c
1050
struct page_info *info = vio->completion.parent;
drivers/md/dm-vdo/block-map.c
1052
continue_vio_after_io(vio, page_is_written_out, info->cache->zone->thread_id);
drivers/md/dm-vdo/block-map.c
1069
vdo_submit_metadata_vio(info->vio, info->pbn,
drivers/md/dm-vdo/block-map.c
1128
struct vdo_completion *completion = &info->vio->completion;
drivers/md/dm-vdo/block-map.c
1137
vdo_submit_metadata_vio(info->vio, info->pbn, write_cache_page_endio,
drivers/md/dm-vdo/block-map.c
1513
static void write_page(struct tree_page *tree_page, struct pooled_vio *vio);
drivers/md/dm-vdo/block-map.c
1564
static void return_to_pool(struct block_map_zone *zone, struct pooled_vio *vio)
drivers/md/dm-vdo/block-map.c
1566
return_vio_to_pool(vio);
drivers/md/dm-vdo/block-map.c
1574
struct vio *vio = as_vio(completion);
drivers/md/dm-vdo/block-map.c
1575
struct pooled_vio *pooled = container_of(vio, struct pooled_vio, vio);
drivers/md/dm-vdo/block-map.c
1620
struct vio *vio = as_vio(completion);
drivers/md/dm-vdo/block-map.c
1621
struct pooled_vio *pooled = container_of(vio, struct pooled_vio, vio);
drivers/md/dm-vdo/block-map.c
1624
vio_record_metadata_io_error(vio);
drivers/md/dm-vdo/block-map.c
1633
struct vio *vio = as_vio(completion);
drivers/md/dm-vdo/block-map.c
1634
struct pooled_vio *pooled = container_of(vio, struct pooled_vio, vio);
drivers/md/dm-vdo/block-map.c
1637
struct block_map_page *page = (struct block_map_page *) vio->data;
drivers/md/dm-vdo/block-map.c
1649
vdo_submit_metadata_vio(vio, vdo_get_block_map_page_pbn(page),
drivers/md/dm-vdo/block-map.c
1656
struct pooled_vio *vio = bio->bi_private;
drivers/md/dm-vdo/block-map.c
1657
struct block_map_zone *zone = vio->context;
drivers/md/dm-vdo/block-map.c
1658
struct block_map_page *page = (struct block_map_page *) vio->vio.data;
drivers/md/dm-vdo/block-map.c
1660
continue_vio_after_io(&vio->vio,
drivers/md/dm-vdo/block-map.c
1666
static void write_page(struct tree_page *tree_page, struct pooled_vio *vio)
drivers/md/dm-vdo/block-map.c
1668
struct vdo_completion *completion = &vio->vio.completion;
drivers/md/dm-vdo/block-map.c
1669
struct block_map_zone *zone = vio->context;
drivers/md/dm-vdo/block-map.c
1679
return_to_pool(zone, vio);
drivers/md/dm-vdo/block-map.c
1684
memcpy(vio->vio.data, tree_page->page_buffer, VDO_BLOCK_SIZE);
drivers/md/dm-vdo/block-map.c
1706
vdo_submit_metadata_vio(&vio->vio, vdo_get_block_map_page_pbn(page),
drivers/md/dm-vdo/block-map.c
1737
data_vio->vio.completion.error_handler = handle_data_vio_error;
drivers/md/dm-vdo/block-map.c
1845
struct vio *vio = as_vio(completion);
drivers/md/dm-vdo/block-map.c
1846
struct pooled_vio *pooled = vio_as_pooled_vio(vio);
drivers/md/dm-vdo/block-map.c
1857
if (!vdo_copy_valid_page(vio->data, nonce, pbn, page))
drivers/md/dm-vdo/block-map.c
1870
struct vio *vio = as_vio(completion);
drivers/md/dm-vdo/block-map.c
1871
struct pooled_vio *pooled = container_of(vio, struct pooled_vio, vio);
drivers/md/dm-vdo/block-map.c
1874
vio_record_metadata_io_error(vio);
drivers/md/dm-vdo/block-map.c
1881
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/block-map.c
1882
struct data_vio *data_vio = vio->completion.parent;
drivers/md/dm-vdo/block-map.c
1884
continue_vio_after_io(vio, finish_block_map_page_load,
drivers/md/dm-vdo/block-map.c
1895
pooled->vio.completion.parent = data_vio;
drivers/md/dm-vdo/block-map.c
1896
vdo_submit_metadata_vio(&pooled->vio, pbn, load_page_endio,
drivers/md/dm-vdo/block-map.c
195
get_page_buffer(info), &info->vio);
drivers/md/dm-vdo/block-map.c
200
info->vio->completion.callback_thread_id = cache->zone->thread_id;
drivers/md/dm-vdo/block-map.c
2517
return_vio_to_pool(vdo_forget(cursor->vio));
drivers/md/dm-vdo/block-map.c
2551
vdo_copy_valid_page(cursor->vio->vio.data,
drivers/md/dm-vdo/block-map.c
2553
pbn_from_vio_bio(cursor->vio->vio.bio), page);
drivers/md/dm-vdo/block-map.c
2559
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/block-map.c
2560
struct cursor *cursor = vio->completion.parent;
drivers/md/dm-vdo/block-map.c
2562
continue_vio_after_io(vio, finish_traversal_load,
drivers/md/dm-vdo/block-map.c
2626
vdo_submit_metadata_vio(&cursor->vio->vio, location.pbn,
drivers/md/dm-vdo/block-map.c
2649
cursor->vio = pooled;
drivers/md/dm-vdo/block-map.c
2650
pooled->vio.completion.parent = cursor;
drivers/md/dm-vdo/block-map.c
2651
pooled->vio.completion.callback_thread_id = cursor->parent->zone->thread_id;
drivers/md/dm-vdo/block-map.c
2850
free_vio(vdo_forget(info->vio));
drivers/md/dm-vdo/block-map.c
3108
modifiable, &data_vio->vio.completion,
drivers/md/dm-vdo/block-map.c
767
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/block-map.c
768
struct page_info *info = vio->completion.parent;
drivers/md/dm-vdo/block-map.c
770
continue_vio_after_io(vio, page_is_loaded, info->cache->zone->thread_id);
drivers/md/dm-vdo/block-map.c
801
vdo_submit_metadata_vio(info->vio, pbn, load_cache_page_endio,
drivers/md/dm-vdo/block-map.c
820
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/block-map.c
821
struct page_info *info = vio->completion.parent;
drivers/md/dm-vdo/block-map.c
823
continue_vio_after_io(vio, write_pages, info->cache->zone->thread_id);
drivers/md/dm-vdo/block-map.c
830
struct vio *vio;
drivers/md/dm-vdo/block-map.c
843
vio = info->vio;
drivers/md/dm-vdo/block-map.c
850
vdo_submit_flush_vio(vio, flush_endio, handle_flush_error);
drivers/md/dm-vdo/block-map.c
94
struct pooled_vio *vio;
drivers/md/dm-vdo/block-map.h
135
struct vio *vio;
drivers/md/dm-vdo/data-vio.c
1116
update_vio_error_stats(&data_vio->vio,
drivers/md/dm-vdo/data-vio.c
1203
next_lock_holder->vio.completion.requeue = true;
drivers/md/dm-vdo/data-vio.c
1252
struct vdo_completion *completion = &data_vio->vio.completion;
drivers/md/dm-vdo/data-vio.c
1303
(data_vio->vio.completion.result != VDO_READ_ONLY))
drivers/md/dm-vdo/data-vio.c
1392
data_vio->vio.completion.error_handler = error_handler;
drivers/md/dm-vdo/data-vio.c
1456
char *data = data_vio->vio.data;
drivers/md/dm-vdo/data-vio.c
1478
char *data = data_vio->vio.data;
drivers/md/dm-vdo/data-vio.c
1526
memset(data_vio->vio.data, 0, VDO_BLOCK_SIZE);
drivers/md/dm-vdo/data-vio.c
1547
struct vio *vio = as_vio(completion);
drivers/md/dm-vdo/data-vio.c
1558
result = vio_reset_bio(vio, (char *) data_vio->compression.block,
drivers/md/dm-vdo/data-vio.c
1564
result = vio_reset_bio(vio, vio->data, read_endio, opf,
drivers/md/dm-vdo/data-vio.c
1568
bio_reset(vio->bio, vio->bio->bi_bdev, opf);
drivers/md/dm-vdo/data-vio.c
1569
bio_init_clone(data_vio->user_bio->bi_bdev, vio->bio,
drivers/md/dm-vdo/data-vio.c
1573
vdo_set_bio_properties(vio->bio, vio, read_endio, opf,
drivers/md/dm-vdo/data-vio.c
1613
completion = &data_vio->vio.completion;
drivers/md/dm-vdo/data-vio.c
1764
size = LZ4_compress_default(data_vio->vio.data,
drivers/md/dm-vdo/data-vio.c
1833
murmurhash3_128(data_vio->vio.data, VDO_BLOCK_SIZE, 0x62ea60be,
drivers/md/dm-vdo/data-vio.c
1863
struct data_vio *data_vio = vio_as_data_vio((struct vio *) bio->bi_private);
drivers/md/dm-vdo/data-vio.c
1866
vdo_set_completion_result(&data_vio->vio.completion,
drivers/md/dm-vdo/data-vio.c
1898
result = vio_reset_bio(&data_vio->vio, data_vio->vio.data,
drivers/md/dm-vdo/data-vio.c
277
int error = vdo_status_to_errno(data_vio->vio.completion.result);
drivers/md/dm-vdo/data-vio.c
465
copy_to_bio(data_vio->user_bio, lock_holder->vio.data + data_vio->offset);
drivers/md/dm-vdo/data-vio.c
493
struct vdo_completion *completion = &data_vio->vio.completion;
drivers/md/dm-vdo/data-vio.c
535
memset(data_vio, 0, offsetof(struct data_vio, vio));
drivers/md/dm-vdo/data-vio.c
567
copy_from_bio(bio, data_vio->vio.data);
drivers/md/dm-vdo/data-vio.c
568
data_vio->is_zero = mem_is_zero(data_vio->vio.data, VDO_BLOCK_SIZE);
drivers/md/dm-vdo/data-vio.c
790
&data_vio->vio.data);
drivers/md/dm-vdo/data-vio.c
815
initialize_vio(&data_vio->vio, bio, 1, VIO_TYPE_DATA, VIO_PRIORITY_DATA, vdo);
drivers/md/dm-vdo/data-vio.c
825
vdo_free_bio(vdo_forget(data_vio->vio.bio));
drivers/md/dm-vdo/data-vio.c
826
vdo_free(vdo_forget(data_vio->vio.data));
drivers/md/dm-vdo/data-vio.h
267
struct vio vio;
drivers/md/dm-vdo/data-vio.h
281
static inline struct data_vio *vio_as_data_vio(struct vio *vio)
drivers/md/dm-vdo/data-vio.h
283
VDO_ASSERT_LOG_ONLY((vio->type == VIO_TYPE_DATA), "vio is a data_vio");
drivers/md/dm-vdo/data-vio.h
284
return container_of(vio, struct data_vio, vio);
drivers/md/dm-vdo/data-vio.h
315
return data_vio->vio.completion.vdo;
drivers/md/dm-vdo/data-vio.h
348
vdo_launch_completion(&data_vio->vio.completion);
drivers/md/dm-vdo/data-vio.h
359
vdo_continue_completion(&data_vio->vio.completion, result);
drivers/md/dm-vdo/data-vio.h
380
vdo_set_completion_callback(&data_vio->vio.completion, callback,
drivers/md/dm-vdo/data-vio.h
392
vdo_launch_completion(&data_vio->vio.completion);
drivers/md/dm-vdo/data-vio.h
408
vdo_set_completion_callback(&data_vio->vio.completion, callback,
drivers/md/dm-vdo/data-vio.h
420
vdo_launch_completion(&data_vio->vio.completion);
drivers/md/dm-vdo/data-vio.h
437
vdo_set_completion_callback(&data_vio->vio.completion, callback,
drivers/md/dm-vdo/data-vio.h
450
vdo_launch_completion(&data_vio->vio.completion);
drivers/md/dm-vdo/data-vio.h
467
vdo_set_completion_callback(&data_vio->vio.completion, callback,
drivers/md/dm-vdo/data-vio.h
480
vdo_launch_completion(&data_vio->vio.completion);
drivers/md/dm-vdo/data-vio.h
496
vdo_set_completion_callback(&data_vio->vio.completion, callback,
drivers/md/dm-vdo/data-vio.h
514
vdo_set_completion_callback(&data_vio->vio.completion, callback,
drivers/md/dm-vdo/data-vio.h
534
vdo_set_completion_callback(&data_vio->vio.completion, callback, journal_thread);
drivers/md/dm-vdo/data-vio.h
545
vdo_launch_completion(&data_vio->vio.completion);
drivers/md/dm-vdo/data-vio.h
564
vdo_set_completion_callback(&data_vio->vio.completion, callback, packer_thread);
drivers/md/dm-vdo/data-vio.h
575
vdo_launch_completion(&data_vio->vio.completion);
drivers/md/dm-vdo/data-vio.h
594
vdo_set_completion_callback(&data_vio->vio.completion, callback, cpu_thread);
drivers/md/dm-vdo/data-vio.h
606
vdo_launch_completion_with_priority(&data_vio->vio.completion, priority);
drivers/md/dm-vdo/data-vio.h
612
vdo_set_completion_callback(&data_vio->vio.completion, callback,
drivers/md/dm-vdo/data-vio.h
613
get_vio_bio_zone_thread_id(&data_vio->vio));
drivers/md/dm-vdo/data-vio.h
624
vdo_launch_completion_with_priority(&data_vio->vio.completion,
drivers/md/dm-vdo/data-vio.h
636
struct vdo_completion *completion = &data_vio->vio.completion;
drivers/md/dm-vdo/dedupe.c
1140
agent->is_duplicate = blocks_equal(agent->vio.data, agent->scratch_block);
drivers/md/dm-vdo/dedupe.c
1196
struct vio *vio = &agent->vio;
drivers/md/dm-vdo/dedupe.c
1205
result = vio_reset_bio(vio, buffer, verify_endio, REQ_OP_READ,
drivers/md/dm-vdo/dedupe.c
1214
vdo_launch_completion_with_priority(&vio->completion, BIO_Q_VERIFY_PRIORITY);
drivers/md/dm-vdo/dedupe.c
1800
collides = !blocks_equal(lock_holder->vio.data, candidate->vio.data);
drivers/md/dm-vdo/dedupe.c
498
data_vio->vio.completion.callback = complete_data_vio;
drivers/md/dm-vdo/dump.c
193
if (data_vio->vio.completion.result != VDO_SUCCESS)
drivers/md/dm-vdo/dump.c
233
vdo_dump_completion_to_buffer(&data_vio->vio.completion,
drivers/md/dm-vdo/io-submitter.c
107
static void send_bio_to_device(struct vio *vio, struct bio *bio)
drivers/md/dm-vdo/io-submitter.c
109
struct vdo *vdo = vio->completion.vdo;
drivers/md/dm-vdo/io-submitter.c
111
assert_in_bio_zone(vio);
drivers/md/dm-vdo/io-submitter.c
113
count_all_bios(vio, bio);
drivers/md/dm-vdo/io-submitter.c
125
struct vio *vio = as_vio(completion);
drivers/md/dm-vdo/io-submitter.c
127
send_bio_to_device(vio, vio->bio);
drivers/md/dm-vdo/io-submitter.c
139
static struct bio *get_bio_list(struct vio *vio)
drivers/md/dm-vdo/io-submitter.c
142
struct io_submitter *submitter = vio->completion.vdo->io_submitter;
drivers/md/dm-vdo/io-submitter.c
143
struct bio_queue_data *bio_queue_data = &(submitter->bio_queue_data[vio->bio_zone]);
drivers/md/dm-vdo/io-submitter.c
145
assert_in_bio_zone(vio);
drivers/md/dm-vdo/io-submitter.c
149
vio->bios_merged.head->bi_iter.bi_sector);
drivers/md/dm-vdo/io-submitter.c
151
vio->bios_merged.tail->bi_iter.bi_sector);
drivers/md/dm-vdo/io-submitter.c
152
bio = vio->bios_merged.head;
drivers/md/dm-vdo/io-submitter.c
153
bio_list_init(&vio->bios_merged);
drivers/md/dm-vdo/io-submitter.c
169
struct vio *vio = as_vio(completion);
drivers/md/dm-vdo/io-submitter.c
171
assert_in_bio_zone(vio);
drivers/md/dm-vdo/io-submitter.c
172
for (bio = get_bio_list(vio); bio != NULL; bio = next) {
drivers/md/dm-vdo/io-submitter.c
175
send_bio_to_device((struct vio *) bio->bi_private, bio);
drivers/md/dm-vdo/io-submitter.c
191
static struct vio *get_mergeable_locked(struct int_map *map, struct vio *vio,
drivers/md/dm-vdo/io-submitter.c
194
struct bio *bio = vio->bio;
drivers/md/dm-vdo/io-submitter.c
196
struct vio *vio_merge;
drivers/md/dm-vdo/io-submitter.c
208
if (vio->completion.priority != vio_merge->completion.priority)
drivers/md/dm-vdo/io-submitter.c
226
static int map_merged_vio(struct int_map *bio_map, struct vio *vio)
drivers/md/dm-vdo/io-submitter.c
231
bio_sector = vio->bios_merged.head->bi_iter.bi_sector;
drivers/md/dm-vdo/io-submitter.c
232
result = vdo_int_map_put(bio_map, bio_sector, vio, true, NULL);
drivers/md/dm-vdo/io-submitter.c
236
bio_sector = vio->bios_merged.tail->bi_iter.bi_sector;
drivers/md/dm-vdo/io-submitter.c
237
return vdo_int_map_put(bio_map, bio_sector, vio, true, NULL);
drivers/md/dm-vdo/io-submitter.c
240
static int merge_to_prev_tail(struct int_map *bio_map, struct vio *vio,
drivers/md/dm-vdo/io-submitter.c
241
struct vio *prev_vio)
drivers/md/dm-vdo/io-submitter.c
244
bio_list_merge(&prev_vio->bios_merged, &vio->bios_merged);
drivers/md/dm-vdo/io-submitter.c
248
static int merge_to_next_head(struct int_map *bio_map, struct vio *vio,
drivers/md/dm-vdo/io-submitter.c
249
struct vio *next_vio)
drivers/md/dm-vdo/io-submitter.c
257
bio_list_merge_head(&next_vio->bios_merged, &vio->bios_merged);
drivers/md/dm-vdo/io-submitter.c
269
static bool try_bio_map_merge(struct vio *vio)
drivers/md/dm-vdo/io-submitter.c
273
struct bio *bio = vio->bio;
drivers/md/dm-vdo/io-submitter.c
274
struct vio *prev_vio, *next_vio;
drivers/md/dm-vdo/io-submitter.c
275
struct vdo *vdo = vio->completion.vdo;
drivers/md/dm-vdo/io-submitter.c
277
&vdo->io_submitter->bio_queue_data[vio->bio_zone];
drivers/md/dm-vdo/io-submitter.c
280
bio_list_init(&vio->bios_merged);
drivers/md/dm-vdo/io-submitter.c
281
bio_list_add(&vio->bios_merged, bio);
drivers/md/dm-vdo/io-submitter.c
284
prev_vio = get_mergeable_locked(bio_queue_data->map, vio, true);
drivers/md/dm-vdo/io-submitter.c
285
next_vio = get_mergeable_locked(bio_queue_data->map, vio, false);
drivers/md/dm-vdo/io-submitter.c
294
vio, true, NULL);
drivers/md/dm-vdo/io-submitter.c
297
result = merge_to_prev_tail(bio_queue_data->map, vio, prev_vio);
drivers/md/dm-vdo/io-submitter.c
300
result = merge_to_next_head(bio_queue_data->map, vio, next_vio);
drivers/md/dm-vdo/io-submitter.c
318
if (try_bio_map_merge(&data_vio->vio))
drivers/md/dm-vdo/io-submitter.c
342
void __submit_metadata_vio(struct vio *vio, physical_block_number_t physical,
drivers/md/dm-vdo/io-submitter.c
347
struct vdo_completion *completion = &vio->completion;
drivers/md/dm-vdo/io-submitter.c
355
result = vio_reset_bio_with_size(vio, data, size, callback, operation | REQ_META,
drivers/md/dm-vdo/io-submitter.c
358
continue_vio(vio, result);
drivers/md/dm-vdo/io-submitter.c
363
get_vio_bio_zone_thread_id(vio));
drivers/md/dm-vdo/io-submitter.c
364
vdo_launch_completion_with_priority(completion, get_metadata_priority(vio));
drivers/md/dm-vdo/io-submitter.c
379
int vdo_submit_metadata_vio_wait(struct vio *vio,
drivers/md/dm-vdo/io-submitter.c
385
result = vio_reset_bio(vio, vio->data, NULL, operation | REQ_META, physical);
drivers/md/dm-vdo/io-submitter.c
389
bio_set_dev(vio->bio, vdo_get_backing_device(vio->completion.vdo));
drivers/md/dm-vdo/io-submitter.c
390
submit_bio_wait(vio->bio);
drivers/md/dm-vdo/io-submitter.c
391
return blk_status_to_errno(vio->bio->bi_status);
drivers/md/dm-vdo/io-submitter.c
74
static void count_all_bios(struct vio *vio, struct bio *bio)
drivers/md/dm-vdo/io-submitter.c
76
struct atomic_statistics *stats = &vio->completion.vdo->stats;
drivers/md/dm-vdo/io-submitter.c
78
if (is_data_vio(vio)) {
drivers/md/dm-vdo/io-submitter.c
84
if (vio->type == VIO_TYPE_RECOVERY_JOURNAL)
drivers/md/dm-vdo/io-submitter.c
86
else if (vio->type == VIO_TYPE_BLOCK_MAP)
drivers/md/dm-vdo/io-submitter.c
95
static void assert_in_bio_zone(struct vio *vio)
drivers/md/dm-vdo/io-submitter.c
98
assert_vio_in_bio_zone(vio);
drivers/md/dm-vdo/io-submitter.h
28
void __submit_metadata_vio(struct vio *vio, physical_block_number_t physical,
drivers/md/dm-vdo/io-submitter.h
32
static inline void vdo_submit_metadata_vio(struct vio *vio, physical_block_number_t physical,
drivers/md/dm-vdo/io-submitter.h
36
__submit_metadata_vio(vio, physical, callback, error_handler,
drivers/md/dm-vdo/io-submitter.h
37
operation, vio->data, vio->block_count * VDO_BLOCK_SIZE);
drivers/md/dm-vdo/io-submitter.h
40
static inline void vdo_submit_metadata_vio_with_size(struct vio *vio,
drivers/md/dm-vdo/io-submitter.h
47
__submit_metadata_vio(vio, physical, callback, error_handler,
drivers/md/dm-vdo/io-submitter.h
48
operation, vio->data, size);
drivers/md/dm-vdo/io-submitter.h
51
static inline void vdo_submit_flush_vio(struct vio *vio, bio_end_io_t callback,
drivers/md/dm-vdo/io-submitter.h
55
__submit_metadata_vio(vio, 0, callback, error_handler,
drivers/md/dm-vdo/io-submitter.h
59
int vdo_submit_metadata_vio_wait(struct vio *vio,
drivers/md/dm-vdo/packer.c
461
agent->vio.completion.error_handler = handle_compressed_write_error;
drivers/md/dm-vdo/packer.c
467
result = vio_reset_bio(&agent->vio, (char *) block, compressed_write_end_io,
drivers/md/dm-vdo/physical-zone.c
542
struct vdo_completion *completion = &data_vio->vio.completion;
drivers/md/dm-vdo/recovery-journal.c
1318
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/recovery-journal.c
1319
struct recovery_journal_block *block = vio->completion.parent;
drivers/md/dm-vdo/recovery-journal.c
1322
continue_vio_after_io(vio, complete_write, journal->thread_id);
drivers/md/dm-vdo/recovery-journal.c
1400
vdo_submit_metadata_vio(&block->vio, journal->origin + block->block_number,
drivers/md/dm-vdo/recovery-journal.c
508
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/recovery-journal.c
509
struct recovery_journal *journal = vio->completion.parent;
drivers/md/dm-vdo/recovery-journal.c
511
continue_vio_after_io(vio, complete_reaping, journal->thread_id);
drivers/md/dm-vdo/recovery-journal.c
677
VIO_PRIORITY_HIGH, block, 1, data, &block->vio);
drivers/md/dm-vdo/recovery-journal.c
810
vdo_free(vdo_forget(block->vio.data));
drivers/md/dm-vdo/recovery-journal.c
811
free_vio_components(&block->vio);
drivers/md/dm-vdo/recovery-journal.c
916
return (struct packed_journal_header *) block->vio.data;
drivers/md/dm-vdo/recovery-journal.c
962
memset(block->vio.data, 0x0, VDO_BLOCK_SIZE);
drivers/md/dm-vdo/recovery-journal.h
126
struct vio vio;
drivers/md/dm-vdo/recovery-journal.h
201
struct vio *flush_vio;
drivers/md/dm-vdo/repair.c
1681
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/repair.c
1682
struct vdo *vdo = vio->completion.vdo;
drivers/md/dm-vdo/repair.c
1684
continue_vio_after_io(vio, finish_journal_load, vdo->thread_config.admin_thread);
drivers/md/dm-vdo/repair.c
66
struct vio *vios;
drivers/md/dm-vdo/slab-depot.c
1068
struct vio *vio = as_vio(completion);
drivers/md/dm-vdo/slab-depot.c
1069
struct pooled_vio *pooled = vio_as_pooled_vio(vio);
drivers/md/dm-vdo/slab-depot.c
1155
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/slab-depot.c
1156
struct reference_block *block = vio->completion.parent;
drivers/md/dm-vdo/slab-depot.c
1159
continue_vio_after_io(vio, finish_reference_block_write, thread_id);
drivers/md/dm-vdo/slab-depot.c
1169
struct vio *vio = as_vio(completion);
drivers/md/dm-vdo/slab-depot.c
1172
vio_record_metadata_io_error(vio);
drivers/md/dm-vdo/slab-depot.c
1173
return_vio_to_pool(vio_as_pooled_vio(vio));
drivers/md/dm-vdo/slab-depot.c
1174
slab->active_count -= vio->io_size / VDO_BLOCK_SIZE;
drivers/md/dm-vdo/slab-depot.c
1190
struct vdo_completion *completion = &pooled->vio.completion;
drivers/md/dm-vdo/slab-depot.c
1194
pack_reference_block(block, pooled->vio.data);
drivers/md/dm-vdo/slab-depot.c
1216
vdo_submit_metadata_vio(&pooled->vio, pbn, write_reference_block_endio,
drivers/md/dm-vdo/slab-depot.c
2309
struct vio *vio = as_vio(completion);
drivers/md/dm-vdo/slab-depot.c
2310
struct pooled_vio *pooled = vio_as_pooled_vio(vio);
drivers/md/dm-vdo/slab-depot.c
2313
unsigned int block_count = vio->io_size / VDO_BLOCK_SIZE;
drivers/md/dm-vdo/slab-depot.c
2315
char *data = vio->data;
drivers/md/dm-vdo/slab-depot.c
2331
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/slab-depot.c
2332
struct reference_block *block = vio->completion.parent;
drivers/md/dm-vdo/slab-depot.c
2334
continue_vio_after_io(vio, finish_reference_block_load,
drivers/md/dm-vdo/slab-depot.c
2347
struct vio *vio = &pooled->vio;
drivers/md/dm-vdo/slab-depot.c
2352
u32 block_count = min_t(int, vio->block_count, max_block_count);
drivers/md/dm-vdo/slab-depot.c
2354
vio->completion.parent = block;
drivers/md/dm-vdo/slab-depot.c
2355
vdo_submit_metadata_vio_with_size(vio, block->slab->ref_counts_origin + block_offset,
drivers/md/dm-vdo/slab-depot.c
2494
struct vio *vio = as_vio(completion);
drivers/md/dm-vdo/slab-depot.c
2497
struct packed_slab_journal_block *block = (struct packed_slab_journal_block *) vio->data;
drivers/md/dm-vdo/slab-depot.c
2517
return_vio_to_pool(vio_as_pooled_vio(vio));
drivers/md/dm-vdo/slab-depot.c
2523
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/slab-depot.c
2524
struct slab_journal *journal = vio->completion.parent;
drivers/md/dm-vdo/slab-depot.c
2526
continue_vio_after_io(vio, finish_loading_journal,
drivers/md/dm-vdo/slab-depot.c
2534
struct vio *vio = as_vio(completion);
drivers/md/dm-vdo/slab-depot.c
2536
vio_record_metadata_io_error(vio);
drivers/md/dm-vdo/slab-depot.c
2537
return_vio_to_pool(vio_as_pooled_vio(vio));
drivers/md/dm-vdo/slab-depot.c
2555
struct vio *vio = &pooled->vio;
drivers/md/dm-vdo/slab-depot.c
2567
vio->completion.parent = journal;
drivers/md/dm-vdo/slab-depot.c
2568
vio->completion.callback_thread_id = slab->allocator->thread_id;
drivers/md/dm-vdo/slab-depot.c
2569
vdo_submit_metadata_vio(vio, slab->journal_origin + tail_block,
drivers/md/dm-vdo/slab-depot.c
2742
vdo_free(vdo_forget(scrubber->vio.data));
drivers/md/dm-vdo/slab-depot.c
2743
free_vio_components(&scrubber->vio);
drivers/md/dm-vdo/slab-depot.c
2764
vdo_fail_completion(vdo_forget(scrubber->vio.completion.parent), result);
drivers/md/dm-vdo/slab-depot.c
2816
container_of(as_vio(completion), struct slab_scrubber, vio);
drivers/md/dm-vdo/slab-depot.c
283
container_of(as_vio(completion), struct slab_summary_block, vio);
drivers/md/dm-vdo/slab-depot.c
2833
vdo_enter_read_only_mode(scrubber->vio.completion.vdo, result);
drivers/md/dm-vdo/slab-depot.c
2843
struct vio *vio = as_vio(completion);
drivers/md/dm-vdo/slab-depot.c
2845
vio_record_metadata_io_error(vio);
drivers/md/dm-vdo/slab-depot.c
2846
abort_scrubbing(container_of(vio, struct slab_scrubber, vio),
drivers/md/dm-vdo/slab-depot.c
2909
container_of(as_vio(completion), struct slab_scrubber, vio);
drivers/md/dm-vdo/slab-depot.c
2916
char *end_data = scrubber->vio.data + (end_index * VDO_BLOCK_SIZE);
drivers/md/dm-vdo/slab-depot.c
2929
char *block_data = scrubber->vio.data + (index * VDO_BLOCK_SIZE);
drivers/md/dm-vdo/slab-depot.c
296
container_of(as_vio(completion), struct slab_summary_block, vio);
drivers/md/dm-vdo/slab-depot.c
2984
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/slab-depot.c
2985
struct slab_scrubber *scrubber = container_of(vio, struct slab_scrubber, vio);
drivers/md/dm-vdo/slab-depot.c
3000
container_of(as_vio(completion), struct slab_scrubber, vio);
drivers/md/dm-vdo/slab-depot.c
3008
vdo_submit_metadata_vio(&scrubber->vio, slab->journal_origin,
drivers/md/dm-vdo/slab-depot.c
3019
struct vdo_completion *completion = &scrubber->vio.completion;
drivers/md/dm-vdo/slab-depot.c
305
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/slab-depot.c
3060
scrubber->vio.completion.parent = parent;
drivers/md/dm-vdo/slab-depot.c
307
container_of(vio, struct slab_summary_block, vio);
drivers/md/dm-vdo/slab-depot.c
309
continue_vio_after_io(vio, finish_update, block->allocator->thread_id);
drivers/md/dm-vdo/slab-depot.c
348
vdo_submit_metadata_vio(&block->vio, pbn, write_slab_summary_endio,
drivers/md/dm-vdo/slab-depot.c
372
if (vdo_is_read_only(block->vio.completion.vdo)) {
drivers/md/dm-vdo/slab-depot.c
4017
journal_data, &scrubber->vio);
drivers/md/dm-vdo/slab-depot.c
4048
block->outgoing_entries, &block->vio);
drivers/md/dm-vdo/slab-depot.c
4292
free_vio_components(&allocator->summary_blocks[i].vio);
drivers/md/dm-vdo/slab-depot.c
437
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/slab-depot.c
438
struct slab_journal *journal = vio->completion.parent;
drivers/md/dm-vdo/slab-depot.c
440
continue_vio_after_io(vio, complete_reaping,
drivers/md/dm-vdo/slab-depot.c
4549
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/slab-depot.c
455
struct vio *vio = &pooled->vio;
drivers/md/dm-vdo/slab-depot.c
4550
struct vdo *vdo = vio->completion.vdo;
drivers/md/dm-vdo/slab-depot.c
4552
continue_vio_after_io(vio, finish_combining_zones,
drivers/md/dm-vdo/slab-depot.c
457
vio->completion.parent = journal;
drivers/md/dm-vdo/slab-depot.c
458
vdo_submit_flush_vio(vio, flush_endio, handle_flush_error);
drivers/md/dm-vdo/slab-depot.c
4616
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/slab-depot.c
4617
struct vdo *vdo = vio->completion.vdo;
drivers/md/dm-vdo/slab-depot.c
4619
continue_vio_after_io(vio, finish_loading_summary,
drivers/md/dm-vdo/slab-depot.c
4633
struct vio *vio;
drivers/md/dm-vdo/slab-depot.c
4641
(char *) depot->summary_entries, &vio);
drivers/md/dm-vdo/slab-depot.c
4649
finish_loading_summary(&vio->completion);
drivers/md/dm-vdo/slab-depot.c
4653
vdo_submit_metadata_vio(vio, depot->summary_origin, load_summary_endio,
drivers/md/dm-vdo/slab-depot.c
681
static sequence_number_t get_committing_sequence_number(const struct pooled_vio *vio)
drivers/md/dm-vdo/slab-depot.c
684
(const struct packed_slab_journal_block *) vio->vio.data;
drivers/md/dm-vdo/slab-depot.c
731
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/slab-depot.c
732
struct slab_journal *journal = vio->completion.parent;
drivers/md/dm-vdo/slab-depot.c
734
continue_vio_after_io(vio, complete_write, journal->slab->allocator->thread_id);
drivers/md/dm-vdo/slab-depot.c
747
struct vio *vio = &pooled->vio;
drivers/md/dm-vdo/slab-depot.c
760
memcpy(pooled->vio.data, journal->block, VDO_BLOCK_SIZE);
drivers/md/dm-vdo/slab-depot.c
775
vio->completion.parent = journal;
drivers/md/dm-vdo/slab-depot.c
782
vdo_submit_metadata_vio(vdo_forget(vio), block_number, write_slab_journal_endio,
drivers/md/dm-vdo/slab-depot.h
302
struct vio vio;
drivers/md/dm-vdo/slab-depot.h
363
struct vio vio;
drivers/md/dm-vdo/vdo.c
1002
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/vdo.c
1003
struct vdo_completion *parent = vio->completion.parent;
drivers/md/dm-vdo/vdo.c
1005
continue_vio_after_io(vio, continue_parent,
drivers/md/dm-vdo/vdo.c
1018
container_of(as_vio(completion), struct vdo_geometry_block, vio);
drivers/md/dm-vdo/vdo.c
1020
vio_record_metadata_io_error(&geometry_block->vio);
drivers/md/dm-vdo/vdo.c
1036
geometry_block->vio.completion.parent = parent;
drivers/md/dm-vdo/vdo.c
1037
geometry_block->vio.completion.callback_thread_id = parent->callback_thread_id;
drivers/md/dm-vdo/vdo.c
1038
vdo_submit_metadata_vio(&geometry_block->vio,
drivers/md/dm-vdo/vdo.c
1053
container_of(as_vio(completion), struct vdo_super_block, vio);
drivers/md/dm-vdo/vdo.c
1055
vio_record_metadata_io_error(&super_block->vio);
drivers/md/dm-vdo/vdo.c
1079
super_block->vio.completion.parent = parent;
drivers/md/dm-vdo/vdo.c
1080
super_block->vio.completion.callback_thread_id = parent->callback_thread_id;
drivers/md/dm-vdo/vdo.c
1081
vdo_submit_metadata_vio(&super_block->vio,
drivers/md/dm-vdo/vdo.c
1102
if (super_block->vio.completion.parent != NULL) {
drivers/md/dm-vdo/vdo.c
274
&vdo->geometry_block.vio);
drivers/md/dm-vdo/vdo.c
289
&vdo->super_block.vio);
drivers/md/dm-vdo/vdo.c
535
result = vdo_submit_metadata_vio_wait(&vdo->geometry_block.vio,
drivers/md/dm-vdo/vdo.c
542
if (mem_is_zero(vdo->geometry_block.vio.data, VDO_BLOCK_SIZE)) {
drivers/md/dm-vdo/vdo.c
723
free_vio_components(&geometry_block->vio);
drivers/md/dm-vdo/vdo.c
729
free_vio_components(&super_block->vio);
drivers/md/dm-vdo/vdo.c
809
container_of(as_vio(completion), struct vdo_super_block, vio);
drivers/md/dm-vdo/vdo.c
829
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/vdo.c
830
struct vdo_completion *parent = vio->completion.parent;
drivers/md/dm-vdo/vdo.c
832
continue_vio_after_io(vio, finish_reading_super_block,
drivers/md/dm-vdo/vdo.c
843
vdo->super_block.vio.completion.parent = parent;
drivers/md/dm-vdo/vdo.c
844
vdo_submit_metadata_vio(&vdo->super_block.vio,
drivers/md/dm-vdo/vdo.h
149
struct vio vio;
drivers/md/dm-vdo/vdo.h
156
struct vio vio;
drivers/md/dm-vdo/vio.c
100
initialize_vio(vio, bio, block_count, vio_type, priority, vdo);
drivers/md/dm-vdo/vio.c
101
vio->completion.parent = parent;
drivers/md/dm-vdo/vio.c
102
vio->data = data;
drivers/md/dm-vdo/vio.c
121
struct vio **vio_ptr)
drivers/md/dm-vdo/vio.c
123
struct vio *vio;
drivers/md/dm-vdo/vio.c
126
BUILD_BUG_ON(sizeof(struct vio) > 256);
drivers/md/dm-vdo/vio.c
132
result = vdo_allocate(1, __func__, &vio);
drivers/md/dm-vdo/vio.c
139
data, vio);
drivers/md/dm-vdo/vio.c
141
vdo_free(vio);
drivers/md/dm-vdo/vio.c
145
*vio_ptr = vio;
drivers/md/dm-vdo/vio.c
153
void free_vio_components(struct vio *vio)
drivers/md/dm-vdo/vio.c
155
if (vio == NULL)
drivers/md/dm-vdo/vio.c
158
BUG_ON(is_data_vio(vio));
drivers/md/dm-vdo/vio.c
159
vdo_free_bio(vdo_forget(vio->bio));
drivers/md/dm-vdo/vio.c
166
void free_vio(struct vio *vio)
drivers/md/dm-vdo/vio.c
168
free_vio_components(vio);
drivers/md/dm-vdo/vio.c
169
vdo_free(vio);
drivers/md/dm-vdo/vio.c
173
void vdo_set_bio_properties(struct bio *bio, struct vio *vio, bio_end_io_t callback,
drivers/md/dm-vdo/vio.c
176
struct vdo *vdo = vio->completion.vdo;
drivers/md/dm-vdo/vio.c
180
vio->bio_zone = ((pbn / config->thread_counts.bio_rotation_interval) %
drivers/md/dm-vdo/vio.c
183
bio->bi_private = vio;
drivers/md/dm-vdo/vio.c
194
int vio_reset_bio(struct vio *vio, char *data, bio_end_io_t callback,
drivers/md/dm-vdo/vio.c
197
return vio_reset_bio_with_size(vio, data, vio->block_count * VDO_BLOCK_SIZE,
drivers/md/dm-vdo/vio.c
201
int vio_reset_bio_with_size(struct vio *vio, char *data, int size, bio_end_io_t callback,
drivers/md/dm-vdo/vio.c
205
struct bio *bio = vio->bio;
drivers/md/dm-vdo/vio.c
206
int vio_size = vio->block_count * VDO_BLOCK_SIZE;
drivers/md/dm-vdo/vio.c
210
vdo_set_bio_properties(bio, vio, callback, bi_opf, pbn);
drivers/md/dm-vdo/vio.c
216
bio->bi_max_vecs = vio->block_count + 1;
drivers/md/dm-vdo/vio.c
220
vio->io_size = size;
drivers/md/dm-vdo/vio.c
255
void update_vio_error_stats(struct vio *vio, const char *format, ...)
drivers/md/dm-vdo/vio.c
261
struct vdo *vdo = vio->completion.vdo;
drivers/md/dm-vdo/vio.c
263
switch (vio->completion.result) {
drivers/md/dm-vdo/vio.c
281
vdo_vlog_strerror(priority, vio->completion.result, VDO_LOGGING_MODULE_NAME,
drivers/md/dm-vdo/vio.c
286
void vio_record_metadata_io_error(struct vio *vio)
drivers/md/dm-vdo/vio.c
289
physical_block_number_t pbn = pbn_from_vio_bio(vio->bio);
drivers/md/dm-vdo/vio.c
291
if (bio_op(vio->bio) == REQ_OP_READ) {
drivers/md/dm-vdo/vio.c
293
} else if ((vio->bio->bi_opf & REQ_PREFLUSH) == REQ_PREFLUSH) {
drivers/md/dm-vdo/vio.c
294
description = (((vio->bio->bi_opf & REQ_FUA) == REQ_FUA) ?
drivers/md/dm-vdo/vio.c
297
} else if ((vio->bio->bi_opf & REQ_FUA) == REQ_FUA) {
drivers/md/dm-vdo/vio.c
303
update_vio_error_stats(vio,
drivers/md/dm-vdo/vio.c
305
description, vio->type, (unsigned long long) pbn);
drivers/md/dm-vdo/vio.c
349
&pooled->vio);
drivers/md/dm-vdo/vio.c
386
free_vio_components(&pooled->vio);
drivers/md/dm-vdo/vio.c
43
struct vio *vio = bio->bi_private;
drivers/md/dm-vdo/vio.c
435
void return_vio_to_pool(struct pooled_vio *vio)
drivers/md/dm-vdo/vio.c
437
struct vio_pool *pool = vio->pool;
drivers/md/dm-vdo/vio.c
44
struct vdo *vdo = vio->completion.vdo;
drivers/md/dm-vdo/vio.c
442
vio->vio.completion.error_handler = NULL;
drivers/md/dm-vdo/vio.c
443
vio->vio.completion.parent = NULL;
drivers/md/dm-vdo/vio.c
445
vdo_waitq_notify_next_waiter(&pool->waiting, NULL, vio);
drivers/md/dm-vdo/vio.c
449
list_move_tail(&vio->pool_entry, &pool->available);
drivers/md/dm-vdo/vio.c
490
static void count_all_bios_completed(struct vio *vio, struct bio *bio)
drivers/md/dm-vdo/vio.c
492
struct atomic_statistics *stats = &vio->completion.vdo->stats;
drivers/md/dm-vdo/vio.c
494
if (is_data_vio(vio)) {
drivers/md/dm-vdo/vio.c
500
if (vio->type == VIO_TYPE_RECOVERY_JOURNAL)
drivers/md/dm-vdo/vio.c
502
else if (vio->type == VIO_TYPE_BLOCK_MAP)
drivers/md/dm-vdo/vio.c
508
struct vio *vio = (struct vio *) bio->bi_private;
drivers/md/dm-vdo/vio.c
510
atomic64_inc(&vio->completion.vdo->stats.bios_completed);
drivers/md/dm-vdo/vio.c
511
count_all_bios_completed(vio, bio);
drivers/md/dm-vdo/vio.c
80
unsigned int block_count, char *data, struct vio *vio)
drivers/md/dm-vdo/vio.h
109
static inline void initialize_vio(struct vio *vio, struct bio *bio,
drivers/md/dm-vdo/vio.h
116
vio->bio = bio;
drivers/md/dm-vdo/vio.h
117
vio->block_count = block_count;
drivers/md/dm-vdo/vio.h
118
vio->type = vio_type;
drivers/md/dm-vdo/vio.h
119
vio->priority = priority;
drivers/md/dm-vdo/vio.h
120
vdo_initialize_completion(&vio->completion, vdo, VIO_COMPLETION);
drivers/md/dm-vdo/vio.h
123
void vdo_set_bio_properties(struct bio *bio, struct vio *vio, bio_end_io_t callback,
drivers/md/dm-vdo/vio.h
126
int vio_reset_bio(struct vio *vio, char *data, bio_end_io_t callback,
drivers/md/dm-vdo/vio.h
128
int vio_reset_bio_with_size(struct vio *vio, char *data, int size, bio_end_io_t callback,
drivers/md/dm-vdo/vio.h
131
void update_vio_error_stats(struct vio *vio, const char *format, ...)
drivers/md/dm-vdo/vio.h
138
static inline bool is_data_vio(struct vio *vio)
drivers/md/dm-vdo/vio.h
140
return (vio->type == VIO_TYPE_DATA);
drivers/md/dm-vdo/vio.h
149
static inline enum vdo_completion_priority get_metadata_priority(struct vio *vio)
drivers/md/dm-vdo/vio.h
151
return ((vio->priority == VIO_PRIORITY_HIGH) ?
drivers/md/dm-vdo/vio.h
161
static inline void continue_vio(struct vio *vio, int result)
drivers/md/dm-vdo/vio.h
164
vdo_set_completion_result(&vio->completion, result);
drivers/md/dm-vdo/vio.h
166
vdo_enqueue_completion(&vio->completion, VDO_WORK_Q_DEFAULT_PRIORITY);
drivers/md/dm-vdo/vio.h
178
static inline void continue_vio_after_io(struct vio *vio, vdo_action_fn callback,
drivers/md/dm-vdo/vio.h
181
vdo_count_completed_bios(vio->bio);
drivers/md/dm-vdo/vio.h
182
vdo_set_completion_callback(&vio->completion, callback, thread);
drivers/md/dm-vdo/vio.h
183
continue_vio(vio, blk_status_to_errno(vio->bio->bi_status));
drivers/md/dm-vdo/vio.h
186
void vio_record_metadata_io_error(struct vio *vio);
drivers/md/dm-vdo/vio.h
190
static inline struct pooled_vio *vio_as_pooled_vio(struct vio *vio)
drivers/md/dm-vdo/vio.h
192
return container_of(vio, struct pooled_vio, vio);
drivers/md/dm-vdo/vio.h
204
void return_vio_to_pool(struct pooled_vio *vio);
drivers/md/dm-vdo/vio.h
26
struct vio vio;
drivers/md/dm-vdo/vio.h
43
static inline struct vio *as_vio(struct vdo_completion *completion)
drivers/md/dm-vdo/vio.h
46
return container_of(completion, struct vio, completion);
drivers/md/dm-vdo/vio.h
56
static inline thread_id_t __must_check get_vio_bio_zone_thread_id(struct vio *vio)
drivers/md/dm-vdo/vio.h
58
return vio->completion.vdo->thread_config.bio_threads[vio->bio_zone];
drivers/md/dm-vdo/vio.h
67
static inline void assert_vio_in_bio_zone(struct vio *vio)
drivers/md/dm-vdo/vio.h
69
thread_id_t expected = get_vio_bio_zone_thread_id(vio);
drivers/md/dm-vdo/vio.h
74
(unsigned long long) pbn_from_vio_bio(vio->bio), thread_id,
drivers/md/dm-vdo/vio.h
82
unsigned int block_count, char *data, struct vio *vio);
drivers/md/dm-vdo/vio.h
86
char *data, struct vio **vio_ptr);
drivers/md/dm-vdo/vio.h
91
struct vio **vio_ptr)
drivers/md/dm-vdo/vio.h
97
void free_vio_components(struct vio *vio);
drivers/md/dm-vdo/vio.h
98
void free_vio(struct vio *vio);
drivers/media/radio/si4713/si4713.c
1465
sdev->vio = devm_regulator_get_optional(&client->dev, "vio");
drivers/media/radio/si4713/si4713.c
1466
if (IS_ERR(sdev->vio)) {
drivers/media/radio/si4713/si4713.c
1467
rval = PTR_ERR(sdev->vio);
drivers/media/radio/si4713/si4713.c
1472
sdev->vio = NULL;
drivers/media/radio/si4713/si4713.c
365
if (sdev->vio) {
drivers/media/radio/si4713/si4713.c
366
err = regulator_enable(sdev->vio);
drivers/media/radio/si4713/si4713.c
406
if (sdev->vio) {
drivers/media/radio/si4713/si4713.c
407
err = regulator_disable(sdev->vio);
drivers/media/radio/si4713/si4713.c
447
if (sdev->vio) {
drivers/media/radio/si4713/si4713.c
448
err = regulator_disable(sdev->vio);
drivers/media/radio/si4713/si4713.h
240
struct regulator *vio;
drivers/mfd/stmpe.c
1414
stmpe->vio = devm_regulator_get_optional(ci->dev, "vio");
drivers/mfd/stmpe.c
1415
if (!IS_ERR(stmpe->vio)) {
drivers/mfd/stmpe.c
1416
ret = regulator_enable(stmpe->vio);
drivers/mfd/stmpe.c
1492
if (!IS_ERR(stmpe->vio) && regulator_is_enabled(stmpe->vio))
drivers/mfd/stmpe.c
1493
regulator_disable(stmpe->vio);
drivers/misc/ibmvmc.c
2304
MODULE_DEVICE_TABLE(vio, ibmvmc_device_table);
drivers/mmc/host/omap.c
1124
if (slot->vio) {
drivers/mmc/host/omap.c
1125
gpiod_set_value(slot->vio, power_on);
drivers/mmc/host/omap.c
1129
if (slot->vio) {
drivers/mmc/host/omap.c
1130
gpiod_set_value(slot->vio, power_on);
drivers/mmc/host/omap.c
117
struct gpio_desc *vio;
drivers/mmc/host/omap.c
1280
slot->vio = devm_gpiod_get_index_optional(host->dev, "vio",
drivers/mmc/host/omap.c
1282
if (IS_ERR(slot->vio))
drivers/mmc/host/omap.c
1283
return dev_err_probe(host->dev, PTR_ERR(slot->vio),
drivers/net/ethernet/ibm/ibmveth.c
2144
MODULE_DEVICE_TABLE(vio, ibmveth_device_table);
drivers/net/ethernet/ibm/ibmvnic.c
6742
MODULE_DEVICE_TABLE(vio, ibmvnic_device_table);
drivers/net/ethernet/sun/ldmvsw.c
130
struct vio_driver_state *vio = &port->vio;
drivers/net/ethernet/sun/ldmvsw.c
133
vio_link_state_change(vio, LDC_EVENT_RESET);
drivers/net/ethernet/sun/ldmvsw.c
135
vio_port_up(vio);
drivers/net/ethernet/sun/ldmvsw.c
347
err = vio_driver_init(&port->vio, vdev, VDEV_NETWORK,
drivers/net/ethernet/sun/ldmvsw.c
353
err = vio_ldc_alloc(&port->vio, &vsw_ldc_cfg, port);
drivers/net/ethernet/sun/ldmvsw.c
378
vio_port_up(&port->vio);
drivers/net/ethernet/sun/ldmvsw.c
398
vio_ldc_free(&port->vio);
drivers/net/ethernet/sun/ldmvsw.c
411
timer_delete_sync(&port->vio.timer);
drivers/net/ethernet/sun/ldmvsw.c
425
vio_ldc_free(&port->vio);
drivers/net/ethernet/sun/ldmvsw.c
456
MODULE_DEVICE_TABLE(vio, vsw_port_match);
drivers/net/ethernet/sun/sunvnet.c
449
err = vio_driver_init(&port->vio, vdev, VDEV_NETWORK,
drivers/net/ethernet/sun/sunvnet.c
455
err = vio_ldc_alloc(&port->vio, &vnet_ldc_cfg, port);
drivers/net/ethernet/sun/sunvnet.c
489
vio_port_up(&port->vio);
drivers/net/ethernet/sun/sunvnet.c
508
timer_delete_sync(&port->vio.timer);
drivers/net/ethernet/sun/sunvnet.c
520
vio_ldc_free(&port->vio);
drivers/net/ethernet/sun/sunvnet.c
534
MODULE_DEVICE_TABLE(vio, vnet_port_match);
drivers/net/ethernet/sun/sunvnet_common.c
102
if (vio_version_after_eq(vio, 1, 6))
drivers/net/ethernet/sun/sunvnet_common.c
1022
ldc_unmap(port->vio.lp,
drivers/net/ethernet/sun/sunvnet_common.c
104
} else if (vio_version_before(vio, 1, 3)) {
drivers/net/ethernet/sun/sunvnet_common.c
111
if (vio_version_after_eq(vio, 1, 7) && port->tso) {
drivers/net/ethernet/sun/sunvnet_common.c
1226
struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
drivers/net/ethernet/sun/sunvnet_common.c
128
return vio_ldc_send(vio, &pkt, sizeof(pkt));
drivers/net/ethernet/sun/sunvnet_common.c
132
static int handle_attr_info(struct vio_driver_state *vio,
drivers/net/ethernet/sun/sunvnet_common.c
135
struct vnet_port *port = to_vnet_port(vio);
drivers/net/ethernet/sun/sunvnet_common.c
1351
if (vio_version_after_eq(&port->vio, 1, 3))
drivers/net/ethernet/sun/sunvnet_common.c
1378
dr = &port->vio.drings[VIO_DRIVER_TX_RING];
drivers/net/ethernet/sun/sunvnet_common.c
1405
err = vnet_skb_map(port->vio.lp, skb, port->tx_bufs[txi].cookies, 2,
drivers/net/ethernet/sun/sunvnet_common.c
1429
if (vio_version_after_eq(&port->vio, 1, 7)) {
drivers/net/ethernet/sun/sunvnet_common.c
1438
if (vio_version_after_eq(&port->vio, 1, 8) &&
drivers/net/ethernet/sun/sunvnet_common.c
1473
trace_vnet_skip_tx_trigger(port->vio._local_sid,
drivers/net/ethernet/sun/sunvnet_common.c
1474
port->vio._peer_sid, dr->cons);
drivers/net/ethernet/sun/sunvnet_common.c
148
pkt->tag.sid = vio_send_sid(vio);
drivers/net/ethernet/sun/sunvnet_common.c
152
if (vio_version_before(vio, 1, 2) && xfer_mode == VIO_DRING_MODE)
drivers/net/ethernet/sun/sunvnet_common.c
1597
info.tag.sid = vio_send_sid(&port->vio);
drivers/net/ethernet/sun/sunvnet_common.c
161
if (vio_version_before(vio, 1, 3)) {
drivers/net/ethernet/sun/sunvnet_common.c
1610
(void)vio_ldc_send(&port->vio, &info,
drivers/net/ethernet/sun/sunvnet_common.c
1617
(void)vio_ldc_send(&port->vio, &info, sizeof(info));
drivers/net/ethernet/sun/sunvnet_common.c
163
} else if (vio_version_after(vio, 1, 3)) {
drivers/net/ethernet/sun/sunvnet_common.c
1635
(void)vio_ldc_send(&port->vio, &info,
drivers/net/ethernet/sun/sunvnet_common.c
1645
(void)vio_ldc_send(&port->vio, &info, sizeof(info));
drivers/net/ethernet/sun/sunvnet_common.c
1676
dr = &port->vio.drings[VIO_DRIVER_TX_RING];
drivers/net/ethernet/sun/sunvnet_common.c
1690
ldc_unmap(port->vio.lp,
drivers/net/ethernet/sun/sunvnet_common.c
1697
ldc_free_exp_dring(port->vio.lp, dr->base,
drivers/net/ethernet/sun/sunvnet_common.c
1725
dr = &port->vio.drings[VIO_DRIVER_TX_RING];
drivers/net/ethernet/sun/sunvnet_common.c
1729
if (vio_version_after_eq(&port->vio, 1, 7))
drivers/net/ethernet/sun/sunvnet_common.c
173
if (vio_version_after_eq(vio, 1, 7))
drivers/net/ethernet/sun/sunvnet_common.c
1734
dring = ldc_alloc_exp_dring(port->vio.lp, len,
drivers/net/ethernet/sun/sunvnet_common.c
194
if (vio_version_after_eq(vio, 1, 6)) {
drivers/net/ethernet/sun/sunvnet_common.c
206
(void)vio_ldc_send(vio, pkt, sizeof(*pkt));
drivers/net/ethernet/sun/sunvnet_common.c
222
return vio_ldc_send(vio, pkt, sizeof(*pkt));
drivers/net/ethernet/sun/sunvnet_common.c
225
static int handle_attr_ack(struct vio_driver_state *vio,
drivers/net/ethernet/sun/sunvnet_common.c
233
static int handle_attr_nack(struct vio_driver_state *vio,
drivers/net/ethernet/sun/sunvnet_common.c
241
int sunvnet_handle_attr_common(struct vio_driver_state *vio, void *arg)
drivers/net/ethernet/sun/sunvnet_common.c
247
return handle_attr_info(vio, pkt);
drivers/net/ethernet/sun/sunvnet_common.c
250
return handle_attr_ack(vio, pkt);
drivers/net/ethernet/sun/sunvnet_common.c
253
return handle_attr_nack(vio, pkt);
drivers/net/ethernet/sun/sunvnet_common.c
261
void sunvnet_handshake_complete_common(struct vio_driver_state *vio)
drivers/net/ethernet/sun/sunvnet_common.c
265
dr = &vio->drings[VIO_DRIVER_RX_RING];
drivers/net/ethernet/sun/sunvnet_common.c
269
dr = &vio->drings[VIO_DRIVER_TX_RING];
drivers/net/ethernet/sun/sunvnet_common.c
402
err = ldc_copy(port->vio.lp, LDC_COPY_IN,
drivers/net/ethernet/sun/sunvnet_common.c
414
if (vio_version_after_eq(&port->vio, 1, 8)) {
drivers/net/ethernet/sun/sunvnet_common.c
478
.sid = vio_send_sid(&port->vio),
drivers/net/ethernet/sun/sunvnet_common.c
491
err = vio_ldc_send(&port->vio, &hdr, sizeof(hdr));
drivers/net/ethernet/sun/sunvnet_common.c
523
struct vio_net_desc *desc = port->vio.desc_buf;
drivers/net/ethernet/sun/sunvnet_common.c
526
err = ldc_get_dring_entry(port->vio.lp, desc, dr->entry_size,
drivers/net/ethernet/sun/sunvnet_common.c
542
err = ldc_put_dring_entry(port->vio.lp, desc, dr->entry_size,
drivers/net/ethernet/sun/sunvnet_common.c
556
struct vio_driver_state *vio = &port->vio;
drivers/net/ethernet/sun/sunvnet_common.c
577
trace_vnet_rx_one(port->vio._local_sid, port->vio._peer_sid,
drivers/net/ethernet/sun/sunvnet_common.c
590
struct vio_driver_state *vio = &port->vio;
drivers/net/ethernet/sun/sunvnet_common.c
62
ldc_disconnect(port->vio.lp);
drivers/net/ethernet/sun/sunvnet_common.c
629
trace_vnet_tx_send_stopped_ack(port->vio._local_sid,
drivers/net/ethernet/sun/sunvnet_common.c
630
port->vio._peer_sid,
drivers/net/ethernet/sun/sunvnet_common.c
635
trace_vnet_tx_defer_stopped_ack(port->vio._local_sid,
drivers/net/ethernet/sun/sunvnet_common.c
636
port->vio._peer_sid,
drivers/net/ethernet/sun/sunvnet_common.c
648
struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_RX_RING];
drivers/net/ethernet/sun/sunvnet_common.c
649
struct vio_driver_state *vio = &port->vio;
drivers/net/ethernet/sun/sunvnet_common.c
688
struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
drivers/net/ethernet/sun/sunvnet_common.c
69
int sunvnet_send_attr_common(struct vio_driver_state *vio)
drivers/net/ethernet/sun/sunvnet_common.c
709
trace_vnet_rx_stopped_ack(port->vio._local_sid,
drivers/net/ethernet/sun/sunvnet_common.c
71
struct vnet_port *port = to_vnet_port(vio);
drivers/net/ethernet/sun/sunvnet_common.c
710
port->vio._peer_sid, end);
drivers/net/ethernet/sun/sunvnet_common.c
77
err = vnet_port_alloc_tx_ring(to_vnet_port(vio));
drivers/net/ethernet/sun/sunvnet_common.c
774
struct vio_driver_state *vio = &vnet->vio;
drivers/net/ethernet/sun/sunvnet_common.c
776
return !!(vio->hs_state & VIO_HS_COMPLETE);
drivers/net/ethernet/sun/sunvnet_common.c
783
struct vio_driver_state *vio = &port->vio;
drivers/net/ethernet/sun/sunvnet_common.c
801
vio_link_state_change(vio, LDC_EVENT_RESET);
drivers/net/ethernet/sun/sunvnet_common.c
803
vio_port_up(vio);
drivers/net/ethernet/sun/sunvnet_common.c
828
vio_link_state_change(vio, LDC_EVENT_UP);
drivers/net/ethernet/sun/sunvnet_common.c
846
&port->vio.drings[VIO_DRIVER_RX_RING];
drivers/net/ethernet/sun/sunvnet_common.c
85
pkt.tag.sid = vio_send_sid(vio);
drivers/net/ethernet/sun/sunvnet_common.c
856
err = ldc_read(vio->lp, &msgbuf, sizeof(msgbuf));
drivers/net/ethernet/sun/sunvnet_common.c
859
vio_conn_reset(vio);
drivers/net/ethernet/sun/sunvnet_common.c
86
if (vio_version_before(vio, 1, 2))
drivers/net/ethernet/sun/sunvnet_common.c
869
err = vio_validate_sid(vio, &msgbuf.tag);
drivers/net/ethernet/sun/sunvnet_common.c
900
err = vio_control_pkt_engine(vio, &msgbuf);
drivers/net/ethernet/sun/sunvnet_common.c
917
struct vio_driver_state *vio = &port->vio;
drivers/net/ethernet/sun/sunvnet_common.c
923
vio_set_intr(vio->vdev->rx_ino, HV_INTR_ENABLED);
drivers/net/ethernet/sun/sunvnet_common.c
932
struct vio_driver_state *vio = &port->vio;
drivers/net/ethernet/sun/sunvnet_common.c
935
vio_set_intr(vio->vdev->rx_ino, HV_INTR_DISABLED);
drivers/net/ethernet/sun/sunvnet_common.c
94
if (vio_version_after(vio, 1, 3)) {
drivers/net/ethernet/sun/sunvnet_common.c
942
struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
drivers/net/ethernet/sun/sunvnet_common.c
948
.sid = vio_send_sid(&port->vio),
drivers/net/ethernet/sun/sunvnet_common.c
958
trace_vnet_tx_pending_stopped_ack(port->vio._local_sid,
drivers/net/ethernet/sun/sunvnet_common.c
959
port->vio._peer_sid,
drivers/net/ethernet/sun/sunvnet_common.c
962
&port->vio.drings[VIO_DRIVER_RX_RING],
drivers/net/ethernet/sun/sunvnet_common.c
972
err = vio_ldc_send(&port->vio, &hdr, sizeof(hdr));
drivers/net/ethernet/sun/sunvnet_common.c
983
trace_vnet_tx_trigger(port->vio._local_sid,
drivers/net/ethernet/sun/sunvnet_common.c
984
port->vio._peer_sid, start, err);
drivers/net/ethernet/sun/sunvnet_common.c
992
struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
drivers/net/ethernet/sun/sunvnet_common.h
147
int sunvnet_send_attr_common(struct vio_driver_state *vio);
drivers/net/ethernet/sun/sunvnet_common.h
148
int sunvnet_handle_attr_common(struct vio_driver_state *vio, void *arg);
drivers/net/ethernet/sun/sunvnet_common.h
149
void sunvnet_handshake_complete_common(struct vio_driver_state *vio);
drivers/net/ethernet/sun/sunvnet_common.h
59
struct vio_driver_state vio;
drivers/net/ethernet/sun/sunvnet_common.h
93
static inline struct vnet_port *to_vnet_port(struct vio_driver_state *vio)
drivers/net/ethernet/sun/sunvnet_common.h
95
return container_of(vio, struct vnet_port, vio);
drivers/net/wireless/ti/wl1251/spi.c
301
wl->vio = devm_regulator_get(&spi->dev, "vio");
drivers/net/wireless/ti/wl1251/spi.c
302
if (IS_ERR(wl->vio)) {
drivers/net/wireless/ti/wl1251/spi.c
303
ret = PTR_ERR(wl->vio);
drivers/net/wireless/ti/wl1251/spi.c
308
ret = regulator_enable(wl->vio);
drivers/net/wireless/ti/wl1251/spi.c
319
regulator_disable(wl->vio);
drivers/net/wireless/ti/wl1251/spi.c
331
regulator_disable(wl->vio);
drivers/net/wireless/ti/wl1251/wl1251.h
268
struct regulator *vio;
drivers/scsi/ibmvscsi/ibmvfc.c
6504
MODULE_DEVICE_TABLE(vio, ibmvfc_device_table);
drivers/scsi/ibmvscsi/ibmvscsi.c
2391
MODULE_DEVICE_TABLE(vio, ibmvscsi_device_table);
drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c
4003
MODULE_DEVICE_TABLE(vio, ibmvscsis_device_table);
drivers/staging/greybus/arche-apb-ctrl.c
131
ret = regulator_enable(apb->vio);
drivers/staging/greybus/arche-apb-ctrl.c
211
if (!IS_ERR(apb->vio) && regulator_is_enabled(apb->vio) > 0)
drivers/staging/greybus/arche-apb-ctrl.c
212
regulator_disable(apb->vio);
drivers/staging/greybus/arche-apb-ctrl.c
365
apb->vio = devm_regulator_get(dev, "vio");
drivers/staging/greybus/arche-apb-ctrl.c
366
if (IS_ERR(apb->vio))
drivers/staging/greybus/arche-apb-ctrl.c
37
struct regulator *vio;
drivers/staging/greybus/arche-apb-ctrl.c
91
if (!IS_ERR(apb->vio)) {
drivers/staging/greybus/arche-apb-ctrl.c
92
ret = regulator_enable(apb->vio);
drivers/tty/hvc/hvcs.c
649
MODULE_DEVICE_TABLE(vio, hvcs_driver_table);
drivers/tty/vcc.c
23
struct vio_driver_state vio;
drivers/tty/vcc.c
256
struct vio_driver_state *vio = &port->vio;
drivers/tty/vcc.c
261
disable_irq_nosync(vio->vdev->rx_irq);
drivers/tty/vcc.c
308
struct vio_driver_state *vio = &port->vio;
drivers/tty/vcc.c
315
rv = ldc_rx_reset(vio->lp);
drivers/tty/vcc.c
327
vccdbgl(vio->lp);
drivers/tty/vcc.c
329
rv = ldc_read(vio->lp, &pkt, sizeof(pkt));
drivers/tty/vcc.c
360
struct vio_driver_state *vio;
drivers/tty/vcc.c
367
vio = &port->vio;
drivers/tty/vcc.c
369
enable_irq(vio->vdev->rx_irq);
drivers/tty/vcc.c
376
vio_conn_reset(vio);
drivers/tty/vcc.c
404
vccdbgl(port->vio.lp);
drivers/tty/vcc.c
406
rv = ldc_write(port->vio.lp, pkt, (VIO_TAG_SIZE + tosend));
drivers/tty/vcc.c
434
struct vio_driver_state *vio;
drivers/tty/vcc.c
440
vio = &port->vio;
drivers/tty/vcc.c
447
vio_link_state_change(vio, event);
drivers/tty/vcc.c
453
vio_conn_reset(vio);
drivers/tty/vcc.c
502
rv = ldc_write(port->vio.lp, &pkt, sizeof(pkt.tag));
drivers/tty/vcc.c
587
rv = vio_driver_init(&port->vio, vdev, VDEV_CONSOLE_CON, vcc_versions,
drivers/tty/vcc.c
592
port->vio.debug = vcc_dbg_vio;
drivers/tty/vcc.c
595
rv = vio_ldc_alloc(&port->vio, &vcc_ldc_cfg, port);
drivers/tty/vcc.c
652
vio_port_up(&port->vio);
drivers/tty/vcc.c
664
vio_ldc_free(&port->vio);
drivers/tty/vcc.c
703
timer_delete_sync(&port->vio.timer);
drivers/tty/vcc.c
704
vio_ldc_free(&port->vio);
drivers/tty/vcc.c
713
kfree(port->vio.name);
drivers/tty/vcc.c
725
MODULE_DEVICE_TABLE(vio, vcc_match);
drivers/tty/vcc.c
747
if (unlikely(!port->vio.lp)) {
drivers/tty/vcc.c
752
vccdbgl(port->vio.lp);
drivers/tty/vcc.c
853
vccdbgl(port->vio.lp);
drivers/tty/vcc.c
859
rv = ldc_write(port->vio.lp, pkt, (VIO_TAG_SIZE + tosend));
drivers/tty/vcc.c
993
kfree(port->vio.name);
include/linux/mfd/stmpe.h
124
struct regulator *vio;