On Tue, May 2, 2023 at 9:11 PM Alvaro Karsz <alvaro.karsz@xxxxxxxxxxxxx> wrote: > > The callback sends a resume command to the DPU through > the control mechanism. > > Signed-off-by: Alvaro Karsz <alvaro.karsz@xxxxxxxxxxxxx> Acked-by: Jason Wang <jasowang@xxxxxxxxxx> Thanks > --- > drivers/vdpa/solidrun/snet_ctrl.c | 6 ++++++ > drivers/vdpa/solidrun/snet_main.c | 15 +++++++++++++++ > drivers/vdpa/solidrun/snet_vdpa.h | 1 + > 3 files changed, 22 insertions(+) > > diff --git a/drivers/vdpa/solidrun/snet_ctrl.c b/drivers/vdpa/solidrun/snet_ctrl.c > index 3858738643b..3cef2571d15 100644 > --- a/drivers/vdpa/solidrun/snet_ctrl.c > +++ b/drivers/vdpa/solidrun/snet_ctrl.c > @@ -16,6 +16,7 @@ enum snet_ctrl_opcodes { > SNET_CTRL_OP_DESTROY = 1, > SNET_CTRL_OP_READ_VQ_STATE, > SNET_CTRL_OP_SUSPEND, > + SNET_CTRL_OP_RESUME, > }; > > #define SNET_CTRL_TIMEOUT 2000000 > @@ -328,3 +329,8 @@ int snet_suspend_dev(struct snet *snet) > { > return snet_send_ctrl_msg(snet, SNET_CTRL_OP_SUSPEND, 0); > } > + > +int snet_resume_dev(struct snet *snet) > +{ > + return snet_send_ctrl_msg(snet, SNET_CTRL_OP_RESUME, 0); > +} > diff --git a/drivers/vdpa/solidrun/snet_main.c b/drivers/vdpa/solidrun/snet_main.c > index cdcd84ce4f5..99428a04068 100644 > --- a/drivers/vdpa/solidrun/snet_main.c > +++ b/drivers/vdpa/solidrun/snet_main.c > @@ -509,6 +509,20 @@ static int snet_suspend(struct vdpa_device *vdev) > return ret; > } > > +static int snet_resume(struct vdpa_device *vdev) > +{ > + struct snet *snet = vdpa_to_snet(vdev); > + int ret; > + > + ret = snet_resume_dev(snet); > + if (ret) > + SNET_ERR(snet->pdev, "SNET[%u] resume failed, err: %d\n", snet->sid, ret); > + else > + SNET_DBG(snet->pdev, "Resume SNET[%u] device\n", snet->sid); > + > + return ret; > +} > + > static const struct vdpa_config_ops snet_config_ops = { > .set_vq_address = snet_set_vq_address, > .set_vq_num = snet_set_vq_num, > @@ -536,6 +550,7 @@ static const struct vdpa_config_ops snet_config_ops = { > .get_config = snet_get_config, > .set_config = snet_set_config, > .suspend = snet_suspend, > + .resume = snet_resume, > }; > > static int psnet_open_pf_bar(struct pci_dev *pdev, struct psnet *psnet) > diff --git a/drivers/vdpa/solidrun/snet_vdpa.h b/drivers/vdpa/solidrun/snet_vdpa.h > index 3c78d4e7d48..36ac285835e 100644 > --- a/drivers/vdpa/solidrun/snet_vdpa.h > +++ b/drivers/vdpa/solidrun/snet_vdpa.h > @@ -204,5 +204,6 @@ void snet_ctrl_clear(struct snet *snet); > int snet_destroy_dev(struct snet *snet); > int snet_read_vq_state(struct snet *snet, u16 idx, struct vdpa_vq_state *state); > int snet_suspend_dev(struct snet *snet); > +int snet_resume_dev(struct snet *snet); > > #endif //_SNET_VDPA_H_ > -- > 2.34.1 > _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization