1. Add support to set HDMI to 3D mode
2. Add binder API to force 3D mode
3. Switch to 3D mode based on metadata
4. Configure pipes appropriately
5. Only side-by-side and top-bottom formats are currently supported
Change-Id: Iae579ecfa45aae088ff543d4143e5025e8c682fa
This change removes the use of static declarations in the HDMI library
that were used to configure the HDMI class with the best mode.
We now rely on the res_info sysfs node to provide timing information
on request for supported modes. Furthermore, we now dynamically compare
HDMI modes in order of height, width, refresh rate and aspect ratio, when
we want to determine the best configuration.
Note: SurfaceFlinger currently has a limit of 128 modes but HDMI can
potentially provide more that 128 modes. In use cases when HDMI provides
more than 128 modes, the HAL needs to sort and provide the best 128 modes.
Change-Id: If4ed8845fb77024771dde15fe23dfcee515d93d2
1. Do not process the display list when the display is not connected.
This is applicable mainly in the HDMI as primary use case since we
want to activate the display only when the cable is connected.
2. Do not write to HPD when HDMI is primary
HPD is always enabled when HDMI is primary, and so we rely on the
connected state (read from sysfs) to determine if the cable is
connected or not.
3. Initialize the down scale feature switch
Initialize down scale feature switch when HDMI is connected but
before we make the call to modify display attributes.
Change-Id: If2a7c8d7af105a9bbd1b6aeef030ac22b51bd3ef
When an HDMI display is connected, we report all the available
configurations to the framework by translating the EDID data.
This information can be queried, and subsequently used to change
the frame rate of the HDMI display.
Note: this change does not provide support for changing the resolution
of the HDMI display.
Change-Id: I4b8b07e2886efe2a01480aed9d82d36075bb342c
We add support for the following modes
16:10
1920x1200_60Hz
1680x1050_60Hz
1440x900_60Hz
1280x800_60Hz
16:9
1366x768_60Hz
1360x768_60Hz
848x480_60Hz
4:3
1600x1200_60Hz
1400x1050_60Hz
1280x960_60Hz
800x600_60Hz
Change-Id: I43bd12e5e5099a03c834e1c883213b706ed01f89