45 |
45 |
struct modem_info {
|
46 |
46 |
char *syspath;
|
47 |
47 |
char *devname;
|
|
48 |
char *pathname;
|
48 |
49 |
char *driver;
|
49 |
50 |
char *vendor;
|
50 |
51 |
char *model;
|
... | ... | |
1224 |
1225 |
|
1225 |
1226 |
g_free(modem->syspath);
|
1226 |
1227 |
g_free(modem->devname);
|
|
1228 |
g_free(modem->pathname);
|
1227 |
1229 |
g_free(modem->driver);
|
1228 |
1230 |
g_free(modem->vendor);
|
1229 |
1231 |
g_free(modem->model);
|
... | ... | |
1304 |
1306 |
*/
|
1305 |
1307 |
static void add_serial_device(struct udev_device *dev)
|
1306 |
1308 |
{
|
1307 |
|
const char *syspath, *devpath, *devname, *devnode;
|
|
1309 |
const char *syspath, *devpath, *devname, *devnode, *pathname;
|
1308 |
1310 |
struct modem_info *modem;
|
1309 |
1311 |
struct serial_device_info *info;
|
1310 |
1312 |
const char *subsystem;
|
... | ... | |
1318 |
1320 |
}
|
1319 |
1321 |
|
1320 |
1322 |
driver = udev_device_get_property_value(mdev, "OFONO_DRIVER");
|
|
1323 |
pathname = udev_device_get_property_value(mdev, "OFONO_PATHNAME");
|
1321 |
1324 |
|
1322 |
1325 |
syspath = udev_device_get_syspath(mdev);
|
1323 |
1326 |
devname = udev_device_get_devnode(mdev);
|
... | ... | |
1337 |
1340 |
modem->type = MODEM_TYPE_SERIAL;
|
1338 |
1341 |
modem->syspath = g_strdup(syspath);
|
1339 |
1342 |
modem->devname = g_strdup(devname);
|
|
1343 |
modem->pathname = g_strdup(pathname);
|
1340 |
1344 |
modem->driver = g_strdup("legacy");
|
1341 |
1345 |
|
1342 |
1346 |
g_hash_table_replace(modem_list, modem->syspath, modem);
|
... | ... | |
1362 |
1366 |
|
1363 |
1367 |
static void add_device(const char *syspath, const char *devname,
|
1364 |
1368 |
const char *driver, const char *vendor,
|
1365 |
|
const char *model, struct udev_device *device)
|
|
1369 |
const char *model, const char *pathname,
|
|
1370 |
struct udev_device *device)
|
1366 |
1371 |
{
|
1367 |
1372 |
struct udev_device *usb_interface;
|
1368 |
1373 |
const char *devpath, *devnode, *interface, *number;
|
... | ... | |
1399 |
1404 |
modem->driver = g_strdup(driver);
|
1400 |
1405 |
modem->vendor = g_strdup(vendor);
|
1401 |
1406 |
modem->model = g_strdup(model);
|
|
1407 |
modem->pathname = g_strdup(pathname);
|
1402 |
1408 |
|
1403 |
1409 |
modem->sysattr = get_sysattr(driver);
|
1404 |
1410 |
|
... | ... | |
1434 |
1440 |
|
1435 |
1441 |
DBG("%s", syspath);
|
1436 |
1442 |
DBG("%s", devpath);
|
1437 |
|
DBG("%s (%s) %s [%s] ==> %s %s", devnode, driver,
|
1438 |
|
interface, number, label, sysattr);
|
|
1443 |
DBG("%s (%s) %s [%s] ==> %s %s %s",
|
|
1444 |
devnode, driver, interface, number, label, sysattr, pathname);
|
1439 |
1445 |
|
1440 |
1446 |
info = g_try_new0(struct device_info, 1);
|
1441 |
1447 |
if (info == NULL)
|
... | ... | |
1530 |
1536 |
static void check_usb_device(struct udev_device *device)
|
1531 |
1537 |
{
|
1532 |
1538 |
struct udev_device *usb_device;
|
1533 |
|
const char *syspath, *devname, *driver;
|
|
1539 |
const char *syspath, *devname, *driver, *pathname;
|
1534 |
1540 |
const char *vendor = NULL, *model = NULL;
|
1535 |
1541 |
|
1536 |
1542 |
usb_device = udev_device_get_parent_with_subsystem_devtype(device,
|
... | ... | |
1549 |
1555 |
vendor = udev_device_get_property_value(usb_device, "ID_VENDOR_ID");
|
1550 |
1556 |
model = udev_device_get_property_value(usb_device, "ID_MODEL_ID");
|
1551 |
1557 |
|
|
1558 |
pathname = udev_device_get_property_value(usb_device, "OFONO_PATHNAME");
|
|
1559 |
|
1552 |
1560 |
driver = udev_device_get_property_value(usb_device, "OFONO_DRIVER");
|
1553 |
1561 |
if (!driver) {
|
1554 |
1562 |
struct udev_device *usb_interface =
|
... | ... | |
1604 |
1612 |
return;
|
1605 |
1613 |
}
|
1606 |
1614 |
|
1607 |
|
add_device(syspath, devname, driver, vendor, model, device);
|
|
1615 |
add_device(syspath, devname, driver, vendor, model, pathname, device);
|
1608 |
1616 |
}
|
1609 |
1617 |
|
1610 |
1618 |
static void check_device(struct udev_device *device)
|
... | ... | |
1642 |
1650 |
|
1643 |
1651 |
DBG("driver=%s", modem->driver);
|
1644 |
1652 |
|
1645 |
|
modem->modem = ofono_modem_create(NULL, modem->driver);
|
|
1653 |
modem->modem = ofono_modem_create(modem->pathname, modem->driver);
|
1646 |
1654 |
if (modem->modem == NULL)
|
1647 |
1655 |
return TRUE;
|
1648 |
1656 |
|