- dev_parent = sysfs_device_get_parent(udevice->udev, udevice->dev);
- if (dev_parent != NULL) {
- struct udevice *udev_parent;
- struct name_entry *name_loop;
-
- dbg(udevice->udev, "found parent '%s', get the node name\n", dev_parent->devpath);
- udev_parent = udev_device_init(udevice->udev);
- if (udev_parent == NULL)
- return -1;
- /* import the udev_db of the parent */
- if (udev_db_get_device(udev_parent, dev_parent->devpath) == 0) {
- dbg(udevice->udev, "import stored parent env '%s'\n", udev_parent->name);
- list_for_each_entry(name_loop, &udev_parent->env_list, node) {
- char name[NAME_SIZE];
- char *pos;
-
- strlcpy(name, name_loop->name, sizeof(name));
- pos = strchr(name, '=');
- if (pos) {
- pos[0] = '\0';
- pos++;
- if (fnmatch(filter, name, 0) == 0) {
- dbg(udevice->udev, "import key '%s'\n", name_loop->name);
- name_list_add(udevice->udev, &udevice->env_list, name_loop->name, 0);
- setenv(name, pos, 1);
- } else
- dbg(udevice->udev, "skip key '%s'\n", name_loop->name);
- }
- }
- rc = 0;
- } else
- dbg(udevice->udev, "parent not found in database\n");
- udev_device_cleanup(udev_parent);
- }