Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
VIDEO LINK REPAIR
Document Type and Number:
WIPO Patent Application WO/2022/159106
Kind Code:
A1
Abstract:
Examples of video link repair are described herein. In some examples, a method includes identifying a video link failure. In some examples, the method includes initiating a cable disconnection indicator corresponding to a connected data cable without disconnecting the data cable to repair a video link. In some examples, initiating the cable disconnection indicator is in response to identifying the video link failure.

Inventors:
THAI THONG (US)
BENSON ROGER DALE (US)
TRAN VAN HOANG (US)
PRINDLE JUSTIN CAMERON (US)
Application Number:
PCT/US2021/014751
Publication Date:
July 28, 2022
Filing Date:
January 22, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HEWLETT PACKARD DEVELOPMENT CO (US)
International Classes:
H04B17/30; H04B3/46
Foreign References:
US20130207942A12013-08-15
US20080231711A12008-09-25
US20160171925A12016-06-16
Attorney, Agent or Firm:
GARDINER, Austin William et al. (US)
Download PDF:
Claims:
CLAIMS

1 . A method, comprising: identifying a video link failure; and initiating a cable disconnection indicator corresponding to a connected data cable without disconnecting the data cable to repair a video link in response to identifying the video link failure.

2. The method of claim 1 , wherein identifying the video link failure comprises identifying a display identification failure.

3. The method of claim 1 , wherein identifying the video link failure comprises determining that a first timing parameter of a display does not match a second timing parameter of a display record.

4. The method of claim 1 , wherein identifying the video link failure comprises identifying a link training failure.

5. The method of claim 1 , wherein identifying the video link failure comprises identifying a setup data read failure.

6. The method of claim 1 , wherein the cable disconnection indicator is a hot plug detection (HPD) pulse.

7. The method of claim 1 , wherein the method is performed by a source device.

8. The method of claim 1 , wherein the method is performed by an electronic device coupled between a source device and a sink device.

9. The method of claim 1 , wherein the method is performed by a display device. 10. An electronic device, comprising: a controller, wherein the controller is to: read link information corresponding to a connected data cable; determine a link failure based on the link information; and cycle a connection detection signal on the connected data cable to repair a link.

11 . The electronic device of claim 10, further comprising a multi-stream transport (MST) hub, wherein the controller is to read the link information from the MST hub via a side channel, and is to cycle the connection detection signal by sending a control signal to the MST hub.

12. The electronic device of claim 10, wherein the controller is to determine that a second connection to a video source device is established, and wherein the controller is to read the link information in response to the determination that the second connection is established.

13. A non-transitory tangible computer-readable medium comprising instructions when executed cause a processor to: identify a display record based on received identification data; determine that current link information does not match previous link information of the display record; and initiate a plug disconnection indicator in response to the determination.

14. The non-transitory tangible computer-readable medium of claim 13, wherein the current link information comprises a current timing parameter and the previous link information comprises a previous timing parameter.

15. The non-transitory tangible computer-readable medium of claim 13, further comprising instructions when executed cause the processor to initiate a physical disconnection simulation in response to determining that a link was not repaired by the plug disconnection indicator.

Description:
VIDEO LINK REPAIR

BACKGROUND

[0001] The use of electronic devices has expanded. Some electronic devices include electronic circuitry for performing processing. As processing capabilities have expanded, electronic devices have been utilized to perform more functions. For example, a variety of electronic devices are used for work, communication, and entertainment. Electronic devices may be linked to other devices and may communicate with other devices.

BRIEF DESCRIPTION OF THE DRAWINGS

[0002] Figure 1 is a flow diagram illustrating an example of a method for video link repair;

[0003] Figure 2 is a flow diagram illustrating an example of a method for video link repair;

[0004] Figure 3 is a block diagram of an example of an electronic device that may be used to perform video link repair;

[0005] Figure 4 is a block diagram illustrating an example of a computer- readable medium for video link repair; and

[0006] Figure 5 is a flow diagram illustrating an example of a method for video link repair. DETAILED DESCRIPTION

[0007] An electronic device is a device that includes electronic circuitry (e.g., integrated circuitry, a chip(s), etc.). Examples of electronic devices may include docks, monitors, televisions, display panels, graphics cards, graphics processing units (GPUs), motherboards, computing devices, smartphones, tablet devices, game consoles, etc. Some examples of electronic devices may utilize circuitry (e.g., controller(s) and/or processor(s), etc.) to perform an operation or operations. In some examples, electronic devices may execute instructions stored in memory to perform the operation(s). Instructions may be code and/or programming that specifies functionality or operation of the circuitry. In some examples, instructions may be stored in non-volatile memory (e.g., Read-Only Memory (ROM), Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), flash memory, etc.). In some examples, different circuitries in an electronic device may store and/or utilize separate instructions for operation.

[0008] In some examples, an electronic device may be connected to another electronic device or devices. For example, an electronic device may include a connector or connectors for connecting electronic devices. Connectors are structures that enable forming a physical and/or electrical connection. For instance, a connector may be a port, plug, and/or electrical interface, etc. A connector or connectors may allow electronic devices to be connected with a cable or cables. Examples of connectors include DisplayPort (DP) connectors High-Definition Multimedia Interface (HDMI) connectors, Universal Serial Bus (USB) connectors, Lightning connectors, Digital Visual Interface (DVI) connectors, OCuLink connectors, etc.

[0009] In some examples, an electronic device may be connected to another electronic device to communicate a video stream. For instance, when the electronic devices are physically connected (e.g., a cable is plugged into both electronic devices), the electronic devices may follow a protocol or protocols to set up a video link. A video link is a communication channel for video. For instance, a video link may carry a video stream (e.g., data corresponding to a series of video frames with or without audio) from one electronic device to another. A video link may include a physical and/or logical aspect or aspects. For instance, a video link may be set up when a cable is physically connected and/or a protocol condition or conditions are satisfied to enable video stream communication. In some examples, setting up a video link may be referred to as enumerating a display. As used herein, a “source device” is an electronic device for sending video and a “sink device” is an electronic device for receiving video. In some examples, an electronic device may be a source device or a sink device. In some examples, an electronic device (e.g., hub, daisy-chained monitor, etc.) may be source device and a sink device.

