virtio-pci library: introduce vp_modern_get_driver_features()
This patch introduce a helper to get driver/guest features from the device. Signed-off-by: Jason Wang <jasowang@redhat.com> Link: https://lore.kernel.org/r/20210602021536.39525-3-jasowang@redhat.com Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Eli Cohen <elic@nvidia.com>
This commit is contained in:
parent
530a5678bc
commit
0140b3d076
|
@ -383,6 +383,27 @@ u64 vp_modern_get_features(struct virtio_pci_modern_device *mdev)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(vp_modern_get_features);
|
||||
|
||||
/*
|
||||
* vp_modern_get_driver_features - get driver features from device
|
||||
* @mdev: the modern virtio-pci device
|
||||
*
|
||||
* Returns the driver features read from the device
|
||||
*/
|
||||
u64 vp_modern_get_driver_features(struct virtio_pci_modern_device *mdev)
|
||||
{
|
||||
struct virtio_pci_common_cfg __iomem *cfg = mdev->common;
|
||||
|
||||
u64 features;
|
||||
|
||||
vp_iowrite32(0, &cfg->guest_feature_select);
|
||||
features = vp_ioread32(&cfg->guest_feature);
|
||||
vp_iowrite32(1, &cfg->guest_feature_select);
|
||||
features |= ((u64)vp_ioread32(&cfg->guest_feature) << 32);
|
||||
|
||||
return features;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(vp_modern_get_driver_features);
|
||||
|
||||
/*
|
||||
* vp_modern_set_features - set features to device
|
||||
* @mdev: the modern virtio-pci device
|
||||
|
|
|
@ -79,6 +79,7 @@ static inline void vp_iowrite64_twopart(u64 val,
|
|||
}
|
||||
|
||||
u64 vp_modern_get_features(struct virtio_pci_modern_device *mdev);
|
||||
u64 vp_modern_get_driver_features(struct virtio_pci_modern_device *mdev);
|
||||
void vp_modern_set_features(struct virtio_pci_modern_device *mdev,
|
||||
u64 features);
|
||||
u32 vp_modern_generation(struct virtio_pci_modern_device *mdev);
|
||||
|
|
Loading…
Reference in New Issue