Messages in this thread | | | From | Sjur BRENDELAND <> | Date | Tue, 14 Aug 2012 19:06:51 +0200 | Subject | RE: [RFC 4/4] remoteproc: Add driver for STE Modem |
| |
Hi Ohad,
>>> It seems to me that a char device will solve these issues: we can use >>> ioctl to control the power, if the user crashes we'll know about it >>> via the release handler, and if the remote processor crashes we can >>> let the user know by sending it a notification for it to read via the fd.
How about skipping definition of ioctls and simply call rproc_boot() upon open and rproc_shutdown() upon close, this is perhaps quirky, but simpler. I'd also like to use a char-misc device, then we get the device node with proper name automatically from existing udev rules.
>> In this case we need a way to make the virtio-drivers release the >> virtio-queues in order to decrement the refcount, right? ... >> So it seems that we need to force an unregistration of the virtio devices, >> in order to make it release its queues. ... > Yeah, no code is needed; something like this should do the trick: > > root@omap4430-panda:/sys/bus/virtio/drivers/virtio_console# echo > virtio1 > unbind
Looking on this once more after vacation I prefer if the ste-rproc driver could enforce shutdown if we use the char-device. In our case user-space will detect modem crashes and power off the device. So if user-space uses char-device to request power off, it feels like kernel space should do everything possible to really trigger the shutdown, including unbinding the virtio devices. Depending on additional "echo .../virtio > unbind" seems like an unnecessary extra dependency.
Alternatively, we could let user-space handle the power switch for the modem directly. Remoteproc could simply notify user-space (e.g. using gen-netlink) when rproc usage count has dropped to zero. And this could trigger power-down. This would be more aligned with our existing solution for power control.
Regards, Sjur
| |