It is not clear if anyone is still using it.
 Who:   Stephen Hemminger <shemminger@osdl.org>
 
+---------------------------
+
+
+What:  PHYSDEVPATH, PHYSDEVBUS, PHYSDEVDRIVER in the uevent environment
+When:  Oktober 2008
+Why:   The stacking of class devices makes these values misleading and
+       inconsistent.
+       Class devices should not carry any of these properties, and bus
+       devices have SUBSYTEM and DRIVER as a replacement.
+Who:   Kay Sievers <kay.sievers@suse.de>
+
+---------------------------
 
        pr_debug("%s - name = %s\n", __FUNCTION__, class_dev->class_id);
 
        if (class_dev->dev) {
-               /* add physical device, backing this device  */
+               /* add device, backing this class device (deprecated) */
                struct device *dev = class_dev->dev;
                char *path = kobject_get_path(&dev->kobj, GFP_KERNEL);
 
 
                               "MINOR=%u", MINOR(dev->devt));
        }
 
-       /* add bus name of physical device */
+       /* add bus name (same as SUBSYSTEM, deprecated) */
        if (dev->bus)
                add_uevent_var(envp, num_envp, &i,
                               buffer, buffer_size, &length,
                               "PHYSDEVBUS=%s", dev->bus->name);
 
-       /* add driver name of physical device */
-       if (dev->driver)
+       /* add driver name (PHYSDEV* values are deprecated)*/
+       if (dev->driver) {
+               add_uevent_var(envp, num_envp, &i,
+                              buffer, buffer_size, &length,
+                              "DRIVER=%s", dev->driver->name);
                add_uevent_var(envp, num_envp, &i,
                               buffer, buffer_size, &length,
                               "PHYSDEVDRIVER=%s", dev->driver->name);
+       }
 
        /* terminate, set to next free slot, shrink available space */
        envp[i] = NULL;