Commit Graph

5733 Commits

Author SHA1 Message Date
Aleksander Morgado
cab81f679f blacklist: ignore default Linux USB Serial Gadget
Blacklist the default VID:PID for the Linux USB Serial Gadget in ACM
mode:

{LINUX}/drivers/usb/gadget/legacy/serial.c
  #define GS_VENDOR_ID       0x0525  /* NetChip */
  #define GS_CDC_PRODUCT_ID  0xa4a7  /* ... as CDC-ACM */

This should never be reused for real products by hardware
manufacturers, but anyway...

Patch actually ported from downstream Ubuntu:
https://bugs.launchpad.net/ubuntu/+source/modemmanager/+bug/1105352
2017-05-18 13:12:26 +02:00
Aleksander Morgado
5947cda9f4 man: include missing --no-auto-scan and --initial-kernel-events
And remove --test-no-auto-scan, as the 'no auto scan' feature isn't
only a test feature now.
2017-05-18 12:35:51 +02:00
Aleksander Morgado
e8acfe0296 iface-modem: fix setting up signal quality retrieval logic
If going directly e.g. from "Searching" to "Connecting", just setup
the signal quality retrieval logic right away, don't assume we always
go through "Registered" state before starting a connection.

Reported-by: <colin.helliwell@ln-systems.com>
2017-05-15 17:12:30 +02:00
Aleksander Morgado
d41d717112 ublox: align property values in g_object_new() 2017-05-10 14:36:28 +02:00
Javier Viguera
1ab98b9e8c ublox: support modems connected to serial port
Add the vendor string, so it can be probed via AT commands. This allows
to support modems that are connected to a serial port.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-05-10 14:35:28 +02:00
Javier Viguera
fa2e532d2c port-serial: add B230400 and B921600 missing baudrates
So MM can use them when opening a specific serial port.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-05-10 14:35:08 +02:00
Aleksander Morgado
650d230425 blacklist: add keyboard.io devices
See https://bugs.freedesktop.org/show_bug.cgi?id=85007#c5

Reported-by: Jesse Vincent <jesse@keyboard.io>
2017-05-10 14:26:30 +02:00
Aleksander Morgado
2373a4b658 port-qmi: fix QMI client allocation procedure
Commit 26ee94ec28 introduced a bug, where we would be completing
the client allocation task *before* tracking the new client allocation
info in the private tracking list.

This meant that if mm_port_qmi_peek_client() was called in the task
completion handler, the client object wouldn't be returned, as it
wasn't found in the private tracking list.

The fix is just to defer the task completion until after the private
tracking list is updated.

Reported-by: Salvador Penalva <salvador.penalva@digi.com>
2017-05-05 11:33:11 +02:00
Dan Williams
f3cc78ef02 broadband-modem-qmi: ensure PLMN name is UTF-8
Some Telit modems apparently sometimes report non-UTF8 characters.
2017-04-24 22:37:46 -05:00
Maksim Salau
d4e149c528 blacklist: add Analog Devices EVAL-ADXL362Z-DB
Signed-off-by: Maksim Salau <maksim.salau@gmail.com>
2017-04-24 20:45:17 -05:00
Carlo Lobrano
7a68d45774 telit: give load lock retries steps a descriptive name
In order to make debug logging more clear, I replaced the step ID with a
descriptive step name.
2017-04-19 17:08:35 +02:00
Aleksander Morgado
d09bc8baaa telit: use mm_get_uint_from_hex_str() to parse CSIM hex response
The regex is already limiting the string to 4 hex chars, so we can
definitely fit the number in a guint, no need a guint64.
2017-04-19 10:42:24 +02:00
Carlo Lobrano
44daf791bb telit: add error_code recognition to +CSIM parser
- Refactored mm_telit_parse_csim_response in order to correctly
  recognize the following +CSIM error codes:
    * 6300 - Verification failed
    * 6983 - Authentication method blocked
    * 6984 - Reference data invalidated
    * 6A86 - Incorrect parameters
    * 6A88 - Reference data not found

- Updated correspondent tests.
- Finally, some minor changes in other files for better error logging

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=100374
2017-04-19 10:37:05 +02:00
Aleksander Morgado
4fe464f5f7 core: prefer g_task_return_error_if_cancelled() than custom errors
When the GCancellable is added to the GTask, we can use a single
method call to check for the task being cancelled, and complete it
right away if so.

