Thread (12 messages) 12 messages, 3 authors, 2021-12-10

Re: [PATCH 4/5] usb: typec: port-mapper: Convert to the component framework

From: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Date: 2021-12-08 11:23:47
Also in: linux-acpi, lkml

On Tue, Dec 07, 2021 at 05:46:06PM +0200, Andy Shevchenko wrote:
On Tue, Dec 07, 2021 at 05:37:56PM +0300, Heikki Krogerus wrote:
quoted
Instead of trying to keep track of the connections to the
USB Type-C connectors separately, letting the component
framework take care of that.

From now on every USB Type-C connector will register itself
as "aggregate" - component master - and anything that can be
connected to it can then simply register itself as a generic
component.

The matching of the components and the connector shall rely
on ACPI _PLD initially. Before registering itself as the
aggregate, the connector will check the list of other
devices that share the same ACPI _PLD with it, and add a
component match entry for each one of them. Because only
ACPI is supported for now, the driver shall only be build
when ACPI is supported.

This removes the need for the custom API that the driver
exposed. The components and the connector can therefore
exist completely independently of each other. The order in
which they are registered, as well as are they modules or
not, is now irrelevant.
...
quoted
+static int typec_port_compare(struct device *dev, void *fwnode)
 {
quoted
+	return dev_fwnode(dev) == fwnode;
 }
NIH device_match_fwnode()

...
quoted
+	/* Component match for every device that shares the same _PLD. */
+	list_for_each_entry(adev, &location->devices, location_list) {
quoted
+		if (adev == ACPI_COMPANION(&con->dev))
	device_match_acpi_dev()
Ah, both look like great helpers. I'll this in v2. Thanks.

-- 
heikki
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help