Commit Graph
26 Commits
Author SHA1 Message Date
Aleksander Morgado 4b058872a0 plugins: don't add plugin name in log message explicitly 2020-04-08 17:53:42 +02:00
Aleksander Morgado d15da9cf60 sierra: port to use object logging 2020-04-08 16:35:10 +02:00
Ben Chan 043645ea57 sierra: port mm_common_sierra_load_power_state to use GTask 2017-09-18 20:39:03 -07:00
Ben Chan 1eb51d96f7 sierra: port mm_common_sierra_modem_power_up to use GTask 2017-09-18 20:39:03 -07:00
Ben Chan c401646db8 sierra: port mm_common_sierra_custom_init to use GTask 2017-09-18 20:39:03 -07:00
Aleksander Morgado 2eb55d3224 plugins: use G_N_ELEMENTS when iterating ports array 2017-05-30 17:28:23 +02:00
Aleksander Morgado ae9ede926a core: use the kernel device object in the port object and the plugin interface
The mm_base_modem_grab_port() now receives a MMKernelDevice directly from the
plugin, which is then stored in the MMPort corresponding to the port.

This means that we have direct access to e.g. all properties set by udev rules
everywhere, and we don't need additional GUdevClient objects (e.g. like the one
used in the Huawei plugin to detect NDISDUP support during runtime).

For virtual ports (e.g. generated during unit tests), we have a new 'generic'
kernel device object which just provides the values from the kernel device
properties given during its creation.
2016-09-29 15:43:05 +02:00
Aleksander Morgado ffde429843 core: use G_SOURCE_REMOVE and G_SOURCE_CONTINUE in GSourceFuncs 2015-12-02 17:07:39 +01:00
Aleksander Morgado b115945399 sierra: move custom init and port grabbing methods to separate source files 2015-02-16 17:30:38 +01:00
Aleksander Morgado 5358d6fea0 sim: rename 'MMSim' to 'MMBaseSim'
Just so that we don't have same header names in src/ and /libmm-glib.
2014-07-06 16:55:29 +02:00
Aleksander Morgado 0126eb6311 sierra: PCSTATE=0 needs to be treated as low-power mode
OFF only applies to a real shutdown, where the modem no longer replies.
2014-05-05 20:30:45 +02:00
Aleksander Morgado 6f235b9948 ports: rename 'MMAtSerialPort' to 'MMPortSerialAt' 2014-02-13 13:40:01 +01:00
Aleksander Morgado 85d5d96824 port: remove 'carrier-detect' property
It is no longer used since commit 736aa0d2d.
2013-11-15 17:25:33 +01:00
Aleksander Morgado 0f9873c23a sierra: load power state with !pcstate? in cdma-only modems 2013-01-11 11:21:08 +01:00
Aleksander Morgado 9f5cfefb00 sierra: in 3GPP, no need to check if already powered up before powering up
This logic is now implemented by the parent broadband modem object.

Also, implement a custom initial power state loading, so that CDMA-only modems
get marked as 'offline', in order to launch !pcstate=1 to power them up during
the first enabling. The custom initial power state loading will run the parent's
implementation in non-CDMA-only modems.
2013-01-11 10:05:45 +01:00
Aleksander Morgado eae28e9be4 sierra: wait up to 10s for the power up command reply
Specially the first time that CFUN=1,0 is issued after the initial power up, we
really need to wait more than 3s for the AT command reply. Otherwise, the modem
won't like it and it will reset itself :-/
2012-12-28 10:34:43 +01:00
Aleksander Morgado 35775e3634 sierra: ignore all +PACSP messages
Not only +PACSP0, but also +PACSP1.
2012-12-28 08:49:35 +01:00
Dan Williams 5427f0d356 sierra: restore longer CFUN=1 timeout for older devices
Turns out older devices (like the C885/AT&T Mercury) crash often
when we don't wait for them to settle from CFUN=1.  5 seconds is
too short, but the crashes go away when we wait for 10 seconds.
Newer modems like the USB306 don't have this problem, so we just
check to see if the modem is a DirectIP device (using sierra_net)
and only use the shorter timeout for those newer devices.

This is a separate problem from some older modems returning ERROR
to valid commands that are sent too soon after CFUN=1, which was
observed on really old devices like the PCMCIA 860.
2012-12-10 16:33:05 -06:00
Dan Williams 11db2ea380 sierra: fix CFUN power up delay handling
All Sierra devices appear to require short delay after powering up,
otherwise subsequent commands may return errors. Older devices need
longer so ensure new devices are penalized just for being new.

This is the port to git master of the following commit, for which we
don't need to do #2:

commit 814febe1fd9baacdb33c79f11c140187df36c4f1
Author: Dan Williams <dcbw@redhat.com>
Date:   Tue Oct 30 16:16:25 2012 -0500

    sierra: fix CFUN power up delay handling

    1) all Sierra devices appear to require short delay after powering up,
    otherwise subsequent commands may return errors.  Older devices need
    longer so ensure new devices are penalized just for being new.

    2) When the modem is already in full functionality status and no power
    up command was sent, there's no need to delay, which was happening
    regardless of what state the modem was already in.  Detect whether
    the power up was actually executed (response and error will be NULL)
    and only delay if it was executed.
2012-11-05 16:30:33 -06:00
Marius B. Kotsbak 26956924b0 sierra: avoid reset when setting cfun=1
Some Sierra modems trigger a reset of the modem when sending +cfun=1.
All sierra modems supports a second parameter to indicate that no
reset is to be done: "+cfun=1,0".
2012-10-30 12:53:25 -05:00
Aleksander Morgado b4e0fa3d89 sierra: skip echo removal in the secondary port
This is the port to git master of the following commit:

commit d1be19d231a395339b1f452d1a30b73ea77ad528
Author: Dan Williams <dcbw@redhat.com>
Date:   Tue Aug 28 21:58:43 2012 -0500

    sierra: fix CSQ handling on APP1 port

    The APP1 port doesn't always prefix its replies with <CR><LF> which
    runs afoul of the built-in echo removal.  Since Sierra modems are on
    the whole well-behaved WRT echo removal, just disable it on the
    secondary ports.  Only changes behavior for PPP-based devices since
    they are the only ones that use the APP1 ports.
2012-08-31 15:11:30 +02:00
Aleksander Morgado 0436b3e457 api,introspection: report list of drivers, not just one
Different ports of the same modem may get handled by different drivers. We
therefore need to provide a list of drivers (new `Modem.Drivers' property with
signature 'as') instead of just one (removed `Modem.Driver' property with
signature 's').

$ sudo mmcli -m 0 | grep drivers
           |        drivers: 'qcserial, qmi_wwan'
2012-08-24 13:34:51 +02:00
Aleksander Morgado 5b9c1625b6 sierra: custom power-up command for CDMA modems 2012-08-23 18:56:22 +02:00
Aleksander Morgado 79b4c4b47d sierra: implement custom ports setup 2012-08-23 18:56:22 +02:00
Aleksander Morgado 0c80815ea2 sierra: new `MMSimSierra' object 2012-08-23 18:56:22 +02:00
Aleksander Morgado 4195a3f1a3 sierra: implement custom power up sequence
It is split in a new set of `mm-common-sierra.[hc]' files as this sequence will
also be used in Icera-based modems.
2012-08-23 18:56:22 +02:00