Lines Matching +full:displayport +full:- +full:controller
1 // SPDX-License-Identifier: GPL-2.0
28 ret = fwnode_property_get_reference_args(fwnode, "usb4-host-interface", in tb_acpi_add_link()
34 if (nhi->pdev->dev.fwnode != args.fwnode) in tb_acpi_add_link()
44 adev = adev->parent; in tb_acpi_add_link()
60 dev = dev->parent; in tb_acpi_add_link()
71 if (pdev->class == PCI_CLASS_SERIAL_USB_XHCI || in tb_acpi_add_link()
77 link = device_link_add(&pdev->dev, &nhi->pdev->dev, in tb_acpi_add_link()
81 dev_dbg(&nhi->pdev->dev, "created link from %s\n", in tb_acpi_add_link()
82 dev_name(&pdev->dev)); in tb_acpi_add_link()
84 dev_warn(&nhi->pdev->dev, "device link creation from %s failed\n", in tb_acpi_add_link()
85 dev_name(&pdev->dev)); in tb_acpi_add_link()
95 * tb_acpi_add_links() - Add device links based on ACPI description
106 if (!has_acpi_companion(&nhi->pdev->dev)) in tb_acpi_add_links()
110 * Find all devices that have usb4-host-controller interface in tb_acpi_add_links()
116 dev_warn(&nhi->pdev->dev, "failed to enumerate tunneled ports\n"); in tb_acpi_add_links()
120 * tb_acpi_is_native() - Did the platform grant native TBT/USB4 control
133 * tb_acpi_may_tunnel_usb3() - Is USB3 tunneling allowed by the platform
146 * tb_acpi_may_tunnel_dp() - Is DisplayPort tunneling allowed by the platform
159 * tb_acpi_may_tunnel_pcie() - Is PCIe tunneling allowed by the platform
172 * tb_acpi_is_xdomain_allowed() - Are XDomain connections allowed
184 /* UUID for retimer _DSM: e0053122-795b-4122-8a5e-57be1d26acb3 */
194 struct usb4_port *usb4 = port->usb4; in tb_acpi_retimer_set_power()
200 if (!usb4->can_offline) in tb_acpi_retimer_set_power()
203 adev = ACPI_COMPANION(&usb4->dev); in tb_acpi_retimer_set_power()
208 obj = acpi_evaluate_dsm_typed(adev->handle, &retimer_dsm_guid, 1, in tb_acpi_retimer_set_power()
213 return -EIO; in tb_acpi_retimer_set_power()
216 ret = obj->integer.value; in tb_acpi_retimer_set_power()
231 obj = acpi_evaluate_dsm_typed(adev->handle, &retimer_dsm_guid, 1, in tb_acpi_retimer_set_power()
237 return -EIO; in tb_acpi_retimer_set_power()
240 ret = obj->integer.value; in tb_acpi_retimer_set_power()
245 return ret == 1 ? 0 : -EBUSY; in tb_acpi_retimer_set_power()
250 return -EIO; in tb_acpi_retimer_set_power()
254 * tb_acpi_power_on_retimers() - Call platform to power on retimers
260 * spec). Note if this returns %-EBUSY it means the type-C port is in
261 * non-USB4/TBT mode (there is non-USB4/TBT device connected).
273 * tb_acpi_power_off_retimers() - Call platform to power off retimers
303 list_for_each_entry(port_adev, &adev->children, node) { in tb_acpi_find_port()
304 if (acpi_device_adr(port_adev) == port->port) in tb_acpi_find_port()
321 port_adev = tb_acpi_find_port(ACPI_COMPANION(&parent_sw->dev), port); in tb_acpi_switch_find_companion()
325 struct tb_nhi *nhi = sw->tb->nhi; in tb_acpi_switch_find_companion()
328 parent_adev = ACPI_COMPANION(&nhi->pdev->dev); in tb_acpi_switch_find_companion()
354 return tb_acpi_find_port(ACPI_COMPANION(dev->parent), in tb_acpi_find_companion()
355 tb_to_usb4_port_device(dev)->port); in tb_acpi_find_companion()
367 if (acpi_check_dsm(adev->handle, &retimer_dsm_guid, 1, in tb_acpi_setup()
370 usb4->can_offline = true; in tb_acpi_setup()