summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-12-05libmm-glib: document mm_get_uint_from_str()Dan Williams1-0/+11
Unlike strtol/stroul, this function doesn't ignore leading or trailing non-digit characters, so document that restriction.
2012-12-05modem-helpers: add EVDO rev. B and "CDMA2000 1X" to access tech helperDan Williams1-1/+4
Some Huawei modems report these, and we may use the generic helper in the future.
2012-12-05huawei: handle CDMA allowed modesDan Williams1-18/+89
2012-12-05huawei: fix crash disabling CDMA unsolicited response handlersDan Williams1-5/+14
Parent MMBroadbandModem may not implement these functions so we shouldn't call them unless it does.
2012-12-05huawei: implement Huawei-specific CDMA signal quality checksDan Williams1-1/+131
Many Huawei CDMA modems implement vendor commands for 1x and EVDO signal quality, so use them since they are more accurate than the generic signal checking. (port of a similar patch for MM_06 by heiher <admin@heiher.info>)
2012-12-05huawei: consolidate MODE parsingDan Williams1-5/+49
Both CDMA and 3GPP modems emit this, but using slightly different formats.
2012-12-05huawei: consolidate SYSINFO parsingDan Williams1-84/+135
Both CDMA and 3GPP modems use SYSINFO, so consolidate the parsing of its response.
2012-12-03serial: clear serial info struct before calling ioctl()Aleksander Morgado1-2/+2
We need the kernel driver to give a proper value for the 'closing_wait' variable, but don't assume it will. This should solve the following kind of issues reported by valgrind: ==8985== Conditional jump or move depends on uninitialised value(s) ==8985== at 0x4409A6: mm_serial_port_close (mm-serial-port.c:932) ==8985== by 0x41A420: disable_all_done (mm-generic-cdma.c:753) ==8985== by 0x4125A4: mm_manager_shutdown (mm-manager.c:1130) ==8985== by 0x40DE35: main (main.c:203)
2012-11-29sierra: USB 306 modems support PPP on the APPx portsDan Williams1-1/+1
2012-11-28plugin-base: handle Huawei Data07 capabilities probingAleksander Morgado1-0/+1
2012-11-27huawei: don't assume g_regex_match_full() sets error when not matchingAleksander Morgado1-2/+14
2012-11-27broadband-modem-huawei: don't call non-existent MMBroadbandModem CDMA functionsDan Williams1-5/+15
2012-11-27hso: DIAG ports aren't always DIAGDan Williams1-1/+6
The 'hso' driver tags Icera-based modems' proprietary protocol port as a DIAG port, but since they aren't Qualcomm-based, it's not a DIAG port. Just turn off AT probing and let QCDM probing fail the port instead of assuming it's a DIAG port.
2012-11-27port-probe: early-exit if port is certainly not AT capableDan Williams1-57/+74
If we read a response that indicates the port is definitely not an AT capable port, stop AT probing. Certain ports that use proprietary protocols or other non-AT protocols tend to spew data at us, so when this happens we can cut probing short.
2012-11-27serial-port: consistently use mm_warn() instead of g_warning()Dan Williams1-24/+21
2012-11-27serial-port: stop reading data if the serial port was closedDan Williams1-11/+11
If a response processor closed the port, don't try to read any more data from it. Move the priv->watch_id check to the while condition so the loop terminates before calling g_io_channel_read_chars() again, which caused a warning since the underlying file descriptor was already closed. Also, bytes_read will never be less than zero (it's unsigned), so skip the bytes_read > 0 check and just assert that this condition is true.
2012-11-27port-probe: fix crash in buffer-full processingDan Williams1-3/+11
Signal was attached with user_data as MMPortProbe*, but serial_buffer_full() treated user_data as a PortProbeRunTask*. Hillarity ensued.
2012-11-27port-probe: fix checking of Icera capability on some devicesDan Williams3-30/+4
Sierra devices often have limited AT parsers on their APP ports which reply with OK to any command they don't understand, and thus we need to actually check for a valid IPSYS reply instead of just checking whether the IPSYS request completed without error. Previously MM would detect Icera capability on devices that didn't actually have it.
2012-11-27qcdm: handle more test failures for NW subsystemDan Williams1-2/+4
Bandrich C120 returns BAD_LENGTH rather than BAD_COMMAND, perhaps because it re-uses the same subsystem number for something else.
2012-11-27broadband-modem: fall back to +CSQ if +CIND signal quality checking failsDan Williams1-35/+37
If +CIND fails for any reason (generic failure, wrong indexes, etc) or reports zero signal strength (quirky modem) then fall back to +CSQ.
2012-11-27libmm-glib,manager: client creation may fail, avoid explicit MM_MANAGER() castAleksander Morgado1-1/+4
2012-11-27core: fix possible crash in g_utf8_validate()Jiří Klimeš1-4/+5
We can skip additional UTF-8 validity check when parsing operator. mm_charset_take_and_convert_to_utf8() already does a UTF-8 validity check internally before returning the string, so it's pointless to do a new one on the returned string. Plus, mm_charset_take_and_convert_to_utf8() may really return NULL, which would end up in segfaulting as g_utf8_validate() expects always a non-NULL string. Based on 219424a6e2d017491a05ecbed661bccde3f991ef (MM_06 branch)
2012-11-27icera,hso: don't disconnect() cancellable in the cancellation callbackAleksander Morgado2-4/+0
The logic gets completely stuck when this happens: Stack trace below: #0 0x77661424 in __kernel_vsyscall () #1 0x77337c3c in pthread_cond_wait () #2 0x773cebaa in g_cond_wait () from /usr/lib/libglib-2.0.so.0 #3 0x774c03cc in g_cancellable_disconnect () from /usr/lib/libgio-2.0.so.0 #4 0x76955d36 in connect_cancelled_cb (cancellable=0x78e055a0, self=0x78e0b590) #5 0x77460982 in g_cclosure_marshal_VOID__VOIDv () from /usr/lib/libgobject-2.0.so.0 #6 0x7745ed8a in ?? () from /usr/lib/libgobject-2.0.so.0 #7 0x77478435 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #8 0x77478eb3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #9 0x774c01eb in g_cancellable_cancel () from /usr/lib/libgio-2.0.so.0 #10 0x776a0eab in mm_bearer_disconnect (self=0x78e0b590, callback=0x776c5980 <disconnect_ready>, #11 0x776c57de in disconnect_next_bearer (ctx=0x78e12870) at mm-iface-modem-simple.c:898 #12 0x776c58d2 in disconnect_auth_ready (self=0x78df3048, res=0x78e06210, ctx=0x78e12870) #13 0x774fed25 in g_simple_async_result_complete () from /usr/lib/libgio-2.0.so.0 #14 0x776a8c4e in authorize_ready (authp=0x78db68d0, res=0x76801638, simple=0x78e06210) #15 0x774fed25 in g_simple_async_result_complete () from /usr/lib/libgio-2.0.so.0 #16 0x774fee3e in ?? () from /usr/lib/libgio-2.0.so.0 #17 0x7738a7a2 in ?? () from /usr/lib/libglib-2.0.so.0 #18 0x7738ce83 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #19 0x7738d248 in ?? () from /usr/lib/libglib-2.0.so.0 #20 0x7738d6eb in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #21 0x77696a7d in main (argc=2, argv=0x7fbb1f04) at main.c:158 http://code.google.com/p/chromium-os/issues/detail?id=36448
2012-11-27broadband-modem: check for NULL response in parse_caps_{cpin,cgmm,gcap}Ben Chan1-1/+10
2012-11-15libmm-glib,manager: register DBus error associations in advanceAleksander Morgado1-0/+19
In order to have a proper conversion between DBus error names and GErrors for our known domains, the associations need to be registered before any DBus call attempt. Given that the high-level API of libmm-glib has its entry point always in the MMManager, just register them as soon as the first such object is created.
2012-11-14qcdm: get/set functions for hybrid preferenceDan Williams6-0/+169
2012-11-14qcdm: trivial cleanup of log item numbersDan Williams1-2/+2
2012-11-14qcdm: clarify log item command length memberDan Williams1-1/+1
2012-11-14serial: fix warning when driver doesn't support closing_wait (bgo #630670)Dan Williams1-3/+15
It appears that GIOChannel might also do some flushing, so make sure our warning captures that delay if there is one. Also be paranoid and make sure nothing reset our closing_wait value.
2012-11-13blacklist: skip probing Atmel samba bootloaderAleksander Morgado1-0/+3
https://bugzilla.gnome.org/show_bug.cgi?id=688213
2012-11-12huawei: better detection of data port on some modemsAleksander Morgado1-0/+6
Some devices (e173) appear to lie about NDIS support; GETPORTMODE reports NDIS is enabled, but that port is actually the MDM port and responds to AT commands. So, if we get a port reported as NDIS and none reported as MDM, use the one reported as NDIS for PPP. https://bugs.launchpad.net/ubuntu/+source/modemmanager/+bug/1057186
2012-11-09option,hso: early check of port type hints to avoid probingsAleksander Morgado1-50/+92
Instead of getting the port type hints while grabbing each probed port, we now run a custom init operation in the probing which already gives us the port type, and therefore allows us to completely skip port probings. Also now added hints for 'Diag' (QCDM) ports and AT/'Modem' ports (I guess it's the one for PPP if we don't have a net port, which is unlikely anyway in HSO). This makes the probing of an Option/HSO modem almost instant.
2012-11-07libmm-glib,manager: avoid unref of unset cancellablesAleksander Morgado1-1/+2
2012-11-05sierra: fix CFUN power up delay handlingDan Williams1-8/+7
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-05novatel-lte: use $NWMDN to read own number when +CNUM failsBen Chan1-0/+103
+CNUM may return ERROR when the modem fails to read the own numbers from the SIM card or when the SIM card hasn't been activated. Use $NWMDN to read the MDN as a fallback, which distinguishes these two cases.
2012-11-02broadband-modem-qmi: by default request only GSM-WCDMA mode messagesAleksander Morgado1-0/+4
This should probably fix the issues seen with the Novatel E362 (CDMA+LTE): ModemManager[4813]: <debug> [1351697325.212782] [mm-broadband-modem-qmi.c:5541] load_initial_sms_parts(): loading messages from storage 'sm'... ModemManager[4813]: [/dev/cdc-wdm0] Sending message... <<<<<< QMUX: <<<<<< length = 16 <<<<<< flags = 0x00 <<<<<< service = "wms" <<<<<< client = 2 <<<<<< QMI: <<<<<< flags = "none" <<<<<< transaction = 3 <<<<<< tlv_length = 4 <<<<<< message = "List Messages" (0x0031) <<<<<< TLV: <<<<<< type = "Storage Type" (0x01) <<<<<< length = 1 <<<<<< value = 01 <<<<<< translated = 1 ModemManager[4813]: [/dev/cdc-wdm0] Received message... >>>>>> QMUX: >>>>>> length = 19 >>>>>> flags = 0x80 >>>>>> service = "wms" >>>>>> client = 2 >>>>>> QMI: >>>>>> flags = "response" >>>>>> transaction = 3 >>>>>> tlv_length = 7 >>>>>> message = "List Messages" (0x0031) >>>>>> TLV: >>>>>> type = "Result" (0x02) >>>>>> length = 4 >>>>>> value = 01:00:11:00 >>>>>> translated = FAILURE: MissingArgument ModemManager[4813]: <debug> [1351697325.215112] [mm-iface-modem-messaging.c:757] load_initial_sms_parts_ready(): Couldn't load SMS parts from storage 'sm': 'Couldn't list messages: QMI protocol error (17): 'MissingArgument''
2012-11-02iface-modem-messaging: fix storage string when reporting errorsAleksander Morgado1-1/+6
2012-11-02core,plugins: don't assume 'CS' supported when '2G' supportedAleksander Morgado9-65/+4
We will not report 'CS' as a supported mode every time '2G' is supported. This actually was forcing all plugins to handle a 'CS' fallback when they didn't have CS-specific mode setup. So, to simplify things, we will only report 'CS' as supported for those plugins which actually allow to select 'CS' mode (e.g. the 'wavecom' plugin).
2012-11-02iridium: report only 'CS' mode supportedAleksander Morgado1-0/+31
Iridium modems only support circuit-switched connections, so just report that one as supported.
2012-11-02broadband-modem-qmi: fix error reporting when loading current bands failsAleksander Morgado1-4/+4
2012-11-02broadband-modem-qmi: implement CDMA BS location reportingAleksander Morgado1-6/+47
2012-11-02iface-modem-location: implement handling the CDMA BS location sourceAleksander Morgado2-11/+107
2012-11-02cli: new actions to setup or gather CDMA BS location sourceAleksander Morgado2-16/+82
2012-11-02libmm-glib: implement handling the CDMA BS location sourceAleksander Morgado8-8/+438
2012-11-02api: new source for the CDMA Base Station locationAleksander Morgado2-0/+26
2012-11-02libmm-glib: new header file for common stuff in location reportingAleksander Morgado6-47/+75
2012-11-02novatel-lte: increase the wait after SIM unlock to 3 secondsBen Chan1-2/+2
After repeated stress tests on a few Novatel E362 modems and SIM cards, it is revealed that a 3-second wait after SIM unlock is necessary for reliably reading ICCID and IMSI through the SIM interface.
2012-11-02iface-modem: load own numbers after SIM initializationBen Chan1-17/+17
In 3GPP, own numbers are loaded from the SIM card, the loading of own numbers should be scheduled after the SIM card is ready.
2012-10-31core: allow QMI modems without AT portsAleksander Morgado3-13/+86
2012-10-31broadband-modem-qmi: run power-down during initAleksander Morgado1-2/+4