Oliver Neukum <oli...@neukum.org> writes: > On Tue, 2013-08-20 at 12:35 +0200, Bjørn Mork wrote: > >> bjorn@nemi:~$ mbimcli -d /dev/cdc-wdm0 --query-packet-service-state > > How does that work internally?
The userspace application/library creates a MBIM message and sends it to the firmware by writing the complete preformatted message to the character device. The firmware replies with its current state and the application reads this message, and decodes it and acts accordingly. The driver is not directly involved. It doesn't even know the protocol. It only provides the transport between the userspace application and the firmware, and all coding and decoding takes place there. The firmware is responsible for keeping track of the current modem state, including connection status, signal level, speed etc. Userspace will query the state when necessary. But it can also keep its own cached version, supported by unsolicited notifications from the firmware. The driver will forward these notifications to the character device, but it will not log or otherwise act on them. I assume this separate channel for device management was added to MBIM because it wouldn't scale to keep adding new CDC notifications and requests. The MBIM management protocol is easily extended by adding new commands and services, including vendor specific services, without requiring any change to the standard or driver. >> So I propose that we add something like this to cdc-wdm instead of >> extending the > > If you think the speed will also be handled at a non-generic > level, go ahead. Great. I'll cook something up then. > We can revisit that decision if new protocols show up. Yes. Bjørn -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html