[0010] In some examples, setting up a video link (e.g., enumerating a display) may follow a protocol. For instance, a protocol may include a sequence of messages and/or functions to set up the video link. In some examples, DP video link setup may include hot plug detection (HPD), display identification (DisplaylD) and/or extended display identification data (EDID) read, DisplayPort configuration data (DPCD) read, link training, and/or video stream output. In some examples, HDMI video link setup may include HPD, DisplaylD and/or EDID read, and/or video stream output. Video link setup may vary based on the protocol(s) utilized and/or type of connection. For instance, video link setup for some protocols may utilize a connection detection signal (e.g., HPD signal) and display identification data (e.g., DisplaylD and/or EDID) without other setup data (e.g., DPCD) and/or without link training. In some examples, video link setup for another protocol may utilize a connection detection signal (e.g., HPD signal), display identification data (e.g., DisplaylD and/or EDID), setup data (e.g., DPCD) and/or link training. Some of the data described herein (e.g., display identification data, setup data, validity data, etc.) may be requested, sent, and/or received. For instance, an electronic device may request, send, and/or receive some of the data (e.g., HPD, DisplaylD, EDID, and/or DPCD, etc.) described herein during detection, setup, and/or enumeration procedures.

[0011] HPD is a procedure and/or signal where a signal (e.g., voltage, current, signal pattern, etc.) is sent or provided from one electronic device to another electronic device to indicate that a physical connection is made. For instance, a display may send or provide a signal to a GPU indicating that a physical connection is made between the display and the GPU.

[0012] In some examples, display identification data read may be a procedure where DisplaylD and/or EDID is sent from one electronic device to another electronic device. Display identification data is data indicating a characteristic or characteristics of a display. For instance, DisplaylD and/or EDID may include data indicating a manufacturer identifier (e.g., name), serial number, display size, supported timing(s), device type, and/or another characteristic or characteristics, etc. In some examples, a sink device may send the DisplaylD and/or EDID to a source device to indicate a capability or capabilities of (e.g., video stream format(s) that can be displayed by) the sink device.

[0013] In some examples, DPCD read may be a procedure where DPCD is sent from one electronic device to another electronic device. DPCD is data for a DP link. For instance, DPCD may include data indicating supported lane(s), supported bitrate(s), whether multi-touch is supported, repeater capability, and/or another characteristic or characteristics, etc. In some examples, a sink device may send the DPCD to a source device to indicate a capability or capabilities of the sink device for a DP link.

[0014] In some examples, link training may be a procedure where information is exchanged between electronic devices to assess and/or adjust a link parameter or parameters. For instance, link training may include signaling video from a source device to a sink device, assessing link quality, sending link quality indicator(s) from the sink device to the source device, and/or sending a voltage adjustment request from the sink device to the source device and/or other assessment(s) and/or adjustment(s), etc. In some examples, a source device may adjust a link parameter or parameters (e.g., output signal voltage) in link training.

[0015] In some examples, video stream output may be a procedure where a video stream is output from a source device to a sink device. For instance, a source device may send a series of video frames and/or audio to a sink device. [0016] In some cases, video stream output may fail (e.g., no image is displayed) or may be at an incorrect timing if video link setup fails (e.g., if a procedure or procedures of the sequence or enumeration fails). In some examples, incorrect timing may occur when a signaled and/or determined resolution and/or refresh rate is different from a supported resolution or and/or refresh rate (of a set of supported resolutions and/or refresh rates, for instance) of a sink device. In some examples, a set of supported resolutions and/or refresh rates may be included in display identification data (e.g., DisplaylD and/or EDID). Video link setup may fail for a reason or reasons, which may include a timing error or lack of readiness of a component or components on the video link path. In some approaches, physically unplugging and re-plugging a cable may reestablish a connection, which may address when a failure is related to timing.

[0017] Some examples of the techniques described herein may be utilized to repair a video link. Video link repair is fixing a video link. For instance, video link repair may include fixing a video link, recovering a failed video stream output, and/or resolving a protocol or protocol conditions to permit video stream communication. Some examples of the techniques described herein may utilize a condition or conditions to determine when a video link (e.g., video stream output) has failed.

[0018] Throughout the drawings, identical reference numbers may or may not designate similar or identical elements. Similar numbers may or may not indicate similar elements. When an element is referred to without a reference number, this may refer to the element generally, with and/or without limitation to any particular drawing or figure. The drawings are not necessarily to scale, and the size of some parts may be exaggerated to more clearly illustrate the example shown. Moreover, the drawings provide examples in accordance with the description. However, the description is not limited to the examples provided in the drawings.

[0019] Figure 1 is a flow diagram illustrating an example of a method 100 for video link repair. The method 100 and/or a method 100 element(s) may be performed by an electronic device (e.g., source device, sink device, computer, GPU, hub, dock, and/or display, etc.). In some examples, the method 100 may be performed by a source device. In some examples, the method 100 may be performed by an electronic device (e.g., dock, hub, router, splitter, switch, etc.) coupled between a source device and sink device. In some examples, the method 100 may be performed by a sink device (e.g., display device). For instance, the method 100 may be performed by the video source device 308, the electronic device 302 (e.g., controller 306 and/or hub 304), and/or display device 310 described in Figure 3.

[0020] An electronic device may identify 102 a video link failure. A video link failure is a failure of a link to carry video information. For example, a video link failure may occur when a cable is physically connected between a video source and a video sink, and video information is not transmitted and/or received over the cable. A video link failure may occur due to a signaling and/or protocol failure in some cases. In some examples, the electronic device may utilize a technique or techniques to determine when a video link (e.g., video stream output) has failed. In some examples, the electronic device may determine whether a stage or stages of video link setup has failed.

[0021] In some examples, identifying 102 the video link failure may include identifying a display identification failure. For instance, the electronic device may read (e.g., request and/or receive) display identification data (e.g., EDID) and determine whether the display identification data was not received or was received incorrectly. For instance, the electronic device may determine whether the display identification data is blank (e.g., zeros) and/or whether the display identification data has an associated failed checksum. The electronic device may identify 102 the video link failure in response to determining that the display identification data is blank and/or that the display identification data has an associated failed checksum. In some examples, if a checksum of a DisplaylD and/or EDID does not match with the DisplaylD and/or EDID, the electronic device may identify that the video link has failed.

