Hi,
On 10/2/20 10:10 PM, Hans de Goede wrote:
<snip>
Still a bit slower then the old probe method, but much better then the
new probe method with the default initial_descriptor_timeout.
Yeah, okay, it's good to see that the patch helps. But I'm doubtful
that the change it makes will become part of the standard (i.e., not
for embedded systems) kernel.
I still think the udev approach will be best. That will require adding
various *_uevent_* calls in usb_hub_create_port_device, and adding a
.uevent member to usb_port_device_type.
So I tried this and it does not work, the problem is that
dev_uevent_filter() from drivers/base/core.c
filters out uevents for anything which is not either a device
on a bus or a class device:
static int dev_uevent_filter(struct kset *kset, struct kobject *kobj)
{
struct kobj_type *ktype = get_ktype(kobj);
if (ktype == &device_ktype) {
struct device *dev = kobj_to_dev(kobj);
if (dev->bus)
return 1;
if (dev->class)
return 1;
}
return 0;
}
p.s.
I guess that this means that it is best to just learn to live
with the somewhat long enumeration time with the new scheme in
this somewhat specific case, that is fine with me.
Regards,
Hans