Re: [PATCH v5 04/16] usb: find internal hub tier mismatch via acpi

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 21 Feb 2014, Dan Williams wrote:

> ACPI identifies peer ports by setting their 'group_token' and
> 'group_position' _PLD data to the same value.  If a platform has tier
> mismatch [1] , ACPI can override the default (USB3 defined) peer port
> association for internal hubs.  External hubs follow the default peer
> association scheme.
> 
> Location data is cached as an opaque cookie in usb_port_location data.
> 
> Note that we only consider the group_token and group_position attributes
> from the _PLD data as ACPI specifies that group_token is a unique
> identifier.
> 
> The bulk of the implementation is recursively fixing up peer
> associations once we detect tier mismatch.  Due to the way acpi data is
> associated to a usb_port device (via a callback triggered by

Is the callback _triggered_ (i.e., asynchronously) by device_register,
or is it simply _invoked_ (synchronously) by device_register?

> device_register()) we do not discover tier mismatch until after the port
> has been registered.

I've been thinking about this.  Maybe it isn't a problem, because now
you don't set up the peer matching until after the port has been 
registered.  All you have to do is allow the ACPI data to prevent a 
default match if the location data values don't agree.

That would simplify this patch an awful lot.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux