69 Commits

Author SHA1 Message Date
Naomi Luis
2e44876757 libgralloc-qsd8k: Add perform api to update the handle
The new perform api will update the width, height and
format of the buffer in the gralloc handle.
The GRALLOC_MODULE_PERFORM_DECIDE_PUSH_BUFFER_HANDLING perform
is not longer used in Honeycomb. Remove unused code.

CRs-fixed: 283849
2011-09-19 19:16:35 -05:00
Kinjal Bhavsar
cc2834b226 msm7k: Use sanitized kernel headers
Add the exported sanitized kernel headers to include path in C2D/
copybit, gralloc and overlay HAL libraries.

(cherry picked from commit a70f426e8695cc5bbf8a45b987b5715784f7e924)

Change-Id: I1dbb79a086e9cb062e1264c1c354ac5ce1a05f27
2011-09-19 19:16:34 -05:00
Harshad Bhutada
b10f481ae2 libgralloc-qsd8k: disable framebuffer state related error reporting when swapinterval set to 0
Change-Id: Idf0d8b7d261240f6300c5df805cc42dee8098310
2011-09-19 19:16:34 -05:00
Arun Kumar K.R
ed35d42ee4 liboverlay: Always use rotator for UI mirroring on HDMI
- Use rotator buffer for UI mirroring on HDMI
- Avoid ioctl calls on getPosition

CRs-fixed: 278858
Change-Id: Id390e2b85fe939d8388ed17f5f9c7fcd30499755
2011-09-19 19:16:34 -05:00
Naomi Luis
7a23eb34e1 libgralloc-qsd8k: support for specifying buffer size during allocation
Add support in the gralloc to specify the desired buffer size during
buffer allocation. This is done via a new function in the gralloc(allocSize).

If the specified size is lesser that the calculated size,
set the buffer size to the calculated size.

Change-Id: Iad9609d3b9074dcf3af07430966590078081ab72
2011-09-19 19:16:34 -05:00
Arun Kumar K.R
e10754c16c gralloc: Avoid multiple signals from videoOverlayStarted
Signal hdmi_ui_loop from fb_videoOverlayStarted only if there is a
state change

CRs-fixed: 279095
Change-Id: I43bc87b4d78fae139bcfc0318ad8b271a6a325c7
2011-09-19 19:16:34 -05:00
Arun Kumar K.R
1ae5a28caa gralloc: Avoid unnecessary overlay set calls for HDMI
Call setPosition and setParameter for HDMI only when there is a
change in the rotation or position.

Change-Id: Id11b58408607c2f9799bb332c30d52f52957ec4e
2011-09-19 19:16:34 -05:00
Naomi Luis
e03a345a11 libgralloc-qsd8k: Flush the cache after buffer allocation
Change-Id: Idb720b8c64b323216f77de834c83c328caccd6ef
2011-09-19 19:16:33 -05:00
Harshad Bhutada
36342178c2 libgralloc-qsd8k: Add support for triple buffering
Change-Id: I15c0a2c76f4ee1a87a8b2be369c24ab8d4c38101
2011-09-19 19:16:33 -05:00
Naseer Ahmed
8864a8d075 gralloc: Fix compilation issue with ashmem on 7x27
Change-Id: I02fcbd7bdefd83be4a55a79ccd82c0df4b74f7ae
2011-09-19 19:16:33 -05:00
Saurabh Shah
f7c6371137 hardware/msm7k: Fix aspect ratio in HDMI UI
For portrait mode: Actionsafe width depends on actionsafe
height, thus maintaining the  aspect ratio.
User entered value for actionsafe width doesn't matter.

For landscape mode: Both, user entered actionsafe width
and height matter. Aspect ratio may change, in an attempt to fill
up the TV screen till the edges to avoid overscan/underscan.

Picks actionsafe rectangle as the final rectangle.

Change-Id: I4e16a2d57978d3443283e9311c2efdc6494f8a94
CRs-fixed: 271567
2011-09-19 19:16:33 -05:00
Shubhraprakash Das
76595c17bd libgralloc-qsd8k: Port part of change Ice6a7c28
Port over part of change Ice6a7c28 that frees ashmem
memory.