[0022] In some examples, the electronic device may read display identification validity data. For instance, when a video link interface receives display identification data, the video link interface may store a value in a register indicating whether the display identification data (e.g., DisplaylD and/or EDID) is valid. The electronic device may identify 102 that a video link has failed in a case that the display identification validity data indicates that the display identification data is invalid.

[0023] In some examples, identifying 102 the video link failure may include identifying a link training failure. For instance, the electronic device may read link training validity data, which may indicate whether link training has passed or failed. For instance, when a video link interface performs link training, the video link interface may store a value in a register indicating whether the link training is valid. The electronic device may identify 102 that a video link has failed in a case that the link training validity data indicates that the link training is invalid.

[0024] In some examples, identifying 102 the video link failure may include identifying a setup data read failure. For instance, the electronic device may determine whether a setup data (e.g., lane(s), bitrate(s), and/or DPCD, etc.) read failure has occurred. For instance, the electronic device may determine whether an HPD signal was asserted but link training was not attempted and/or performed. The electronic device may identify 102 the video link failure in response to determining that a setup data read failure has occurred if the HPD signal was asserted but link training was not attempted and/or performed.

[0025] In some examples, the electronic device may read video stream activity data. For instance, when a video stream is active, a video link interface may store a value in a register indicating that the video stream is active. The electronic device may identify 102 that a video link has failed in a case that an HPD signal was asserted and the video stream activity data indicates no video stream (e.g., an inactive video stream).

[0026] In some examples, the electronic device may compare a parameter or parameters for a display to a display record. For instance, an electronic device may store a display record for a previously connected display or displays. In some examples, the display record may indicate a parameter or parameters (e.g., display identification data, timing parameter(s), resolution parameter(s), size parameter(s), and/or bitrate parameter(s), etc.). When a video link is being setup, the electronic device may compare a parameter or parameters for a display to the corresponding parameter or parameters in the display record, if any. In some examples, the electronic device may utilize received display identification data (e.g., DisplaylD and/or EDID) for a current video link setup to look up a corresponding display record. In a case that a parameter(s) in the display record does not match a parameter(s) for a current video link setup, the electronic device may identify 102 a video link failure. In some examples, identifying 102 the video link failure may include determining that a first timing parameter of a display (currently being set up, for instance) does not match a second timing parameter of a display record. Examples of timing parameters may include pixel row and/or pixel column refresh rates, display resolution, etc. [0027] The electronic device may initiate 104 a cable disconnection indicator corresponding to a connected data cable without disconnecting the data cable to repair a video link in response to identifying 102 the video link failure. A cable disconnection indicator is a signal, electrical pattern, or indicator that indicates that a cable is disconnected (e.g., physically disconnected). For instance, the cable disconnection indicator may be an assertion (e.g., 3.3 volts (V), 3 V, 2 V, or another voltage, etc.) and/or de-assertion (e.g., 0 V, < 0.1 V, or another voltage, etc.) of a voltage and/or current. In some examples, the cable disconnection indicator is an HPD pulse. An HPD pulse is a change in the HPD signal. For example, the HPD pulse may be a cycling (e.g., a de-assertion followed by an assertion after a period of time, or an assertion followed by a de- assertion after a period of time, a timed signal switching, square signal, etc.) of the HPD signal. For instance, the cable disconnection indicator may be a loss or drop in voltage (to 0 volts, for example) for a period followed by an increase or restoration of a voltage. The HPD pulse may occur in a period of time that is long enough to simulate a physical disconnection and re-connection of a cable (e.g., plug). For instance, the period of time may be greater than or equal to a minimum period for physical disconnection and re-connection of a cable (e.g., plug). In some examples, the period may be 2 milliseconds (ms) (e.g., > 2 ms) or another value. In some examples, a cable disconnection indicator may be initiated and/or provided when a corresponding cable is physically connected. For instance, the cable disconnection indicator may be initiated while a connector (e.g., plug, port, and/or interface, etc.) corresponding to the video link (e.g., failed video link) is connected (e.g., connected to a cable).

[0028] In some examples, the cable disconnection indicator may be performed while the cable (e.g., plug(s)) is connected between the electronic devices. For instance, the cable disconnection indicator may cause an electronic device or electronic devices (e.g., source device and/or sink device, etc.) to detect that a cable has been disconnected (e.g., unplugged), even though the cable is physically connected. Accordingly, the electronic device(s) may restart video link setup procedures without a physical disconnection and reconnection of the cable in some examples.

[0029] Some of the techniques described herein may enable repairing a failed video link. For instance, link setup (e.g., enumeration) may fail due to timing issues and/or lack of component readiness. Some of the techniques described herein may enable repairing a video link without changing a physical cable connection.

[0030] When a video stream output fails, some of the techniques described herein may be utilized to repair the video link by simulating a physical unplugging and re-plugging of the display cable. In some examples, simulation may be accomplished by initiating an HPD pulse (e.g., an HPD pulse of a duration) between a source device (e.g., GPU) and a sink device (e.g., display, hub, etc.). In some examples, the HPD pulse may be issued through a side channel to a component in the connection path (e.g., GPU, platform controller hub (PCH), embedded controller (EC), multi-stream transport (MST) hub, thunderbolt (TBT) controller, and/or dock management controller (DMC), etc.). For an EC or PCH, for instance, a general purpose input/output (GPIO) circuit and/or interface may be utilized to physically modify (e.g., switch) the HPD signal. In some examples, a component (e.g., GPU, MST hub, TBT controller, etc.) may modify (e.g., switch) the HPD signal.

[0031] In some examples where a dock is utilized, a physical disconnection and reconnection (of a USB Type-C and/or TBT connection, for instance) may be simulated between the dock and an electronic device (e.g., host). For instance, the physical disconnection and reconnections between the dock and a host may be simulated in a case that the HPD pulse does not succeed in repairing the video link.

[0032] Figure 2 is a flow diagram illustrating an example of a method 200 for video link repair. The method 200 and/or a method 200 element(s) may be performed by an electronic device (e.g., source device, sink device, computer, GPU, hub, dock, and/or display, etc.), source device, and/or sink device. For instance, the method 100 may be performed by the video source device 308, the electronic device 302 (e.g., controller 306 and/or hub 304), and/or display device 310 described in Figure 3.

