summaryrefslogtreecommitdiff
path: root/hwc
AgeCommit message (Collapse)Author
2014-12-16Cleanup Obsolete LOCAL_PRELINK_MODULE.Ying Wang
Bug: 18675947 Change-Id: I07a35782fa2f021574c4ec937920448288594288
2013-03-25bump hwc to allow 4 big layersDake Gu
Wolfie search + home + wallpaper need 3 layers. Tested on Wolfie and Q. On Q, it's still falling back and does not hurt. Change-Id: I75f5e94aa23b7f8823d48a57a135934bfdadcb6b
2012-11-20Fix references to omap4-aahNick Sanders
Some references still point to older omap4xxx Change-Id: I8e363e927f45618c3c32716c88722ea888a9a5f8
2012-10-25Increase the limit of large DSS-composited layers to 2Jason Simmons
TI says that the limit of 1 large layer may be obsolete in the current kernel Change-Id: I6949079ccff6d8be03b055188c90e33f550746f6
2012-10-23Use SGX composition if there is more than one large (>720p) RGB32 layerJason Simmons
A previous change (fc13c9292160e3eb83fe5b4f191d1ccee2fd67d9) updated the HWC to skip any large layer other than the first. However, the logic in can_dss_render_all did not know about this rule. If there is more than one large layer, can_dss_render_all would select DSS-only composition, but some of the large layers would not be rendered. Change-Id: I03718fcf25f6bc57b43f6d39546e50e8a9d6fde9
2012-10-22Fix warnings due to updated definitions of hwc_* types in the HWC HAL interfaceJason Simmons
Change-Id: I8954125e75c1f0ee469ec035ebe0376139aef1e9
2012-10-22hwc: rgz: Fix using an invalid array index when there are no blitsGustavo Diaz Prado
When the regionizer decides there are no blits as a result of a given hwc geometry a -1 array index was being used to set the last blit async, this needs to be avoided if there are no blits. Change-Id: I3ce2f60a46096559c2ba308cf1d617a79731751e Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com> (cherry picked from commit 8d486cd705ffc33d6048880189e16fed387338fd)
2012-10-22hwc: Fix for losing first blit buffer handleGustavo Diaz Prado
There are certain situations where the regionizer decides it can handle all layers passed to it and no blits are generated as a result. This is caused by receiving more than two times the same geometry in the prepare, which makes the regionizer to not generate dirty regions (hence no blits). When this situation happens we are losing the first blit handle by assigning it to NULL incorrectly. This patch fixes the issue by checking if the sgx will be used for composition instead of checking if we have no blits. Change-Id: I68e87c386c98a8ca5047e1723c6c43db7c143447 Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com> (cherry picked from commit ac81898f605ba0a6b5359de4d6565c61fcc3a36a)
2012-10-22hwc: rgz: Fix incorrect src rectangle calculation for scaled layersGustavo Diaz Prado
When scaling a layer, the blit is programmed in a way where the src rectangle uses the whole cropping rectangle coordinates and dimensions. However if the layer has a transform, the width and the height need to be swapped not only in the geometry but also in the src rectangle to match the new dimensions. This patch adds the missing width and height swapping for the src rectangle if the transformation is 90 or 270 degrees. Change-Id: Ia9d822b6698210573fff662f2fcb129dfc048bf7 Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com> (cherry picked from commit a80084da8fb2c63a2e44ef9d4ce7598b7cad853f)
2012-10-22hwc: rgz: Allow scaling and rotation on the same blitGustavo Diaz Prado
Allow blitting layers that have scaling and a transformation now that the GC driver supports it. Change-Id: Iee5a34dc888656c47b3b514597b75868ccdc008a Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com> (cherry picked from commit c195634f79fb5a49b0caa33a4f9605a3aa40efe2)
2012-10-22hwc: rgz: Introduce scaling supportGustavo Diaz Prado
Adds scaling support to the regionizer code. Limitations: + When blending two layers with scaling two blits are issued instead of one. This is due to a Bltsville API limitation which prevents specifying two different scale modes for each source. + Support for scaling and rotation on the same blit is not possible yet due to a GC driver bug. Change-Id: Ie53157e527dacf639e42a72e371ef962f888131c Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com> (cherry picked from commit ad4ba4604f3f9bafed27c83b3c0a49d8731dddd7)
2012-10-22hwc: rgz: Refactor how the blit parameters are setGustavo Diaz Prado
This patch basically refactors the way the blit parameters are set per subregion. The intention is to make the code ready to introduce the scaling support easier and reduce greatly redundant code as well Change-Id: I2b32056bf2fec1b636fda1c8df9964d90d51192c Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com> (cherry picked from commit d8cd439184093184b21291c37702b3eb7c9c836b)
2012-10-22hwc: Check for >1 overlay used in idle timeoutTony Lofthouse
It was observed during ADTF runs than we get repeated redraws when there are no layers to render. This is because the check in prepare() will reset force_sgx to 0 when there are 1 or less layers. The side effect of this is to cause a redraw every idle period. Instead of doing this, account for the number of overlays used for the primary display before calling the invalidate() api. This logic should be satisfactory most current usecases. Change-Id: I4b9cb44ebe250a6a46a6da27a1db94e88d6f26f3 Signed-off-by: Tony Lofthouse <a0741364@ti.com> (cherry picked from commit c044e832219dd2aa81ae11e4ec883d09bf2fb885)
2012-10-22hwc: Fix incorrect tiler memory available checkGustavo Diaz Prado
When the buffers composed with DSS pipes use exactly the tiler1d memory available (like 4 fullscreen layers on Tablet 2), the prepare operation fails to assign a DSS pipe to the last buffer (even if it was possible) making it to be rendered by the GPU but without a pipe to show it. This patch fixes the incorrect memory check that caused this problem. Change-Id: Ibb147a468aa2e1622600a56f581013dc1e517777 Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com> Signed-off-by: Jonas Larsson <jonas.larsson@ti.com> (cherry picked from commit a9606e762f54eb433880561548d0cb4498a3951e)
2012-10-22hwc: Stop queuing compositions to disabled default displayDandawate Saket
When HDMI is the default screen it may not be attached even though the UI is active. UI compositions will keep coming but the DSS manager will have problems if being programmed with content incompatible with the intermediate display mode. The last_mode variable is reset to "0" when hdmi panel is not present. The on_tv variable indicates hdmi is default panel. So if both are set then we need to make the overlay number in composition to be "0". OMAPLFB will skip posting the composition to dss driver when overlay as "0". There are still possibly compositions in the DSSCOMP queue or in flight from PVR services to OMAPLFB so this behavior doesn't cover all cases - so this should be considered a work-around. kernel dependency: http://review.omapzoom.org/#/c/26982/ Change-Id: Idb6864aa57ebf6c403b91ea5b0e0865467008934 Signed-off-by: Dandawate Saket <dsaket@ti.com> Signed-off-by: Tony Lofthouse <tony.lofthouse@ti.com> (cherry picked from commit a4a35a6efdf146cad32d76e6e07327a983cec6a1)
2012-10-22hwc: rgz: Workaround, do not blit if there is a video layerGustavo Diaz Prado
This is a workaround for a performance degradation found while a video is playing and the GC320 is used at the same time. Avoid blitting if there is a NV12 layer in the hwc layer list. Change-Id: I12e789b9dd95e8b0d435aac1ae67ff65d4511396 Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com> (cherry picked from commit 52aa03dd27808e773f2133910ae233a1e4d42106)
2012-10-22hwc: HACK: wuxga panels will generate unscalable layersTony Lofthouse
During the transition from the recents panel to a selected application during the transition a layer which requires a scale down from 1920x1200 to 594x361 is generated. This satisfies the normal limits but with buffers of this size and also blending another 1920x1200 framebuffer. A VID1 underflow occurs. This work-around avoids scaling when layers are wider than 720p and are 4 byte RGB. These conditions have been reproduced in isolation with ADTF. Change-Id: If8fbc8f639abb89a0d736a3beabd2c12312ac3ac Signed-off-by: Tony Lofthouse <a0741364@ti.com> (cherry picked from commit 9e71cf37889ee95d03a1ad200741752b5efa4b43)
2012-10-22hwc: Add a bits per pixel function for RGB color spaceTony Lofthouse
Change-Id: I12d286ffe12c18bc9159a9bd1df65db43b63ac05 Signed-off-by: Tony Lofthouse <a0741364@ti.com> (cherry picked from commit d98182ec972e6083daec80f2271d2678abcc7b28)
2012-10-22hwc: Add a handle to the can_scale function for future useTony Lofthouse
A scaling decision may need to account for the size of a pixel as dss based scaling capability has a relationship with memory bandwidth Change-Id: Idd68e11317fb0bb9e5d19f0a0d5818744968a5ab Signed-off-by: Tony Lofthouse <a0741364@ti.com> (cherry picked from commit c53e458106e6c4346c092bf34d623ac11848f6bd)
2012-10-22Fix electron beam crashJon Pry
Under certain circumstances the ICS SurfaceFlinger attempts to disable the hwc module by calling prepare with the list set to NULL. This code path is specifically used by the Electron Beam screen off animation. Since blit_reset() is just checking for a geometry change, this patch handles the list pointer null case. Reproducible with: service call SurfaceFlinger 8 i32 1 (Thanks Jon & Michael!) Change-Id: I27114b173446729511115bc73e780e7fdca8722b Signed-off-by: Tony Lofthouse <tony.lofthouse@ti.com> (cherry picked from commit dfe13a6b856b8443e001f9d8ce51bb05aaf03499)
2012-10-22hwc: rgz: Remove workaround, Avoid parsing region data if it's not neededGustavo Diaz Prado
This patch removes the workaround introduced by the patch: 2cb90b8 hwc: rgz: Workaround for hdmi hotplug crash with 2D blitter enabled Basically when the number of layers differ from the ones handled in the previous frame, we don't trust anymore the region data and we need to calculate it again. If the layers are the same in number and there has not been a geometry change the region data can be reused for the same frame Change-Id: I4421ca5c7bc1b556cd54de888865ed83e957b919 Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com> (cherry picked from commit 3789ed446d031fbec5fd52ddc0dcde759129ce19)
2012-10-22hwc: rgz: Fix invalid dirty region state when HDMI is connectedGustavo Diaz Prado
It is possible when the HDMI cable is plugged in a geometry change doesn't happen, hence the layers handled by the DSS and the regionizer differ, since the dirty region counters are only reset when a geometry change happens, this causes them to enter into an invalid state leading to visual artifacts. This fix compares if at any given time, the layers handled in the regionizer differ in number from the previous frame, if that happens, the dirty region counters are reset for all the layers. Change-Id: If756b526cf52d66612729d7367c26d131c8a1ac0 Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com> (cherry picked from commit f683df8b15dcc60d497ca1ef9e0bad2bf280fb5b)
2012-10-22hwc: added support for ext display back buffer allocationSunita Nadampalli
When the ext display transform is different from the FB, the mirroring/cloning is achived with the help of back-buffers, which are allocated in TILER2D space to get the required transformation. This patch adds support in HWC to detect the ext display transform and allocate back buffers from TILER2D space and program dsscomp accordingly. Signed-off-by: Sunita Nadampalli <sunitan@ti.com> hwc: make file fix for local include path the local include path for ion is changed from base level to local. this is required to allow compiling at hwc level. Change-Id: Ie1e9e6688652fdc8aa496dfc367d385aca362a27 Signed-off-by: Sunita Nadampalli <sunitan@ti.com> (cherry picked from commit 5d7b83b7ee03be090076d9aefd40dac294377aac) Conflicts: hwc/hwc.c
2012-10-22hwc: rgz: Fix for pixel wide regions returning no opsTony Lofthouse
A region that is pixel wide is in the top-left corner of the screen (0,0,1,1) makes the empty_rect function to return true, which is wrong since the region is not an empty rectangle. Since this function is being used in the moment the blits are generated, the regionizer thinks the region is empty with no intersections leading to error messages. Change-Id: I5f838008a39dcd469e325cb3fdd834408aa91291 Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com> Signed-off-by: Tony Lofthouse <a0741364@ti.com> (cherry picked from commit 7863b0c86de6bae53e2afb4294b32f2f9840f2b8)
2012-10-22hwc: publicly define omap specific usage flagsTony Lofthouse
Rebased from p-ics-mr1: 8323a55 hwc: publicly define omap specific usage flags Change-Id: I3bd14ca2d88192299de731c49eba15a90084b3fe Signed-off-by: Tony Lofthouse <a0741364@ti.com> (cherry picked from commit 8a5ba6d5b8b3ff90f8e29b4ed8c407e032c53235)
2012-10-22hwc: rgz: Fix dirty region not working when blitting only one layerTony Lofthouse
The dirty region handling doesn't work properly when only one layer is being blitted. The problem was the screen dirty state was only set to zero when one layer reaches the dirty count to zero. In case only one layer was being blitted the dirty region handling is never triggered making the empty areas to be cleared on every frame even if it was not needed. This patch removes the screen dirty flag and instead introduces a dirty count for the background and layers with the clear fb hint as well, since we don't care about the handle, the dirty count is decreased on every frame, in this way the dirty region handling sees the background and layers with the clear fb hint as any other layer. Rebased from p-ics-mr1: 11e5f7e hwc: rgz: Fix dirty region not working when blitting only one layer Change-Id: Ifbb111ce7738cd097e74ac01e2c48f3994857416 Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com> Conflicts: hwc/rgz_2d.c Signed-off-by: Tony Lofthouse <a0741364@ti.com> (cherry picked from commit a79d46bbd0438140fb6500d6243b5e3aa392068b)
2012-10-22hwc: rgz: Workaround for hdmi hotplug crash with 2D blitter enabledGustavo Diaz Prado
When the hdmi cable is connected a hotplug event is triggered, this forces the DSS to exhaust the pipes available in most situations so the 2D blitter is used to handle some layers. When the cable is connected/disconnected it's highly possible a geometry change doesn't happen right away (or it may not happen) leading the region data to be invalid and not recalculated for an instant, this ends up in sending to the blitter incorrect src rectangle origins and sizes, most of the time this leads to L3 errors making the system unstable and unable to recover. Rebased from p-ics-mr1: 104249c hwc: rgz: Workaround for hdmi hotplug crash with 2D blitter enabled Change-Id: Ie1675d0a0dd03e69fac80dd51cee006fcd6f8791 Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com> (cherry picked from commit d5907246f792b70e82db195b1c5fb5c1c5be9d5d)
2012-10-22hwc: rgz: Disable NV12 rotation support for the regionizerGustavo Diaz Prado
There is a bug when rotating NV12 buffers with the GC driver, disable this for now until it is fixed. Rebased from p-ics-mr1: 7c46d80 hwc: rgz: Disable NV12 rotation support for the regionizer Change-Id: Ia3add3266bd308fec34cb2b9140146d1da07f7ec Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com> (cherry picked from commit 86e65069ed99621c0b9d6c46096bb0bf2fbe97ef)
2012-10-22hwc: regionizer: Give support for rotation with BltsvilleGustavo Diaz Prado
Enables the regionizer to support rotation with Bltsville. This patch doesn't enable horizontal/vertical flips yet. Rebased from p-ics-mr1: bd6d0b5 hwc: regionizer: Give support for rotation with Bltsville Change-Id: I595debea076727ef2c442d7544c1e355aef04808 Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com> Signed-off-by: Tony Lofthouse <a0741364@ti.com> (cherry picked from commit eb5940af48a3b9bd029a5c70d7838d89a03c302b)
2012-10-22hwc: regionizer: Add asynchronous blits supportGustavo Diaz Prado
Regionizer adds the BVFLAG_ASYNC to all the blits, except for the last one which is made synchronous. The last blit acts like a fence to let the previous asynchronous blits to finish first. Support in the GC driver must be present for this feature to work properly. Rebased from p-ics-mr1: 822ec12 hwc: regionizer: Add asynchronous blits support Change-Id: Iec32de51e7d0b95d1b780e60ed4848e8daf7977f Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com> (cherry picked from commit 75bcf14b2937c1edbe83834ae93371995dd64b0f)
2012-10-22hwc: regionizer: Batch flags fixesGustavo Diaz Prado
+ Removed BVBATCH_DST since the destination parameters (buffdesc and geometry) are not changing while performing blending within a batch. + Removed BVBATCH_SRC2RECT_SIZE, the rectangle size never changes while constructing blits within a horizontal subregion. + Added BVBATCH_SRC1RECT_ORIGIN, it's highly possible the src1 origin changes from a previous blit within the batch, a good example is the volume pop blended on top of the widget and wallpaper layers in the Android homescreen. This change doesn't address batch flags while scaling, those will be revisited later when the GC driver supports it. Rebased from p-ics-mr1 (also cleaned up commit msg): 93b69ce hwc: regionizer: Batch flags fixes Change-Id: I9b85dce832b391e347aab93800e0b22e67072227 Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com> (cherry picked from commit 29136475929f69250818d96cf106d28ed4e1cd80)
2012-10-22hwc: rgz: support layers with the HWC_HINT_CLEAR_FB hintGustavo Diaz Prado
Allow the regionizer to ignore (and clear if needed) a region with a layer requesting to clear the framebuffer with a hint. This mimics what SurfaceFlinger does when the HWC requests to clear a layer area with transparent pixels. Rebased from p-ics-mr1: 3c9a753 hwc: rgz: support layers with the HWC_HINT_CLEAR_FB hint Change-Id: If61a4f50d0315eb23119d7b97b0f2cb5f994806f Signed-off-by: Gustavo Diaz Prado <a0273371@ti.com> (cherry picked from commit 60d9c93b53b7133aca51d7a125f5d14666a772fe)
2012-10-22hwc: fix and simplify the idle timeout logicDima Svetlov
Fixes the following issue : when non-blended layers are composited via overlays and blended layers are composited via FB, the idle timeout does not yield invalidation and re-composition of the layers via SGX resulting in the increased power consumption when the UI is idle. The change simplifies the idle timeout logic as follows : SGX only composition is forced after the idle timeout. Rebased from p-ics-mr1: 4573812 hwc: fix and simplify the idle timeout logic Change-Id: I37216892536a6900b5fb58c0e6ac616ef3f3ef72 Signed-off-by: Dima Svetlov <svetlov@ti.com> (cherry picked from commit d62680abaf25e807070c2ba236cdc2d0cc935408)
2012-10-22hwc: pass nv12 surfaces to gc320Craig Stout
Rebased from p-ics-mr1: e2479b9 hwc: pass nv12 surfaces to gc320 Change-Id: I3f161273aa40da2ced869b7b60f2e9fe76cac3bf Signed-off-by: Craig Stout <craig.stout@ti.com> (cherry picked from commit ca5f8d664221423dd005f9333adf530aac51bc75)
2012-10-22hwc: fix can_dss_render_all decision logic for docking modeMuralidhar Dixit
Currently can_dss_render_all() doesn't consider docking mode for decision making. In case of rotation on HDMI, current logic expects all layers to be NV12 which is not true if in docking mode. Adding logic to consider NV12 to be the dockable layer. Rebased from p-ics-mr1: 6a5358f hwc: fix can_dss_render_all decision logic for docking mode Change-Id: Ib56c88ef45293eb87e4db9bc1faa956ea96a533e Signed-off-by: Muralidhar Dixit <murali.dixit@ti.com> Signed-off-by: Varadarajan, Charulatha <charu@ti.com> (cherry picked from commit c739886ef430dbb231357038410fbde6990bb19f)
2012-10-22hwc: added interlaced modes to HDMI best mode selection logicSunita Nadampalli
Modified HWC hdmi best mode selection policy to consider Interlaced modes as well. DRT#OMAPS00262232 - HWC hal doesnt have support for interlaced timings for HDMI Rebased from p-ics-mr1: a11e07b hwc: Added Interlaced modes to the HDMI best mode selection logic Change-Id: Ie7bbe55c5694c53cc669c39ec125a72f723c3920 Signed-off-by: Sunita Nadampalli <sunitan@ti.com> (cherry picked from commit 3e8c057eac76d6a28abfb2cda9698b022b7328cc) Conflicts: hwc/hwc.c
2012-10-22hwc: use triple buffer hint for overlay layers for debugTony Lofthouse
This is a cheat to discriminate between blit layers and real overlay engine layers in dumpsys SurfaceFlinger. This patch is benign for an OVERLAY type layer the hints field should have bit 1 set when using dss overlays, and clear when it was blitted. Ported from p-ics-mr1: 1f4cf8b hwc: use triple buffer for overlay layers Change-Id: I7a9afed74c0b2e44bf08d3611775be28530378a1 Signed-off-by: Tony Lofthouse <a0741364@ti.com> (cherry picked from commit 407ca87c9557dfd381f7ce765f080503722e7fd7)
2012-10-22hwc: Add HAL_PIXEL_FORMAT_TI_NV12_1DTony Lofthouse
Ported from p-ics-mr1: 93f38c6 hwc: Add HAL_PIXEL_FORMAT_TI_NV12_1D Change-Id: I6ec62cec7590b90fb58cddfbfb5d253b8a7b469e Signed-off-by: Tony Lofthouse <a0741364@ti.com> (cherry picked from commit 7819b77e1a264805195cfa84c6da22de97b8bfe7)
2012-10-22hwc: save some dumpsys log real-estateTony Lofthouse
With the SurfaceFlinger/GraphicBufferAllocator and gralloc HAL state following the HWC overlay, HWC state often scrolls off the screen. Make the layer dump use fewer lines. Ported from p-ics-mr1: 037dac8 hwc: save some dumpsys log real-estate Change-Id: I15d5e411056c57721105ca47b5deddfb496392d4 Signed-off-by: Tony Lofthouse <a0741364@ti.com> (cherry picked from commit 8e1337a74223aef92748843b80d0886f4c4f3a29)
2012-10-22hwc: move platform specific pixel formats to headerTony Lofthouse
Change-Id: I7033d847621f748d0263d9004cb32f4426c115ef Signed-off-by: Tony Lofthouse <a0741364@ti.com> (cherry picked from commit 1726714f2c75a37bf1c904e32d6c45eb68246ec5) Conflicts: hwc/hwc.c
2012-10-22hwc: remove unused padded nv12 formatTony Lofthouse
The padded NV12 format was never used. Change-Id: I4796c71518edb3cd1c1a5daeed2a0045a45ca539 Signed-off-by: Tony Lofthouse <a0741364@ti.com> (cherry picked from commit e3fe422bac3fba2f72c96b422c5d5a5e9fe04e8d) Conflicts: hwc/hwc.c
2012-10-22hwc: FPS property to show compositor performanceTony Lofthouse
Use setprop debug.hwc.showfps 1 to show the average frames per second displayed over the last 8 compositions. debug.hwc.showfps can be set dynamically, the overhead of accessing Android properties should be minor i.e. an access to an mmap'd() file, so this should not be a significant overhead to composition when disabled. Reworked from p-ics-mr1: 9ea53ce HWC: debug.hwc.showfps Android property shows current FPS 66a531d hwc: enable debug.hwc.showfps to be set dynamically Change-Id: Ie2303e6ae9e73f38cf563d6ed6079928054e4c16 Signed-off-by: Tony Lofthouse <a0741364@ti.com> (cherry picked from commit 69400d18d6cfc7b2b55b5a563b1fd4387887ded4) Conflicts: hwc/hwc.c
2012-10-22hwc: don't force upscaled NV12 layer to SGX when force_sgx is usedLajos Molnar
Let NV12 layer be rendered with overlay even when force_sgx is used, if it is upscaled by more than a configurable limit (default 2x). This will limit video twitching because of SGX limitations when scaling NV12 layer. Rebased from p-ics-mr1: 3eb31b9 hwc: Don't force upscaled NV12 layer to SGX when force_sgx is used. Change-Id: I114633447c2d54677dce45e047c5a121e200185f Signed-Off-By: Rajesh Vandanapu<rajeshv@ti.com> Signed-off-by: Lajos Molnar <lajos@ti.com> Signed-off-by: Tony Lofthouse <a0741364@ti.com> (cherry picked from commit 2b826707289cd0052357187311d8d7bc1d5572a5) Conflicts: hwc/hwc.c
2012-10-22hwc: fix max_hw_overlay calculation in mirroring modeTony Lofthouse
When the protected content is present, we need to have minimum two external overlays to achieve mirroring. Rebase from p-ics-mr1 76f23bf HWC: Fix for max_hw_overlay calcualtion during mirroring mode Change-Id: Ibf95232e5f5d3b11eb05b4b4506fceb118dbfdd9 Signed-off-by: Sunita Nadampalli <sunitan@ti.com> Signed-off-by: Tony Lofthouse <a0741364@ti.com> (cherry picked from commit cb9e6c8c4a37e5e1835cec8a10c774bbcc156637) Conflicts: hwc/hwc.c
2012-10-22hwc: corrected calculation of lcd_xpyOleksandr Lugovyk
On hwc open xpy for lcd is calculated. In case values in mm are not provided (=0) the result of xpy is NaN. That influences further selection of external display resolution and calculation of video dimensions for external tv. Rebased from p-ics-mr1: 8d481bf HWC: corrected calculation of lcd_xpy Change-Id: I3494bd9c7bd797a27e985b474d6390606bb4106d Signed-off-by: Oleksandr Lugovyk <x0158320@ti.com> Signed-off-by: Tony Lofthouse <a0741364@ti.com> (cherry picked from commit 94970d78bf886d766ef37ec29b935c1edb34090d)
2012-10-22hwc: fix checking HW scaling limits for manual panelsSunita Nadampalli
This patch fixes the bug in the logic to check the DSS downscale limits for width. The code should return false incase the downscale limit is greater than the HW supported limit and the decimation limit. It was returning true earlier, because of coding error. Rebased from p-ics-mr1: 1d9d4dc HWC: Fix while checking for HW scaling limits for manual panels Change-Id: Id62494feaaf778f62ed29e170dece647d48fd28a Signed-off-by: Sunita Nadampalli <sunitan@ti.com> (cherry picked from commit 0b72db0376f805b48574e0192d2d3a020550a957)
2012-10-17Merged hwc with TI mainline versionMike J. Chen
Change-Id: I8390a3422c6ff8fa4bc4c0e6a11c51a884aba3cb Signed-off-by: Mike J. Chen <mjchen@google.com>
2012-10-16Add ability to force a preferred mode via a property.Mike J. Chen
Useful for testing. Change-Id: I3c6b05a75c360a7dac73270e4059312ba2ef8e88 Signed-off-by: Mike J. Chen <mjchen@google.com>
2012-10-16Fake VSYNC events if needed.Mike J. Chen
If HWC clients (aka, surface flinger) want to be receiving vsync events, and HDMI is unplugged, fake the events instead. This is particularly important at startup on JB; the system thinks that it has turned the display on and enabled VSYNC events, failure to deliver them results in Bad Things. We cannot rely on HDMI hardware to delvier the events if the HDMI link is not established, so we just fake them instead. (cherry-picked from 25ab304446afba89283c1a7c7225a69cc3cf4385) Change-Id: Id4806f96d37cf8ad5b6a05d9077b3d88fd24f4d5 Signed-off-by: John Grossman <johngro@google.com>
2012-10-16hwc: Stash hdmi mode resolution in a propertyMike J. Chen
The property can be read by apps like YouTube to choose lower resolution videos if the hdmi mode is < 1080p. Saves bandwidth, latency, and time wasted scaling. (cherry picked from commit ce768b26571c66e176fa6d10c64ded578da937d9) Change-Id: Ia44cc0263f3c77444221c96d73cda0979be3ee28 Signed-off-by: Mike J. Chen <mjchen@google.com>