diff options
author | Aleksander Morgado <aleksandermj@chromium.org> | 2024-03-06 13:47:55 +0000 |
---|---|---|
committer | Aleksander Morgado <aleksandermj@chromium.org> | 2024-03-12 10:15:59 +0000 |
commit | bd255849dcdbcaa3280033b0974a6a5e0473566e (patch) | |
tree | 128d517534eb046d521d471233ffd3c4b390d285 /src/mm-iface-modem-firmware.c | |
parent | 07f1f5864204dfdf455067def863fcd20c8c6a26 (diff) |
base-manager: reprobe device on late port additions
There is no guarantee from the kernel that the ports of a given device
will all be notified via uevents on a timely manner. We assume it, but
we cannot be completely sure.
There are two main scenarios that we have been seen when the ports of a
device are not notified close enough to each other:
* A modem object is created, but not with the desired control protocol.
E.g. a QMI or MBIM modem would end up controlled via AT commands if
the cdc-wdm port was added too late.
* A modem object is not created at all, and the device object was
removed completely. E.g. when the net port addition in a QMI or MBIM
modem happens too late.
In order to avoid those cases, we will now fully reprobe all the ports
of the device from scratch whenever a new valid port addition happens
after the initial probing of the device has already been completed. If a
modem object is available at that time, we will remove it right away.
Diffstat (limited to 'src/mm-iface-modem-firmware.c')
0 files changed, 0 insertions, 0 deletions