[0033] An electronic device may determine 202 whether a cable is connected. For example, the electronic device may detect whether an HPD signal indicates that a cable is connected (between electronic devices, for instance). If a cable is not detected as being connected, the electronic device may return (after a period and/or in response to an event, for example) to determining 202 whether a cable is connected.

[0034] In a case that the electronic device determines 202 that a cable is connected, the electronic device may determine 204 whether display identification data is valid. In some examples, determining 204 whether display identification data is valid may be performed as described in relation to Figure 1 . [0035] The electronic device may determine 204 whether display identification data is valid. In some examples, determining 204 whether display identification data is valid may be performed as described in relation to Figure 1 . For instance, the electronic device may read display identification data (e.g., DisplaylD and/or EDID) to determine whether the display identification data was not received or was received incorrectly, and/or may read display identification validity data.

[0036] In a case that the electronic device determines 204 that the display identification data is invalid (e.g., not valid), the electronic device may initiate 214 a cable disconnection indicator. In some examples, initiating 214 a cable disconnection indicator may be performed as described in relation to Figure 1 .

[0037] In a case that the electronic device determines 204 that the display identification data is valid, the electronic device may determine 206 whether a timing parameter is valid (or whether timing parameters are valid, for instance). In some examples, determining 206 whether the timing parameter is valid may be performed as described in relation to Figure 1 .

[0038] In some examples, determining 206 whether the timing parameter(s) is valid may be based on a data set. For instance, the data set may include data (e.g., parameter(s)) corresponding to a current video link setup for a display and a display record corresponding to the display that indicates data (e.g., parameter(s)) corresponding to a previous video link setup. The data corresponding to the current video link setup may include data requested by a source device (e.g., GPU). In some examples, the data corresponding to the current video link setup may be obtained from the source device (via a GPU application programming interface (API), for instance). In some examples, data from a previous (e.g., last, most recent, other previous, etc.) setup may be stored. For instance, data may be stored indicating video stream activity data and/or timing parameter(s). In some examples, the data set may be stored per display port. For instance, a data set may be stored for each display port. If the display is moved (e.g., connected) to a different display port, the timing parameter(s) may change. In some examples, the data set may be stored based on uniquely identifying the display (using a serial number of the display and/or the DisplaylD and/or EDID, for instance). Timing parameter(s) may be stored in the data set. In some examples, the data set may be a database, table, list, and/or array, etc. In some examples, the data set may be stored in non-volatile memory. An example of a representation of the data set is given in Table (1 ).

Table (1 )

In Table (1 ), TXO, TX1 , TX2, and TX3 represent transmit ports (e.g., ports for transmitting video), DisplaylD and/or EDID Serial Number represents a DisplaylD and/or EDID corresponding to a display, Yes/No is an indicator of video stream activity (e.g., whether a video output stream is active or not), HWIDTH represents a quantity of pixels in a horizontal dimension of the display, VWIDTH represents a quantity of pixels in the vertical dimension of a display, and RR represents a refresh rate of the display. After an event (e.g., docking, resume from sleep, etc.), the electronic device may compare a timing parameter or parameters (e.g., horizontal pixels, vertical pixels, and/or refresh rate, etc.) of a current video link setup to a corresponding timing parameter or parameters of a previous video link setup stored in the data set. In a case that the parameter(s) do not match, the electronic device may determine 206 that the timing parameter(s) are invalid and may initiate 214 a cable disconnection indicator.

[0039] In a case that the timing parameter(s) match, the electronic device may determine that the timing parameter(s) are valid. If the timing parameter(s) are 206 determined to be valid, the electronic device may determine 208 whether link training is valid. In some examples, determining 208 whether link training is valid may be performed as described in relation to Figure 1. For instance, the electronic device may read link training validity data, which may indicate whether link training has passed or failed. The electronic device may determine 208 that the link training is invalid in a case that the link training validity data indicates that the link training has failed and may initiate 214 a cable disconnection indicator.

[0040] In a case that the link training validity data indicates that the link training has succeeded, the electronic device may determine 208 that the link training is valid. If the link training is determined 208 to be valid, the electronic device may determine 210 whether a setup data read is valid. In some examples, the electronic device may determine 210 whether a setup data read is valid as described in relation to Figure 1. For instance, the electronic device may determine whether an HPD signal was asserted but link training was not attempted and/or performed. In a case that it is determined that the HPD signal was asserted but link training was not attempted and/or performed, the electronic device may determine 210 that the setup data read is invalid and may initiate 214 a cable disconnection indicator.

[0041] In a case that it is determined that the HPD signal was asserted and link training was performed, the electronic device may determine 210 that the setup data read (e.g., DPCD read) is valid and may determine 212 whether a video stream is active. In some examples, the electronic device may determine 212 whether a video stream is active as described in relation to Figure 1. For instance, the electronic device may determine 212 that a video stream is inactive in a case that an HPD signal was asserted and the video stream activity data indicates no video stream and may initiate 214 a cable disconnection indicator. In a case that an HPD signal was asserted and the video stream activity data indicates a video stream, the electronic device may determine 212 that the video stream is active and operation may end 216.

[0042] In some examples, an operation or operations of the method 200 may repeat in a case that a cable disconnection indicator is initiated 214. For instance, the electronic device may repeat determining 204 whether display identification data is valid, determining 206 whether the timing parameter(s) are valid, determining 208 whether link training is valid, determining 210 whether a setup data read is valid, and/or determining 212 whether a video stream is active. The operation or operations may be repeated up to a limit (e.g., time limit and/or quantity of repeats). Upon reaching the limit, operation may end and/or the electronic device may report (e.g., display, output, indicate, and/or send a message indicating) video link failure and/or a reason for failure (e.g., invalid display identification data, invalid timing parameter(s), invalid link training, invalid setup data read, and/or inactive video stream).

[0043] Table (2) illustrates examples of conditions in which video link repair may be attempted. For instance, certain failing conditions may be potentially automatically repairable.

Table (2)

[0044] Figure 3 is a block diagram of an example of an electronic device 302 that may be used to perform video link repair. Examples of the electronic device 302 may include a dock, computing device, display device (e.g., daisy-chainable display device), smartphone, game console, audio/video (AV) receiver, smart appliance, power adapter, wall outlet, port hub, port replicator, power bank, power brick, signal splitter (e.g., HDMI splitter, DP splitter, etc.), signal router (e.g., HDMI router, DP router, etc.), signal switch (e.g., HDMI switch, DP switch, etc.), source device, and/or sink device, etc. The electronic device 302 may be an example of the electronic device(s) described in relation to Figure 1 and/or Figure 2. In some examples, the electronic device 302 may perform a method or methods (e.g., method 100, method 200, and/or method 500) and/or an operation or operations described herein. The electronic device 302 may be coupled between a video source device 308 and a display device 310 or display devices in some examples.

