* Jason Wang <> [2021-08-18 13:40:45]:
> > Hmm ..are you suggesting that we read the Version register as part of reset code
> > and do the wait part only for v3 device?
>
> We only need to read the version once (see virtio_mmio_probe()). So it
Ok sorry saw that now.
> could be something like
>
> if (vm_dev->version == 0x3) {
> while (readl(vm_dev->base + VIRTIO_MMIO_STATUS))
> msleep(1);
> }
>
> > Otherwise we have the same issue as
> > feature bit with version change also.
> >
> > Can't the driver do the same with feature register also? Do poll if
> > WAIT_FOR_RESET_COMPLETION feature bit is set, which can happen before feature
> > negotiation is complete.
>
> The possible issue is that the feature negotiation is not done at that time.
Fine let me take a stab at the next version which will have this:
* Introduce a status bit for device to indicate "reset in progress". This could
be adopted by other transports also (for ex PCI).
* For v3 MMIO devices, driver, after initiating reset, should wait until
status = 0 or device indicates "failure". What the driver does when it sees
failure can be implementation defined (it can give up or try reset few more
times)
- vatsa
--
Qualcomm Innovation Center, Inc. is submitting the attached "feedback" as a
non-member to the virtio-dev mailing list for consideration and inclusion.