Lines Matching refs:vdev

36 int virtio_get_config(struct udevice *vdev, unsigned int offset,  in virtio_get_config()  argument
41 ops = virtio_get_ops(vdev->parent); in virtio_get_config()
43 return ops->get_config(vdev->parent, offset, buf, len); in virtio_get_config()
46 int virtio_set_config(struct udevice *vdev, unsigned int offset, in virtio_set_config() argument
51 ops = virtio_get_ops(vdev->parent); in virtio_set_config()
53 return ops->set_config(vdev->parent, offset, buf, len); in virtio_set_config()
56 int virtio_generation(struct udevice *vdev, u32 *counter) in virtio_generation() argument
60 ops = virtio_get_ops(vdev->parent); in virtio_generation()
64 return ops->generation(vdev->parent, counter); in virtio_generation()
67 int virtio_get_status(struct udevice *vdev, u8 *status) in virtio_get_status() argument
71 ops = virtio_get_ops(vdev->parent); in virtio_get_status()
73 return ops->get_status(vdev->parent, status); in virtio_get_status()
76 int virtio_set_status(struct udevice *vdev, u8 status) in virtio_set_status() argument
80 ops = virtio_get_ops(vdev->parent); in virtio_set_status()
82 return ops->set_status(vdev->parent, status); in virtio_set_status()
85 int virtio_reset(struct udevice *vdev) in virtio_reset() argument
89 ops = virtio_get_ops(vdev->parent); in virtio_reset()
91 return ops->reset(vdev->parent); in virtio_reset()
94 int virtio_get_features(struct udevice *vdev, u64 *features) in virtio_get_features() argument
98 ops = virtio_get_ops(vdev->parent); in virtio_get_features()
100 return ops->get_features(vdev->parent, features); in virtio_get_features()
103 int virtio_set_features(struct udevice *vdev) in virtio_set_features() argument
107 ops = virtio_get_ops(vdev->parent); in virtio_set_features()
109 return ops->set_features(vdev->parent); in virtio_set_features()
112 int virtio_find_vqs(struct udevice *vdev, unsigned int nvqs, in virtio_find_vqs() argument
117 ops = virtio_get_ops(vdev->parent); in virtio_find_vqs()
119 return ops->find_vqs(vdev->parent, nvqs, vqs); in virtio_find_vqs()
122 int virtio_del_vqs(struct udevice *vdev) in virtio_del_vqs() argument
126 ops = virtio_get_ops(vdev->parent); in virtio_del_vqs()
128 return ops->del_vqs(vdev->parent); in virtio_del_vqs()
131 int virtio_notify(struct udevice *vdev, struct virtqueue *vq) in virtio_notify() argument
135 ops = virtio_get_ops(vdev->parent); in virtio_notify()
137 return ops->notify(vdev->parent, vq); in virtio_notify()
140 void virtio_add_status(struct udevice *vdev, u8 status) in virtio_add_status() argument
144 if (!virtio_get_status(vdev, &old)) in virtio_add_status()
145 virtio_set_status(vdev, old | status); in virtio_add_status()
148 int virtio_finalize_features(struct udevice *vdev) in virtio_finalize_features() argument
150 struct virtio_dev_priv *uc_priv = dev_get_uclass_priv(vdev->parent); in virtio_finalize_features()
154 ret = virtio_set_features(vdev); in virtio_finalize_features()
161 virtio_add_status(vdev, VIRTIO_CONFIG_S_FEATURES_OK); in virtio_finalize_features()
162 ret = virtio_get_status(vdev, &status); in virtio_finalize_features()
166 debug("(%s): device refuses features %x\n", vdev->name, status); in virtio_finalize_features()
217 struct udevice *vdev; in virtio_uclass_post_probe() local
239 ret = device_bind_driver(udev, name, str, &vdev); in virtio_uclass_post_probe()
248 device_set_name_alloced(vdev); in virtio_uclass_post_probe()
251 ret = bootdev_setup_sibling_blk(vdev, "virtio_bootdev"); in virtio_uclass_post_probe()
261 static int virtio_uclass_child_post_bind(struct udevice *vdev) in virtio_uclass_child_post_bind() argument
264 virtio_add_status(vdev, VIRTIO_CONFIG_S_ACKNOWLEDGE); in virtio_uclass_child_post_bind()
269 static int virtio_uclass_child_pre_probe(struct udevice *vdev) in virtio_uclass_child_pre_probe() argument
271 struct virtio_dev_priv *uc_priv = dev_get_uclass_priv(vdev->parent); in virtio_uclass_child_pre_probe()
279 if (device_get_uclass_id(vdev) == UCLASS_BOOTDEV) in virtio_uclass_child_pre_probe()
286 uc_priv->vdev = vdev; in virtio_uclass_child_pre_probe()
292 ret = virtio_reset(vdev); in virtio_uclass_child_pre_probe()
297 virtio_add_status(vdev, VIRTIO_CONFIG_S_DRIVER); in virtio_uclass_child_pre_probe()
300 virtio_get_features(vdev, &device_features); in virtio_uclass_child_pre_probe()
302 vdev->name, device_features); in virtio_uclass_child_pre_probe()
329 debug("(%s): legacy virtio device\n", vdev->name); in virtio_uclass_child_pre_probe()
332 debug("(%s): v1.0 complaint virtio device\n", vdev->name); in virtio_uclass_child_pre_probe()
340 __virtio_set_bit(vdev->parent, i); in virtio_uclass_child_pre_probe()
343 vdev->name, uc_priv->features); in virtio_uclass_child_pre_probe()
344 ret = virtio_finalize_features(vdev); in virtio_uclass_child_pre_probe()
351 virtio_add_status(vdev, VIRTIO_CONFIG_S_FAILED); in virtio_uclass_child_pre_probe()
355 static int virtio_uclass_child_post_probe(struct udevice *vdev) in virtio_uclass_child_post_probe() argument
358 virtio_add_status(vdev, VIRTIO_CONFIG_S_DRIVER_OK); in virtio_uclass_child_post_probe()