Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b266b5ba authored by Lucas Berthou's avatar Lucas Berthou
Browse files

Expand Hotplug API to report unstable link events

This will become particularly handy to report link training failure.
Training failures occur when the display mode despite normally supported
fails to eventually succeed the training phase resulting in an unusable
display.
This change also includes a new error message for display setting
failure for undisclosed reason.

Bug: 374140876
Bug: 374138960
Test: manual
Change-Id: If6905978c2afab295ad9fa18439498a1ec7564f4
parent 99bf8a52
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -39,4 +39,5 @@ enum DisplayHotplugEvent {
  ERROR_UNKNOWN = (-1) /* -1 */,
  ERROR_INCOMPATIBLE_CABLE = (-2) /* -2 */,
  ERROR_TOO_MANY_DISPLAYS = (-3) /* -3 */,
  ERROR_LINK_UNSTABLE = (-4) /* -4 */,
}
+7 −0
Original line number Diff line number Diff line
@@ -43,4 +43,11 @@ enum DisplayHotplugEvent {
     * displays that can be simultaneously connected
     */
    ERROR_TOO_MANY_DISPLAYS = -3,

    /**
     * Display link is unstable, e.g. link training failure (negotiation
     * of connection speed failed), and the display needs to be
     * reconfigured
     */
    ERROR_LINK_UNSTABLE = -4,
}
+1 −0
Original line number Diff line number Diff line
@@ -97,5 +97,6 @@ interface IComposerClient {
  const int EX_UNSUPPORTED = 8;
  const int EX_SEAMLESS_NOT_ALLOWED = 9;
  const int EX_SEAMLESS_NOT_POSSIBLE = 10;
  const int EX_CONFIG_FAILED = 11;
  const int INVALID_CONFIGURATION = 0x7fffffff;
}
+6 −0
Original line number Diff line number Diff line
@@ -93,6 +93,10 @@ interface IComposerClient {
     * Seamless requirements cannot be met Exception
     */
    const int EX_SEAMLESS_NOT_POSSIBLE = 10;
    /**
     * Proposed configuration failed for undisclosed reasons
     */
    const int EX_CONFIG_FAILED = 11;

    /**
     * Integer.MAX_VALUE is reserved for the invalid configuration.
@@ -558,6 +562,7 @@ interface IComposerClient {
     * @exception EX_BAD_DISPLAY when an invalid display handle was passed in.
     * @exception EX_BAD_CONFIG when the configuration handle passed in is not valid
     *                    for this display.
     * @exception EX_CONFIG_FAILED when the config failed for undisclosed reasons.
     */
    void setActiveConfig(long display, int config);

@@ -583,6 +588,7 @@ interface IComposerClient {
     * achieve the vsync period change without a noticeable visual artifact. When the conditions
     * change and it may be possible to change the vsync period seamlessly, onSeamlessPossible
     * callback must be called to indicate that caller should retry.
     * @exception EX_CONFIG_FAILED when the config failed for undisclosed reasons.
     *
     * @return is the timeline for the vsync period change.
     */