History log of /fuchsia/zircon/system/dev/display/intel-i915/display-device.cpp
Revision Date Author Comments
# c79dc152 21-Sep-2018 David Stevens <stevensd@google.com>

[intel-i915] Load clock rate from DP transcoder

Configuring a transcoder for DP requires knowing the pixel clock rate.
Since we reallocate transcoders rather aggressively, we need to load
the pixel clock rate from hardware if we're reusing the BIOS display
configuration.

Test: Run gfxtest on a NUC with 2 DP monitors and make sure both
monitors work after the test finishes.

Change-Id: I8fc96f45d6d3ca21c2cc316f05604b616f6f1c0f


# 8e9d391d 11-Sep-2018 David Stevens <stevensd@google.com>

[intel-i915] Be more aggressive about reusing HW state

There are still displays that the Intel display driver has trouble
initializing. The BIOS is generally more reliable, so skip checking
certain less-important timing flags to more aggressively reuse the BIOS
initialization.

Bug: ZX-2539
Test: Boot to virtcon and run display-test on previously-failing display
Change-Id: I07ce3ac868bfd64c78d01995a5e7832cbc3700bc


# 1293d129 07-Sep-2018 David Stevens <stevensd@google.com>

[intel-i915] Init backlight when skipping display init

BUG: SU-22
Test: Check that backlight cmdline utility works
Change-Id: I432fc7f57aab1f0bdcfbb493f95f2b542e5f2d0c


# 6240b45a 29-Aug-2018 David Stevens <stevensd@google.com>

[intel-i915] Read hardware state at initialization

Test: Boot to virtcon on NUC/eve, run display-test
Change-Id: Ie64e56eb46097db82bf3e9d6354b83024a8d89f1


# 2e3cd781 15-Aug-2018 David Stevens <stevensd@google.com>

[display] Move edid handling to core driver

Test: Boot to virtcon/hotplugging on NUC/eve/acer
Change-Id: Id531728ca7d218584cddc881d6635737abd1b55a


# 37e1c6ef 17-Aug-2018 David Stevens <stevensd@google.com>

[intel-i915] Split i2c/dp_aux into separate objects

Test: Boot to virtcon on NUC/eve
Change-Id: If2d56129c7818fc5a7dd73ba18e5b92aef37d07c


# 59cc5745 17-Aug-2018 David Stevens <stevensd@google.com>

[intel-i915] Clean up ddi configuration

This change does some small refactoring around what should be done when
configuring a DDI (i.e. when the display is plugged in) and what should
be done during modesetting.

Test: Boot to virtcon/modesetting on NUC/eve
Change-Id: If42b597f1b66f05afbb95c9079d19b8803a63248


# afa085e7 17-Aug-2018 David Stevens <stevensd@google.com>

[intel-i915] Don't detach pipe when changing mode

Test: display-test --mode-set
Change-Id: I7efe8bca6c67508a45f8cd14e170cd3bc52db45a


# 2bb90254 12-Jul-2018 David Stevens <stevensd@google.com>

[intel-i915] Separate ddis from pipes/transcoders

This change creates a standalone Pipe class which manages hardware
pipes and transcoders, which leaves displays to only manage ddis. This
allows more dynamic configuration of the hardware.

Test: Virtcon and hotplugging on skl NUC/kbl NUC/eve/acer, virtcon
switching, boot menu, display-test, vkcube on skl NUC.

Change-Id: I845ec143b14866099f7b17840dfe24492f6e5909


# a0f60809 27-Jul-2018 David Stevens <stevensd@google.com>

[intel-i915] Don't require modesetting on boot

This reverts commit a9bb0f96899d3583748d87be7ed84a58a433d312, as the
modesetting required by that change doesn't reliably complete on some
hardware. To prevent regressing the specific issue fixed by the
reverted change, this change also makes setting PIPE_SRCSZ occur
unconditionally when applying a configuration.

Test: Boot to virtcon from boot menu. Boot to virtcon successfully on
kaby lake NUC.
Bug: ZX-2418
Change-Id: I3a7a20dad79bc14a2580f6e5060268e22f70170a


# a9bb0f96 20-Jul-2018 David Stevens <stevensd@google.com>

