[roll] Roll fuchsia [display][coordinator] Sequentially add / remove displays.

Previously when the display coordinator Controller handles the
OnDisplaysChanged() event, it modified the Controller internal
state and then notified the client proxy of all display changes.

This change adds two methods AddDisplay() and RemoveDisplay() that
add / remove a single display and notify the client of that
display change. This change also modifies the OnDisplaysChanged()
behavior so that it adds / removes displays sequentially. Multiple
display changes that occur at the same time will generate multiple
separate OnDisplayChanged() client events.

This won't cause any behavior change on any Fuchsia boards / products.
All of the display engine drivers in Fuchsia calls OnDisplaysChanged()
with exactly one display change at a time, so the behavior of the
display coordinator and the events received by display coordinator
clients won't change at all. This is verified manually in tests.

Besides, this change also implements the OnDisplayAdded and
OnDisplayRemoved banjo methods which will be used in future CLs.

Test: On boards that do not support hotplugs:
        core.x64 (QEMU), core.x64 (FEMU), core.nelson, core.astro:
      virtcon works. "display-tool squares" works.

Test: On boards that support hotplugs: core.x64 (NUC11), core.vim3:
      "display-tool squares" works before unplugging HDMI.
      "display-tool squares" works after unplugging and replugging HDMI.

Original-Bug: 339311596
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1045512
Original-Revision: 4b83245742e0aec78bebbf87c1f4a514638ced8e
GitOrigin-RevId: e0137b753abe610bdba5fe8be65bb8beae7a023e
Change-Id: I8a464342cc670619cbcab7f95c67f325bffde63d
1 file changed
tree: c42d63f72c2d398afdaaaabea53983b568314f10
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cts
  6. firmware
  7. flower
  8. jiri.lock
  9. MILESTONE
  10. minimal
  11. prebuilts
  12. README.md
  13. stem
  14. test_durations
  15. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.