aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-06-02broadband-modem-qmi: port oma_cancel_session to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port oma_start_client_initiated_session to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port oma_accept_network_initiated_session to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port oma_load_features to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port oma_setup to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port modem_cdma_load_activation_state to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port modem_cdma_run_registration_checks to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port ↵Ben Chan
modem_3gpp_{enable,disable}_unsolicited_registration_events to use GTask
2018-06-02broadband-modem-qmi: port modem_3gpp_run_registration_checks to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port modem_3gpp_register_in_network to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port modem_3gpp_scan_networks to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port modem_3gpp_load_enabled_facility_locks to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port ↵Ben Chan
common_setup_cleanup_unsolicited_registration_events to use GTask
2018-06-02broadband-modem-qmi: port common_setup_cleanup_messaging_unsolicited_events ↵Ben Chan
to use GTask
2018-06-02broadband-modem-qmi: port common_setup_cleanup_unsolicited_events to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port common_enable_disable_unsolicited_events to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port set_current_capabilities to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port set_current_bands to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port set_current_modes to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port signal_load_values to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port load_power_state to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port load_signal_quality to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port load_current_modes to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port modem_load_equipment_identifier to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port modem_load_current_bands to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port modem_load_supported_bands to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port modem_load_own_numbers to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port modem_load_hardware_revision to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port modem_load_revision to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port modem_load_model to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port modem_load_manufacturer to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port modem_load_supported_capabilities to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port modem_load_current_capabilities to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port common_power_up_down_off to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port power_cycle to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port modem_reset to use GTaskBen Chan
2018-06-02broadband-modem-qmi: port modem_factory_reset to use GTaskBen Chan
2018-06-02broadband-modem-qmi: add a temporary assure_qmi_client() helperBen Chan
ensure_qmi_client() uses g_simple_async_report_take_gerror_in_idle(), which can't be mixed with GTask. To allow migrating remaining MMBroadbandModemQmi code to use GTask in a series of smaller patches, this patch adds a temporary assure_qmi_client() helper, which mimics ensure_qmi_client() but uses g_task_report_new_error(). Once all the MMBroadbandModemQmi code is migrated to use GTask, we will drop the old ensure_qmi_client() and renames assure_qmi_client() back to ensure_qmi_client().
2018-06-02base-modem: setup a maximum number of timeouts also for USB modemsAleksander Morgado
We have a maximum number of timeouts that could be enabled for TTY modems, e.g. to detect whether the modem is available in the RS232 port or has been unplugged. This was required because RS232 modems aren't notified via udev, so there was no other way to check presence of the modem. But, the same kind of checks may be used in order to detect failed broken modems. If we have a modem that gets into an unstable state where no AT port command goes through and all get timed out, we can definitely flag the modem as invalid and get rid of it. If we don't do this, we would end up leaving the modem exposed and available for users of the API, but in a non-working state. .... <info> Modem /org/freedesktop/ModemManager1/Modem/0: state changed (registered -> connecting) <debug> Launching 3GPP connection attempt with APN 'telefonica.es' <debug> Looking for best CID... <debug> (ttyACM2) device open count is 2 (open) <debug> (ttyACM2): --> 'AT+CGDCONT?<CR>' <debug> Unexpected +CGDCONT? error: 'Serial command timed out' <warn> (tty/ttyACM2) at port timed out 9 consecutive times <debug> Using empty CID 1 with PDP type 'ipv4' <debug> (ttyACM2) device open count is 3 (open) <debug> (ttyACM2) device open count is 2 (close) <debug> (ttyACM2): --> 'AT+CGDCONT=1,"IP","telefonica.es"<CR>' <warn> Couldn't initialize PDP context with our APN: 'Serial command timed out' <debug> Couldn't connect bearer '/org/freedesktop/ModemManager1/Bearer/0': 'Serial command timed out' <info> Modem /org/freedesktop/ModemManager1/Modem/0: state changed (connecting -> registered) <debug> Couldn't connect bearer: 'Serial command timed out' <debug> (ttyACM2) device open count is 1 (close) <error> (tty/ttyACM2) at port timed out 10 consecutive times, marking modem '/org/freedesktop/ModemManager1/Modem/0' as invalid <debug> Removing from DBus bearer at '/org/freedesktop/ModemManager1/Bearer/0' <debug> [device /sys/devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.5] unexported modem from path '/org/freedesktop/ModemManager1/Modem/0' <debug> Periodic signal checks disabled <debug> (ttyACM2) device open count is 0 (close) <debug> (ttyACM2) closing serial port... <debug> (ttyACM2) serial port closed <debug> (ttyACM2) forced to close port <debug> Modem (u-blox) '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.5' completely disposed
2018-06-02build: post release version bump to 1.9.0Aleksander Morgado
2018-06-02release: bump version to 1.8.0Aleksander Morgado
2018-06-02NEWS: update for 1.8Aleksander Morgado
2018-06-02udev: add tags also on bind actionAleksander Morgado
When a new USB device is hotplugged, e.g. a USB<->RS232 converter that exposes a single ttyUSB0, these udev events happen: add /devices/pci0000:00/0000:00:14.0/usb2/2-1 (usb/usb-device) add /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0 (usb/usb-interface) add /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0/ttyUSB0 (usb-serial) add /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0/ttyUSB0/tty/ttyUSB0 (tty) bind /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0/ttyUSB0 (usb-serial) bind /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0 (usb/usb-interface) bind /devices/pci0000:00/0000:00:14.0/usb2/2-1 (usb/usb-device) Our udev rules in MM only added tags in the 'add' events, and it looks like the only ones 'persistent' after this sequence are those of the last event happening on the specific path. This meant that all TTY subsystem rules (e.g. ID_MM_CANDIDATE) would be stored for later check (e.g. if ModemManager is started after these rules have been applied), which was ok. "udevadm info -p ..." would show these tags correctly always. But this also meant that the 'bind' udev event happening for the USB device didn't get any of our device-specific tags, and so we would be missing them (e.g. ID_MM_DEVICE_MANUAL_SCAN_ONLY) if MM is started after the last event has happened. "udevadm info -p ..." would not show these tags. Modify all our rules to also run at the 'bind' events. See, for context: https://github.com/systemd/systemd/issues/8221
2018-06-02u-blox: wait 20s before probing TOBY-L200 portsAleksander Morgado
https://bugs.freedesktop.org/show_bug.cgi?id=106623
2018-05-27broadband-modem-mbim: minor function renames for SMS read logicAleksander Morgado
There are two ways to report new received SMS messages: * For class 0 (flash) messages, MBIM_CID_SMS_READ are sent. The SMS comes in the MBIM indication itself. * For non-class 0 (standard) messages, a MBIM_CID_SMS_MESSAGE_STORE_STATUS notifications are sent, the SMS is stored and must be read with an additional MBIM request specifying storage index. The names of the functions we had implied the opposite, we were assuming flash/alert messages were reported via MBIM_CID_SMS_MESSAGE_STORE_STATUS, not via MBIM_CID_SMS_READ.
2018-05-27filter: pci and sdio ports under the platform driver filterAleksander Morgado
Do not automatically probe serial ports under the 'pci' or 'sdio' platform drivers unless explicitly tagged with ID_MM_PLATFORM_DRIVER_PROBE. $ realpath /sys/class/tty/ttyS0/ /sys/devices/pci0000:00/0000:00:16.3/tty/ttyS0 $ basename $(realpath /sys/devices/pci0000:00/0000:00:16.3/subsystem) pci
2018-05-27iface-modem-time: don't hold a ref while waiting to be registeredAleksander Morgado
The logic implementing the network timezone loading was holding a strong reference to the modem (inside the GTask) while waiting to be registered. This was triggering some possible memory leaks as the modem object could have been left around even after the modem was disconnected. E.g. if the modem booted without antennas plugged in, it was never getting registered, and if we unplugged it right away in that state, the network timezone logic would have left a modem reference around without disposing it. This issue, combined with e.g. other interfaces relying on disposing its own logic with the last object reference (e.g. Signal interface sets up its logic in a context bound to the lifetime of the object) would mean that a lot of different logic blocks were kept running even after the modem device was unplugged from the system. We avoid this issue by making sure that no new additional reference is taken by the logic in charge of updating the network timezone. We just make the timezone update context be bound to the lifetime of the object, as other interfaces do. While doing this, we also remove the logic in charge of "cancelling" the context, as it isn't needed. If the logic needs to be cancelled, we would just remove any configured timeout, which is enough. As part of the changes, the logic has also been improved so that the network timezone isn't only updated the first time the modem gets registered. If the modem gets unregistered and re-registered, we would reload the network timezone information.
2018-05-24filter: add 'nozomi' and 'qcaux' drivers to MM_FILTER_RULE_TTY_DRIVERDan Williams
nozomi and qcaux only drive modems and thus should be included in this filter rule. Allows nozomi/qcaux devices to work automatically with strict filter mode.
2018-05-24include: fix up whitespaceDan Williams
2018-05-22include: add more 3GPP errorsDan Williams
From 3GPP TS 27.007 version 11.6.0 Release 11, sections 9.2.1, 9.2.2.1, 9.2.2.2, and 9.2.2.3.