aboutsummaryrefslogtreecommitdiff
path: root/plugins/mm-modem-option.c
AgeCommit message (Collapse)Author
2012-03-16hso,option: plugins fully portedAleksander Morgado
2012-02-28core: rework port grabbing and organizationDan Williams
Make port roles more flexible. We have modems that do PPP on interfaces other than the primary interface, and that wasn't possible with the old code. So clean up all that logic and move the port organization code into the core so we can reduce code in the plugins. In the new world order, the plugins say whether the port is a QCDM port, an AT port, or ignored. If it's an AT port the plugins get to tag it as primary, secondary, or PPP, or any combination of the 3. This allows for modems where PPP should really be done on the secondary port (Huawei E220, Sierra devices) so that the primary port stays open for command and status. Modem subclasses no longer get asked to handle port grabbing themselves. Instead, that's now done by the generic classes (MMGenericCdma and MMGenericGsm) and the plugins are notified when a port is grabbed so they can add unsolicited response handlers for it. After all ports are grabbed by the generic classes, they get "organized", which assigns various ports to the roles of PRIMARY, SECONDARY, DATA, and QCDM based on specific rules and hints that the plugin provided (which are expressed as MMAtPortFlags). The plugins then have a chance to perform fixups on the primary port if they choose. The plugin code is responsible for determining the port hints (ie MMAtPortFlags) at probe time, instead of having a combination of the plugin and the modem class do the job. This simplifies things greatly for the plugins at the expense of more complicated logic in the core.
2010-10-22core: use hardware IDs as part of DeviceIdentifierDan Williams
Pass the device's hardware IDs through modem creation and use them when calculating the device's identifier. Add a bunch of testcases for real hardware to ensure we don't break the device ID in the future unless we really want to.
2010-05-05option/hso: eat +PACSP0 unsolicited responseDan Williams
Interfered with initial PIN checking in some cases.
2010-03-26option/hso: implement solicited access technology requestDan Williams
2010-03-22option/hso: ensure unsolicited messages get turned off on disableDan Williams
2010-03-16option: generalize common Option/HSO mode and unsolicited response handlingDan Williams
2010-03-16gsm: simplify finding the right serial port for commandsDan Williams
2010-03-08Merge remote branch 'origin/master' into qcdmDan Williams
2010-03-08api+gsm: clean up AllowedMode valuesDan Williams
Instead of trying to stuff everything into the mode bitfield it turns out it's just easier, clearer, and simpler to use different values for each of the following: 1) the device's supported access technologies and allowed modes 2) the device's current access technology 3) the device's allowed mode preference Since none of the AccessTechnology or AllowedMode stuff has hit a release yet, let's make sure we're doing it the right way early on.
2010-03-08gsm: implement allowed modeDan Williams
2010-03-04option: fix power-on delayDan Williams
Since the modem states patch the delay for power-on wasn't honored for Option devices. Fix that using the new power-on-done handler and also fix the bug where if the modem was removed, the plugin would crash because it wasn't handling the timeout removal. Also remove the explicit PIN check since that's now handled by the generic GSM code before the modem is even exported over DBus.
2010-02-20serial: refactor MMSerialPort into a base class and an AT-capable serial portDan Williams
For QCDM devices we want most of what MMSerialPort does, but not the AT command handling stuff since the commands and responses aren't AT commands nor are they even strings. So convert everything that MMSerialPort does into a GByteArray, and let MMAtSerialPort handle the conversion to strings when necessary.
2009-12-02gsm: implement enable/connecting/disconnecting state handlingDan Williams
And consolidate generic port enable code in one place since pretty much every modem needs that.
2009-10-26core: use G_DEFINE_TYPE_* instead of rolling our ownDan Williams
Use the macro; save some trees.
2009-09-23core: split generic modem enable/disable operationsDan Williams
2009-08-05gsm: harmonize band/mode enumsDan Williams
Use the same enum for set/get of band and mode, as for exposing the device's capabilities.
2009-06-28asynchronous and deferred port detectionDan Williams
Allow plugins to perform asynchronous port detection, and to defer port detection until later. This moves the prober bits into MMPluginBase so that all plugins can take adavantage of it only when needed; the probing is not done at udev time. Furthermore, plugins like Novatel can flip the secondary ports over the AT mode through deferred detection, by deferring the secondary ports until the main port has been detected and AT$NWDMAT has been sent. This commit also finishes the port of the rest of the plugins (except mbm) over to the new port detection methods and plugin API.
2009-04-15gsm: clean up network modesDan Williams
Add specific modes for HSUPA and HSPA; add modes for 2G and 3G only, and update plugins to use the right modes.
2009-02-10add --enable-more-warnings=yes/no and fix up resulting errorsDan Williams
2009-02-06Extend org.freedesktop.ModemManager.Modem interface.Tambet Ingo
* Add IpMethod property with known values ppp (default), static, DHCP. * Rename DataDevice property to Device. * Add GetIP4Config method. It should be implemented only when IpMethod==static. * Update org.freedesktop.ModemManager.Modem.Gsm.Sms interface based on Pablo Martí Gamboa's suggestions. * Adjust MBM and HSO interfaces to take advantage of the generic Modem interface.
2008-12-09Lots of random fixes:Tambet Ingo
Rework the MMCallbackInfo callback invocation. Always use g_error_literal() where it makes sense. Replace sleep() calls, with timeouts to not block the whole MM.
2008-12-02Fix HSO modem plugin.Tambet Ingo
2008-10-30Explicitly check the PIN after modem is enabled.Tambet Ingo
2008-10-30Implement Option plugin.Tambet Ingo