[intel-i915] Don't assume the preferred display mode

Don't initialize the display_mode_t info with the preferred display
timing, since it's possible that the display was initialized with some
other mode.

Test: Boot to virtcon from boot menu
Change-Id: I07dabfa846167c6d15e3d549e1ca2d5baba0f1ec


# fa553dfb 13-Jul-2018 David Stevens <stevensd@google.com>

[display][edid] Add DTM and CEA timings

Test: display-test modesetting on NUC/vim2
Change-Id: I5aed7a701872da2af2ee48823dda0973f69d10f3


# ae7a7913 11-Jul-2018 David Stevens <stevensd@google.com>

[intel-i915] Fix DP hotplugging

Test: display-test works with a hotplugged DP monitor
Change-Id: Iacb64c37af080240e5c92bb43de938e90389d685


# b164b0c1 09-Jul-2018 David Stevens <stevensd@google.com>

[display][intel-i915] Fix uninitialized memory usage

This also cancels a wait which causing an assert following the reported
crash.

Bug: SCN-831 #done
Test: vkcube followed by set_root_view vkcube
Change-Id: I9cfecbbe530379415a1daa6ff0ba6209364ce15c


# 13393684 06-Jul-2018 David Stevens <stevensd@google.com>

[intel-i915] Write double-buffer arming registers together

Intel hardware does not support atomic updates for a whole composition
configuration, so group the register writes which arm the changes into
per-pipe batches to reduce the chance of partial applications.

Test: display-test
Change-Id: I288739d217e020f5c867b6d23c2701e44dbfb481


# 3af5ab84 02-Jul-2018 David Stevens <stevensd@google.com>

[intel-i915] Support layer scaling

Test: display-test
Change-Id: I6c6b9835d91e95d7911b1b47a20eaf21ec13ec2a


# 398e80d3 02-Jul-2018 David Stevens <stevensd@google.com>

[display] Add support for color layers

Test: display-test
Change-Id: I270351824d264e5c905a74b43a2c09079059bd94


# b3c5d683 22-Jun-2018 David Stevens <stevensd@google.com>

[display] Add layer alpha API

Test: manually run display-test
Change-Id: I8d6791f5ad286d54bca130e0d156010e61c3539d


# 31b16cc3 19-Jun-2018 David Stevens <stevensd@google.com>

[display] Add support for color space conversion

Test: manually run display-test
Change-Id: I81e2bcec9d7b800b572b8f579aa6eb8b57792894


# d169d01c 18-Jun-2018 David Stevens <stevensd@google.com>

[ddk][intel-i915] Add support for hardware cursors

Test: Manually run display-test
Change-Id: Id413e27cd9ee938c689495eee6bb58ad44ff8223


# 542ba766 21-Jun-2018 Bryce Lee <brycelee@google.com>

[device][intel-i915] Add reading backlight state from device.

This changelist exposes the current backlight state from the i915
driver. The returned values mirror those provided through the set
API.

Test: run "backlight --read" from shell and verify returned values.
Bug: SY-411
Change-Id: Ib46d8da928cb6786dbc8a50bc55f056f3a38eea2


# 47170285 14-Jun-2018 David Stevens <stevensd@google.com>

[device][intel-i915] Add backlight device

Expose v0 backlight controls from i915 display driver.

Test: Manual testing with new backlight utility
Change-Id: I23b85894f2b1663df1914b5a127a74548d2580d1


# 411d519c 14-Jun-2018 David Stevens <stevensd@google.com>

[intel-i915] Add support for rotation

This is a revert of the revert 455cc09565a4f9018cd9921e9184d857bc5b7133
with an additional fix in DdkSuspend to fix crashing during mexec.

Test: display-test, boot with zedboot image including change
Change-Id: I55dcbd21496155357c30d5ac6a83215c642f8d9a


# 455cc095 14-Jun-2018 Yvonne Yip <yky@google.com>

[intel-i915] Reverting: Add support for rotation

This reverts commit d6377109658b0e074dc853474febb2016be4cff3.

Reason for revert: This commit generates a zedboot that fails
to boot the system on pixelbook.

Original change's description:
> [intel-i915] Add support for rotation
>
> Test: display-test
> Change-Id: I4fdc948584acd76b4aab9a5044299449fd18b059

