blob: 808eb9c012a076f5bf9fa6aee0a3dba28f1180ff [file] [log] [blame] [view]
# Display Driver for Intel GPUs
## Target Hardware
Changes to the driver should be reviewed against the documentation for the
following hardware.
* Tiger Lake - on Intel NUC11
* Kaby Lake - on Google Pixelbook (eve), Google Pixelbook Go (atlas), and Intel
NUC7
* Skylake - on Acer Switch Alpha 12
Some of the hardware listed here is not supported, meaning we don't regularly
run tests on it. [The hardware development page][fuchsia-development-hardware]
on fuchsia.dev has the most up to date hardware support status.
## Documentation References
### Intel Programmer Manuals
The driver code here is based on the
[Programmer's Reference Manuals][intel-graphics-prms] published by Intel for
graphics driver developers.
To facilitate reviews, driver code should include comments pointing to the
relevant manual sections. Reference comments should include the following parts:
1. The document reference ID, such as `IHD-OS-TGL-Vol 2c-12.21`. This
facilitates searching for a downloadable version of the manual.
1. The section title, such as `"Sequences for DisplayPort" > "Enable Sequence"`.
This facilitates searching for equivalent information in a different manual.
This example uses a two-level section name because `"Enable Sequence"` is too
generic, resulting in too many hits.
1. A part number, if the document is split in multiple parts. For example,
`IHD-OS-TGL-Vol 2c-12.21` is split into two parts. Without a `Part 1` /
`Part 2` qualifier, page numbers would be ambiguous.
1. A page number or page range, such as `pages 143-145`. This optimizes for
reviewers who need to check that the code matches the documentation.
The most relevant manuals for this driver are:
* [Tiger Lake (TGL)][intel-tgl-prm]
* [Kaby Lake (KBL)][intel-kbl-prm]
* [Skylake (SKL)][intel-skl-prm]
* [IGD OpRegion / Software SCI][intel-opregion-prm]
### Standards
The following standards are particularly relevant to this driver.
* [HDMI Forum][hdmi-forum-about] - all standards are members-only
* High-Definition Multimedia Interface (HDMI) 2.1a, 7 February 2022
* [MIPI Alliance][mipi-alliance-about] - all standards are members-only
* Display Serial Interface (DSI) 1.3.2, 17 December 2020
* [NXP][nxp-about] - standards require profile creation
* [I2C (Inter-IC) bus specification and user manual][nxp-i2c-spec] document
UM10204 revision 7.0, 1 October 2021
* [Standard Panel Working Group][spwg-about]
* [SPWG Notebook Panel Specification][spwg-panel-standard] Version 3.8
* [USB Implementers Forum][usb-if-about] -
[public standards][usb-if-public-standards]
* [Universal Serial Bus 4][usb4-spec] (USB4)
* [USB Type-C Cable and Connector][usb-type-c] Release 2.1, May 2021
* [USB Power Delivery][usb-power-delivery] (PD) Revision 3.1 Version 1.5,
July 2022
* [Universal Serial Bus 3.2][usb3-spec] (USB3) Revision 1.1, June 2022
* [VESA][vesa-about]
* [Public standards][vesa-public-standards]
* Display Stream Compression (DSC, VDSC) 1.2b, 21 August 2021
* Enhanced Extended Display Identification Data (E-EDID) Release A,
Revision 2, revised 31 December 2020
* DisplayID 2.1, 18 November 2021
* [Members-only][vesa-members-standards]
* DisplayPort (DP) 2.0, revised 31 December 2020
* DisplayPort Alt Mode on USB Type-C 2.0, revised 21 March 2020
* Embedded DisplayPort (eDP) 1.4b, revised 31 December 2020
[fuchsia-development-hardware]: https://fuchsia.dev/fuchsia-src/development/hardware
[hdmi-forum-about]: https://hdmiforum.org/about/
[mipi-alliance-about]: https://www.mipi.org/about-us
[intel-graphics-prms]: https://01.org/linuxgraphics/documentation/hardware-specification-prms
[intel-tgl-prm]: https://01.org/node/37295
[intel-kbl-prm]: https://01.org/linuxgraphics/hardware-specification-prms/2016-intelr-processors-based-kaby-lake-platform
[intel-skl-prm]: https://01.org/linuxgraphics/documentation/hardware-specification-prms/2015-2016-intel-processors-based-skylake-platform
[intel-opregion-prm]: https://01.org/linuxgraphics/documentation/intel%C2%AE-integrated-graphics-device-opregion-specification
[nxp-about]: https://www.nxp.com/about
[nxp-i2c-spec]: https://www.nxp.com/webapp/Download?colCode=UM10204&location=null
[spwg-about]: https://web.archive.org/web/20130516220616/http://www.spwg.org/
[spwg-panel-standard]: https://web.archive.org/web/20120424092158/http://www.spwg.org/spwg_spec_version3.8_3-14-2007.pdf
[usb-if-about]: https://www.usb.org/about
[usb-if-public-standards]: https://www.usb.org/documents
[usb-power-delivery]: https://www.usb.org/document-library/usb-power-delivery
[usb3-spec]: https://www.usb.org/document-library/usb-32-revision-11-june-2022
[usb4-spec]: https://www.usb.org/document-library/usb4r-specification
[usb-type-c]: https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-release-21
[vesa-about]: https://vesa.org/about-vesa/
[vesa-members-standards]: https://vesa.org/join-vesamemberships/member-downloads/
[vesa-public-standards]: https://vesa.org/vesa-standards/