Commit Graph

29 Commits

Author SHA1 Message Date
Naseer Ahmed
768619ecdf libgralloc: Discontinue allocating FB buffers from carveout.
Don't allocate primary framebuffer from carveout.
Allocate them from IOMMU heap just like the external framebuffer.

Bug: 7626586
Change-Id: I52a8db1a34d19856302b38d2c30c1290d1f2f060
Signed-off-by: Saurabh Shah <saurshah@codeaurora.org>
Signed-off-by: Iliyan Malchev <malchev@google.com>
2012-12-03 15:35:26 -05:00
Naseer Ahmed
54821fe3a2 libhwcomposer: Add support for 4 layer MDP Comp
This change extends MDP composition to support
upto 4 layers by making border fill as base pipe and
using all MDP h/w pipes in overlay mode.

Conflicts:

	libhwcomposer/hwc.cpp
	libhwcomposer/hwc_utils.cpp
	libhwcomposer/hwc_utils.h

Bug: 7626586
Change-Id: I01a0e53ddfbcf3ed46734f6f3bb0ef7d912ceac6
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
Signed-off-by: Iliyan Malchev <malchev@google.com>
2012-12-03 15:34:07 -05:00
Saurabh Shah
ae823e7735 hwc: more error checks
-- numHwLayers==1 means that there is only the FB_TARGET which HWC shouldn't
   draw. Also check for blank in set.  Checking for this in prepare prevents us
   from acquiring pipes.
-- add null check for private handle
-- print out vsync timestamp data on error

bug: 7274417
related-to-bug: 7288769
Change-Id: I8dae0d0748c5226fdc33ed8f5cc5259835dec2de
Signed-off-by: Iliyan Malchev <malchev@google.com>
2012-10-07 17:20:17 -07:00
Saurabh Shah
d80a52cbf9 gralloc: Send first 2 FB buffers to carveout and next to IOMMU
Gralloc uses the GRALLOC_USAGE_HW_FB flag to allocate memory from carveout.
This is fine for primary framebuffer, but for external framebuffer we need IOMMU
heap buffers, since the ioctls for external work with those.

Ideally, the primary buffers also need to come from IOMMU heap, which is ongoing
work. This patch allocates the first 2 FB buffer requests (assuming they are for
primary) from carveout and allocates all subsequent buffers from IOMMU heap.

Bug: 7124159
Change-Id: Ie53b2e1e7fcac136acd2d251f39cefe367fc7125
Signed-off-by: Iliyan Malchev <malchev@google.com>
2012-10-02 23:43:31 -07:00
Naseer Ahmed
32aa90fc54 hwc: Use asynchronous commit ioctl for display post
bug: 7274951

Change-Id: I70b2a00d6a2558f533bd87c92038774126434f03
2012-10-02 22:42:22 -07:00
Saurabh Shah
3e858ebde3 hwc: hwc 1.1 implementation
Bug: 7124159

--External disabled
--MDP comp coded but disabled.
--Videos via overlay, so that secure videos can work.

Change-Id: Ie48b264143d5e4237ab9724e28930e3f68ba49ee
Signed-off-by: Iliyan Malchev <malchev@google.com>
2012-09-25 22:51:14 -07:00
Saurabh Shah
e557e6e8e8 fb: Remove extra PUT_VSCREENINFO call.
Remove the extra PUT call during system startup.

Change-Id: I29287af2ee5610e749ac481c2832f41d7381ca59
2012-09-12 21:41:25 -07:00
Kinjal Bhavsar
139e162e34 libgralloc: remove pid checks
These pid checks seem to have been left over from PMEM days.

Change-Id: I1e504bc889b90d8fed6e0be47fd21d1e3f42c50b
2012-09-10 12:44:21 -07:00
Saurabh Shah
aedf236884 gralloc: Check for HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED
Check for HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED before assigning format based
on usage bits.

Change-Id: Ie140f3f8a7002febc2fab729686d646b349c3b75
2012-09-05 22:06:25 -07:00
Shuzhen Wang
79cf7c7454 Gralloc: Fall back to HW_CAMERA_WRITE if HW_VIDEO_ENCODER is not set.
In both video encoding and camera preview cases, HW_CAMERA_WRITE will
be set. This is a hack so that if HW_VIDEO_ENCODER is set, allocate
NV12 format; otherwise, allocate NV21 format.

Change-Id: I61dc96b125e026159f55048cb79783578832460a
2012-09-04 21:16:38 -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
Naseer Ahmed
59802500bc gralloc: Support camera and video encoder flags
- Set private flags for these formats so that the camera HAL
can differentiate between the allocated buffers.
- Usage flags define format

Change-Id: Ib3cfad12ab2ba79662207609138633769b1504e6
2012-08-23 09:43:54 -07:00
Naseer Ahmed
9edd17cc64 hwc: Fix reserved field usage
Use the top 16 bits of reserved[3] for HDMI
and the bottom 16 for FPS. A follow up patch
in the MDP driver will get rid of reserved field
usage entirely.

Change-Id: Ic9f7a2f91b46b0dec830ea54784b7775009fbe48
2012-08-15 20:19:38 -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
ad766cd2d8 gralloc: Update Yamato format to match OMX
The value of OMX color format for Yamato  is 0x7FA30C01.

Change-Id: I2efead43b4b478206b49dcec158b878bb933d72b
Acked-by: Arvind Thatikonda <arvindt@codeaurora.org>
2012-08-14 14:15:47 -07:00
Naseer Ahmed
b16edac510 display: Fix warnings, make warnings as errors
Change-Id: I61f22765b04112be48e62135db930c415c9c7d37
2012-07-23 12:40:50 -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
8831816879 framebuffer: Fix locking
The gralloc locking did not lock
the framebuffer. Use genlock to
lock the framebuffers.

Change-Id: Ie8be6f7950f6df06a2293c3df863e19cd5386479
2012-07-23 12:35:29 -07:00
Naseer Ahmed
a4f41fae32 gralloc: Fix msm_ion include
Change-Id: Ibbd93a14fca7c13f71ff2bb74a5ce14bd24cbe9c
2012-07-23 12:34:15 -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
a87da60090 display: Add QC Display utils
* 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
2012-07-13 17:50:32 -07:00
Naseer Ahmed
30621ab602 display: Use single thread for FB post.
To support swapinterval zero a separate thread
was added to do the framebuffer post. Since we
are going to support the WAITFORVSYNC ioctl in HWC,
we can handle the zero swapinterval case there.

Change-Id: I39f960825ca4173f99a9895e0c132b70a7adccab
2012-07-09 22:02:29 -07:00
Naseer Ahmed
00fd6a573e display: Enable triple framebuffers
Change-Id: I323c10b939277477f724c2d0a20f9c6da4899481
2012-07-09 22:01:02 -07:00
choongryeol.lee
26145b8999 gralloc : apply kernel 3.4 fb screeninfo type
Since fb screeninfo type is changed in kernel 3.4,
fb ioctl is not work correctly without this patch.

Change-Id: I5d673b78bd9a1680daf77256a7d31bc78d75cda7
2012-06-28 22:20:48 -07:00
Naseer Ahmed
65f1656621 gralloc: Update YUV420 SP tiled format to match OMX
The value of OMX color format for YUV 420 SP tiled is 0x7FA30C03.
Add this format and also remove masking for interlaced videos
and S3D which were causing the format to be masked incorrectly

Change-Id: I76fe5e6e00a36130b065c5d88a8f52eebcfa162b
2012-06-21 16:31:57 -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