Add device version inline checks for hardware devices.
Also fixes the issue of 8084 being treated as 8974v2
owing to the expanded range.
Change-Id: Iaeefb505e14e022b6e542daa8b84a87a22e7f69a
Parse low and high bandwidth from mdp capabilities sysfs node
/sys/class/graphics/fb0/mdp/caps
This will be specified in kbps.
Conflicts:
libqdutils/mdp_version.cpp
Change-Id: I2956e340106d47bb49f5744e4f9a4a0bb796f6e3
1. MDPVersion class can query the capabilities using sysfs node.
Since sysfs node can be read with out opening framebuffer, it is no
longer required.
2. New internal functions updatePanelInfo, updateSplitInfo are added.
Change-Id: If506e600fb14401d8bf2361aac969c7e29a5d50a
Metadata ioctl approach has limitations with respect
to adding new capabilities in MDSS driver.
Use sysfs node mechanism to obtain MDSS capabilities.
(sysfs node: /sys/class/graphics/fb0/mdp/caps)
Change-Id: Id7fe683c85b3acf182920d28abf62e9826ff1161
String should have null character at the end, otherwise
functions like atio may not work on the string properly.
Change-Id: Ib3eb579a5a96dbd121bf6f65b09fa19ec7e274f3
CRs-Fixed: 546662
During surfaceflinger initialization, the first fb open
call comes from the MDP version check. The MDPVersion
class implements a singleton object, which open and close
the fb device. This initial fb open and close will trigger
the kernel driver to turn on and off the display, which
results two side effects: 1) extra delay in the display on,
2) one flicker when the display is turned on and off.
The change is to close the fd handle in the destructor.
Change-Id: I2ee5cfc78cbb613ed1326d9f7c26cbca97406163
Add support for unevenly split primary displays.
The driver provides info about the split via msm_fb_split sysfs node
For external we assume even split. If driver doesn't specify any split
for primary, we default to even split.
Change-Id: I4d541f41de2d7a5d2b62653fa33cab079a6d5d30
These include constrained targets, with external connected which could
lead to a scarcity of pipes. Furthermore owing to a scarcity of writeback
interfaces, even if pipes are available, we may not be able to still
use rotator.
Change-Id: Ie2fb4c1726f32addcace89c268a126abe0cddbe0
Parse the panel type from the panel info string using string operations
rather than relying on constant offset (which would have to be update for
any changes in length to the preceding MDP/MDSS version string). Assumes
that panel type is the first character after the first '_' in the panel
info string.
Change-Id: I33178e7219c26e0e0361e53941f15a3d38f99b71
- This adds support for Bandwidth Compression.
- If MDSS supports BWC, then we set BWC flags
to both Rotator(encode) and overlay(decode)
Change-Id: I6f7800716a2ce2ab855f4c0b1a53cd96f7d06d74
Add support for decimation on top of what MDP can downscale,
because decimation can have quality issues.
B-family MDP downscale of 1/4, plus decimation of 1/16 can let
us have a total downscale of 1/64.
Also decimate by 2 (min) if width is greater than what layer mixer
supports and is not handled by the client.
Change-Id: I3b7c4bf321c7561bd98206ad118f4ac1ee2879ae
Userspace can retrieve MDP revision number and number of different
types of MDP pipes (RGB,VG,DMA) information from driver. Add target
specific flag as previous MDP versions do not provide this support.
- Make use of this information while maintaining PipeBook.
- Move PipeBook related functions from overlay utils to PipeBook.
Change-Id: I46578bb27e515c4b9525d90b6619c11d7749914f
* Rename qcomui directory to qdutils
* Avoid inclusion of qcom_ui header
* Add class to get MDP version
* Add namespace for qdutils to prevent collison
Change-Id: I9a3f440e6b0fea1cfcc478ddca90af5df3bbb897