Skip to content

broadband-modem-qmi: Introduce udev flag for reduced facility lock query

On device samsung-serranove, querying the faclility lock state before unlocking the SIM results in a QMI protocol error and a powered off SIM. While ModemManager 1.16.6 first asks for SIM unlocking and thereafter queries the state of facility locks, ModemManager 1.18.2 does it the other way around. That way ModemManager doesn't run on samsungs-serranove. (Issue #448 (closed))

Therefore let's introduce an udev flag that allows skipping the critical part of the facility lock query. That's the "device locks" part. However, the "SIM locks" should still be done to get the status of the facility locks MM_MODEM_3GPP_FACILITY_SIM and MM_MODEM_3GPP_FACILITY_FIXED_DIALING. [1]

On the DMS path that means to skip the "get_ck_status" query but processing the "get_pin_status".

The udev flag is implemended for the DMS path only. For the specific use case the UIM path isn't neccessary.

On devices that have enabled "device locks", this flag won't work well. Skipping the query doesn't disable the locks.

I would have liked to add a general applicable udev rule that tags the modem ports of device samsung-serranove only. Unfortunately, I couldn't find a way to match the device within the modem port rule. Therefore, the udev rule has to be implemented on the device directly. Just for the record, the rule would look like e.g.: SUBSYSTEM=="wwan", ENV{ID_MM_QMI_FACILITY_LOCK_QUERY_REDUCED}="1"

[1] https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/blob/1.18.4/include/ModemManager-enums.h#L1231-1234

Fixes #448 (closed)

Merge request reports