core: prefer CDMA capabilities over GSM for dual-mode devices (bgo #621815)
For devices like the UMW190 that appear to be dual-mode without needing a firmware reload (unlike Gobis, which are dual-mode but require a reboot with different firwmare) prefer CDMA capabilities since that's where these devices will most likely be used more often. In the end we'll need to change MM to advertise a "capabilities" attribute on the modem class and modify devices such that they can implement both GSM and CDMA semantics at the same time.
This commit is contained in:
@@ -10,7 +10,7 @@
|
|||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details:
|
* GNU General Public License for more details:
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008 - 2009 Dan Williams <dcbw@redhat.com>
|
* Copyright (C) 2008 - 2010 Dan Williams <dcbw@redhat.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@@ -136,16 +136,16 @@ grab_port (MMPluginBase *base,
|
|||||||
caps = mm_plugin_base_supports_task_get_probed_capabilities (task);
|
caps = mm_plugin_base_supports_task_get_probed_capabilities (task);
|
||||||
sysfs_path = mm_plugin_base_supports_task_get_physdev_path (task);
|
sysfs_path = mm_plugin_base_supports_task_get_physdev_path (task);
|
||||||
if (!existing) {
|
if (!existing) {
|
||||||
if (caps & MM_PLUGIN_BASE_PORT_CAP_GSM) {
|
if (caps & CAP_CDMA) {
|
||||||
modem = mm_generic_gsm_new (sysfs_path,
|
|
||||||
mm_plugin_base_supports_task_get_driver (task),
|
|
||||||
mm_plugin_get_name (MM_PLUGIN (base)));
|
|
||||||
} else if (caps & CAP_CDMA) {
|
|
||||||
modem = mm_generic_cdma_new (sysfs_path,
|
modem = mm_generic_cdma_new (sysfs_path,
|
||||||
mm_plugin_base_supports_task_get_driver (task),
|
mm_plugin_base_supports_task_get_driver (task),
|
||||||
mm_plugin_get_name (MM_PLUGIN (base)),
|
mm_plugin_get_name (MM_PLUGIN (base)),
|
||||||
!!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856),
|
!!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856),
|
||||||
!!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A));
|
!!(caps & MM_PLUGIN_BASE_PORT_CAP_IS856_A));
|
||||||
|
} else if (caps & MM_PLUGIN_BASE_PORT_CAP_GSM) {
|
||||||
|
modem = mm_generic_gsm_new (sysfs_path,
|
||||||
|
mm_plugin_base_supports_task_get_driver (task),
|
||||||
|
mm_plugin_get_name (MM_PLUGIN (base)));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (modem) {
|
if (modem) {
|
||||||
|
Reference in New Issue
Block a user