Lines Matching +full:software +full:- +full:based

1 // SPDX-License-Identifier: GPL-2.0
29 ret = fwnode_property_get_reference_args(fwnode, "usb4-host-interface", in tb_acpi_add_link()
35 if (dev_fwnode(&nhi->pdev->dev) != args.fwnode) in tb_acpi_add_link()
61 dev = dev->parent; in tb_acpi_add_link()
72 if (pdev->class == PCI_CLASS_SERIAL_USB_XHCI || in tb_acpi_add_link()
85 pm_runtime_get_sync(&pdev->dev); in tb_acpi_add_link()
87 link = device_link_add(&pdev->dev, &nhi->pdev->dev, in tb_acpi_add_link()
92 dev_dbg(&nhi->pdev->dev, "created link from %s\n", in tb_acpi_add_link()
93 dev_name(&pdev->dev)); in tb_acpi_add_link()
95 dev_warn(&nhi->pdev->dev, "device link creation from %s failed\n", in tb_acpi_add_link()
96 dev_name(&pdev->dev)); in tb_acpi_add_link()
99 pm_runtime_put(&pdev->dev); in tb_acpi_add_link()
108 * tb_acpi_add_links() - Add device links based on ACPI description
119 if (!has_acpi_companion(&nhi->pdev->dev)) in tb_acpi_add_links()
123 * Find all devices that have usb4-host-controller interface in tb_acpi_add_links()
129 dev_warn(&nhi->pdev->dev, "failed to enumerate tunneled ports\n"); in tb_acpi_add_links()
133 * tb_acpi_is_native() - Did the platform grant native TBT/USB4 control
136 * TBT/USB4. In this case software based connection manager can be used,
137 * otherwise there is firmware based connection manager running.
146 * tb_acpi_may_tunnel_usb3() - Is USB3 tunneling allowed by the platform
148 * When software based connection manager is used, this function
159 * tb_acpi_may_tunnel_dp() - Is DisplayPort tunneling allowed by the platform
161 * When software based connection manager is used, this function
172 * tb_acpi_may_tunnel_pcie() - Is PCIe tunneling allowed by the platform
174 * When software based connection manager is used, this function
185 * tb_acpi_is_xdomain_allowed() - Are XDomain connections allowed
187 * When software based connection manager is used, this function
197 /* UUID for retimer _DSM: e0053122-795b-4122-8a5e-57be1d26acb3 */
207 struct usb4_port *usb4 = port->usb4; in tb_acpi_retimer_set_power()
213 if (!usb4->can_offline) in tb_acpi_retimer_set_power()
216 adev = ACPI_COMPANION(&usb4->dev); in tb_acpi_retimer_set_power()
221 obj = acpi_evaluate_dsm_typed(adev->handle, &retimer_dsm_guid, 1, in tb_acpi_retimer_set_power()
226 return -EIO; in tb_acpi_retimer_set_power()
229 ret = obj->integer.value; in tb_acpi_retimer_set_power()
244 obj = acpi_evaluate_dsm_typed(adev->handle, &retimer_dsm_guid, 1, in tb_acpi_retimer_set_power()
250 return -EIO; in tb_acpi_retimer_set_power()
253 ret = obj->integer.value; in tb_acpi_retimer_set_power()
258 return ret == 1 ? 0 : -EBUSY; in tb_acpi_retimer_set_power()
263 return -EIO; in tb_acpi_retimer_set_power()
267 * tb_acpi_power_on_retimers() - Call platform to power on retimers
273 * spec). Note if this returns %-EBUSY it means the type-C port is in
274 * non-USB4/TBT mode (there is non-USB4/TBT device connected).
286 * tb_acpi_power_off_retimers() - Call platform to power off retimers
318 port_adev = acpi_find_child_by_adr(ACPI_COMPANION(&parent_sw->dev), in tb_acpi_switch_find_companion()
319 port->port); in tb_acpi_switch_find_companion()
323 struct tb_nhi *nhi = sw->tb->nhi; in tb_acpi_switch_find_companion()
326 parent_adev = ACPI_COMPANION(&nhi->pdev->dev); in tb_acpi_switch_find_companion()
352 return acpi_find_child_by_adr(ACPI_COMPANION(dev->parent), in tb_acpi_find_companion()
353 tb_to_usb4_port_device(dev)->port->port); in tb_acpi_find_companion()
365 if (acpi_check_dsm(adev->handle, &retimer_dsm_guid, 1, in tb_acpi_setup()
368 usb4->can_offline = true; in tb_acpi_setup()