Skip to content

shared-qmi: Remove iteration over slots at startup

Pavan Holla requested to merge pholla/ModemManager:remove_probing_1 into master

MM used to iterate over each SIM slot to load IMSI, operator name etc. However, switching slots at start up caused a few issues in the real world.

a) Sierra Wireless' AUTO-SIM feature, the hidden SIM slot switching is actually triggering a full modem reset (because the firmware detects a new SIM for a different operator, and automatically resets itself to load the firmware+carrier config associated to that other operator).

b) The IMSI on slot 2 is reported to be the same as slot 1. This is solved by adding a 1000ms delay before reading IMSI on slot 2, after GET_CARD_STATUS indicates the sim is ready. The delay means a 2s startup penalty when both slots are loaded.

c) 2/5 developers have encountered a fw bug where the modem incorrectly reports that the SIM on slot 1 has vanished after the sequence of slot switches. This makes the modem unusable.

d) If the eSIM daemon changes slots and opens a channel to the eUICC, MM will detect a hotswap, and break the channel during reprobe.

e) SIMs from a certain large operator in the US take over 20s to be ready. Thus, switching to such a SIM for just loading IMSI may not be worth it.

This change does not affect detection of sims in all slots. We still expose the iccid and presence of all sims. However, properties like IMSI and operator_name will not be exposed for the inactive slot.

Edited by Pavan Holla

Merge request reports