Change-Id: I467617f3bc35a0e448fbf41207853e669aed657a
2011-09-19 19:16:33 -05:00
Saurabh Shah
a2d029bef1 hardware/msm7k: Fix position, aspect ratio on HDMI UI
Fix position, aspect ratio of HDMI UI when the
primary panel type is MIPI, 8660 Panel or 7x30 Panel

Change-Id: I8e9824520317e3facb4ef25bc25dd9b1de60b4ce
CRs-fixed: 263690, 269433
2011-09-19 19:16:33 -05:00
Naomi Luis
ed76fc69a8 libgralloc-qsd8k: Close the gralloc module
Close the gralloc module in the fb_device_open api.

CRs-fixed: 269234

Change-Id: Ifcb1909e0cf8bf40f2b505716cb624531309556b
2011-09-19 19:16:33 -05:00
Naomi Luis
9cdf0b93ca libgralloc-qsd8k: Align the chroma size for NV12Tiled formats to 8K
The video decoder requires the chroma and luma sizes to be aligned to 8K.

Change-Id: Ie378728647348812197b48ca4a9299344e56c3af
2011-09-19 19:16:33 -05:00
Naomi Luis
06304d437b Align pmem for NV12 Tiled buffers
The decoder requires the NV12Tiled buffers to be physically aligned to 8k.

Change-Id: I07a40d2a390601192a01213a5de94df2ab1ee06c
2011-09-19 19:16:33 -05:00
Naomi Luis
3be64f08f9 libgralloc-qsd8k: Close the masterFd when freeing video/camera buffers
Buffers allocated from the adsp or smipool regions have a masterFd associated with each buffer.
Make sure both the fds are closed when the buffers are freed to avoid memory leaks.

Change-Id: I7dd194bae9ebfffb5e8c1ed647bff6210409a731
2011-09-19 19:16:33 -05:00
Naomi Luis
5a1bf4cb9e overlay: Add support for additional S3D formats
Add support for Side-by-Side full, Side-By-Side-half formats in the overlay.
The Side by Side half formats could either be in Left-Right or Right-Left mode.

Change-Id: Ie1f0ccb5b1a8254f7256aafdd3f0ce9a3faa0df4
2011-09-19 19:16:32 -05:00
Naomi Luis
3a51941fe6 Add support for S3D content over HDMI
Add support in the overlay to display 3D content on the HDMI.
The 3D input and out formats are passed along with the regular color format.

Change-Id: I4e0338e8b2c07eca0f211c50a17bf7d82c35279b
2011-09-19 19:16:32 -05:00
Naomi Luis
1e95e224d6 libgralloc-qsd8k: Move the OMX format definitions to gpu.cpp
Change-Id: Ieb6e1f07b6e676d6d9556572a61b70780e4483fc
2011-09-19 19:16:32 -05:00
Naomi Luis
d1fc805f34 libgralloc-qsd8k: Initial gralloc changes for honeycomb
This commit contains the following changes in the gralloc:
- Add buffertype in the gralloc handle i.e video buffer or UI buffer
- Add support for allocating memory from the /dev/pmem_smipool
- Add support for obtaining the buffer type and the HAL formats from the
input format which could be an OMX format.
- Add buffer type, format, width and height in the gralloc handle

Change-Id: Ie801cfcf5cea9c4b718b75e88abf71be6b087de7
2011-09-19 19:16:32 -05:00
Naomi Luis
a709f0300c libgralloc-qsd8k: Initial gralloc commit
Update the gralloc HAL to match commit:

        commit 4d3c9ca6fabf2b0111ef6b567df7d244e124b9c2
        Author: Arun Kumar K.R <akkr@codeaurora.org>
        Date:   Fri Dec 17 13:14:58 2010 -0800

            libgralloc-qsd8k: Add support for non-aligned width on HDMI

            While creating overlay channel for HDMI consider the aligned
            width and set the crop rectangle to the actual width and height.

