Lines Matching refs:vdev
35 int virtio_get_config(struct udevice *vdev, unsigned int offset, in virtio_get_config() argument
40 ops = virtio_get_ops(vdev->parent); in virtio_get_config()
42 return ops->get_config(vdev->parent, offset, buf, len); in virtio_get_config()
45 int virtio_set_config(struct udevice *vdev, unsigned int offset, in virtio_set_config() argument
50 ops = virtio_get_ops(vdev->parent); in virtio_set_config()
52 return ops->set_config(vdev->parent, offset, buf, len); in virtio_set_config()
55 int virtio_generation(struct udevice *vdev, u32 *counter) in virtio_generation() argument
59 ops = virtio_get_ops(vdev->parent); in virtio_generation()
63 return ops->generation(vdev->parent, counter); in virtio_generation()
66 int virtio_get_status(struct udevice *vdev, u8 *status) in virtio_get_status() argument
70 ops = virtio_get_ops(vdev->parent); in virtio_get_status()
72 return ops->get_status(vdev->parent, status); in virtio_get_status()
75 int virtio_set_status(struct udevice *vdev, u8 status) in virtio_set_status() argument
79 ops = virtio_get_ops(vdev->parent); in virtio_set_status()
81 return ops->set_status(vdev->parent, status); in virtio_set_status()
84 int virtio_reset(struct udevice *vdev) in virtio_reset() argument
88 ops = virtio_get_ops(vdev->parent); in virtio_reset()
90 return ops->reset(vdev->parent); in virtio_reset()
93 int virtio_get_features(struct udevice *vdev, u64 *features) in virtio_get_features() argument
97 ops = virtio_get_ops(vdev->parent); in virtio_get_features()
99 return ops->get_features(vdev->parent, features); in virtio_get_features()
102 int virtio_set_features(struct udevice *vdev) in virtio_set_features() argument
106 ops = virtio_get_ops(vdev->parent); in virtio_set_features()
108 return ops->set_features(vdev->parent); in virtio_set_features()
111 int virtio_find_vqs(struct udevice *vdev, unsigned int nvqs, in virtio_find_vqs() argument
116 ops = virtio_get_ops(vdev->parent); in virtio_find_vqs()
118 return ops->find_vqs(vdev->parent, nvqs, vqs); in virtio_find_vqs()
121 int virtio_del_vqs(struct udevice *vdev) in virtio_del_vqs() argument
125 ops = virtio_get_ops(vdev->parent); in virtio_del_vqs()
127 return ops->del_vqs(vdev->parent); in virtio_del_vqs()
130 int virtio_notify(struct udevice *vdev, struct virtqueue *vq) in virtio_notify() argument
134 ops = virtio_get_ops(vdev->parent); in virtio_notify()
136 return ops->notify(vdev->parent, vq); in virtio_notify()
139 void virtio_add_status(struct udevice *vdev, u8 status) in virtio_add_status() argument
143 if (!virtio_get_status(vdev, &old)) in virtio_add_status()
144 virtio_set_status(vdev, old | status); in virtio_add_status()
147 int virtio_finalize_features(struct udevice *vdev) in virtio_finalize_features() argument
149 struct virtio_dev_priv *uc_priv = dev_get_uclass_priv(vdev->parent); in virtio_finalize_features()
153 ret = virtio_set_features(vdev); in virtio_finalize_features()
160 virtio_add_status(vdev, VIRTIO_CONFIG_S_FEATURES_OK); in virtio_finalize_features()
161 ret = virtio_get_status(vdev, &status); in virtio_finalize_features()
165 debug("(%s): device refuses features %x\n", vdev->name, status); in virtio_finalize_features()
216 struct udevice *vdev; in virtio_uclass_post_probe() local
238 ret = device_bind_driver(udev, name, str, &vdev); in virtio_uclass_post_probe()
247 device_set_name_alloced(vdev); in virtio_uclass_post_probe()
250 ret = bootdev_setup_for_sibling_blk(vdev, "virtio_bootdev"); in virtio_uclass_post_probe()
260 static int virtio_uclass_child_post_bind(struct udevice *vdev) in virtio_uclass_child_post_bind() argument
263 virtio_add_status(vdev, VIRTIO_CONFIG_S_ACKNOWLEDGE); in virtio_uclass_child_post_bind()
268 static int virtio_uclass_child_pre_probe(struct udevice *vdev) in virtio_uclass_child_pre_probe() argument
270 struct virtio_dev_priv *uc_priv = dev_get_uclass_priv(vdev->parent); in virtio_uclass_child_pre_probe()
278 if (device_get_uclass_id(vdev) == UCLASS_BOOTDEV) in virtio_uclass_child_pre_probe()
285 uc_priv->vdev = vdev; in virtio_uclass_child_pre_probe()
291 ret = virtio_reset(vdev); in virtio_uclass_child_pre_probe()
296 virtio_add_status(vdev, VIRTIO_CONFIG_S_DRIVER); in virtio_uclass_child_pre_probe()
299 virtio_get_features(vdev, &device_features); in virtio_uclass_child_pre_probe()
301 vdev->name, device_features); in virtio_uclass_child_pre_probe()
328 debug("(%s): legacy virtio device\n", vdev->name); in virtio_uclass_child_pre_probe()
331 debug("(%s): v1.0 complaint virtio device\n", vdev->name); in virtio_uclass_child_pre_probe()
339 __virtio_set_bit(vdev->parent, i); in virtio_uclass_child_pre_probe()
342 vdev->name, uc_priv->features); in virtio_uclass_child_pre_probe()
343 ret = virtio_finalize_features(vdev); in virtio_uclass_child_pre_probe()
350 virtio_add_status(vdev, VIRTIO_CONFIG_S_FAILED); in virtio_uclass_child_pre_probe()
354 static int virtio_uclass_child_post_probe(struct udevice *vdev) in virtio_uclass_child_post_probe() argument
357 virtio_add_status(vdev, VIRTIO_CONFIG_S_DRIVER_OK); in virtio_uclass_child_post_probe()