Commit Graph

30 Commits

Author SHA1 Message Date
Naseer Ahmed
758bfc5b50 hwc/overlay: Dynamic pipe tracking.
Remove state based pipe handling and make pipes tracked dynamically.
Add the configStart, configDone, nextPipe availablePipes APIs.
Remove setState API.

-configStart marks all pipes available.
-configDone garbage-collects unused pipe objects.
-nextPipe returns the index of next available pipe and create a corresponding
pipe object if not present
-availablePipes returns total of "unallocated" pipes. (Pipes could be allocated
but unused)

Changes in hwc adapt to the new overlay APIs.
Compile out MDP comp.
Remove unused files in overlay and hwc.
Update licenses.

Conflicts:

	libhwcomposer/hwc.cpp
	libhwcomposer/hwc_utils.cpp

Bug: 7626586
Change-Id: Id8e56901d34e5dc0fd088260d05e3e46f68ff090
Signed-off-by: Saurabh Shah <saurshah@codeaurora.org>
Signed-off-by: Iliyan Malchev <malchev@google.com>
2012-12-03 15:33:29 -05:00
Saurabh Shah
09549f6d75 display: Add support for flip operation in MDP comp
This change adds support for flip operation during MDP composition. This
enables frames to get MDP composited during 270 degree orientation too (with
pre rotation doing 90 degree rotation) or even with layers with just h flip or
v flip.

Bug: 7435860
Change-Id: I7fd18226d8337b2cd9341d709c2bd030eff881f7
Signed-off-by: Iliyan Malchev <malchev@google.com>
2012-12-03 15:32:19 -05:00
Naseer Ahmed
c21013b084 overlay: Compile MDSS rotator even when headers not present
Change-Id: Ifc74531b6d73ab5d752441d1a0e7d3b0d0d658e0
(cherry picked from commit e76f183710272f02149e003357107c85bc74914b)
2012-11-19 12:44:41 -05:00
Iliyan Malchev
2edd033225 chmod uga-x
find -type f -perm +111 -name \*.[ch]\* -exec chmod uga-x {} \;

Bug: 7428209
Change-Id: I3ae3c236f5b0bfcca57b57ea67e279fac79d02d0
Signed-off-by: Iliyan Malchev <malchev@google.com>
2012-10-27 14:21:12 -07:00
Saurabh Shah
c23b380f5c overlay: mdprot: Call rotator start only on config change.
Call ROTATOR_START ioctl only if the rotator config changes.
Save the last good config when the start succeeds.

Make getSessId()'s return type uint32_t from int to match the member's.
This was causing all methods to think the rotator session id is a negative
invalid number. This ensures ROTATOR_FINISH is called.

Bug: 7320914
Change-Id: I5ca048ea866316f18d8df14dc08218fca2c82bdf
Signed-off-by: Iliyan Malchev <malchev@google.com>
2012-10-10 13:39:18 -07:00
Saurabh Shah
91a6a994e8 hwc/overlay: Add premultiplied alpha support.
Add premultiplied alpha belnding support while using MDP for composition.
Layers could have PMA blending which was missing from hwc1.1
This change just handles the PMA case.

Bug: 7301436
Change-Id: I7d83169831b40943b2b595723fefc3a95a177137
Signed-off-by: Iliyan Malchev <malchev@google.com>
2012-10-08 14:49:49 -07:00
Saurabh Shah
c4d034f4b8 hwc: enable dual display on hwc 1.1
Enable dual display on HWC 1.1; video uses overlay.

Bug: 7124159
Change-Id: I8333e46cfc74072f6259fba2b82368f0dd52b6df
Signed-off-by: Iliyan Malchev <malchev@google.com>
2012-10-02 23:46:58 -07:00
Saurabh Shah
56f610dd23 display: Create QService binder interface.
Add QService binder interface to enable communication
to display by the mediaserver for Securing/Unsecuring start and end
notifications.

Create separate lib for external.
Clear reserved field before applying format.

Change-Id: I463c9c6deac7587bd0c4e0b84513b5d0b5dd7e98
2012-09-18 10:21:14 -07:00
Ajay Dudani
cb3da0a5e4 liboverlay: close all the opened pipes after framework reboot.
b/7147557

Add initOverlay() function to close all the opened pipes when
Surfaceflinger process gets killed.

Change-Id: I9c65a61c81f9c81198f1076d6cbd27933b164c05
Signed-off-by: Iliyan Malchev <malchev@google.com>
2012-09-14 15:48:52 -07:00
Saurabh Shah
799a39759b display: Enable MDP pixel repeat on MDP Composition.
This change sets MDP_BACKEND_COMPOSITION flag during
MDP composition to enable pixel repeat in MDP H/W

