[roll] Roll fuchsia [intel-i915] Expanded PCH panel control logic.

This CL implements the following functionality.

* Expanded definitions for the registers related to PCH (South display
  engine) panel power and brightness.
* A new PchEngine class that is responsible for interpreting the values
  of the PCH registers and coordinating changes to these registers.
* Re-configuring PCH registers (clocking, panel power sequence, panel
  brightness PWM) if the configuration left by the boot firmware is
  obviously incorrect.
* Driving the PCH through the panel power sequence.

The implementation is based on the Intel PRMs for Kaby Lake, Sky Lake
(similar to Kaby Lake), Tiger Lake, and DG1. We also refer to DG1
because the Tiger Lake PRM only got definitions for the PCH registers
very recently, and our implementation was mainly developed against the
DG1 documentation. Our experiments showed that the registers described
in the DG1 manual exist on Tiger Lake, which was confirmed by the
updated Tiger Lake PRMs.

The new PchEngine class is integrated with i915::Controller and
DpDisplay. All direct accesses to PCH-related MMIO registers are
replaced with PchEngine functionality, so PchEngine becomes the only
class that accesses these registers.

Original-Bug: 83825
Tested: fx test //src/graphics/display/drivers/intel-i915
Tested: fx shell display-tool squares
Tested: Atlas with Secure Boot enabled boots into core.x64
Tested: Atlas in Dev Mode still boots into core.x64
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/707284
Original-Revision: bbbc139ceef03d035e1056363cafce7984b5763d
GitOrigin-RevId: a1d145ec44c237f50e6df687f90952bc00146559
Change-Id: I0d60085b9755ee0c9a69692b8c0189855179a00f
1 file changed
tree: cd02aef55146a4497494b4e54738e88666ee09a2
  1. git-hooks/
  2. infra/
  3. third_party/
  4. cts
  5. firmware
  6. flower
  7. jiri.lock
  8. minimal
  9. prebuilts
  10. README.md
  11. stem
  12. test_durations
  13. 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.