aboutsummaryrefslogtreecommitdiff
path: root/plugins
AgeCommit message (Collapse)Author
2013-04-05icera: create generic bearer when no net port availableAleksander Morgado
https://bugzilla.gnome.org/show_bug.cgi?id=697374
2013-04-05mbm: plug memleaksAleksander Morgado
2013-04-05mbm: don't pass (null) as string when either user or password is emptyAleksander Morgado
E.g. instead of: (ttyACM1): --> 'AT*EIAAUW=2,1,"(null)","vodafone"<CR>' (ttyACM1): <-- '<CR><LF>OK<CR><LF>' Better pass: (ttyACM1): --> 'AT*EIAAUW=2,1,"","vodafone"<CR>' (ttyACM1): <-- '<CR><LF>OK<CR><LF>'
2013-04-04sierra: implement PIN/PUK retry count loadingAleksander Morgado
Not all Sierra modems support it, but those which do reply like this: AT+CPINC=? OK AT+CPINC? +CPINC: 3,3,10,10
2013-04-04sierra: early detect non-AT portsAleksander Morgado
Detect the parser filter errors during our custom_init(), and set the port as not being AT if the error found.
2013-04-04sierra: too many timeout errors during custom init means non-AT portAleksander Morgado
Reduces probing time of the modem in ~10s.
2013-04-04mbm: ignore *ESTKSMS unsolicited messagesAleksander Morgado
https://bugzilla.gnome.org/show_bug.cgi?id=697280
2013-04-04sierra: 'data' may be NULL if the parent dialling failsAleksander Morgado
2013-04-04sierra: plug memleakAleksander Morgado
2013-04-04altair-lte: minor style changesAleksander Morgado
2013-04-04altair-lte: initial altair lte pluginori inbar
2013-04-02pantech: skip WMC portsAleksander Morgado
WMC ports will return "ERROR" to all AT commands, except for "AT" itself. So just provide a custom AT probing logic, which uses "ATE0" instead, and assumes the port is not an AT port if an error is returned.
2013-04-02pantech: fully skip the SIM storage in the messaging interfaceAleksander Morgado
Seems that trying to use the SIM storage hangs a UMW190 modem, so just fully ignore it for now. https://bugzilla.gnome.org/show_bug.cgi?id=696724
2013-04-01mbm: fix udev rule tagging logicAleksander Morgado
2013-04-01x22x: Fix problem in set allowed modeDavid Castellanos
NM attempts to set allowed and preferred mode during the connection process. The plugin x220x does not handle properly when NM request allowed mode to '2g, 3g' and the preferred mode to 'none'. This commit attempts to solve the problem described above. When this situation happens, establish the mode of the modem has 'ANY' (which seems the safest one) instead of just throwing an error. Signed-off-by: David Castellanos <dcastellanos@indra.es>
2013-04-01mbm: don't tag only tty ports, and also grab cdc-wdm portsAleksander Morgado
We also need to tag cdc-wdm ports, so that they get grabbed but ignored and not QMI-probed. https://bugzilla.gnome.org/show_bug.cgi?id=696701
2013-03-29mbm: wait for unlock reporting READY after PIN/PUK unlockAleksander Morgado
MBM modems will lie about the unlock status just after having sent a correct PIN or PUK. So, explicitly wait to get in READY state after having sent the PIN or PUK, before keeping on. https://bugzilla.gnome.org/show_bug.cgi?id=696702
2013-03-29broadband-modem-novatel: implement CDMA time API (bgo #696739)Dan Williams
Use AT$NWLTIME to get current time and UTC offset.
2013-03-29port-probe: don't reschedule next probing step when serial port buffer fullAleksander Morgado
When the serial port buffer gets full of non-AT garbage during port probing, we were re-scheduling the next probing step, which is completely wrong, as we then would be processing the same probing task twice. If we get a buffer full, just cancel the AT probing cancellable, which would cancel not only the possible AT probings, but also the custom init if there is any. Also, make sure that the custom_init() of the plugins out there don't return an error if the GCancellable is cancelled. Cancelling the GCancellable means we should just stop the custom_init(), and actually sending an error in custom_init() means that the port should be set as unsupported by the plugin, so completely different things. Should fix https://bugzilla.gnome.org/show_bug.cgi?id=696695
2013-03-28option: don't apply both vendor and product filters at the same timeAleksander Morgado
The probing logic expects either one or the other right now. In this case, it is just simpler to include the Nozomi-related VID in the vendor filter, and remove the product filter.
2013-03-28option: ignore PH_SIM facility lock in 'nozomi' based modemsAleksander Morgado
https://bugzilla.gnome.org/show_bug.cgi?id=696593
2013-03-28broadband-modem-icera: make CME 3 errors fail power-up (bgo #696742)Dan Williams
+CME ERROR: 3 (Not Allowed) means airplane mode, at least for the Samsung Yxxxx devices that I've got. And if we get this error on any other devices, chances are they'll fail to power up too.
2013-03-28plugin: explicitly request QMI probingAleksander Morgado
Plugins which may support QMI ports need to explicitly request QMI probing in cdc-wdm devices. This should also avoid probing cdc-wdm ports when we know that the plugin doesn't support them (e.g. with Ericsson MBM devices). https://bugzilla.gnome.org/show_bug.cgi?id=696701
2013-03-28novatel: try to flip secondary ports to AT as soon as possibleAleksander Morgado
So do it during port probing. If we send this command early enough in the first AT port being probed, it should flip the secondary ports to AT mode before their port probing is finished. https://bugzilla.gnome.org/show_bug.cgi?id=696696
2013-03-27broadband-modem-sierra: fix trivial copy & paste errorDan Williams
2013-03-25broadband-modem-sierra: add after-sim-unlock delayDan Williams
Older devices may crash if asked to connect right after sending the PIN and unlocking the SIM; they simply stop responding to AT commands around the first request for access technology and then reboot. A delay seems prevents this behavior. Since it's not uncommon to require a delay after SIM unlock, add one for newer sierra_net devices as well, even though we're not quite sure if they need one or not. It doesn't hurt, at least.
2013-03-25sierra: fix time check warnings for modems that don't support timeDan Williams
'result' may be NULL even if no error is set. Errors aren't set because we want to continue the !TIME/!SYSTIME sequence regardless of errors, so we can figure out which command the modem supports. Trying to get a uint32 out of a NULL GVariant makes glib complain, and it's wrong, so don't do that.
2013-03-12zte: add port type hints for the ZTE MF195Aleksander Morgado
https://bugzilla.gnome.org/show_bug.cgi?id=691480
2013-03-05mbm: fix 3gpp dialling sequence when result comes through pollingAleksander Morgado
2013-03-05mbm: tag the ttys instead of the parent usb deviceAleksander Morgado
We can just tag the ttys instead of the parent usb device, so that the core logic which looks in the plugin-specified port tags works properly. There is no need to explicitly tag the net port, as the probing for this port ends when a plugin suggestion comes from another port probing on the same device.
2013-03-04sierra: add MC8790 to APP1 PPP whitelistGerald Richter
2013-02-26udev: update all udev rules to always match both VID/PID togetherAleksander Morgado
If the rules to tag specific USB interface numbers only apply on the PID, we'll end up seeing that if the port has a parent with another PID, and that other PID also has a rule, port will get tagged multiple times. Easier to see with an example: The ZTE MF637 (VID 0x19D2, PID 0x0121) had the following rules: ATTRS{idProduct}=="0121", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" ATTRS{idProduct}=="0121", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" In our ZTE rules we also have some for the device with PID 0x0002, like: ATTRS{idProduct}=="0002", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" ATTRS{idProduct}=="0002", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" And it seems that we can grab multiple PIDs from a single port, i.e. from the parent objects in the hierarchy: udevadm info -a -n /dev/ttyUSB4 | grep idProduct ATTRS{idProduct}=="0121" ATTRS{idProduct}=="0020" ATTRS{idProduct}=="0002" Where that 0x0002 idProduct is not from the modem, but from the EHCI Host Controller (with idVendor 0x1d6b in my case). So... we end up seeing that both set of rules will apply to the ports, and we misleadingly get: (ttyUSB3) type 'at' claimed by /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 ZTE: AT port 'tty/ttyUSB2' flagged as primary (ttyUSB2) type 'at' claimed by /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 ZTE: AT port 'tty/ttyUSB1' flagged as secondary (ttyUSB1) type 'at' claimed by /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 ZTE: AT port 'tty/ttyUSB4' flagged as primary b_port(): (ttyUSB4) type 'at' claimed by /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2) tty/ttyUSB2 at (primary) (/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2) tty/ttyUSB1 at (secondary) (/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2) tty/ttyUSB2 data (primary) (/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2) tty/ttyUSB0 qcdm Which is wrong, as ttyUSB4 should have been our primary port, not ttyUSB2. With this patch on, the rules apply only to the VID/PID pair, and we end up getting what we really wanted: (ttyUSB3) type 'at' claimed by /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (ttyUSB2) type 'at' claimed by /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 ZTE: AT port 'tty/ttyUSB1' flagged as secondary (ttyUSB1) type 'at' claimed by /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 ZTE: AT port 'tty/ttyUSB4' flagged as primary b_port(): (ttyUSB4) type 'at' claimed by /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2) tty/ttyUSB4 at (primary) (/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2) tty/ttyUSB1 at (secondary) (/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2) tty/ttyUSB4 data (primary) (/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2) tty/ttyUSB0 qcdm https://bugzilla.gnome.org/show_bug.cgi?id=694759
2013-02-26plugins: log about all port type hints received from udevAleksander Morgado
2013-02-22mbm: fix CFUN result parsingAleksander Morgado
2013-02-22mbm: implement custom modem_power_down()Aleksander Morgado
Cache last valid allowed mode always, so that we re-use it when powering up again.
2013-02-22mbm: implement custom load_power_state()Aleksander Morgado
We need to handle modems which appear in low-power mode (e.g. CFUN=4), so implement a custom check of the power state. We cannot use the default check as MBM modems use CFUN also for allowed mode handling.
2013-02-20iridium: use generic disconnection logicAleksander Morgado
The generic disconnection logic now already handles getting the port fully closed and a wait time before reopening it, so no need for a custom disconnection logic any more.
2013-02-20bearer-novatel-lte: fix reference counting of the 'data' portAleksander Morgado
2013-02-19zte: load unlock retries with +ZPINPUKAleksander Morgado
e.g: AT+ZPINPUK=? | | ZPINPUK: 3,10 | OK
2013-02-18bearer,3gpp: dial operation specifies which data port to useAleksander Morgado
Instead of deciding in advance which data port to use, we let the dialling operation gather it. For the generic dialling logic, ATD-based, always an 'AT' port will be used as data port, even if we grabbed a 'net' port. Those plugins that can work with 'net' ports will grab the specific 'net' port themselves.
2013-02-18bearer: new helper 'MMBearerConnectResult' typeAleksander Morgado
Instead of returning 3 variables in connect_finish(), return a single reference counted struct. This simplifies how the result is built and passed within a GSimpleAsyncResult to each _finish() method. This also simplifies the dialling step in the 3GPP connection sequence, as we can use the same new type.
2013-02-18ports: add port initialization sequences instead of iface-modem's modem_init()Aleksander Morgado
Instead of a custom modem_init() step in the 'Modem' interface, just add a sequence of port initialization commands in each port. While enabling for the first time a non-hotplugged modem, we will issue the port initialization commands only after having run the enabling_modem_init() step (i.e. after ATZ usually).
2013-02-18broadband-modem: new step during 'enabling_started' to initialize the modemAleksander Morgado
We previously had the modem initialization command merged with some other port setup commands in the 'modem_init' step of the 'Modem' interface. Instead of doing this, we now split the logic into two separate steps: A first 'enabling_modem_init' modem initialization step is to be run just after the ports have been opened, but only during the first enabling operation, and only if the modem was not hotplugged. A hotplugged modem is assumed to be properly initialized already, so no need to ATZ-it. Also, we will now wait 500ms by default after the modem initialization command has been sent, to let it settle down. The second 'modem_init' step will be run during the 'Modem' interface initialization, and it currently only holds specific setup of the primary and secondary serial ports. We'll be modifying this logic a bit in the next commits, so no big deal to have that step name unchanged.
2013-02-15broadband-modem-longcheer: fix getting and setting of allowed modesDan Williams
When setting allowed modes, a ",2" crept into the MODODR command when porting the plugin from 0.6. That shouldn't be there. When getting allowed modes, 2 is UMTS preferred and 4 is GSM preferred, which the previous code combined into only UMTS preferred.
2013-02-08sierra: fix access tech reporting logicAleksander Morgado
2013-02-07broadband-modem-mbm: handle HSPA access technology in ERINFO responseDan Williams
HSUPA/HSPA capable devices (ex F5521gw) can report '3' here, which we'll decide to interpret as HSPA. It might actually be HSDPA + HSUPA, but whatever...
2013-02-06broadband-modem-longcheer: fix handling of preferred modesDan Williams
Treat NONE the same as ANY and handle specific preferred modes too.
2013-02-06anydata: support QMI-based devicesDan Williams
Some devices (like the ADU960S) support QMI, so if the modem has a QMI port, use it.
2013-02-06broadband-modem-novatel: read HDR revision for access technologyDan Williams
Specialize what the superclass gave us, if we can.
2013-02-06broadband-modem-novatel: use ERI subsystem information to better determine ↵Dan Williams
roaming We use the Icon ID here because a value of 1 *always* means not roaming, while the other values don't appear to be consistent. For example, an ERI value of "0" is supposed to mean roaming according to the standards, but the Novatel devices appear to use 0 to mean home. Since we're not sure, don't depend on the ERI value itself, just depend on the Icon ID, where we know for sure that 1 means "home".