aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-10-29helpers-qmi: 'illegal' card application state is fatalAleksander Morgado
No need to retry checking card status when the application state is illegal, just treat the SIM card as unusable right away. https://forum.sierrawireless.com/t/uim-card-application-state-illegal/21842
2020-10-29shared-qmi: ignore NoEffect errors on slot switchingAleksander Morgado
When "UIM Switch Slot" returns a NoEffect error it's because we're already in the desired slot, so just treat it as a successful operation.
2020-10-25log: ignore fatal flag for logging purposesAleksander Morgado
Running with G_DEBUG=fatal-warnings will end up reporting warning logs with G_LOG_FLAG_FATAL, which breaks our own logging logic.
2020-10-25libmm-glib,docs: add missing reference to mm_gdbus_sim_set_eid()Aleksander Morgado
It's a private method, so add it in the Private subsection.
2020-10-21broadband-modem-qmi: minor coding style fixAleksander Morgado
2020-10-19broadband-modem-qmi: fix crash when device removed during initAleksander Morgado
If the modem goes away (ports removed) during the initialization phase (e.g. while QMI clients are being allocated), the MMPortQmi object will be closed and it will lose its internal QmiDevice. We should therefore consider the lack of QmiDevice a valid usecase in track_qmi_device_removed() and return a GError when that happens. #0 0x00007fb544618cc9 in raise () from /lib/libc.so.6 #1 0x00007fb54461bd68 in abort () from /lib/libc.so.6 #2 0x00007fb544e2213d in g_assertion_message () from /usr/lib/libglib-2.0.so.0 #3 0x00007fb544e221ba in g_assertion_message_expr () from /usr/lib/libglib-2.0.so.0 #4 0x00000000004be584 in track_qmi_device_removed () #5 0x00000000004be5e3 in allocate_next_client () #6 0x00000000004be7b1 in qmi_port_allocate_client_ready () #7 0x00007fb5453690a3 in g_task_return_now () from /usr/lib/libgio-2.0.so.0 #8 0x00007fb54536967e in g_task_return () from /usr/lib/libgio-2.0.so.0 #9 0x00000000004dd8f8 in allocate_client_ready () #10 0x00007fb5453690a3 in g_task_return_now () from /usr/lib/libgio-2.0.so.0 #11 0x00007fb54536967e in g_task_return () from /usr/lib/libgio-2.0.so.0 #12 0x00007fb54591d4de in allocate_cid_ready () from /usr/lib/libqmi-glib.so.5 ...
2020-10-19libmm-glib,mmcli: add mm_sim_get_eid and add EID to mmcli outputEric Caruso
This exposes the new EID property of the SIM object on mmcli.
2020-10-19mm-shared-qmi: load EID during SIM slot loadingEric Caruso
SIMs can be created with an EID fetched during load_sim_slots while initializing the modem, if present. Since load_eid would be implemented with the same mechanism we avoid using it here (if Get Slot Status fails once, it probably doesn't make a lot of sense to try it again).
2020-10-19mm-base-sim: add EID D-Bus propertyEric Caruso
This provides a new D-Bus property on the Sim object that exposes the EID of the SIM, if available.
2020-10-19broadband-modem-qmi: minor coding style fixesAleksander Morgado
2020-10-16mm-modem-helpers: add low_nybble_first argument to mm_bcd_to_stringEric Caruso
All BCD-encoded strings used by MM currently have the low nybble of each byte come before the high nybble, but some strings (such as the EID string returned by QMI Get Slot Status) are meant to be read in order with the high nybble before the low one. As such, extend mm_bcd_to_string to decode both.
2020-10-14xmm: fix missing GError initializationAleksander Morgado
2020-10-14simtech: fix missing GError initializationAleksander Morgado
2020-10-14cinterion: fix missing GError initializationAleksander Morgado
2020-10-10iface-modem-location: log old and new 3GPP location ids when updatingAleksander Morgado
2020-10-10iface-modem-location: allow Cell ID only updatesAleksander Morgado
The "Serving System" indications reported via QMI when the device is moving may contain LAC/TAC+CID updates or just CID updates. E.g. this one has "CID 3GPP" (0x1e): Mon Aug 3 11:22:42 2020 daemon.debug [1567]: [/dev/cdc-wdm0] received generic indication (translated)... <<<<<< QMUX: <<<<<< length = 33 <<<<<< flags = 0x80 <<<<<< service = "nas" <<<<<< client = 3 <<<<<< QMI: <<<<<< flags = "indication" <<<<<< transaction = 4512 <<<<<< tlv_length = 21 <<<<<< message = "Serving System" (0x0024) <<<<<< TLV: <<<<<< type = "Serving System" (0x01) <<<<<< length = 6 <<<<<< value = 01:01:01:02:01:08 <<<<<< translated = [ registration_state = 'registered' cs_attach_state = 'attached' ps_attach_state = 'attached' selected_network = '3gpp' radio_interfaces = '{ [0] = 'lte '}' ] <<<<<< TLV: <<<<<< type = "Data Service Capability" (0x11) <<<<<< length = 2 <<<<<< value = 01:0B <<<<<< translated = { [0] = 'lte '} <<<<<< TLV: <<<<<< type = "CID 3GPP" (0x1e) <<<<<< length = 4 <<<<<< value = 14:C2:A8:00 <<<<<< translated = 11059732 And this one has both "CID 3GPP" (0x1e) and "LTE TAC" (0x25): Mon Aug 3 11:23:05 2020 daemon.debug [1567]: [/dev/cdc-wdm0] received generic indication (translated)... <<<<<< QMUX: <<<<<< length = 38 <<<<<< flags = 0x80 <<<<<< service = "nas" <<<<<< client = 3 <<<<<< QMI: <<<<<< flags = "indication" <<<<<< transaction = 4513 <<<<<< tlv_length = 26 <<<<<< message = "Serving System" (0x0024) <<<<<< TLV: <<<<<< type = "Serving System" (0x01) <<<<<< length = 6 <<<<<< value = 01:01:01:02:01:08 <<<<<< translated = [ registration_state = 'registered' cs_attach_state = 'attached' ps_attach_state = 'attached' selected_network = '3gpp' radio_interfaces = '{ [0] = 'lte '}' ] <<<<<< TLV: <<<<<< type = "Data Service Capability" (0x11) <<<<<< length = 2 <<<<<< value = 01:0B <<<<<< translated = { [0] = 'lte '} <<<<<< TLV: <<<<<< type = "CID 3GPP" (0x1e) <<<<<< length = 4 <<<<<< value = 32:36:BC:00 <<<<<< translated = 12334642 <<<<<< TLV: <<<<<< type = "LTE TAC" (0x25) <<<<<< length = 2 <<< We should therefore allow changes only in the CID, maintaining whatever LAC/TAC value we had before.
2020-10-10iface-modem-3gpp: print consolidated reg state info only when updatingAleksander Morgado
2020-10-08mm-bearer-qmi: remove default_ip_family_set checkEric Caruso
According to QC, we should set the IP family in both the Set IP Family and Start Network messages. After removing this check the member is never read, only written; this means it's effectively dead and can be removed.
2020-10-07broadband-modem: Disconnect bearers during disablePavan Holla
Fixes a bug introduced in commit 7e386389, which caused user requested disable operations to go to step DISABLING_STEP_FIRST_AFTER_ENABLE_FAILED. For user requested disable, the first step should be DISABLING_STEP_FIRST.
2020-10-05port-qmi: increase qmi_device_open retriesDaniele Palmas
Telit FN980 requires more time for becoming responsive to qmi requests after device appearance.
2020-10-05telit: add tag ID_MM_TELIT_PORT_DELAY for initial delay mechanismDaniele Palmas
2020-10-05telit: add initial delay for AT ports to become responsiveDaniele Palmas
Add a polling mechanism for port responsiveness, since some modem families require some time before being usable after the serial ports have been exposed by the kernel.
2020-10-05telit: add FN980 and LM9x0 MBIM compositions rulesDaniele Palmas
2020-10-05telit: fix LM9x0 udev rulesDaniele Palmas
2020-10-03broadband-modem-qmi: Report FIXED_DIALING lock correctlyPavan Holla
Querying facility locks should return a FIXED_DIALING lock if PIN2 lock is enabled.
2020-10-03broadband-modem-qmi: Return error if get_pin_status failsPavan Holla
Prior to this CL, failure to get pin status while probing facility locks would not flag an error. Failure to read a pin lock is a critical error and we return it to higher layers.
2020-10-03broadband-modem-qmi: Use UIM service for querying facility locksPavan Holla
DMS_UIM messages have been deprecated, and have been replaced by equivalent UIM messages. Use UIM_GET_CARD_STATUS while querying for facility locks if dms_uim messages were found to be deprecated.
2020-09-29ci: create release tarball and hash as build artifactswicadmin
2020-09-28shared-qmi: cleanup UIM client if SIM hot swap setup failsAleksander Morgado
The cleanup was missing in one of the steps.
2020-09-28shared-qmi: minor style changes in SIM hot swap logicAleksander Morgado
2020-09-28quectel: setup parent SIM hot swap in addition to +QUSIMAleksander Morgado
So that e.g. in QMI-based devices we have both things, not just one.
2020-09-28broadband-modem-mbim: also setup SIM hot swap with QMI over MBIMAleksander Morgado
On QMI-capable MBIM devices, also setup the SIM hot swap logic using QMI over MBIM, so that profile changes are detected.
2020-09-28broadband-modem-mbim: don't cleanup subscriber info on disableAleksander Morgado
The SIM hot swap setup is run during initialization and if it succeeds it must be available throughout the whole execution of this modem object. So, do not cleanup the SUBSCRIBER_INFO flag on 3GPP interface disable, which is completely unrelated to the SIM hot swap setup logic.
2020-09-28broadband-modem-mbim: cleanup the subscriber info setup if enabling failsAleksander Morgado
If enabling the subscriber info notifications fails, we should no longer have the setup for those notifications, so make sure it's cleaned up on error.
2020-09-28shared-qmi: implement SIM/profile change detectionTeijo Kinnunen
Implement eUICC change detection for QMI based modems using one of the following mechanisms (in order of preference): 1. If the modem supports "get slot status" operation, we monitor physical slot status indications from the modem for the active slot to detect when ICCID changes. 2. Use "refresh register all" to subscribe refresh indications when the eUICC triggers REFRESH operation following the enablement of a new profile. 3. Use "refresh register" to subscribe refresh indications (file path of EF_ICCID is used) in a similar way. This is used with older modems that do not support "refresh register all". If ICCID change is detected, the already existing SIM hot swap mechanism in MM is triggered.
2020-09-28Revert "shared-qmi: implement SIM/profile change detection"Aleksander Morgado
This reverts commit e91f2ef315526a1a8a1b451acb5a190686b05225. This was wrongly merged squashing multiple commits together. Reverting to merge separate commits.
2020-09-28shared-qmi: implement SIM/profile change detectionTeijo Kinnunen
Implement eUICC change detection for QMI based modems using one of the following mechanisms (in order of preference): 1. If the modem supports "get slot status" operation, we monitor physical slot status indications from the modem for the active slot to detect when ICCID changes. 2. Use "refresh register all" to subscribe refresh indications when the eUICC triggers REFRESH operation following the enablement of a new profile. 3. Use "refresh register" to subscribe refresh indications (file path of EF_ICCID is used) in a similar way. This is used with older modems that do not support "refresh register all". If ICCID change is detected, the already existing SIM hot swap mechanism in MM is triggered.
2020-09-28po: slovak translation updateDuĊĦan Kazik
2020-09-28gosuncn: new pluginAleksander Morgado
For now, just with port type hints for the GM800 in MBIM mode.
2020-09-25samsung: fix typo in plugin nameAleksander Morgado
2020-09-19iface-modem-messaging: if sms list doesn't exist, free partAleksander Morgado
If the device goes away while we are listing SMS messages, it may happen that we ask the messaging interface to take a part and the sms list object has already been disposed. Make sure the part is freed in that case, so that we avoid memory leaks. ==19138== 6,914 (1,232 direct, 5,682 indirect) bytes in 11 blocks are definitely lost in loss record 5,282 of 5,287 ==19138== at 0x483A77F: malloc (vg_replace_malloc.c:307) ==19138== by 0x5023349: g_malloc (in /usr/lib/libglib-2.0.so.0.6600.0) ==19138== by 0x50446FF: g_slice_alloc (in /usr/lib/libglib-2.0.so.0.6600.0) ==19138== by 0x5044D6A: g_slice_alloc0 (in /usr/lib/libglib-2.0.so.0.6600.0) ==19138== by 0x2577FC: mm_sms_part_new (mm-sms-part.c:180) ==19138== by 0x2504D0: mm_sms_part_3gpp_new_from_binary_pdu (mm-sms-part-3gpp.c:385) ==19138== by 0x21A15C: add_sms_part (mm-broadband-modem-mbim.c:5169) ==19138== by 0x21A31F: sms_read_query_ready (mm-broadband-modem-mbim.c:5215) ==19138== by 0x4E600F3: ??? (in /usr/lib/libgio-2.0.so.0.6600.0) ==19138== by 0x4E64638: ??? (in /usr/lib/libgio-2.0.so.0.6600.0) ==19138== by 0x4D3870D: transaction_task_complete_and_free (mbim-device.c:236) ==19138== by 0x4D396B9: process_message (mbim-device.c:616)
2020-09-19core: add autoptr cleanup methods to all internal typesAleksander Morgado
2020-09-19po: Update Swedish translationAnders Jonsson
2020-09-18po: use package bugreport as MSGID_BUGS_ADDRESSAleksander Morgado
2020-09-18build: set package bugreport to the gitlab issues URLAleksander Morgado
2020-09-15cinterion: Add SIM hot swap to AT broadband modems (PLS8 & PLAS9).Jessy Diamond Exum
Enable the SCKS Unsolicited Result Code (URC) to detect SIM hot swap, and trigger SIM redetection.
2020-09-15cinterion: Configure the PLAS9 to correctly send Unsolicited Result Codes.Jessy Diamond Exum
The PLS8 and PLAS9 modems (and likely many others modems supported by this driver) have two AT capable serial ports: The 'MODEM' AT port (default for PPP) and the 'APPLICATION' AT port (used for general control). The PLS8 modem sends URCs to the APPLICATION port by default, while he PLAS9 defaults sending URCs to the MODEM port. To get URCs to behave on both modems, it is necessary to explicitly set the URC reporting port to APPLICATION.
2020-09-14iface-modem: don't reconfigure sim hot swap context on SIM PIN unlockAleksander Morgado
If we had already successfully run the sim hot swap context setup during the initial initialization, make sure we don't re-run on SIM PIN unlock, because we may be re-creating signal handlers and such.
2020-09-11quectel: minor refactor in the sim hot swap setup logicAleksander Morgado
2020-09-08iface-modem: add mm_iface_modem_check_for_sim_swap functionTeijo Kinnunen
The function shall be needed for profile switch checking.