Change-Id: Iba0f2bda1819da230cb778961fcbe5bb7df5500a


# 56c05e02 25-May-2018 David Stevens <stevensd@google.com>

[display][intel-i915] Add support for modesetting

Change-Id: I6a2a8a5ecae1514ae87ee2fb4c6511578d376fa4


# d6377109 24-May-2018 David Stevens <stevensd@google.com>

[intel-i915] Add support for rotation

Test: display-test
Change-Id: I4fdc948584acd76b4aab9a5044299449fd18b059


# fe777833 11-May-2018 David Stevens <stevensd@google.com>

[display] Add layers to ddk display protocol

Change-Id: I0e876353121ca8c58bcca4a5c0ada6ee61d0e259


# 28ad8aee 26-Apr-2018 David Stevens <stevensd@google.com>

[intel-i915] Clean up intel driver logging

Change-Id: I3873a7460d31cb0c94ef8cb00266f9598fa9f3d2


# 1f8851c1 11-May-2018 David Stevens <stevensd@google.com>

[display] Set zx framebuffer in core display driver

Change-Id: Id8d3638aa3a5a842ae8c623d32a1604d1038a511


# b5361bb3 01-May-2018 David Stevens <stevensd@google.com>

[edid] Make the edid API mirror the underlying format

Change-Id: I580c3f61f7b31039e6abfc281958b62127473d3d


# 75ab4f2b 13-Apr-2018 David Stevens <stevensd@google.com>

[intel-i915] Delete old display device implementation

Change-Id: I1e253629778288952ed3dc83111b84a0aac4a29f


# a5efddbd 16-May-2018 David Stevens <stevensd@google.com>

[display] Use uint64_t for ids

Change-Id: I8538e3e53978045bc55a8d4116acf90393dbfdf8


# 83e27569 10-Apr-2018 David Stevens <stevensd@google.com>

[intel-i915] Add support for buffer tiling

Change-Id: Ib8bd40a07f086a4f65625a25560d2dfc84634605


# 5fbe6f24 19-Apr-2018 David Stevens <stevensd@google.com>

[intel-i915] Add locking

Change-Id: I067fb1bb9a8db020d8f80272c12ec732cd15238a


# 81eff85e 19-Apr-2018 David Stevens <stevensd@google.com>

[intel-i915] Implement intel-gpu-core protocol

Also change the address type in read_pci_config_16 to uint16_t, to
match the underlying pci API.

Change-Id: Ic16e79939ea5114c545809f993ff7ad1e2e93d86


# 593512f6 29-Mar-2018 David Stevens <stevensd@google.com>

[intel-i915] Add display controller implementation

Change-Id: Ic512b89645b512629eb42b7b54563c7369b2060b


# e0d70dec 16-Mar-2018 James Robinson <jamesr@google.com>

[zx] Move public zx headers to match naming convention

The zx library provides headers intended for general use, so the
include path should be spelled <lib/zx/foo.h> as per
https://fuchsia.googlesource.com/docs/+/master/development/languages/c-cpp/naming.md.
This moves the headers into the proper location and updates includes to
match.

Change-Id: I6fc9b2a491b5f8b0d270c4dfc77fa4be5739071b


# c0486491 14-Mar-2018 David Stevens <stevensd@google.com>

[intel-i915][edid] Create standalone edid library

Change-Id: I0bceb8ef276b836e25c89830ff155c8a02965a97


# 4c6af1d0 08-Mar-2018 David Stevens <stevensd@google.com>

[dev][i915] Teach Intel graphics about BTIs

ZX-693 #comment

Change-Id: I09b00e34fdfb797bb39c22b109661c70a2a4c676


# c2ef1c6d 08-Mar-2018 David Stevens <stevensd@google.com>

[intel-i915] Map framebuffers as write-combining

Change-Id: I5738e52590ce615b2bdebef133e7507479b0d45e


# b84f3926 27-Feb-2018 David Stevens <stevensd@google.com>

[intel-i915] Improve dpll allocation

Share dplls when possible. Also, given that the sparse documentation on
HDPORT makes it difficult to be confident in how the feature is
handled, just ignore it for now. Support can be needed when something
actually needs it and better documentation is available.

