A host computing device can connect to a docking station to transfer power signals and/or other signaling between the docking station and the computing device. Docking stations can include ports to facilitate connection between the docking station and the host computing device and/or peripheral computing components.
A computing device (or a “computing device,” for brevity) may be utilized for various purposes, such as for business and/or recreational use. Non-limiting examples of a computing device may include host computing devices and/or peripheral computing devices. As used herein, the term “computing device” refers to an electronic device having a processor and a memory resource. In general, the processor of a “host computing device” may be a central processing unit (CPU) that includes a complex instruction set computer (CISC) that may utilize an x86 or similar instruction set architecture (ISA). A host computing device may further execute an operating system, in contrast to a computing device such as a peripheral computing device. Examples of host computing devices include, for instance, a laptop computer, a notebook computer, a desktop computer, and/or a mobile device (e.g., a smart phone, tablet, personal digital assistant, smart glasses, a wrist-worn device, etc.), among other types of computing devices, while examples of computing devices such as peripheral computing devices include, for instance, docking stations, pointing devices, keyboards, and other computing devices that may not include a CISC architecture and/or may not execute an operating system.
A host computing device may be couplable to a peripheral computing device, such as a docking station. As used herein, the term “docking station” refers to an electronic device that, when a host computing device is connected thereto, permits the host computing device to connect to multiple peripherals using a single connection (e.g., a Universal Senal Bus connection) between the host computing device and a docking station. In addition, a docking station may provide power signals and/or data signals to the host computing device. A docking station can include a processor (e.g., a controller such as an embedded controller) and a memory resource. In general, the processor of a docking station may be a processing unit that includes a reduced instruction set computer (RISC) that may utilize an advanced RISC machine (ARM) ISA or other RISC architecture. As part of providing power signal and/or data signals to the host computing device, a docking station may also provide power to the host computing device to charge the host computing device when the host computing device is connected the docking station.
A docking station may include a locking mechanism (or a portion thereof) to secure a physical connection between the host computing device and the docking station when the host computing device and the docking station are connected (e.g., when the host computing device and the docking station are physically connected to one another). Similarly, the host computing device may include a locking mechanism (or a portion thereof) to facilitate secure physical connection between the host computing device and the docking station when the host computing device and the docking station are connected. As used herein, the term “locking mechanism” refers to a mechanical device or other physical contrivance that operates to provide a secure physical coupling between the host computing device and the docking station. The locking mechanisms described herein are generally operated (e.g., engaged or disengaged) based on signaling generated by the host computing device and/or the docking station.
Due to the mechanical nature of locking mechanisms, and due to such locking mechanisms being generally operated based on signaling generated by the host computing device and/or the docking station, locking mechanisms may experience errors or failures during operation. For example, during operation of a locking mechanism, the locking mechanism may fail to respond to commands to either engage or disengage. In the event that the locking mechanism fails during operation, a user may not be able to safely remove the host computing device from the docking station. This may result in data written to the host computing device being lost. In addition, a user of the host computing device may lose valuable time in attempting to troubleshoot such issues, which, in some approaches can include the use of brute force and/or hand tools that may damage the host computing device and/or the docking station. These and other issues that may arise when the locking mechanism fails can result in a poor experience for a user of the host computing system and/or the docking station.
The present disclosure generally relates to recovery of errors involving docking stations that may cause the docking station to fail in a state in which a host computing device is in an engaged or “locked state” with respect to the docking station. More specifically, the present disclosure relates to performance of error recovery operations to cause the host computing device to be safely unlocked from the docking station if it is determined that an error or failure has occurred that has caused the host computing device to remain in the locked state with respect to the docking station, or vice versa.
As shown in
As described above, the host computing device 102 can be a laptop computer, a notebook computer, a desktop computer, and/or a mobile device. Accordingly, in some examples, the processor resource 106 can be a CPU that includes a CISC. In some examples, the processor resource 106 may include at least a portion of the power delivery controller 109 and/or at least a portion of the embedded controller 107. As used herein, the term “power delivery controller”' refers to an integrated circuit that includes components that facilitate transfer of power signals and/or data signals to the host computing device 102 over a single cable, such as a Universal Serial Bus (e.g., a Type-C Universal Serial Bus) cable. Further, as used here, the term “embedded controller” refers to a microcontroller that handles various system tasks that are generally not handled by an operating system of the host computing device 102.
The device 200 can be analogous to the device 100 illustrated in
As shown in
During normal operation of the host computing device 202 while the host computing device 202 is coupled to the docking station 208, the release mechanism 210 may be actuated in order to cause the locking mechanisms 212 and 213 to be disengaged to allow the host computing device 202 to be decoupled (e.g., removed) from the docking station 208. However, from time to time the locking mechanisms 212 and 213 may remain engaged despite actuation of the release mechanism 210. In addition, or in the alternative, the locking mechanisms 212 and 213 may experience an error or fail (e.g., experience an “error condition”) in an engaged position after the host computing device 202 has been coupled to the docking station 208 for a particular amount of time (e.g., after hours or days). Sometimes when the locking mechanisms 212 and 213 experience such an error or fail in the engaged position, the indicator of the docking station 208 described above in connection with
In order to mitigate and/or correct this phenomenon, aspects of the present disclosure allow for performance of operations executed by the processor resource 206, the embedded controller 207, the power delivery controller 209, and/or the embedded controller 214 to return the host computing device 202 and/or the docking station 208 to a state in which the host computing device 202 can be decoupled from the docking station 208. For example, when it is determined that a condition in which the locking mechanisms 212 and/or 213 have failed such that the locking mechanisms 212 and 213 remain engaged, the processor resource 206, the embedded controller 207, the power delivery controller and/or the embedded controller 214 can perform operations to re-establish communication between the host computing device 202 and the docking station 208 to allow for the locking mechanisms 212 and 213 to be disengaged.
In a non-limiting example, a device 200 includes a docking station 208 and a processor (e.g., the processor resource 206, the embedded controller 207, and/or the power delivery controller 209) to determine that an error condition involving disconnection of a computing device 202 from the docking station 208 couplable to the computing device 202 has occurred. In some examples, the error condition involving disconnection of the computing device 202 from the docking station 208 comprises a condition in which a locking mechanisms 212 and/or 213 associated with the computing device 202 or the docking station 208, or both, remains in an engaged state.
The processor may receive, responsive to the determination, a signal (e.g., one or more signals or “signaling”) indicative of performance of an operation to re-establish communication with the docking station 208 and perform, responsive to receipt of the signal, the operation to re-establish communication with the docking station 208. As described herein, the processor may include at least a portion of a power delivery controller 209. Examples are not so limited, however, and in some examples, the power delivery controller 209 and/or the embedded controller 207 may receive, responsive to the determination, a signal indicative of performance of an operation to re-establish communication with the docking station 208 and perform, responsive to receipt of the signal, the operation to re-establish communication with the docking station 208.
The processor may cause data corresponding to a previously established connection (e.g., a connection that was established while the computing device 202 is coupled to the docking station 208 prior to the determination that the error condition involving disconnection of the computing device 202 from the docking station 208 occurred) between the computing device 202 and the docking station 208 to be deleted as part of performance of the operation to re-establish communication with the docking station 202. For example, data corresponding to a previously established connection between the computing device 202 and the docking station 208 may become corrupted while the computing device 202 is coupled to the docking station 208, leading to the error condition involving disconnection of the computing device 202 from the docking station 208. In order to remediate the error condition, the corrupted data may be deleted as part of performance of the operation to re-establish communication with the docking station 208.
In some examples, the processor may perform the operation to re-establish communication with the docking station 208 in the absence of a signal additional to the signal indicative of performance of the operation to re-establish communication with the docking station 208. For example, the processor may perform the operation to re-establish communication with the docking station 208 to automatically generate a signal that can be transferred between the host computing device 202 and the docking station 208 in response to determining that the error condition involving disconnection of the computing device 202 from the docking station 208 has occurred.
Continuing with this example, the processor may cause at least one of the locking mechanisms 212 and/or 213 coupling the computing device 202 to the docking station 208 to be activated or deactivated in response to successful performance of the operation to re-establish communication with the docking station 208. For example, if the error condition involving disconnection of the computing device 202 from the docking station 208 is characterized by the locking mechanism 212 and/or 213 failing in an engaged state such that the computing device 202 is not decouplable from the docking station 208, the processor may cause (e.g., by generating and/or asserting a signal to the locking mechanism(s) and/or to circuitry that controls the locking mechanism(s)) the locking mechanisms 212 and/or 213 to be deactivated in response to successful performance of the operation to re-establish communication with the docking station 208 such that the computing device 202 can be decoupled from the docking station 208.
In another non-limiting example, a system includes a computing device 202 comprising a power delivery controller 209, a docking station 208 comprising an embedded controller 214, and a locking mechanism 212 and/or 213 to couple to the computing device 202 to the docking station 208. The power delivery controller 209 and/or the embedded controller 214 may, individually or in concert, perform operations related to re-establish connections with docking stations.
For example, the power delivery controller 209 and/or the embedded controller 214 may determine that an error condition involving disconnection of the computing device 202 from the docking station 208 in which the locking mechanism 212 and/or 213 exhibits an abnormal engaged state has occurred. As used herein, the term “abnormal engaged state” refers to a state in which the locking mechanism remains engaged when the locking mechanism should be disengaged. An “abnormal engaged state” may be indicative of a failure or error involving the locking mechanism 212 and/or 213.
The power delivery controller 209 and/or the embedded controller 214 may generate, responsive to the determination, a signal or signaling indicative of performance of an operation to re-establish communication between the computing device 202 and the docking station 208, as described herein.
Continuing with this example, the power delivery controller 209 and/or the embedded controller 214 may perform, responsive to receipt of the signal or signaling, the operation to re-establish communication between the computing device 202 and the docking station 208 to cause the locking mechanism 212 and/or the locking mechanism 213 coupling the computing device 202 to the docking station 208 to exhibit a normal engaged state. As used herein, the term “normal engaged state” refers to a state in which the locking mechanism(s) remains engaged when the locking mechanism(s) should be engaged. For example, the abnormal engaged state may comprise a state in which the locking mechanism (e.g., the locking mechanism 212 and/or the locking mechanism 213) is activated when the computing device expects that the locking mechanism is deactivated, and the normal engaged state may comprise a state in which the locking mechanism (e.g., the locking mechanism 212 and/or the locking mechanism 213) is activated while the computing device and the docking station are in communication with one another.
The states of the computing devices (e.g., the host computing device 202 and/or the docking station 208) can, in some examples, affect the normal engaged state and/or the abnormal engaged state. For instance, the host computing device 202 can be in a state that is receptive to initialization of a first connection to the docking station 208, or vice versa. In other examples, the host computing device 202 can be in a state that is not receptive to initialization of a first connection to the docking station 208, or vice versa. Further, the host computing device 202 and/or the docking station 208 can be in states that change based on an amount of time to which the host computing device 202 is connected to the docking station 208, among other possible states, such as operating states (e.g., sleep modes, operational modes, etc. of the host computing device 202 and/or the docking station 208).
In some examples, the power delivery controller 209 and/or the embedded controller 214 may determine that at least a portion of data written to the power delivery controller 209 that corresponds to a previously established connection between the computing device 202 and the docking station 208 is corrupt. For example, the power delivery controller 209 and/or the embedded controller 214 may determine that, while the computing device 202 and the docking station 208 were coupled via the locking mechanisms 212 and/or 213 and in communication with one another, an error occurred that is causing the locking mechanisms 212 and/or 213 to exhibit the abnormal locked state, In some examples, such errors can result from corrupt data written to the power delivery controller 209, the embedded controller 207, and/or the processor resource 206.
Accordingly, in some examples, the power delivery controller 209 and/or the embedded controller 214 may cause the corrupt data to be deleted as part of performance of the operation to re-establish communication with the docking station 208. By deleting the corrupt data, the operation to re-establish communication between the computing device 202 and the docking station 208 can be performed using a “clean slate” (e.g., free from corrupt data) of memory associated with the power delivery controller 209, the embedded controller 207, and/or the processor resource 206, Deletion of the corrupt data to achieve such a “clean state” can include deletion of corrupt data that is locally stored by memory associated with the power delivery controller 209 and/or the embedded controller 214, among other possible memory that may store such corrupted data.
Continuing with this example, the power delivery controller 209 and/or the embedded controller 214 may perform an operation to re-establish signaling indicative of electrical power transfer or signaling indicative of data transfer, or both, between the computing device 202 and the docking station 208 as part of performance of the operation to re-establish communication between the computing device 202 and the docking station 208. The operation to re-establish signaling indicative of electrical power transfer or signaling indicative of data transfer, or both, between the computing device 202 and the docking station 208 can be performed to initialize the computing device 202 and/or docking station 208, as described in more detail in connection with
In some examples, the power delivery controller 209 and/or the embedded controller 214 may determine that the error condition has occurred, generate the signaling indicative of performance of the operation to re-establish communication between the computing device and the docking station, and perform the operation to re-establish communication between the computing device and the docking station in the absence of a command generated external to the computing device and the docking station. For example, the power delivery controller 209 and/or the embedded controller 214 may perform these and other operations automatically and/or without user input in response to determining that the error condition has occurred.
At operation 322, the flow 320 may include detecting whether a disconnection event has occurred. The disconnection event may be performed to safely disconnect the computing device from the docking station such that the computing device can be removed from the docking station, as described above. The disconnection event may include actuation of a release mechanism (e.g., the release mechanism 110 and/or the release mechanism 210 illustrated in
If it is determined at operation 322 that a disconnection event has been detected, the flow 320 continues to operation 323, where it is determined whether the release mechanism has been actuated. If the release mechanism has been actuated, the flow 320 continues to operation 324, where it is determined that an error involving the locking mechanism has not occurred.
If, however, it is determined that the release mechanism has not been actuated, the flow 320 continues to operation 325, where it is determined that an error handler failure is detected. As used herein, the term “error handler” refers to a routine or set of routines that are executed by a computing device in response to detection of an abnormal input or condition experienced by the computing device. Accordingly, when an error handler failure is detected, the computing device may determine that additional operations may be performed to correct the failure or error condition.
In some examples, operations performed in connection with the error handler can include operations to determine whether an error involving the locking mechanism has or has not occurred. Examples are not so limited, however, and it is contemplated that operations performed in connection with the error handler can include operations to determine whether other errors have occurred within the computing device and/or the docking station. It will be appreciated that instructions executable to perform operations in connection with the error handler can be updated to (e.g., via firmware updates, operating system updates, or other such updates) alter the functionality of the error handling routines described herein.
In the example of
Subsequent to detection of the error handler failure, the flow 320 can continue to operation 326 where the release mechanism is maintained in an actuated state. For example, in order to attempt to remediate the failure or error involving the locking mechanism, the release mechanism can be maintained in an actuated state such that the computing device and/or the docking station operate as if the release mechanism is in an actuated state.
At operation 327, the processor resource (e.g., the processor resource 106 and/or the processor resource 206 illustrated in
In some examples, resetting the processor resource, the embedded controller, and/or the power delivery controller (or portions thereof) of the computing device can include deletion of data stored by registers of the processor resource, the embedded controller, and/or the power delivery controller. Such data may have been corrupted during operation of the computing device while the computing device was coupled to the docking station and may therefore have given rise to the occurrence of the failure or error involving the locking mechanism. By deleting such data, it may be possible to remediate the failure or error involving the locking mechanism.
At operation 328, communication between the computing device and the docking station may be re-established. In some examples, communication between the computing device and the docking station may be re-established by transferring signaling between the docking station (e.g., between the embedded controller of the docking station) and the computing device (e.g., a power delivery controller of the computing device and/or an embedded controller of the computing device). The signaling transferred between the computing device and the docking station at operation 328 can include signaling similar to the signaling at operation 321 to initialize the computing device and can therefore include establishing communication with the docking station, which can include transfer of signals (e.g., power signals, data signals, signals to initialize peripherals connected to the docking station, etc., as described above).
The processor resource 430 may be a central processing unit (CPU), a semiconductor-based microprocessor, and/or other hardware devices suitable for retrieval and execution of machine-readable instructions 434, 436, 438 stored in a memory resource 432. In some examples, the processor resource 430 may be analogous to the processor resource 106, the embedded controller 107, and/or the power delivery controller 109 illustrated in
The memory resource 432 may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions 434, 436, 438, and/or data. Thus, the memory resource 432 may be, for example, Random-Access Memory (RAM), an Electrically-Erasable Programmable Read-Only Memory (EEPROM), a storage drive, an optical disc, and the like. The memory resource 432 may be disposed within controller 403, as shown in
The controller 403 may include instructions 434 stored in the memory resource 432 and executable by the processor resource 430 to determine that an error condition involving a locking mechanism (e.g., the locking mechanism 112-1 and 212-1 and/or the locking mechanism 212-1 and 212-2 illustrated in
The controller 403 may include instructions 436 stored in the memory resource 432 and executable by the processor resource 430 to generate, responsive to the determination, a signal and/or signaling indicative of performance of an operation to re-establish communication between the computing device and the docking station. In some examples, the controller 403 may include instructions 438 stored in the memory resource 432 and executable by the processor resource 430 to perform, responsive to receipt of the signal and/or signaling, the operation to re-establish communication between the computing device and the docking station.
The controller 403 may further include instructions 436 stored in the memory resource 432 and executable by the processor resource 430 to perform the operations described herein. For example, the controller 403 may include instructions 436 stored in the memory resource 432 and executable by the processor resource 430 to perform operations to re-establish connections with docking stations. As described herein, such operations may be performed to remediate failures and/or errors that can occur when a locking mechanism that couples a computing device to a docking station exhibits an abnormal engaged state.
The processor resource 530 may be a central processing unit (CPU), microprocessor, and/or other hardware device suitable for retrieval and execution of instructions stored in the non-transitory machine-readable storage medium 542. In the particular example shown in
The non-transitory machine-readable storage medium 542 may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions. Thus, the non-transitory machine-readable storage medium 542 may be, for example, RAM, EEPROM, a storage drive, an optical disc, and the like. The executable instructions may be “installed” on the system 540 illustrated in
The determine instructions 544, when executed by a processor resource such as the processor resource 530, may cause the system 540 to determine that an error condition involving a locking mechanism coupling a computing device and a docking station couplable to the computing device has occurred. As described above, the error condition may be indicative of an error or failure detected by a computing device (e.g., the host computing device 102 and/or the host computing device 202 illustrated in
The generate instructions 546, when executed by a processor resource such as the processor resource 530, may cause the system 540 to generate, responsive to the determination, a signal indicative of performance of an operation to re-establish communication between the computing device and the docking station. As described above, the signal and/or signaling can be transferred between the host computing device and the docking station in preparation of performance of the operation to re-establish communication between the computing device and the docking station.
The perform instruction 548, when executed by a processor resource such as the processor resource 530, may cause the system 540 to perform, responsive to receipt of the signal, the operation to re-establish communication between the computing device and the docking station.
It is contemplated that, instructions not explicitly shown in
In some examples, instructions executed by a processor resource such as the processor resource 530, may cause the system 540 to determine that a portion of data corresponding to a previously established connection between the computing device and the docking station is corrupt and/or cause the corrupt data to be deleted as part of performance of the operation to re-establish communication with the docking station, as described above. In some examples, instructions executed by a processor resource such as the processor resource 530, may cause the system 540 to cause the processor resource to re-establish signaling indicative of electrical power transfer or signaling indicative of data transfer, or both, between the computing device and the docking station as part of performance of the operation to re-establish communication between the computing device and the docking station, as described above.
In the foregoing detailed description of the disclosure, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration how examples of the disclosure may be practiced. These examples are described in sufficient detail to enable those of ordinary skill in the art to practice the examples of this disclosure, and it is to be understood that other examples may be utilized and that process, electrical, and/or structural changes may be made without departing from the scope of the disclosure. Further, as used herein, “a” refers to one such thing or more than one such thing.
The figures herein follow a numbering convention in which the first digit corresponds to the drawing figure number and the remaining digits identify an element or component in the drawing. For example, reference numeral 102 may refer to element 102 in
It can be understood that when an element is referred to as being “on” “connected to,” “coupled to,” or “coupled with” another element, it can be directly on, connected, or coupled with the other element or intervening elements may be present. In contrast, when an object is “directly coupled to” or “directly coupled with” another element it is understood that are no intervening elements (adhesives, screws, other elements), etc.
The above specification, examples, and data provide a description of the system and methods of the disclosure. Since many examples can be made without departing from the spirit and scope of the system and method of the disclosure, this specification merely sets forth some of the many possible example configurations and implementations.