Change-Id: I8858d71bb10b2be4c57edb605b5da680f53051dc
2011-09-19 19:16:32 -05:00
Mathias Agopian
9efee771b2 reject odd widths or heights for YV12 format
Change-Id: I66cbb5fbc20630218947cd41552a95503b58e15e
2010-09-10 14:40:10 -07:00
Mathias Agopian
31f0df4eba don't revert to ashmem if HW usage bits are set
this wouldn't make sense, since the h/w wouldn't be able
to use the buffer. in this case it it better to fail to
let the caller a change to try again with different usage bits.

Change-Id: Ibecaf069b6b58ee9c026affc95a45512660d5881
2010-08-20 16:02:29 -07:00
Mathias Agopian
0ff47fbdac only set the PRIV_FLAGS_NEEDS_FLUSH flag on PMEM buffers
PRIV_FLAGS_NEEDS_FLUSH will trigger an ioctl call into the PMEM
driver in unlock(), so it makes not sense to set this flag for
non pmem buffers.

Change-Id: Ie1e077c10df86d3689b82fa6ce5d6c856fc95688
2010-08-20 11:47:44 -07:00
Mathias Agopian
7461d57eca add qcom specific pixelformats
Change-Id: I70395b93afc4dee13e805649ee2307ffe895aaf1
2010-08-19 13:15:39 -07:00
Jamie Gennis
38b90c13c4 Change the constant name identifying the NV21 Adreno format.
This updates the qsd8k gralloc to support the new name for the NV21 Adreno
pixel format.

Change-Id: I358bf12db058d3740a5e49ee30d95c2afb708295
2010-08-06 12:09:15 -07:00
Mathias Agopian
041cfdf2cf fix [2855380] GRG19 monkey native crash in GraphicBufferAllocator
we were dereferencing the null pointer when freeing ashmem buffers.

Change-Id: I7be6e1ae064148bea1076193c21a73b5a3f90297
2010-07-28 18:12:39 -07:00
Mathias Agopian
fce1cc8a83 Remove the YV16 format.
Change-Id: I3f7995ba0cf41bcde995df293bea78bce7d82fc9
2010-07-14 16:29:43 -07:00
Mathias Agopian
3f3bead8b6 make the gralloc test linux only
Change-Id: Ib245f7936bbe71b34903172629e09763dd725d80
2010-07-02 16:37:27 -07:00
Jamie Gennis
5bc176b1a6 Refactor the qsd8k gralloc implementation.
The purpose of this change is to add support for allocating gralloc buffers
from either /dev/pmem or /dev/pmem_adsp depending on the usage flags.  It does
this by factoring out and abstracting the interactions with the pmem device.
For /dev/pmem allocations, the kernel allocator is not used, so a single master
fd is opened, and all the allocations are sub-allocated from that by gralloc.
For /dev/pmem_adsp the kernel allocator is used, so it simply opens a new fd
for each allocation.

A very basic unit test that can be run on the host is included.  It requires
gtest, so to run it on a host system gtest must (currently) be compiled with
BUILD_WITH_ASTL=true.

Change-Id: If2ae0151698fad8107e18e808a3fa012a846263f
2010-07-02 12:57:36 -07:00
Mathias Agopian
6c2bc88a03 remove unused YUV formats
Change-Id: Ia590a9cb9a02bf62f35da344f29775d1256e3da7
2010-07-01 21:19:31 -07:00
Mathias Agopian
d3c18d4938 NV12 tiled needs 8K plane alignment
Change-Id: I8f2ca6f058ff9d7dd666871a696428c55dbe6cf1
2010-06-22 22:06:12 -07:00
Mathias Agopian
0adc045aa2 remove unused YUV formats
Change-Id: I41c18551a61bec9f928399544a12024c81947ed0
2010-06-22 16:15:31 -07:00
Mathias Agopian
a82aad454a fix typo in ALIGN macro
Change-Id: Idaddf65f0b726a158f47639223f4281fd07447a7
2010-06-22 16:15:10 -07:00
Mathias Agopian
0f6dc7ea55 Add support for allocating YUV formats
Currently they're all allocated in pmem, instead of pmem_adsp.

