Please explain how you would design your generic rpmsg-gpio driver which is derived
From gpio-virtio?
We have already seen the virtio commands are pretty much identical to
what i suggested.
You could just replace virtqueue_add_sgs() with rpmsg_sendto() and
reimplement virtio_gpio_request_vq() to be the callback registered
with rpmsg_create_ept(). The rest of basic GPIO handling should not
need any changes at all.
Interrupt support does however need some changes. The
virtio_gpio_request_vq() replacement would need to see if the received
message indicates an interrupt and call the equivalent of
virtio_gpio_event_vq(), since rpmsg does not have a separate mechanism
to deliver interrupts, unlike rpmsg.
At a guess, 90% of the code would stay the same?
Andrew