IP Library Granted Patent US 11,593,297
Granted Patent B2
US 11,593,297 · App. 17/078,299 · Granted Feb 28, 2023

System and method for supporting a dual role controller in a portable information handling system

Inventors: Daniel L. Hamlin (Round Rock, TX); Gokul T. Vajravel (Bangalore, IN)
Assignee: Dell Products L.P.
G06F15/177G06F9/452G06F9/54G06F2213/00G06F2213/0042
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,593,297
App. No.
17/078,299
Granted
Feb 28, 2023
Kind
B2
Abstract

A system for supporting a dual role controller in an information handling systems configurable as a device or a host. When the information handling system is connected to another information handling system and configured for operating in a device mode, a proxy service and an agent service execute on the information handling system. Communications from the other information handling system are received by the proxy service and sent to the agent service, which translates generic requests into application specific requests and commands. Device functions like MTP (storage), Webcam (streaming) and generic-USB commands are enabled in device mode for virtual desktop interface (VDI) or hardware isolated applications.

Claims (60)

1. A method for supporting a dual role controller in a portable information handling system, the method comprising:

storing, in a memory medium associated with the dual role controller, a proxy service and an agent service;

executing the proxy service to monitor communications associated with the dual role controller to determine if the portable information handling system is executing instructions to operate in a device mode;

in response to determining the portable information handling system is executing the instructions to operate in the device mode:

executing the agent service to communicate with a software stack associated with a host mode; and

communicating, by the proxy service, with the agent service and a software stack associated with the device mode.

2. The method of claim 1 , wherein the proxy service is configured for communicating a request from a media transport protocol (MTP) or a mass storage application and the agent service is configured for translating the request into a set of application specific requests.

3. The method of claim 2 , wherein the agent service is configured for translating the request into the set of application specific requests before communicating with a Virtual Desktop Interface (VDI) or an isolated application.

4. The method of claim 3 , wherein communicating with the Virtual Desktop Interface (VDI) or the isolated application comprises:

communicating, from the proxy service to the agent service, a command to open a device;

communicating, from the agent service to the proxy service, a device request response comprising handle information associated with the device;

sending, by the proxy service to a device controller, marshalled handle information associated with the device,

receiving, by the proxy service from the device controller, a data request associated with the device;

communicating, by the proxy service, the data request to the agent service;

communicating a data response from the agent service to the proxy service; and

sending, from the proxy service to the device controller, the data response to the data request.

5. The method of claim 1 , wherein executing the proxy service to monitor the communications associated with the dual role controller comprises determining when a cable is connected to the portable information handling system and connected to a second information handling system, the second information handling system operating in the host mode.

6. The method of claim 5 , wherein:

in response to detecting the cable is connected to the portable information handling system and the second information handling system, the dual role controller switching to operating in the device mode;

in response to the portable information handling system switching to operating in the device mode, the proxy service communicating a device query to the agent service; and

in response to receiving the device query, the agent service communicating a device list of available devices to the proxy service; and

in response to receiving the device list, the proxy service caching the device list to the software stack associated with the device mode accessible by the dual role controller.

7. The method of claim 6 , wherein caching the device list to the software stack associated with the device mode comprises fabricating one or more USB device descriptors.

8. The method of claim 7 , wherein the one or more USB device descriptors comprises at least one of a device descriptor, a configuration descriptor, an interface descriptor and an endpoint descriptor.

9. The method of claim 6 , wherein:

in response to detecting the cable is disconnected, communicating, from the proxy service to the agent service a cancel command to cancel any outstanding data requests; and

in response to receiving the cancel command, communicating from the agent service to the proxy service a cancel completion response when all the outstanding data requests are canceled.

10. A system for supporting a dual role controller in a portable information handling system, the system comprising:

a memory medium storing a proxy service and an agent service, wherein:

the proxy service is configured to:

monitor communications to determine when the dual role controller is changing from operating in a host mode to operating in a device mode;

receive one of a device request or a data request from a second information handling system coupled to the portable information handling system;

communicate the data request to the agent service; and

send a response to the second information handling system, the response comprising one of a data response to the data request or device information; and

the agent service is configured to:

translate the data request received from the proxy service into one or more application specific requests corresponding to a hardware isolated application or a virtual desktop interface (VDI) application;

send, to the proxy service, one of a device response or the data response.

11. The system of claim 10 , wherein the proxy service is configured to:

send the device request to the agent service to open an application executing on the portable information handling system;

receive the device response from the agent service, the device response including handle information for the application executing on the portable information handling system.

12. The system of claim 10 , wherein the proxy service is configured to:

send a bulk data request to the agent service; and

receive a bulk data response from the agent service.

13. The system of claim 10 , wherein:

the proxy service is configured to send the device request to the agent service; and

the agent service is configured to send the device response to the proxy service, the device response comprising the handle information for the application executing on the portable information handling system.

14. The system of claim 10 , wherein the proxy service is configured to communicate a request from a mass transport protocol (MTP) or mass storage application and the agent service is configured to translate the request into a set of application specific requests.

15. The system of claim 14 , wherein the agent service is configured to translate the request into the one or more application specific requests before communicating with the Virtual Desktop Interface (VDI) or the hardware isolated application.

16. The system of claim 10 , wherein the proxy service is configured to monitor the communications to determine when a cable is connected to the portable information handling system to determine when the dual role controller is changing from operating in the host mode to operating in the device mode.

17. The system of claim 10 , wherein the proxy service is configured to:

communicate a command to open an application associated with a device to the agent service;

receive from the agent service a response comprising the handle information for the application associated with the device; and

send marshalled handle information for the application associated with the device to the second information handling system.

18. The system of claim 17 , wherein the proxy service is configured to:

receive the data request for the application associated with the device;

communicate the data request to the agent service;

receive the data response from the agent service; and

send the data response to the second information handling system.

19. The system of claim 10 , wherein the proxy service is configured to cache a device list to the function stack.

20. The system of claim 19 , wherein the proxy service is configured to generate one or more USB device descriptors, each USB device descriptor comprising at least one of a device descriptor, a configuration descriptor, an interface descriptor and an endpoint descriptor.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2020
From: HAMLIN, DANIEL L.; VAJRAVEL, GOKUL T.
To: DELL PRODUCTS L.P.
Reel/Frame 054147/0974 →