[0045] An example of a video source device 308 is also illustrated in Figure 3. A video source device 308 is a device that generates, produces, provides, and/or outputs video (e.g., a video stream, video frames, etc.). Examples of the video source device 308 may include a computing device, GPU, AV receiver, smartphone, laptop computer, media player, game console, television stick, media receiver, media drive, media server, etc. The video source device 308 may be an example of the source device or source devices described herein.

[0046] The video source device 308 may be connected to the electronic device 302 with a cable or cables. In some examples, a cable may include multiple wires and/or pins. For instance, a cable may provide multiple channels for communication. In the example of Figure 3, the video source device 308 may communicate with the electronic device 302 using a cable with three channels: a first data link 312, a first auxiliary channel 314, and a first connection detection channel 316. For example, the first data link 312, the first auxiliary channel 314, and the first connection detection channel 316 may be included in a first DisplayPort cable that is connected to the video source device 308 and the electronic device 302. A channel may be a physical channel (e.g., wire) and/or a logical channel (e.g., frequency domain and/or time domain resources, multiplexed channel, etc.). More or fewer channels, links, and/or cables may be used in some examples. [0047] In some examples, the video source device 308 may include transmission circuitry (e.g., DisplayPort transmission circuitry). The first data link 312, the first auxiliary channel 314, and/or the first connection detection channel 316 may be connected to the transmission circuitry of the video source device 308.

[0048] In some examples, the first connection detection channel 316 may carry a connection detection (e.g., HPD) signal. For instance, the electronic device 302 may provide a voltage, current, and/or signal pattern on the first connection detection channel 316 to indicate a connection between the electronic device 302 and the video source device 308.

[0049] In some examples, the first auxiliary channel 314 may carry information and/or messages to set up a video link (e.g., to perform enumeration) between the video source device 308 and the electronic device 302 (e.g., the display device 310). For instance, the first auxiliary channel 314 may carry a request or requests (e.g., identification request(s), setup data request(s), link training request(s), and/or timing data request(s), etc.), display identification data (e.g., DisplaylD and/or EDID), setup data (e.g., DPCD), link training data, and/or timing data, etc.

[0050] In some examples, the first data link 312 may carry video (e.g., a video stream and/or video frames) from the video source device 308 to the electronic device 302. Once a link is setup, for instance, the first data link 312 may carry the video stream and/or video frames to the electronic device 302.

[0051] An example of a display device 310 is also illustrated in Figure 3. A display device 310 is a device that includes a display (e.g., display panel). The display device 310 may be an example of a sink device. For example, the display device 310 may receive and/or display video (e.g., a video stream, video frames, etc.). Examples of the display device 310 include a monitor, television, smartphone, tablet device, projector, etc.

[0052] The display device 310 may be connected to the electronic device 302 with a cable or cables. In the example of Figure 3, the display device 310 may communicate with the electronic device 302 using a cable with three channels: a second data link 318, a second auxiliary channel 320, and a second connection detection channel 322. For example, the second data link 318, the second auxiliary channel 320, and the second connection detection channel 322 may be included in a second DisplayPort cable that is connected to the display device 310 and the electronic device 302. More or fewer channels, links, and/or cables may be used in some examples.

[0053] In some examples, the display device 310 may include reception circuitry (e.g., DisplayPort reception circuitry). The second data link 318, the second auxiliary channel 320, and/or the second connection detection channel 322 may be connected to the reception circuitry of the display device 310.

[0054] In some examples, the second connection detection channel 322 may carry a connection detection (e.g., HPD) signal. For instance, the display device 310 may provide a voltage, current, and/or signal pattern on the second connection detection channel 322 to indicate a connection between the electronic device 302 and the display device 310.

[0055] In some examples, the second auxiliary channel 320 may carry information and/or messages to set up a video link (e.g., to perform enumeration) between the display device 310 and the electronic device 302 (e.g., the video source device 308). For instance, the second auxiliary channel 320 may carry a request or requests (e.g., identification request(s), setup data request(s), link training request(s), and/or timing data request(s), etc.), display identification data (e.g., DisplaylD and/or EDID), setup data (e.g., DPCD), link training data, and/or timing data, etc.

[0056] In some examples, the second data link 318 may carry video (e.g., a video stream and/or video frames) from the electronic device 302 to the display device 310. Once a link is setup, for instance, the second data link 318 may carry the video stream and/or video frames to the display device 310.

[0057] The electronic device 302 may include a controller 306 and/or a hub 304. The controller 306 is circuitry to control the electronic device 302. In some examples, the controller 306 may be a processor. An example of the controller 306 is a dock management controller. In some examples, the controller 306 may include memory and/or may have access to memory included in the electronic device 302. For instance, the controller 306 may read and/or execute instructions stored in memory to perform an operation or operations (e.g., method 100, method 200, method 500, and/or operation(s) thereof) described herein.

[0058] The hub 304 is circuitry to interface a source device or source devices with a sink device or sink devices. For instance, the hub 304 may enable providing video to multiple sink devices from one source device. In some examples, the hub 304 may demultiplex or unbundle a video stream from the video source device 308 to provide multiple video streams to multiple display devices (including display device 310, for instance).

[0059] The controller 306 may be coupled to the hub 304 with a side channel 324. The side channel 324 is an electronic interface between circuitries. Examples of the side channel 324 may include an inter-integrated circuit (I2C) interface, bus, serial connector, etc. In some examples, the side channel 324 may be an internal interface between components (e.g., the controller 306 and the hub 304) of the electronic device 302. In some examples, the side channel 324 may enable access to data stored by the hub 304 and/or passing through the hub 304.

