search for: req_features

Displaying 18 results from an estimated 18 matches for "req_features".

Did you mean: get_features
2023 May 08
1
[PATCH V2 2/5] vDPA/ifcvf: get_driver_features from virtio registers
..._pci_common_cfg __iomem *cfg = hw->common_cfg; @@ -286,19 +304,6 @@ static void ifcvf_set_features(struct ifcvf_hw *hw, u64 features) vp_iowrite32(features >> 32, &cfg->guest_feature); } -static int ifcvf_config_features(struct ifcvf_hw *hw) -{ - ifcvf_set_features(hw, hw->req_features); - ifcvf_add_status(hw, VIRTIO_CONFIG_S_FEATURES_OK); - - if (!(ifcvf_get_status(hw) & VIRTIO_CONFIG_S_FEATURES_OK)) { - IFCVF_ERR(hw->pdev, "Failed to set FEATURES_OK status\n"); - return -EIO; - } - - return 0; -} - u16 ifcvf_get_vq_state(struct ifcvf_hw *hw, u16 qid) { st...
2023 Mar 31
2
[PATCH 2/5] get_driver_features from virito registers
..._pci_common_cfg __iomem *cfg = hw->common_cfg; @@ -286,19 +304,6 @@ static void ifcvf_set_features(struct ifcvf_hw *hw, u64 features) vp_iowrite32(features >> 32, &cfg->guest_feature); } -static int ifcvf_config_features(struct ifcvf_hw *hw) -{ - ifcvf_set_features(hw, hw->req_features); - ifcvf_add_status(hw, VIRTIO_CONFIG_S_FEATURES_OK); - - if (!(ifcvf_get_status(hw) & VIRTIO_CONFIG_S_FEATURES_OK)) { - IFCVF_ERR(hw->pdev, "Failed to set FEATURES_OK status\n"); - return -EIO; - } - - return 0; -} - u16 ifcvf_get_vq_state(struct ifcvf_hw *hw, u16 qid) { st...
2019 Oct 21
0
[RFC 1/2] vhost: IFC VF hardware operation layer
...t); >>> +??? features_hi = ioread32(&cfg->device_feature); >>> + >>> +??? return ((u64)features_hi << 32) | features_lo; >>> +} >>> +static int ifcvf_with_feature(struct ifcvf_hw *hw, u64 bit) >>> +{ >>> +??? return (hw->req_features & (1ULL << bit)) != 0; >>> +} >>> + >>> +static void ifcvf_read_dev_config(struct ifcvf_hw *hw, u64 offset, >>> +?????????????? void *dst, int length) >>> +{ >>> +??? int i; >>> +??? u8 *p; >>> +??? u8 old_gen, new_ge...
2019 Oct 16
0
[RFC 1/2] vhost: IFC VF hardware operation layer
...re); > + > + iowrite32(1, &cfg->device_feature_select); > + features_hi = ioread32(&cfg->device_feature); > + > + return ((u64)features_hi << 32) | features_lo; > +} > +static int ifcvf_with_feature(struct ifcvf_hw *hw, u64 bit) > +{ > + return (hw->req_features & (1ULL << bit)) != 0; > +} > + > +static void ifcvf_read_dev_config(struct ifcvf_hw *hw, u64 offset, > + void *dst, int length) > +{ > + int i; > + u8 *p; > + u8 old_gen, new_gen; > + > + do { > + old_gen = ioread8(&hw->common_cfg->conf...
2023 Jun 30
4
[PATCH virtio 0/4] pds_vdpa: mac, reset, and irq updates
v2 for internal review - heavily reworked NET_F_MAC patch, matches recent PR-68875 - reordered to put "clean and reset vqs" before "alloc-irq" to make them slightly simpler patches - other minor cleanups for simpler patches These are some fixes for device providing a MAC address, for allocating irq resources later to support vhost use, and for properly cleaning vq info
2023 Jun 30
4
[PATCH virtio 0/4] pds_vdpa: mac, reset, and irq updates
v2 for internal review - heavily reworked NET_F_MAC patch, matches recent PR-68875 - reordered to put "clean and reset vqs" before "alloc-irq" to make them slightly simpler patches - other minor cleanups for simpler patches These are some fixes for device providing a MAC address, for allocating irq resources later to support vhost use, and for properly cleaning vq info
2023 Jul 07
1
[PATCH virtio 1/4] pds_vdpa: reset to vdpa specified mac
...].qid = i; >> diff --git a/drivers/vdpa/pds/vdpa_dev.h b/drivers/vdpa/pds/vdpa_dev.h >> index a1bc37de9537..cf02df287fc4 100644 >> --- a/drivers/vdpa/pds/vdpa_dev.h >> +++ b/drivers/vdpa/pds/vdpa_dev.h >> @@ -39,6 +39,7 @@ struct pds_vdpa_device { >> u64 req_features; /* features requested by vdpa */ >> u8 vdpa_index; /* rsvd for future subdevice use */ >> u8 num_vqs; /* num vqs in use */ >> + u8 mac[ETH_ALEN]; /* mac selected when the device was added */...
2023 Mar 31
7
[PATCH 0/5] vDPA/ifcvf: implement immediate initialization mechanism
Formerly, ifcvf driver has implemented a lazy-initialization mechanism for the virtqueues and other config space contents, it would store all configurations that passed down from the userspace, then load them to the device config space upon DRIVER_OK. This can not serve live migration, so this series implement an immediate initialization mechanism, which means rather than the former store-load
2023 May 08
6
[PATCH V2 0/5] vDPA/ifcvf: implement immediate initialization mechanism
Formerly, ifcvf driver has implemented a lazy-initialization mechanism for the virtqueues and other config space contents, it would store all configurations that passed down from the userspace, then load them to the device config space upon DRIVER_OK. This can not serve live migration, so this series implement an immediate initialization mechanism, which means rather than the former store-load
2019 Nov 08
0
[PATCH 1/2] IFC hardware operation layer
..._select); > + iowrite32(features >> 32, &cfg->guest_feature); > +} > + > +static int ifcvf_config_features(struct ifcvf_hw *hw) > +{ > + struct ifcvf_adapter *ifcvf; > + > + ifcvf = container_of(hw, struct ifcvf_adapter, vf); > + ifcvf_set_features(hw, hw->req_features); > + ifcvf_add_status(hw, VIRTIO_CONFIG_S_FEATURES_OK); > + > + if (!(ifcvf_get_status(hw) & VIRTIO_CONFIG_S_FEATURES_OK)) { > + IFC_ERR(ifcvf->dev, "Failed to set FEATURES_OK status\n"); > + return -EIO; > + } > + > + return 0; > +} > + > +void...
2019 Nov 05
1
[PATCH 1/2] IFC hardware operation layer
..._select); > + iowrite32(features >> 32, &cfg->guest_feature); > +} > + > +static int ifcvf_config_features(struct ifcvf_hw *hw) > +{ > + struct ifcvf_adapter *ifcvf; > + > + ifcvf = container_of(hw, struct ifcvf_adapter, vf); > + ifcvf_set_features(hw, hw->req_features); > + ifcvf_add_status(hw, VIRTIO_CONFIG_S_FEATURES_OK); > + > + if (!(ifcvf_get_status(hw) & VIRTIO_CONFIG_S_FEATURES_OK)) { > + IFC_ERR(ifcvf->dev, "Failed to set FEATURES_OK status\n"); > + return -EIO; > + } > + > + return 0; > +} > + > +void...
2019 Oct 22
0
[RFC 2/2] vhost: IFC VF vdpa layer
...struct mdev_device *mdev, u64 >>>>> features) >>>>> +{ >>>>> +??? struct ifcvf_adapter *adapter = mdev_get_drvdata(mdev); >>>>> +??? struct ifcvf_hw *vf = IFC_PRIVATE_TO_VF(adapter); >>>>> + >>>>> +??? vf->req_features = features; >>>>> + >>>>> +??? return 0; >>>>> +} >>>>> + >>>>> +static u64 ifcvf_mdev_get_vq_state(struct mdev_device *mdev, u16 >>>>> qid) >>>>> +{ >>>>> +??? struct ifcvf_adap...
2019 Oct 23
0
[RFC 2/2] vhost: IFC VF vdpa layer
...gt;> u64 features) >>>>>>> +{ >>>>>>> +??? struct ifcvf_adapter *adapter = mdev_get_drvdata(mdev); >>>>>>> +??? struct ifcvf_hw *vf = IFC_PRIVATE_TO_VF(adapter); >>>>>>> + >>>>>>> +??? vf->req_features = features; >>>>>>> + >>>>>>> +??? return 0; >>>>>>> +} >>>>>>> + >>>>>>> +static u64 ifcvf_mdev_get_vq_state(struct mdev_device *mdev, >>>>>>> u16 qid) >>>>&gt...
2019 Nov 05
0
[PATCH 1/2] IFC hardware operation layer
..._select); > + iowrite32(features >> 32, &cfg->guest_feature); > +} > + > +static int ifcvf_config_features(struct ifcvf_hw *hw) > +{ > + struct ifcvf_adapter *ifcvf; > + > + ifcvf = container_of(hw, struct ifcvf_adapter, vf); > + ifcvf_set_features(hw, hw->req_features); > + ifcvf_add_status(hw, VIRTIO_CONFIG_S_FEATURES_OK); > + > + if (!(ifcvf_get_status(hw) & VIRTIO_CONFIG_S_FEATURES_OK)) { > + IFC_ERR(ifcvf->dev, "Failed to set FEATURES_OK status\n"); > + return -EIO; > + } > + > + return 0; > +} > + > +void...
2019 Nov 06
0
[PATCH 1/2] IFC hardware operation layer
..._select); > + iowrite32(features >> 32, &cfg->guest_feature); > +} > + > +static int ifcvf_config_features(struct ifcvf_hw *hw) > +{ > + struct ifcvf_adapter *ifcvf; > + > + ifcvf = container_of(hw, struct ifcvf_adapter, vf); > + ifcvf_set_features(hw, hw->req_features); > + ifcvf_add_status(hw, VIRTIO_CONFIG_S_FEATURES_OK); > + > + if (!(ifcvf_get_status(hw) & VIRTIO_CONFIG_S_FEATURES_OK)) { > + IFC_ERR(ifcvf->dev, "Failed to set FEATURES_OK status\n"); > + return -EIO; > + } > + > + return 0; > +} > + > +void...
2019 Oct 21
0
[RFC 2/2] vhost: IFC VF vdpa layer
...gt;>> +static int ifcvf_mdev_set_features(struct mdev_device *mdev, u64 >>> features) >>> +{ >>> +??? struct ifcvf_adapter *adapter = mdev_get_drvdata(mdev); >>> +??? struct ifcvf_hw *vf = IFC_PRIVATE_TO_VF(adapter); >>> + >>> +??? vf->req_features = features; >>> + >>> +??? return 0; >>> +} >>> + >>> +static u64 ifcvf_mdev_get_vq_state(struct mdev_device *mdev, u16 qid) >>> +{ >>> +??? struct ifcvf_adapter *adapter = mdev_get_drvdata(mdev); >>> +??? struct ifcvf_hw *vf =...
2019 Oct 16
0
[RFC 2/2] vhost: IFC VF vdpa layer
...C VF can't get any update through its firmware? > +} > + > +static int ifcvf_mdev_set_features(struct mdev_device *mdev, u64 features) > +{ > + struct ifcvf_adapter *adapter = mdev_get_drvdata(mdev); > + struct ifcvf_hw *vf = IFC_PRIVATE_TO_VF(adapter); > + > + vf->req_features = features; > + > + return 0; > +} > + > +static u64 ifcvf_mdev_get_vq_state(struct mdev_device *mdev, u16 qid) > +{ > + struct ifcvf_adapter *adapter = mdev_get_drvdata(mdev); > + struct ifcvf_hw *vf = IFC_PRIVATE_TO_VF(adapter); > + > + return vf->vring[qid].last_...
2019 Nov 06
0
[PATCH 2/2] IFC VDPA layer
...s(struct mdev_device *mdev) > +{ > + struct ifcvf_hw *vf = mdev_to_vf(mdev); > + > + return ifcvf_get_features(vf); > +} > + > +static int ifcvf_mdev_set_features(struct mdev_device *mdev, u64 features) > +{ > + struct ifcvf_hw *vf = mdev_to_vf(mdev); > + > + vf->req_features = features; > + > + return 0; > +} > + > +static u64 ifcvf_mdev_get_vq_state(struct mdev_device *mdev, u16 qid) > +{ > + struct ifcvf_hw *vf = mdev_to_vf(mdev); > + u16 last_avail_idx; > + > + last_avail_idx = *(u16 *)(vf->lm_cfg + IFCVF_LM_RING_STATE_OFFSET + >...