Change-Id: Ibc3edf2da4155d2f086d81dee8940270f9cb9f6b
2010-06-22 16:14:35 -07:00
Mike Lockwood
151d2b884b Revert "Add support for allocating YUV formats"
This reverts commit 7b1f00a95490552131d06a13b78c279f6c779a1a.
2010-06-22 13:32:55 -04:00
Mike Lockwood
5d471952a5 Revert "remove unused YUV formats"
This reverts commit 05ea9ede5600fef7a8fdf416b44ec98e58fb224b.
2010-06-22 13:32:36 -04:00
Mathias Agopian
ce599f6e8d remove unused YUV formats
Change-Id: I47769af34112856e6a2ef177a966f6e8e6242031
2010-06-21 18:23:23 -07:00
Mathias Agopian
b43cd9549f Add support for allocating YUV formats
Currently they're all allocated in pmem, instead of pmem_adsp.

Change-Id: Ief367a64667dc0b67fdeabeabbf9f201082d6ad2
2010-06-16 14:27:27 -07:00
Jean-Baptiste Queru
ec040bb3a1 Add tags and notices where appropriate.
Also tweak copyright notices as appropriate.

Bug: 2084753
Change-Id: Ifbf795b8b16dbc45cf5ac9a72b97f2b74cbf3550
2010-03-19 15:50:23 -07:00
Dima Zavin
c0f1d75920 libgralloc-qsd8k: flush SW_WRITE cached pmem regions in unlock
Change-Id: I31d1257f031c6b9b8dae604c2c1a8aa246ce3b84
Signed-off-by: Dima Zavin <dima@android.com>
2010-03-02 15:14:57 -08:00
Mathias Agopian
48000e415a fix [2444483] gralloc size for YUV formats 2010-02-16 14:04:36 -08:00
Mathias Agopian
fd92f42c39 part of fix for [2363506] [Sapphire] Video playback broken
make sure to reject incompatible buffers in special function
  GRALLOC_MODULE_PERFORM_CREATE_HANDLE_FROM_BUFFER

we use ioctl(PMEM_GET_SIZE) to validate that the given buffer is indeed
a pmem buffer.
2010-01-20 13:22:35 -08:00
Dima Zavin
8533232290 am 2754389d: gralloc-qsd8k: make sure that we never try to allocatio 0 bytes
Merge commit '2754389d0e7638b3065ecb3c965b1f262d2205ed' into eclair-mr2

* commit '2754389d0e7638b3065ecb3c965b1f262d2205ed':
  gralloc-qsd8k: make sure that we never try to allocatio 0 bytes
2009-12-10 17:56:59 -08:00
Mathias Agopian
cbe53680bf am f7e40a33: improve cache behavior of gralloc allocations on qsd8k
Merge commit 'f7e40a3311ae78b3edd9259980c224a5a9d91653' into eclair-mr2

* commit 'f7e40a3311ae78b3edd9259980c224a5a9d91653':
  improve cache behavior of gralloc allocations on qsd8k
2009-12-10 16:43:17 -08:00
Dima Zavin
7e8932dad3 gralloc-qsd8k: make sure that we never try to allocatio 0 bytes
Change-Id: Ic05b895c09a55d746c737aa0c3356edc511d7c96
Signed-off-by: Dima Zavin <dima@android.com>
2009-12-09 21:13:44 -08:00
Mathias Agopian
e17d093d0c improve cache behavior of gralloc allocations on qsd8k
make sure to use cached buffers only when frequent cpu access is needed.
also, always flush buffers after they are allocated and cleared.
2009-12-08 19:34:43 -08:00
Dima Zavin
ce844ce07c am dc80f522: gralloc-qsd8k: If using gpu composition, request rgba8888 instead of rgbx8888
Merge commit 'dc80f522f23ecda902bf8ddf5de68d6fe10e2c05' into eclair-mr2

* commit 'dc80f522f23ecda902bf8ddf5de68d6fe10e2c05':
  gralloc-qsd8k: If using gpu composition, request rgba8888 instead of rgbx8888
2009-12-04 20:25:50 -08:00
Dima Zavin
6d4fd653ce gralloc-qsd8k: If using gpu composition, request rgba8888 instead of rgbx8888
Change-Id: Ic41d4854d6acbc21c85a03e82bd63af234273886
Signed-off-by: Dima Zavin <dima@android.com>
2009-12-04 20:22:41 -08:00