diff options
author | Dan Williams <dcbw@redhat.com> | 2011-07-25 12:50:22 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2011-07-25 12:57:59 -0500 |
commit | 1df8dd7361d4afbaf3e0fa46529cdd2460fa503d (patch) | |
tree | e5553e7ad58237a43abb5760fa1b6354c521c469 | |
parent | b02dc7f50fd918075c43d93d91f4bc3879b91b4c (diff) |
option: plugin is supposed to support Nozomi devices too
The Nozomi cards were early CardBus devices that used a direct PCI
interface (instead of the more usual PCI<->USB controller) and the
'nozomi' kernel driver. They use the same command set as most other
early Option NV modems. Nozomi was always supposed to be driven
by the option plugin, but apparently that got broken when adding
some of the driver/vendor checks.
-rw-r--r-- | plugins/mm-plugin-option.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/plugins/mm-plugin-option.c b/plugins/mm-plugin-option.c index 0e279c03..8c16879a 100644 --- a/plugins/mm-plugin-option.c +++ b/plugins/mm-plugin-option.c @@ -58,7 +58,7 @@ supports_port (MMPluginBase *base, { GUdevDevice *port; const char *driver, *subsys, *name; - guint16 vendor = 0; + guint16 vendor = 0, product = 0; /* Can't do anything with non-serial ports */ port = mm_plugin_base_supports_task_get_port (task); @@ -69,13 +69,14 @@ supports_port (MMPluginBase *base, name = g_udev_device_get_name (port); driver = mm_plugin_base_supports_task_get_driver (task); - if (!driver || (strcmp (driver, "option1") && strcmp (driver, "option"))) + if (!driver || (strcmp (driver, "option1") && strcmp (driver, "option") && strcmp (driver, "nozomi"))) return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED; - if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, NULL)) + if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product)) return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED; - if (vendor != 0x0af0) + if ( (vendor != 0x0af0) /* Option USB devices */ + && (vendor != 0x1931 || product != 0x000c)) /* Nozomi CardBus devices */ return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED; /* Check if a previous probing was already launched in this port */ |