[0060] In some examples, the electronic device 302 is a dock, the controller 306 is a dock management controller (DMC), and the hub 304 is an MST hub, where the DMC in the dock has a side channel I2C communication channel to the MST hub. A dock is an electronic device capable of coupling a host device (e.g., laptop computer, tablet device, source device, video source device 308, etc.) to another electronic device or electronic devices (e.g., display device(s) 310). In some examples, a dock may be capable of providing communication between a host device and a peripheral device(s). A peripheral device may be a device to provide input to a host device and/or to receive output from a host device. Examples of a peripheral device may include a display device (e.g., display device 310), monitor, keyboard, mouse, camera, external storage device, track pad, game controller, projector, etc. For instance, a dock may be capable of coupling a laptop computer to multiple monitors (e.g., separate monitors, monitors not integrated into the laptop computer), a keyboard (e.g., separate keyboard, full-size keyboard, keyboard not integrated into the laptop computer), a mouse (e.g., separate mouse), etc. For example, a dock may enable video to be output from the host device to a display device or display devices.

[0061] In some examples, the electronic device 302 (e.g., hub 304) may include reception circuitry (e.g., DisplayPort reception circuitry). The first data link 312, the first auxiliary channel 314, and/or the first connection detection channel 316 may be connected to the reception circuitry of the electronic device 302 (e.g., hub 304). In some examples, the electronic device 302 (e.g., hub 304) may include transmission circuitry or circuitries (e.g., DisplayPort transmission circuitry(ies)). The second data link 318, the second auxiliary channel 320, and/or the second connection detection channel 322 may be connected to the transmission circuitry (e.g., one of the transmission circuitries) of the electronic device 302 (e.g., hub 304). In some examples, the hub 304 may be connected to multiple display devices, including the display device 310. For instance, the hub 304 may include multiple transmission circuitries to connect to the multiple display devices. In some examples, each of the multiple display devices may be connected to the electronic device 302 with a separate cable and/or separate channel(s).

[0062] In some examples, the electronic device 302 (e.g., hub 304) may include a port or ports and corresponding circuitry to support connectivity. For instance, some ports may be utilized to connect to a device (e.g., the video source device 308 and/or display device(s)) that may be external to the electronic device 302. Examples of ports with supporting circuitry may include a Universal Serial Bus (USB) interface (e.g., USB Type-C (USB-C), USB Type-A, USB Type-B, USB 2.0, USB 3.0, USB Mini-B, USB Micro-B, etc.), Lightning interface, Ethernet interface, DisplayPort interface, HDMI interface, etc.

[0063] In some examples, the controller 306 may read link information corresponding to a connected data cable. For instance, the controller 306 may read link information stored by the hub 304. For example, the hub 304 may include memory (e.g., registers) used to store data regarding link setup (e.g., enumeration) corresponding to a connected cable or cables. In some examples, the hub 304 may store data regarding a link status for the video source device 308 and a display device 310 or display devices.

[0064] In some examples, the controller 306 may determine a link failure based on the link information. In some examples, determining the link failure may be performed as described in relation to Figure 1 , Figure 2, Figure 4, and/or Figure 5.

[0065] In some examples, the controller 306 may cycle a connection detection signal on a connected data cable to repair a link. In some examples, cycling the connection detection signal on a connected data cable may be performed as described in relation to Figure 1 , Figure 2, Figure 4, and/or Figure 5. For instance, the controller 306 may initiate a cable disconnection indicator corresponding to a connected data cable (e.g., a cable connected to the video source device 308, a cable connected to the display device 310, and/or a cable connected to another display device). For instance, the controller 306 may control circuitry (e.g., the hub 304 and/or other circuitry) to assert a voltage, deassert a voltage, pull a voltage up, pull a voltage down, draw a current, and/or produce a current, etc., to cycle the connection detection signal on the first connection detection channel 316, the second connection detection channel 322, and/or another connection detection channel.

[0066] In some examples, the controller 306 may read the link information from the hub 304 (e.g., MST hub) via the side channel 324, and may cycle the connection detection signal by sending a control signal to the hub 304 (e.g., MST hub). For instance, the controller 306 may send a signal to the hub 304 that causes the hub 304 to cycle the connection detection signal for a connected cable.

[0067] In some examples, the controller 306 may determine that a connection to a video source device 308 is established. In some examples, the controller 306 may read the link information in response to the determination that the connection is established.

[0068] In some examples, after an event (e.g., docking, wake-up event, etc.), the controller 306 through the side channel 324 may query the status of a link or links between the hub 304 and the display device 310 or display devices. The controller 306 may be able to determine whether a display device or display devices is or are connected, whether identification information (e.g., DisplaylD and/or EDID) is valid for each display device, whether a setup data read fails or has failed, whether link training fails or has failed, whether a video stream is active, and/or whether a timing parameter or parameters is or are correct, etc. In some examples, a determination or determinations may be indicated by the hub 304. In some examples, a determination or determinations may be derived based on data from the hub 304.

[0069] In some examples, when a display device is inactive or is active with an incorrect timing parameter(s), the controller 306 may issue a cycling request (e.g., long HPD request) to the hub 304. The hub 304 may cycle the connection detection signal (on the first connection detection channel 316, for instance) between the hub 304 and the video source device 308, which may trigger a reenumeration of the path or paths between the video source device 308 and the display device 310 or display devices. In cases where link failure is related to timing and/or readiness of a component, the re-enumeration may repair the link. [0070] Table (3) illustrates examples of display link status and corresponding status fields that may be utilized to determine link status in accordance with some examples of the techniques described herein. For instance, the controller 306 may read and/or utilize a status field or status fields to determine whether a link has failed.

Table (3)

In Table (3), AUX/DPCD denotes auxiliary and/or DPCD. In some examples, the register(s) indicating timing validity may return horizontal size and/or vertical size of a video signal.

[0071] When video link setup is performed (between the video source device 308 and the electronic device 302, between the electronic device 302 and the display device(s) 310, and/or between the video source device 308 and the display device(s) 310), the hub 304 may store a datum or data (e.g., video stream activity data, connection detection indicator, display identification (e.g., DisplaylD and/or EDID) validity data, link training validity data, and/or timing data) indicated in Table (3). The controller 306 may read a datum or data from the hub 304 via the side channel 324 and determine whether a video link has failed as described herein.