Acked-by: Jeykumar Sankaran <jsanka@codeaurora.org>
Change-Id: Ibc04878831c84e1e1fd0ace7c185bddce9b7ab7f
2012-09-09 14:20:29 -07:00
Saurabh Shah
ae1044e0cb Overlay: Change MDP format for YV12 buffers
Android uses different alignments for YV12 buffers.
   Hence, introduce a new format (MDP_Y_CR_CB_GH2V2) for
   such buffers.

Acked-by: Amara Venkata Mastan Manoj Kumar <manojavm@codeaurora.org>
Change-Id: Id4d58dd77f22c9efb8ece9caa34a8717964bf58d
2012-09-09 14:19:20 -07:00
Saurabh Shah
9c876d9f8c overlay: Remove OVASSERT from getFormatString utility
Remove OVASSERT from getFormatString utility. OVASSERTS should happen only from
critically wrong states of overlay.
Just failing in this utility method would allow a fall back to GPU.

Change-Id: I4467a750574ee90aee4fa2e0fbb041e7f386a63b
2012-09-05 22:08:18 -07:00
Saurabh Shah
b121e140e5 liboverlay: Adjust values to align with MDP requirement
For YUV only:
Crop rectangle (src_rect) needs to be even for x/y and w/h
Destination dst_rect w/h need to be even (x/y can be odd).

Signed-off-by: Saurabh Shah <saurshah@codeaurora.org>

Change-Id: Ib0c1b7d31773e71d60f080b4beacaa68e32a990e
2012-08-27 13:55:25 -07:00
Saurabh Shah
fc2acbe754 hwc/fb/overlay: wait for fbpost and pan display
Draw sequence in hwc_set
--eglSwapBuffers
--wait for fb_post. Its ok to draw to External only at this point.
--draw to external   | Parallel with PAN
--commit to external | Parallel with PAN
--wait for pan (happening in fb_post) to finish.

Call MSMFB_OVERLAY_SET ioctl only when params change.

These thing together ensure a correct sequence and should fix tearing and
stuttering, the latter assuming there are no other display pipeline delays.

Acked-by: Arun Kumar K.R <akumarkr@codeaurora.org>

Change-Id: Ibb0ad8485fa6b30dc6ac07ae8b25a760941c08ce
2012-08-27 13:53:40 -07:00
Saurabh Shah
94822ee87c liboverlay: Changes in getting FrameBufferInfo on MDSS.
- MSMFB_OVERLAY_GET does not need to be called.
- MDSS always supports border fill.

Acked-by: Sushil Chauhan <sushilchauhan@codeaurora.org>

Change-Id: I04afc5119b2467eb026b11b6f558cca21b5454c7
2012-08-23 13:31:30 -07:00
Saurabh Shah
e012f7ad30 liboverlay: Add support for MDSS Rotator.
Acked-by: Sushil Chauhan <sushilchauhan@codeaurora.org>

Change-Id: I60a2b0ce2b491d03b2b1a04966113e253b7f3dd8
2012-08-23 13:31:00 -07:00
Saurabh Shah
8e1ae95d9d liboverlay: ensure open fd's are always closed
Ensures that reset and  mFd.Close is always called when MdpCtrl
and MdpData are closed down.

Acked-by: Arun Kumar K.R <akumarkr@codeaurora.org>
Change-Id: I775ba7cfe45c67e6acf874e3f4e8b4fa6fbe33b8
2012-08-20 16:39:01 -07:00
Saurabh Shah
a73738dc70 Overlay: Switch the flip for MDP, on 90 rotated source
Camera client doesn't factor in the 90-rotated source when setting the flip
Switch the flips when the source is 90-rotated.

Change-Id: Ia5f18afff4384a33b8ad2ca051be1a120aefa4d5
Acked-by: Kinjal Bhavsar <kbhavsar@codeaurora.org>
2012-08-20 16:35:40 -07:00
Naseer Ahmed
1ddf366c26 liboverlay: Remove waitForVsync, getOvPipeType APIs
Remove waitForVsync support.
Vsync will be done explicitly by clients outside of overlay.

Remove support for the unused getOvPipeType API.
Remove redundant state checks in class Overlay

Change-Id: I8b35d7868bb46b0be755833dc8f28a158d3ff104
Acked-by: Saurabh Shah <saurshah@codeaurora.org>
2012-08-14 14:18:16 -07:00
Naseer Ahmed
af49e215a2 liboverlay: Update format translation.
Update format translation from HAL to MDP.
Add support for RGB_888, YCbCr_444_SP, YCrCb_444_SP formats.