Change-Id: I186de9959bd9f1e7521c3333abb306aae4acfaea


# b77eb94b 26-Feb-2018 David Stevens <stevensd@google.com>

[intel-i915] Only enable power wells when in use

Change-Id: I4cde102b41ef4a39f19f6c71a2de2725bfb34b10


# cc3b595b 26-Feb-2018 David Stevens <stevensd@google.com>

[intel-i915] Use pixel size when computing stride

Change-Id: Ia145ee1c3ec3cc739570a02ae1ff057ab4a6af58


# 6a5f1ec1 05-Feb-2018 David Stevens <stevensd@google.com>

[intel-i915] Reinitialize displays on resume

Change-Id: I22449d4896d331c4808a9341ab5ea325a45a7472


# 70743b11 16-Feb-2018 David Stevens <stevensd@google.com>

[intel-i915] Handle transcoder EDP and DPLL0

Change-Id: Idc68e8f6932b38c0b7929b81ea50c4bcd54e6a8f


# b9d2c7d6 31-Jan-2018 David Stevens <stevensd@google.com>

[intel-i915] Make the bootloader fb work on mexec

Change-Id: Ia8a95fd2fbcfd366bf02a8b9adb8192bc6bff139


# b1876738 26-Jan-2018 David Stevens <stevensd@google.com>

[intel-i915] Back unused gfxmem with a scratch buffer

There are times during driver initialization and when mexecing where
there is nothing good to put on the display. To handle those cases,
back all unused graphics memory with a black scratch buffer (which is
quicker and easier than turning the display off and back on).

Change-Id: I9767dc1c6e14646f5e84effce8712c5ee908882e


# 6bee686a 09-Jan-2018 David Stevens <stevensd@google.com>

[intel-i915] Add support for hotplugging

Change-Id: Idbc2721499a5b18acbb395d26b63bf13d08c79a0


# 834dc19e 09-Jan-2018 David Stevens <stevensd@google.com>

[intel-i915] Add allocator to gtt

Change-Id: I49ecd0797938b3975701ccea566d90023d7d8928


# 310de5b0 18-Dec-2017 David Stevens <stevensd@google.com>

[system][intel-i915] SKU specific DDI_BUF_TRANS values

Skylake PCI ids were taken from IHD-OS-SKL-Vol 4-05.16. Kaby lake PCI
ids were taken from IHD-OS-KBL-Vol 4-1.17. Skylake register tables were
taken from IHD-OS-SKL-Vol 12-05.16. Kaby lake register tables were
taken from IHD-OS-KBL-Vol 12-1.17.

Change-Id: Ie6b6b963c54e6c239efb50eddff15d6d936e25d0


# 953a90f4 21-Dec-2017 David Stevens <stevensd@google.com>

[intel-i915] Determine HDMI vs DVI from edid

Change-Id: I129e183e7ec5c1b3b9244f1a17aacc35a531fe0a


# d90976be 19-Dec-2017 Todd Eisenberger <teisenbe@google.com>

[dev][i915] Switch code over to hwreg lib

The hwreg code is derived from registers-base.h and has support for
additional features (like reserved-zero bits).

Change-Id: I1476a23de273896e029c99231833d30d4105e3cd


# c6dc9218 12-Dec-2017 David Stevens <stevensd@google.com>

[system][intel-i915] Improve display controller init

- Reset all pipes and ddis.
- Do fixed-allocation of display buffers across all pipes.

Change-Id: Iebca855147f0a9cb9cfe0465fa7e57656272c352


# 67bdab66 29-Nov-2017 David Stevens <stevensd@google.com>

[system][intel-i915] Reset hardware when needed

Change-Id: I42a356ab099a6669e94d9fa49b8f92eaef38cdbe


# 5b34af45 29-Nov-2017 David Stevens <stevensd@google.com>

[system][intel-i915] Add HDMI configuration

The bulk of this logic is disabled behind a #define flag.

Change-Id: I3240895203b71bfa4fc61f2a7df723bae55ede71


# fb33cf46 27-Nov-2017 David Stevens <stevensd@google.com>

[dev][intel-i915] Create dedicated display class

Change-Id: I98e1a550ded205f66c56a74e98873478645b8e3c