aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-11-29sierra: USB 306 modems support PPP on the APPx portsDan Williams
2012-11-28plugin-base: handle Huawei Data07 capabilities probingAleksander Morgado
2012-11-27huawei: don't assume g_regex_match_full() sets error when not matchingAleksander Morgado
2012-11-27broadband-modem-huawei: don't call non-existent MMBroadbandModem CDMA functionsDan Williams
2012-11-27hso: DIAG ports aren't always DIAGDan Williams
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 Williams
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 Williams
2012-11-27serial-port: stop reading data if the serial port was closedDan Williams
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 Williams
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 Williams
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 Williams
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 Williams
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 Morgado
2012-11-27core: fix possible crash in g_utf8_validate()Jiří Klimeš
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 Morgado
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 Chan
2012-11-15libmm-glib,manager: register DBus error associations in advanceAleksander Morgado
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 Williams
2012-11-14qcdm: trivial cleanup of log item numbersDan Williams
2012-11-14qcdm: clarify log item command length memberDan Williams
2012-11-14serial: fix warning when driver doesn't support closing_wait (bgo #630670)Dan Williams
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 Morgado
https://bugzilla.gnome.org/show_bug.cgi?id=688213
2012-11-12huawei: better detection of data port on some modemsAleksander Morgado
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 Morgado
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 Morgado
2012-11-05sierra: fix CFUN power up delay handlingDan Williams
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 Chan
+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 Morgado
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 Morgado
2012-11-02core,plugins: don't assume 'CS' supported when '2G' supportedAleksander Morgado
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 Morgado
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 Morgado
2012-11-02broadband-modem-qmi: implement CDMA BS location reportingAleksander Morgado
2012-11-02iface-modem-location: implement handling the CDMA BS location sourceAleksander Morgado
2012-11-02cli: new actions to setup or gather CDMA BS location sourceAleksander Morgado
2012-11-02libmm-glib: implement handling the CDMA BS location sourceAleksander Morgado
2012-11-02api: new source for the CDMA Base Station locationAleksander Morgado
2012-11-02libmm-glib: new header file for common stuff in location reportingAleksander Morgado
2012-11-02novatel-lte: increase the wait after SIM unlock to 3 secondsBen Chan
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 Chan
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 Morgado
2012-10-31broadband-modem-qmi: run power-down during initAleksander Morgado
2012-10-30sierra: allow more time for PDP context activationDan Williams
3 seconds isn't always enough to set up the context with the network.
2012-10-30sierra: avoid reset when setting cfun=1Marius B. Kotsbak
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-30core,log: include logging from the 'Qmi' log domainAleksander Morgado
Sync with libqmi: commit 2835a53732fdae32478dd954a9ee3fa8afd93cab Author: Aleksander Morgado <aleksander@lanedo.com> Date: Tue Oct 30 15:02:24 2012 +0100 libqmi-glib: define library G_LOG_DOMAIN
2012-10-30huawei: ignore '^STIN' unsolicited messagesAleksander Morgado
2012-10-30huawei: reset ignored unsolicited message handlers only onceAleksander Morgado
2012-10-30plugin-manager,plugin: run pre-probing filters earlyAleksander Morgado
For each port, we will construct the list of plugins to test with. In that list we will include those plugins which are likely to handle a given port, so we will skip all those which aren't. To see if a plugin is likely or not, we will run the pre-probing filters before adding them to the list, with the new `mm_plugin_discard_port_early()'. This method will return one of these hints: * UNSUPPORTED: The plugin will not be able to handle this port. * MAYBE: The plugin may handle this port. * LIKELY: The plugin may (very likely) handle this port. * SUPPORTED: If any plugin should support the port, this is it. Plugins reported to be 'likely' supporting the port will be probed before the ones reported just as 'maybe'. If a plugin reports 'supported' only that one and the fallback generic ones will be tried.
2012-10-30plugin-manager: use dispose() as we're holding plugin objectsAleksander Morgado
2012-10-30plugin: avoid unneeded vendor/product AT probing if already passed USB ID filterAleksander Morgado
Don't require vendor/product string probing if the plugin already had vendor/product ID filters and we actually passed those.