Change-Id: Ic3f0ff96a8f587feaa82b5dd80fb52aa53199495
Acked-by: Saurabh Shah <saurshah@codeaurora.org>
2012-08-14 14:18:16 -07:00
Naseer Ahmed
c72e7dc6bf HDMI: Fallback to MM heap.
- IOMMU heap is not available for all targets. we should
  have a fallback heap always as IOMMU can be disabled.

Change-Id: I8fa265a50004550baccb0fe803c957529886ba0b
Acked-by: Prabhanjan Kandula <pkandula@codeaurora.org>
2012-08-14 14:18:14 -07:00
Naseer Ahmed
4c588a200c hwc: Add support for external-only layers
Add support for different types of external-only layers
EXTERNAL_ONLY: General purpose
EXTERNAL_BLOCK: Blocks the display of other ext-only layers
EXTERNAL_CC: Used for closed captions with videos.

Change-Id: I9cc7b9a1dbf1085194725474d6a4d1094e27a0c8
Acked-by: Saurabh Shah <saurshah@codeaurora.org>
2012-08-14 14:18:13 -07:00
Naseer Ahmed
2cc53dd510 overlay: Refactor State Transitions.
Refactor transitions by templatizing to have default behavior for most cases
and full specializations for specific cases.
Partial specialization of functions is not allowed, so create templatized
intermediate functions for those use cases.
For ex: if we have 8 states, we don't need 8x8 transition handlers.

Add and define OV_DUAL_DISPLAY state.
Add a GenericPipe for subtitles to OV_2D_VIDEO_ON_PANEL_TV state.
Add a 2D_VIDEO_ON_TV state and its transitions.

Change-Id: I064cf813c43c3e3736800fbd465c6f1aa9b3a2d3
Acked-by: Saurabh Shah <saurshah@codeaurora.org>
2012-08-14 14:18:12 -07:00
Naseer Ahmed
01d3fd3318 display: Clean up gralloc
* Remove pmem and ashmem implementations
* Remove usage of RefBase
* Reduce log verbosity

Change-Id: If8ef543d236e5305bd5430f4f9c62c51b3a13787
2012-07-23 12:39:29 -07:00
Naseer Ahmed
0c8b7b5c84 hwcomposer: Add support for UI mirroring
- Uevent observer as part of Hwcomposer
- HPD, enabling/disabling external display from HWC

Change-Id: I52b4f30c78e98c5b52c86722046389f458c2dbee
2012-07-23 12:38:12 -07:00
Naseer Ahmed
f48aef64b2 liboverlay: Refactor, bug-fixes, upgrade.
* Fix memory leak during copying pipe objects.
* Remove unused / unnecessary code.
* setMemoryId API is merged with queueBuffer.
* setParameter API is setTransform now.
* Rotator upgraded to:
  --Allow different rotator hardware types.
  --Remove dependency on MDP code.
  --Allocate memory only during first playback,
  close when the associated pipe is closed.
* Have single commit implementation.
* Include new format types.
* Remove WAIT and CHANNEL enums and usage. Replace BypassPipe with
  GenericPipe. Client expected to set alignments and parameters.
  Add transform combination enums.
* Allow APIs to be called in any order. Do transform calcs in commit.
  Move ext type setter and getter functions.
* Add calculations for 180 transform.
* Add secure session support in rotator
* Implement all rotations in terms of H flip, V flip and 90 rotation.

Change-Id: I34a9a2a0f1255b3467a0abbaa254d0b584e901ce
2012-07-23 12:36:44 -07:00
Naseer Ahmed
4d35af868a display: Clean up makefiles
Move common includes and shared libraries to
a common location

Change-Id: I0427f0f98b4c039a691be0ef6f3deead2b4bfa02
2012-07-23 12:29:27 -07:00
Naseer Ahmed
3b4cee666d liboverlay: Fix format masking
The format was masked earlier for interlaced
videos and 3D content. Remove this masking

Change-Id: Ia167ef5ca6405fcb430f7e1ae453092de3597c4a
2012-06-21 21:00:58 -07:00
Naseer Ahmed
29a26818d7 qcom/display: Update HALs
- Update the display HAL from Code Aurora Forum
- Add updated overlay library
- Enable HWC with basic video going through overlay
- Cleanup some files

Change-Id: I65c687c51be458cee71213c79e03eeda962d9086
2012-06-21 11:52:07 -07:00
Iliyan Malchev
202a77d28a initial GL libraries for msm8960
Change-Id: I16451c70a079894ac326d3564d96f1fbafcd4f1b
Signed-off-by: Iliyan Malchev <malchev@google.com>
2012-06-11 23:50:46 -07:00