[0072] Figure 4 is a block diagram illustrating an example of a computer- readable medium 440 for video link repair. The computer-readable medium 440 may be a non-transitory, tangible computer-readable medium. The computer- readable medium 440 may be, for example, RAM, EEPROM, a storage device, an optical disc, and the like. In some examples, the computer-readable medium 440 may be volatile and/or non-volatile memory, such as DRAM, EEPROM, magnetoresistive random-access memory (MRAM), phase-change randomaccess memory (PCRAM), memristor, flash memory, and/or the like. In some examples, memory described herein (e.g., memory in the electronic device 302 and/or controller 306) may be examples of the computer-readable medium 440 described in Figure 4. [0073] The computer-readable medium 440 may include code (e.g., data, executable instructions, and/or executable code). For example, the computer- readable medium 440 may include display record identification instructions 442, matching instructions 444, plug disconnection indicator instructions 446, physical disconnection simulation instructions 448, and/or display record(s) 450. [0074] In some examples, the display record identification instructions 442 may be instructions when executed cause a processor (e.g., controller 306) to identify a display record based on received identification data. For example, an electronic device may store a display record 450 for a previously connected display device or display devices. The display record(s) 450 may include previous link information (e.g., display identification data, timing parameter(s), resolution parameter(s), size parameter(s), and/or bitrate parameter(s), etc., corresponding to a previous link or links). In some examples, the display record(s) 450 may store the previous link information according to (e.g., in association with, indexed by, etc.) display identification data. For instance, previous link information may be stored per display identified. During a link setup procedure for a current link, the electronic device may receive identification data (e.g., DisplaylD and/or EDID) from a display device (e.g., display device 310). In some examples, the processor may identify the display record by matching the current link information (e.g., current identification data, current DisplaylD, and/or current EDID, etc.) to a display record 450 and/or by looking up a display record using the current link information (e.g., current identification data, current DisplaylD, and/or current EDID, etc.).

[0075] In some examples, the matching instructions 444 may be instructions that when executed cause a processor (e.g., controller 306) to determine whether current link information matches or does not match previous link information of the display record 450. For instance, the processor may determine that current link information does not match previous link information of the display record 450. For example, if a parameter or parameters (e.g., timing parameter(s), resolution parameter(s), size parameter(s), and/or bitrate parameter(s), etc.) of current link information is different from a corresponding parameter or parameters of previous link information in the identified display record 450, the processor may determine that the current link information does not match the previous link information. In some examples, current link information may include a current timing parameter and the previous link information may include a previous timing parameter. For instance, a current timing parameter may include display pixel dimension(s), horizontal pixel dimension, vertical pixel dimension, and/or refresh rate, etc., from current link information. A previous timing parameter may include display pixel dimension(s), horizontal pixel dimension, vertical pixel dimension, and/or refresh rate, etc., from previous link information and/or a display record 450.

[0076] In some examples, the plug disconnection indicator instructions 446 may be instructions that when executed by a processor (e.g., controller 306) initiate a plug disconnection indicator in response to the determination (e.g., the determination that the current link information does not match the previous link information). Initiating a plug disconnection indicator may be performed as described in relation to Figure 1 , Figure 2, Figure 3, and/or Figure 5. For instance, the processor may initiate a cable disconnection indicator and/or cycle a connection detection signal.

[0077] In some examples, the physical disconnection simulation instructions 448 are instructions that when executed cause a processor (e.g., controller 306) to initiate a physical disconnection simulation in response to determining that a link was not repaired by the plug disconnection indicator. For instance, the processor may determine that the link was not repaired by the plug disconnection indicator if the link information (e.g., refreshed link information) does not match the previous link information and/or if a video stream is not active. In a case that the link was not repaired, the processor may simulate a physical disconnection. In some examples, simulating a physical disconnection may be accomplished by modifying (e.g., blocking, pulling down, etc.) and restoring a signal or signals beyond (e.g., in addition to) the plug disconnection indicator. In some examples, simulating a physical disconnection may be accomplished by restarting an entire link (e.g., all signaling). For instance, the processor may simulate a physical disconnection and reconnection of a USB Type-C or TBT connection between a host and a dock (while the USB Type-C or TBT cable is physically connected, for example).

[0078] Figure 5 is a flow diagram illustrating an example of a method 500 for video link repair. In some examples, the method 500 may be performed by an electronic device or electronic device(s) (e.g., electronic device 302) described herein.

[0079] An electronic device may determine 502 whether a trigger event has occurred. For example, the electronic device may determine whether a docking or wake-up event has occurred. A dock event may occur when a host is docked to the electronic device (e.g., when a connection detection signal is detected by the electronic device and/or when a signal is received from the host, etc.). A wake-up event may occur when the electronic device and/or a host device exit a sleep or inactive mode (e.g., when an input, such as a button press or touch, is detected and/or when a signal is received from the host, etc.). If it is determined 502 that a trigger event has not occurred, operation may return to determining 502 whether trigger event has occurred at a subsequent time (e.g., after a period of time).

[0080] If it is determined 502 that a trigger event has occurred, the electronic device may perform 504 link training to a video source device. In some examples, performing 504 link training may be performed as described herein. For instance, the electronic device may receive video from a source device, assess link quality, sending link quality indicator(s) to the source device, and/or sending a voltage adjustment request to the source device and/or other assessment(s) and/or adjustment(s), etc. In some examples, performing 504 link training may include MST hub link training to a video source device.

[0081] The electronic device may determine 506 whether a hub receive (Rx) link is established. In some examples, determining 506 whether a hub receive link is established may be performed as described herein. For instance, the electronic device may determine whether the link training is valid. In some examples, determining 506 whether a hub receive link is established may include determining whether a video stream is active and/or whether the video source device is connected, etc. [0082] If it is determined 506 that a hub receive link is not established, the electronic device may determine 516 whether a receive link cycle limit is met. For example, the receive link cycle limit may be a threshold quantity of attempts to repair the receive link with a video source device and/or a threshold time for attempting to repair the receive link. For instance, the electronic device may increment a receive link cycle value (e.g., count) each time a connection detection signal for the video source device is cycled.

[0083] If the receive link cycle limit is not met (e.g., if the count has not reached or exceeded the threshold quantity), the electronic device may cycle 518 a connection detection signal (for a video source device, for instance). In some examples, cycling 518 the connection detection signal (e.g., reenumerating, initiating a cable disconnection indicator, cycling a connection detection signal, and/or initiating a plug disconnection indicator, etc.) may be performed as described herein. The electronic device may increment 520 (e.g., add 1 to) the receive link cycle value. In some examples, the electronic device may update a log indicating that a re-enumeration was attempted (e.g., cycling 518 the connection detection signal was performed) and/or that the hub receive link was not established. Operation may return to determining 506 whether a hub receive link is established.

