aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/config/udev.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2014-03-12 16:45:42 +0100
committermarha <marha@users.sourceforge.net>2014-03-12 16:45:42 +0100
commitcc6db22a772cc52ead6a5c11d7d02e7364f6326c (patch)
treed80b42172d703ec20ccd99c68a067505e2706899 /xorg-server/config/udev.c
parent2112b7dec49833ba872bd3ebcd7288930fec0796 (diff)
parentcd8b0d0de3fcb53f6d3ece8ce26d97aaab2c0914 (diff)
downloadvcxsrv-cc6db22a772cc52ead6a5c11d7d02e7364f6326c.tar.gz
vcxsrv-cc6db22a772cc52ead6a5c11d7d02e7364f6326c.tar.bz2
vcxsrv-cc6db22a772cc52ead6a5c11d7d02e7364f6326c.zip
Merge remote-tracking branch 'origin/released'
* origin/released: mesa xserver xkbcomp git update 12 Mar 2014
Diffstat (limited to 'xorg-server/config/udev.c')
-rw-r--r--xorg-server/config/udev.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/xorg-server/config/udev.c b/xorg-server/config/udev.c
index d70eeb48c..d88abaaa1 100644
--- a/xorg-server/config/udev.c
+++ b/xorg-server/config/udev.c
@@ -149,10 +149,6 @@ device_added(struct udev_device *udev_device)
LOG_PROPERTY(ppath, "NAME", name);
}
- if (pnp_id)
- attrs.pnp_id = strdup(pnp_id);
- LOG_SYSATTR(ppath, "id", pnp_id);
-
/* construct USB ID in lowercase hex - "0000:ffff" */
if (product &&
sscanf(product, "%*x/%4x/%4x/%*x", &usb_vendor, &usb_model) == 2) {
@@ -164,6 +160,17 @@ device_added(struct udev_device *udev_device)
LOG_PROPERTY(ppath, "PRODUCT", product);
attrs.usb_id = usb_id;
}
+
+ while (!pnp_id && (parent = udev_device_get_parent(parent))) {
+ pnp_id = udev_device_get_sysattr_value(parent, "id");
+ if (!pnp_id)
+ continue;
+
+ attrs.pnp_id = strdup(pnp_id);
+ ppath = udev_device_get_devnode(parent);
+ LOG_SYSATTR(ppath, "id", pnp_id);
+ }
+
}
if (!name)
name = "(unnamed)";