Intelligent role selection for dual-role devices
First Claim
Patent Images
1. A method performed by a software-implemented role manager executing on a first device that is communicatively connected via a USB Type C cable to a second device, comprising:
- determining that a first role is to be assigned to the first device and a second role is to be assigned to the second device, the first role and the second role defining an operating relationship between the first device and second device via the USB Type C cable;
causing the first role to be assigned to the first device and the second role to be assigned to the second device;
receiving information indicative of a change of capability or operational state of one or more of the first device and the second device;
determining that a role assignment swap is to be implemented based at least in part on the information; and
based at least on the determining that the role assignment swap is to be implemented, initiating the role assignment swap causing the first role to be assigned to the second device and causing the second role to be assigned to the first device, the initiating comprising causing a USB connection manager driver stack to;
assign one of a USB host or a USB function role to the first device by selectively activating one of a USB host driver stack or a USB function driver stack of the first device; and
assign the other of the USB host or a USB function role to the second device by interacting with the second device via the USB Type C cable.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments described herein are directed to mechanisms that enable roles (e.g., host vs. function, power provider vs. power consumer, master vs. slave, server vs. client, source vs. sink, upstream vs. downstream) to be dynamically assigned between two interconnected dual-role devices in an intelligent and deterministic manner based on the available context on each device.
44 Citations
20 Claims
-
1. A method performed by a software-implemented role manager executing on a first device that is communicatively connected via a USB Type C cable to a second device, comprising:
-
determining that a first role is to be assigned to the first device and a second role is to be assigned to the second device, the first role and the second role defining an operating relationship between the first device and second device via the USB Type C cable; causing the first role to be assigned to the first device and the second role to be assigned to the second device; receiving information indicative of a change of capability or operational state of one or more of the first device and the second device; determining that a role assignment swap is to be implemented based at least in part on the information; and based at least on the determining that the role assignment swap is to be implemented, initiating the role assignment swap causing the first role to be assigned to the second device and causing the second role to be assigned to the first device, the initiating comprising causing a USB connection manager driver stack to; assign one of a USB host or a USB function role to the first device by selectively activating one of a USB host driver stack or a USB function driver stack of the first device; and assign the other of the USB host or a USB function role to the second device by interacting with the second device via the USB Type C cable. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A first device, comprising:
-
at least one processor circuit; and at least one memory that stores program code configured to be executed by the at least one processor circuit, the program code comprising; a role manager configured to; determine that a first role is to be assigned to the first device and a second role is to be assigned to a second device that is communicatively connected via a USB Type C cable to the first device, the first role and the second role defining an operating relationship between the first device and second device via the USB Type C cable; cause the first role to be assigned to the first device and the second role to be assigned to the second device; receive information indicative of a change of capability or operational state of one or more of the first device and the second device, to determine that a role assignment swap is to be implemented based at least in part on the information; based at least on the determination that the role assignment swap is to be implemented, initiate the role assignment swap causing the first role to be assigned to the second device and causing the second role to be assigned to the first device, the role manager configured to initiate the role assignment swap comprising causing a USB connection manager driver stack to; assign one of a USB host or a USB function role to the first device by selectively activating one of a USB host driver stack or a USB function driver stack of the first device; and assign the other of the USB host or a USB function role to the second device by interacting with the second device via the USB Type C cable. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer program product comprising a computer-readable memory having computer program logic recorded thereon that when executed by at least one processor of a first device causes the at least one processor to perform a method comprising:
-
determining that a first role is to be assigned to the first device and a second role is to be assigned to a second device that is communicatively connected via a USB Type C cable to the first device, the first role and the second role defining an operating relationship between the first device and second device via the USB Type C cable; causing the first role to be assigned to the first device and the second role to be assigned to the second device; receiving information indicative of a change of capability or operational state of one or more of the first device and the second device; determining that a role assignment swap is to be implemented based at least in part on the information; and based at least on the determining that the role assignment swap is to be implemented, initiating the role assignment swap causing the first role to be assigned to the second device and causing the second role to be assigned to the first device, the initiating comprising causing a USB connection manager driver stack to; assign one of a USB host or a USB function role to the first device by selectively activating one of a USB host driver stack or a USB function driver stack of the first device; and assign the other of the USB host or a USB function role to the second device by interacting with the second device via the USB Type C cable. - View Dependent Claims (18, 19, 20)
-
Specification