[0084] If the receive link cycle limit is met (e.g., if the count reaches or exceeds the threshold quantity), the electronic device may log 528 a link cycle failure. For instance, the electronic device may record a log indicating that cycling the connection detection signal for the receive link has failed.

[0085] The electronic device may determine 530 whether a physical disconnection simulation limit is met. A physical disconnection simulation limit may be a threshold quantity threshold quantity of attempts to repair the receive link with a physical disconnection (and/or reconnection) simulation and/or a threshold time for attempting to repair the receive link. For instance, the electronic device may increment a physical disconnection simulation value (e.g., count) each time a physical disconnection and/or reconnection simulation (e.g., USB Type-C or TBT reset) is performed. [0086] If the physical disconnection simulation limit is not met (e.g., if the count has not reached or exceeded the threshold quantity), the electronic device may initiate 534 a physical disconnection simulation. Initiating 534 the physical disconnection simulation may be performed as described in relation to Figure 4 in some examples. For instance, the electronic device may issue a logical reset of a connection (e.g., USB Type-C or TBT connection). The electronic device may increment the physical disconnection simulation value. In some examples, the electronic device may update a log indicating that a physical disconnection simulation was attempted (e.g., initiating 534 the physical disconnection simulation was performed) and/or that the hub receive link was not established. Operation may return to performing 504 link training.

[0087] If it is determined 530 that the physical disconnection simulation limit is met, the electronic device may log 532 simulation failure and operation may end 514. For instance, the electronic device may create and/or record a log indicating the physical disconnection simulation was unsuccessful at repairing the video link.

[0088] If it is determined 506 that the hub receive link is established, the electronic device may read 508 display identification data. Reading 508 display identification data may be performed as described herein. For example, the electronic device may request and/or receive display identification data (e.g., DisplaylD and/or EDID) from a connected display device or display devices.

[0089] The electronic device may identify 510 a display record from the display identification data. For example, the electronic device may identify 510 a display record as described in relation to Figure 4. For instance, the display record may indicate a previous (e.g., last recorded) state for a connected display with the corresponding display identification.

[0090] The electronic device may determine 512 whether a hub transmit (Tx) link is established (e.g., established with a correct state). In some examples, determining 512 whether a hub transmit link is established may be performed as described herein. In some examples, determining 512 whether a hub transmit link is established may include determining whether display identification data is valid, whether a timing parameter is valid, whether link training is valid, whether a setup data read is valid, whether a video stream is active and/or whether the display device is connected, etc.

[0091] If it is determined 512 that a hub transmit link is not established, the electronic device may determine 522 whether a transmit link cycle limit is met. For example, the transmit link cycle limit may be a threshold quantity of attempts to repair the transmit link with a display device and/or a threshold time for attempting to repair the transmit link. For instance, the electronic device may increment a transmit link cycle value (e.g., count) each time a connection detection signal for the display device is cycled.

[0092] If the transmit link cycle limit is not met (e.g., if the count has not reached or exceeded the threshold quantity), the electronic device may cycle 524 a connection detection signal (for a connected display device, for instance). In some examples, cycling 524 the connection detection signal (e.g., reenumerating, initiating a cable disconnection indicator, cycling a connection detection signal, and/or initiating a plug disconnection indicator, etc.) may be performed as described herein. In some examples, cycling 524 a connection detection signal may include re-enumerating a full link (e.g., receive and transmit links). The electronic device may increment 526 (e.g., add 1 to) the transmit link cycle value. In some examples, the electronic device may update a log indicating that a re-enumeration was attempted (e.g., cycling 524 the connection detection signal was performed) and/or that the hub transmit link was not established. Operation may return to determining 512 whether a hub receive link is established.

[0093] In some examples, an operation or operations of the method 500 may be repeated for multiple display devices and/or links. For instance, an electronic device may read 508 display identification data, identify 510 a display record, determine 512 whether a hub transmit link is established, determine 522 whether a transmit cycle limit is met, cycle 524 a connection detection signal, and/or increment 526 a transmit link cycle value for multiple display devices, etc., in some cases.

[0094] If the transmit link cycle limit is met (e.g., if the count reaches or exceeds the threshold quantity), the electronic device may log 528 a link cycle failure. For instance, the electronic device may record a log indicating that cycling the connection detection signal for the transmit link has failed.

[0095] The electronic device may determine 530 whether a physical disconnection simulation limit is met. If the physical disconnection simulation limit is not met (e.g., if the count has not reached or exceeded the threshold quantity), the electronic device may initiate 534 a physical disconnection simulation. The electronic device may increment the physical disconnection simulation value. In some examples, the electronic device may update a log indicating that a physical disconnection simulation was attempted (e.g., initiating 534 the physical disconnection simulation was performed) and/or that the hub transmit link was not established. Operation may return to performing 504 link training.

[0096] If it is determined 530 that the physical disconnection simulation limit is met, the electronic device may log 532 simulation failure and operation may end 514. For instance, the electronic device may create and/or record a log indicating the physical disconnection simulation was unsuccessful at repairing the video link.

[0097] A techniques or techniques, a method or methods (e.g., method(s) 100, 200, and/or 500) and/or an operation or operations described herein may be performed by (and/or on) a sink device, a source device, and/or a device that is a sink device and a source device. For instance, a video link failure may be identified on a source device and/or on a sink device. A cable disconnection indicator may be initiated and/or provided by a source device and/or a sink device. For instance, a technique or techniques described herein may be performed on a computer, GPU, hub, dock, and/or display device, etc. In some examples, a source device and/or a sink device may include circuitry (e.g., a processor with instructions and/or connection interface circuitry) to perform a technique or techniques described herein.

[0098] As used herein, the term “and/or” may mean an item or items. For example, the phrase “A, B, and/or C” may mean any of: A (without B and C), B (without A and C), C (without A and B), A and B (but not C), B and C (but not A), A and C (but not B), or all of A, B, and C. [0099] While various examples are described herein, the disclosure is not limited to the examples. Variations of the examples described herein may be within the scope of the disclosure. For example, aspects or elements of the examples described herein may be omitted or combined.