This patch also clears up the logic in the Novatel plugin, where the
code was trying to return "TRUE" when the task was cancelled, but
wouldn't work as the check-cancellable flag in the GTask is TRUE by
default (i.e. when completing the GTask, if it was cancelled, a
G_IO_ERROR_CANCELLED would be returned by default, regardless of any
other return value set).

This patch also introduces a small variation of the logic in the
Cinterion plugin: instead of running SWWAN=0 before completing the
async action, the command is now sent just after completion of the
async action. This shouldn't be an issue, as the SWWAN result itself
is ignored.
2017-04-18 19:31:02 +02:00
Aleksander Morgado
6312753a6b broadband-bearer: once connected, set flow control settings
During modem initialization we detected the flow control settings
supported by the modem, and selected the best one to use from them,
notifying it to the device via AT+IFC. The device was therefore
instructed to use that flow control setting for data transmission in
the TTY (i.e. not during AT control commands).

The missing thing was to also configure ourselves our end of the
serial port with the same flow control settings when getting into data
mode. By doing it ourselves, we avoid requiring any explicit setting
in pppd for flow control; pppd can assume the flow control settings
are already the expected ones.

Worth noting that all this setup is completely ignored for TTYs
exposed directly via USB.

https://bugs.freedesktop.org/show_bug.cgi?id=100394
2017-04-18 18:08:57 +02:00
Aleksander Morgado
595bd5dbe3 port-serial: remove all default flow control settings
We won't set XON/XOFF by default and we won't allow setting RTS/CTS
via a property. The serial port by default starts with no flow control
configured.
2017-04-18 18:08:57 +02:00
Aleksander Morgado
580c113c5a port-serial: new method to explicitly set flow control settings 2017-04-18 18:08:57 +02:00
Aleksander Morgado
3223b56ba9 port-serial: new internal method to run tcsetattr()
The method takes care of looping if EAGAIN errors happen, as well as
checking whether all attributes were set or not.
2017-04-18 18:08:57 +02:00
Aleksander Morgado
ff6726df11 telit: ignore custom flow control handling
The generic modem object already supports querying for the supported
methods and setting the best one found.
2017-04-18 18:08:57 +02:00
Aleksander Morgado
1d2a67ab20 wavecom: ignore custom flow control handling
The generic modem object already supports querying for the supported
methods and setting the best one found.
2017-04-18 18:08:57 +02:00
Aleksander Morgado
91391eb460 broadband-modem: query supported flow control modes before setting
Instead of assuming XON/XOFF is supported, we query the supported flow
control modes, and then we set the best one based on that, preferring
hardware flow control over software flow control.
2017-04-18 18:08:57 +02:00
Aleksander Morgado
973c7d0970 helpers: new parser for AT+IFC=?
Instead of having the parser return separate list of supported flow
controls for TE and TA, we simplify it by only returning those
settings that apply to both TE and TA.

This logic isn't perfect either, though, as some settings (e.g. '3' in
TE in some modems, specifying a different XON/XOFF behavior) may not
have a corresponding setting in the other end.

The most common cases we care about (i.e. standard XON/XOFF, RTS/CTS)
should be properly reported with this logic.
2017-04-18 18:08:57 +02:00
Dan Williams
75d9c0bc95 broadband-modem: open QCDM port for CDMA Serving System checking when needed 2017-04-17 11:59:13 -05:00
Dan Williams
5c94c8cc6d broadband-modem: open QCDM port for Call Manager state checking when needed 2017-04-17 11:59:13 -05:00
Dan Williams
3901ceade1 broadband-modem: open QCDM port for HDR state checking when needed 2017-04-17 11:59:13 -05:00
Dan Williams
355a594223 broadband-modem: open QCDM port for access tech checking when needed 2017-04-17 11:59:13 -05:00
Dan Williams
aa87775a81 broadband-modem: open QCDM port for signal checking when needed 2017-04-17 11:59:13 -05:00
Dan Williams
977d5ac6ce broadband-modem-novatel: $NWRSSI can report lower values than -115
My E725 reported 125 once; that's a valid dBm and MM shouldn't report
an error when parsing it.
2017-04-17 11:59:12 -05:00
Dan Williams
dedc1f15c7 broadband-modem-novatel: clean up detailed registration state handling
Allocate the results instead of passing them back on the stack, which removes
the "can't complete in idle" restriction.  Also always open the QCDM port
since we can't assume it will be open already at this point.
2017-04-17 11:59:12 -05:00
Dan Williams
77fbcf534b broadband-modem-novatel: clean up access technology reporting
Instead of mixing the QCDM Novatel Snapshot code directly into the
access technology checking code, split it out with its own async
result.  At the same time, make sure to open the QCDM port when
it's needed, instead of assuming its already open.  Since it won't
always be.
2017-04-17 11:59:12 -05:00
Ben Chan
01cba808e4 iface-modem-signal: port mm_iface_modem_signal_initialize to use GTask 2017-04-15 23:05:32 +02:00
Ben Chan
ed8bea8a3c iface-modem-signal: port mm_iface_modem_signal_enable to use GTask 2017-04-15 23:00:10 +02:00
Ben Chan
ca89a4c038 iface-modem-signal: port mm_modem_iface_signal_disable to use GTask 2017-04-15 22:59:32 +02:00
Carlo Lobrano
a902199772 telit: unsupported CSIM lock should not skip loading unlock retries
Some modems do not support CSIM lock/unlock, but they do support
querying SIM unlock retries through +CSIM command.

