Commit Graph
32 Commits
Author SHA1 Message Date
Aleksander Morgado 4804c37604 build: new `--without-qmi' configure option
For those who don't care about the QMI support through libqmi-glib, or if you're
stuck with glib 2.30 (libqmi-glib requires 2.32), this configure switch allows
disabling the QMI support completely.

The logic to detect cdc-wdm ports is still in place, but the QMI probing is
never launched at them. Also, all QMI-related objects won't be compiled.
2012-09-05 20:02:31 +02:00
Aleksander Morgado 1e5b00e33b plugin: let plugins decide if they want echo removal during AT probing
This is the port to git master of the following patch:

commit 21e66dfa1774ac2ee037ac8b6e8bb4d71a6f7931
Author: Dan Williams <dcbw@redhat.com>
Date:   Thu Aug 23 21:13:35 2012 -0500

    core: add function to open probe ports without removing echo

    Some devices (Sierra GSM ones) return stuff we need but don't
    bother to prefix it with <CR><LF>, so we need to optionally turn
    off the echo removal at probe time.
2012-08-31 09:20:43 +02:00
Aleksander Morgado 1ca46bb4a7 port-probe: easier check for Icera support over a list of port probes 2012-08-30 13:57:56 +02:00
Aleksander Morgado 6686f8d4db port-probe: minor indentation fixes 2012-08-29 17:26:41 +02:00
Aleksander Morgado 8ee0e3f30f port-probe: new helper to check if a QMI port was found in a list of probes 2012-08-29 17:14:47 +02:00
Aleksander Morgado db99f340c8 port-probe: launch QMI probing on cdc-wdm ports
Some devices may export cdc-wdm ports talking AT. We need to explicitly check
for QMI protocol support on the cdc-wdm ports before assuming they are QMI.
2012-08-29 17:14:47 +02:00
Aleksander Morgado 0b3eb27856 port-probe: include Icera support check in the probing sequence 2012-08-06 20:07:27 +02:00
Aleksander Morgado ff8a962d99 port-probe: let us peek the `MMDevice' owning the probe from the probe itself 2012-08-06 20:06:47 +02:00
Aleksander Morgado 6e3d90e2a4 plugin: new `MM_PLUGIN_CUSTOM_INIT' property
We let plugins execute some custom initialization in the ports, specified by
a `MMAsyncMethod'.
2012-08-06 20:06:46 +02:00
Aleksander Morgado d63570838b port-probe: fix typo in class definition 2012-08-06 20:06:46 +02:00
Aleksander Morgado 9b0f6c83f2 plugin: renamed custom-init' property to custom-at-probe'
The `custom-at-probe' property is just to modify the way we check for AT port
support.
2012-08-06 20:06:46 +02:00
Aleksander Morgado 89b3c01328 port-probe: setup the port object as a property 2012-08-06 20:06:46 +02:00
Aleksander Morgado 4a85707b09 port-probe: no need to keep neither physdev path nor driver 2012-08-06 20:06:46 +02:00
Aleksander Morgado 87c2c8632e port-probe: new method to check if there is an AT port in a list of probes 2012-08-06 20:06:45 +02:00
Aleksander Morgado a9075b0c09 port-probe: rename _get_port() to _peek_port() as there is no ownership transfer 2012-08-06 20:06:45 +02:00
Aleksander Morgado 3eb4220caa port-probe: new probing result setters
We make them public, so that we can set results before actually running the
probing.
2012-03-16 14:53:25 +01:00
Aleksander Morgado c52762ea67 build: require gudev >= 147
Since udev 147 the gudev API is no longer marked as experimental, and therefore
`G_UDEV_API_IS_SUBJECT_TO_CHANGE' is no longer needed.
2012-03-16 14:53:25 +01:00
Aleksander Morgado dc58cce7c4 port-probe: allow cancelling all AT probing steps 2012-03-16 14:53:22 +01:00
Aleksander Morgado 690777986b port-probe: refactor AT command handling
Make it use a GVariant in the response processor, as the AT command handling in
the MMBaseModem.
2012-03-16 14:53:22 +01:00
Aleksander Morgado 66984e77cd port-probe: convert port probe flags to a private enum 2012-03-16 14:53:22 +01:00
Aleksander Morgado 8b7b614105 core: rework port grabbing and organization
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.

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 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.

This is the port of commit 96505d42ed62327101dcee7c2bf31177b0bb1c9f
to the 06-api branch.
2012-03-15 14:15:05 +01:00
Aleksander Morgado fa01e7a6d3 core: no need to check Capabilities during port probing
Capabilities checking is done during the Modem interface initialization.
2012-03-15 14:14:24 +01:00
Aleksander Morgado fa3fa38e0d port-probe: allow providing custom initialization AT commands 2012-03-15 14:14:20 +01:00
Aleksander Morgado 610bffc4e8 port-probe: enable probing for QCDM support 2012-03-15 14:14:20 +01:00
Aleksander Morgado b73fb8e8f2 port-probe: enable probing for Product 2012-03-15 14:14:20 +01:00
Aleksander Morgado 1f9fd9e0be port-probe: enable probing for Vendor 2012-03-15 14:14:20 +01:00
Aleksander Morgado 05f8493ee7 port-probe: enable probing for Capabilities 2012-03-15 14:14:20 +01:00
Aleksander Morgado 6816c2e61d port-probe: enable probing for AT support
We will initially probe for AT support in the port.
2012-03-15 14:14:20 +01:00
Aleksander Morgado f7b1d99fa0 port-probe: allow cancelling the probing operation
The new `mm_port_probe_cancel()' will cancel the probing operation currently in
progress, if any. Note that we don't need to pass any argument to specify which
operation to cancel, as there can only be one.
2012-03-15 14:14:20 +01:00
Aleksander Morgado f227572d8f port-probe: setup an asynchronous method for port probing
The new method `mm_port_probe_run()' will run the whole probing process
asynchronously. Result of the probing can be later obtained with
`mm_port_probe_run_finish()'.
2012-03-15 14:14:20 +01:00
Aleksander Morgado 1b84994feb port-probe: set port details when creating the object
Each port probe is always associated to one specific port.
2012-03-15 14:14:20 +01:00
Aleksander Morgado 74145f5af7 port-probe: new MMPortProbe object 2012-03-15 14:14:20 +01:00