History log of /fuchsia/zircon/system/dev/display/vim-display/vim-display.cpp
Revision Date Author Comments
# 28fd3660 18-Sep-2018 David Stevens <stevensd@google.com>

[intel-i915][vim-display] Update to new i2c protocol

Test: Boot nuc/vim2 and make sure edid is read successfully
Change-Id: I543d29c5e7e1f8c76938eddc5a9388b1cfbd4688


# 6c2ccb39 19-Sep-2018 Mike Voydanoff <voydanoff@google.com>

[gpio] Refactor the GPIO protocol

This is a first step in a move toward using protocols to represent
individual resources. A similar change will be made to the I2C protocol
to bring it in line with how I2C is used on x86 platforms.

From the client's point of view, an instance of the ZX_PROTOCOL_GPIO
protocol now represents a single pin. The protocol remains the same,
except the "uint32_t index" has been removed from all the protocol functions.

For devices that have only one GPIO resource assigned to them, the driver
can simply call device_get_protocol() to access the GPIO protocol for the pin.
To for devices with more than one GPIO pins, a new API in the platform bus called
pdev_get_protocol() must be used instead.

In addition, we add a new protocol ZX_PROTOCOL_GPIO_IMPL, which is now
implemented by the GPIO drivers. This protocol is essentially the same as
the old GPIO protocol, except "index" has been renamed "pin".
Board drivers may use this protocol directly when doing low level system
configuration, specifying pin numbers directly.

TEST: Booted on VIM2 and Hikey.
On VIM2, USB, display, ethernet and the GPIO test driver are working properly
On Hikey, the system boots and USB is functional.

Change-Id: I44f1bc11ad9793543361a2d19d7a2de4458c334b


# 814c6b59 11-Sep-2018 Andres Oportus <andresoportus@google.com>

[ddk][i2c] Allow multiple adddresses per transact in I2C_IMPL

Move address parameter to ops and update I2C drivers accordingly.

Test: Astro light sensor (uses I2C based interface) readings work and
NXP I2C reads of USB-C parameters (under TEST_USB_REGS_READ) works

Change-Id: Ib5a80c21c0e0f32f015b938ce078076b6a9b92c5


# 2b29c0bd 10-Sep-2018 David Stevens <stevensd@google.com>

[vim-display] Use core driver edid handling

Test: Boot to virtcon/hotplug/modesetting/audio tone
Change-Id: I75babab8758bb97c1f5ca979c2c11c02ce9c15b6


# 5ada3a34 06-Sep-2018 John Bauman <jbauman@google.com>

[aml-canvas][ddk] Avoid leaking VMO handle in canvas

Also document the handle ownership transfer, and add names for the
framebuffer VMOs.

Test: "run vkcube" while doing "kstats -m"

Change-Id: I7a8714625c42760096835b0e727e2573da1ae8cc


# ee589385 04-Sep-2018 John Grossman <johngro@google.com>

[vim][display] Update added/removed logic

Some of the logic surrounding displays being added and displays being
removed recently got updated. A local variable which had been a
uint64_t became a bool, which was causing an assert in the audio code
to trip when re-plugging displays.

Update the logic to match the new boolean nature of the local
variable.

Test: manual on vim2 with an Eyoyo display, power cycling the display
multiple times.
Change-Id: I3322f354958dd98c4875812d47ab4982f730be0e


# 2d20e548 04-Sep-2018 Mike Voydanoff <voydanoff@google.com>

[ddk][gpio] Break gpio_config() API into two functions

gpio_config_in() is used to configure a pin for input, while
gpio_config_out() is used to configure a pin for output.
gpio_config_out() now takes an initial value for the pin,
so the configuration and value can be set atomically to avoid a
race condition or glitch between setting it as output and writing the value.

Also removed some unnecessary GPIO configuration flags.
Now we only have flags for configuring the pull-up in gpio_config_in().
gpio_get_interrupt() uses interrupt handle flags for configuring edge vs level triggered,
so we don't need GPIO_* flags for these.

TEST: manual testing on VIM2, astro and gauss

ZX-2564 #in progress
ZX-2465 #in progress

Change-Id: I280c489ba951ca5953c0a2d57135c3482dd96c37


# 6cce1383 23-Aug-2018 John Bauman <jbauman@google.com>

[vim-display] Switch OSD to use hwreg library

Test: framebuffer on VIM2

Change-Id: I3c853ccc9282b7f7337d55d16cea5c696f114a19


# d33b2818 27-Aug-2018 John Grossman <johngro@google.com>

[vim2][display] Clean up some copy-paste.

Clean up some common copy-paste during bind using a fbl::AutoCall.

Test: manual on VIM2 with an Eyoyo display
Change-Id: Ia48192620b700a9b0238b5459f264fcc19b0fc9a


# 36cf959b 11-Jul-2018 John Grossman <johngro@google.com>

[vim][audio] VIM2/S912 SPDIF/HDMI driver

Add support for SPDIF over HDMI on VIM2.

Note: right now, this HDMI driver is taking full control of all of the
audio hardware, and there is a bunch of HDMI specific code which is
leaking into the SPDIF support. When the day comes that we have
proper support for composite devices and we no longer have to merge
the DAI component of the driver with the codec, we can come back here
and properly split the two apart.

Right now, the code is mostly (but not entirely) separated, so it
should be pretty easy to split. Things having to do with format
support, N/CTS calculations, and make/mfr/unique_id, will all come out
of the SPDIF code and become part of the "HDMI codec" half of things,
while all of the functionality for configuring and running the VIM2
SPDIF block should end up in the S912 DAI driver.

Test: Manual on VIM2 hardware
Change-Id: I33a6f5cf9172ec15b2e87839461493b0413ee47e


# a9ff88e1 22-Aug-2018 John Bauman <jbauman@google.com>

[vim-display][display-test] Support NV12 layers

The single fullscreen layer can now use an NV12 image.

Test: display-test

Change-Id: Ie85f91bb4b1ecd5e476012af14fc9d872cccfc46


# 36ee828e 22-Aug-2018 John Bauman <jbauman@google.com>

[vim-display] Convert to C++

This is the minimum change to get it to build as C++ - mainly adding
casts and getting rid of gotos.

Test: vkcube on VIM2.

Change-Id: I4a0008dac5f50ec35c231ccce9fbb082c31dbeaf