If CSIM lock returns with "unsupported command" do not propagate
the error and continue with the other CSIM queries instead, moreover the
CSIM lock feature is signed as FEATURE_UNSUPPORTED in Telit modem
private structure to prevent being sent again (e.g. calling CSIM
unlock AT command).
2017-04-15 22:52:12 +02:00
Ben Chan
23b67db7c9 base-call: remove unnecessary string duplications 2017-04-08 12:42:39 +02:00
Ben Chan
b65819e6ad port-mbim: port mm_port_mbim_{open,close} to use GTask 2017-04-08 12:42:30 +02:00
Ben Chan
26ee94ec28 port-qmi: port mm_port_qmi_allocate_client to use GTask 2017-04-08 12:38:21 +02:00
Ben Chan
031c753a00 novatel: obtain MMPortProbe from GTask source object
The MMPortProbe object is already referenced by the GTask object for
custom init. Instead of keeping another reference of MMPortProbe in the
CustomInitContext, this patch changes the code to simply obtain it from
the source object of GTask.

See https://lists.freedesktop.org/archives/modemmanager-devel/2017-April/004420.html
2017-04-07 10:31:10 -05:00
Aleksander Morgado
9667d037fd polkit: fix build when polkit enabled
This fixes the build after commit 740ce1fb26.

      CC       ModemManager-mm-auth-provider-polkit.o
    ../../src/mm-auth-provider-polkit.c: In function ‘authorize’:
    ../../src/mm-auth-provider-polkit.c:155:46: error: ‘AuthorizeContext’ has no member named ‘cancellable’
                                               ctx->cancellable,
                                                  ^
    Makefile:1533: recipe for target 'ModemManager-mm-auth-provider-polkit.o' failed
2017-04-07 11:13:27 +02:00
Ben Chan
374c65a520 sms-mbim: port sms_delete to use GTask 2017-04-07 11:07:01 +02:00
Ben Chan
59a6bcbb1b sms-mbim: port sms_send to use GTask 2017-04-07 11:05:00 +02:00
Ben Chan
e661ba077f port-qmi: port mm_port_qmi_open to use GTask 2017-04-07 11:00:27 +02:00
Ben Chan
a080644924 call-list: port mm_call_list_delete_call to use GTask 2017-04-07 10:43:32 +02:00
Ben Chan
21195f8e54 sms-list: port mm_sms_list_delete_sms to use GTask 2017-04-07 10:41:32 +02:00
Ben Chan
740ce1fb26 polkit: port authorize to use GTask 2017-04-07 10:38:38 +02:00
Ben Chan
1755d1a5c3 auth: port authorize to use GTask 2017-04-07 10:38:25 +02:00
Dan Williams
8c04cc0367 telit: fix AT+SERVICE 3GPP2 access technology reporting
Looks like a C&P error from the AT#PSNT codepath; all the docs
I can find indicate that AT+SERVICE returns only an integer and
no commas:

<debug> (ttyUSB2): --> 'AT+SERVICE?<CR>'
<debug> (ttyUSB2): <-- '<CR><LF>+SERVICE: 3<CR><LF><CR><LF>OK<CR><LF>'
<debug> Couldn't refresh access technologies: 'Failed to parse +SERVICE response: '+SERVICE: 3''
2017-04-06 17:09:39 -05:00
Ben Chan
665e227918 iface-modem-simple: port register_in_3gpp_or_cdma_network to use GTask 2017-04-06 21:27:00 +02:00
Ben Chan
e0bca5509e bearer-list: port mm_bearer_list_disconnect_all_bearers to use GTask 2017-04-06 21:24:13 +02:00
Ben Chan
6542430588 novatel: port IMSI loading to use GTask 2017-04-06 20:31:39 +02:00