Commit Graph

20 Commits

Author SHA1 Message Date
Ken Zhang
d9408eb428 sde: resource config: rotator downscaling and z_order setting
1.Select the smaller downscaling ratio for both sides as
rotator needs do the same downscaling for both direction.
2. Use rotator to do the minimum downscaling first to get the
best quality. Use decimation when rotator downscaling is
not enough.
3. Assign z_order when doing resource configuration.
4. For non src split case, if two pipes are on one mixer,
need make sure right pipe has the different z_order.

Change-Id: I1b829545053c2b719da8b6b42c1e5341a5040bcc
2015-03-02 20:51:52 -05:00
Ken Zhang
e2605ea20b sde: resource config: rectangle alignment for video and rotator
1. Align rectangle to be even for video format input.
2. Align width and height for rotator downscaling case.
3. Validate scaling again after config is done because scaling ratio
might be changed.
4. Make sure layer count doesn't exceed mixer stage number.
5. Add sde.disable_rotator_downscaling property for disabling
rotator downscaling.
6. Add sde.disable_decimation property for disabling decimation
7. Disable 2 pipes on non-display_split case temporarily as z-order
needs be different

Change-Id: Iec20c292552b23ff1a4135a6be1695fa8fb737de
2015-02-25 13:30:06 -05:00
Tatenda Chipeperekwa
2ba9789b07 sde: Move utility functions to common header file
Move utility functions to common header file accesible from
SDE and HWC modules.

Change-Id: Id5183bb8f41a223273c973960f653f155e3c4c05
2015-02-17 12:26:34 -08:00
Manoj Kumar AVM
b86bc17763 sde: Define rect utility functions.
Define rect helper functions used by SDE.

Change-Id: Ib8e0bc9493a40fa59a3cf90a115352edd4264a92
2015-02-10 18:09:06 -08:00
Ramkumar Radhakrishnan
ef83526f6a sde: Implement sequence locker to lock across multiple APIs.
1. Lock prepare() and set() APIs using sequence entry and sequence
   exit lock respectively to prevent the critical section being
   accessed by other threads.
2. Wait for sequence wait lock on HotPlugEvent thread or any other
   binder threads(Eg. dumpsys), before it accesses the critical region.
3. Prevent deadlock during multiple prepare() calls before a set().

Change-Id: I5443675c870ed2967615ec383dd2d59ded30b52b
2015-02-02 18:07:38 -08:00
Ramkumar Radhakrishnan
befbdbe6ff sde: Add Support for UI/Video rotation using SDE rotator
1. Implement Buffer manager to allocate and deallocate output buffers
   for rotator.
2. Assign buffer slot for each layer requires rotation and manage the
   internal state of buffer slot in buffer manager.
3. Get the output buffer for each layer requires rotation from buffer
   manager and associate the information along with that layer.
4. Create/Destroy the rotator session from the hint provided by buffer
   manager. This is required to help driver to calculate the bandwidth
   for the current frame.
5. Validate the rotator configurations and submit the rotation job
   using rotator validate and rotator commit ioctl.

Change-Id: I1bc1de05042f64d5f32e95ac6226890fa4fabd24
2015-01-30 08:19:57 -08:00
Ramkumar Radhakrishnan
7ebf034c5f sde: Add support to systrace.
1. Define an interface between hwcomposer and display engine to collect
   systrace for a module in display engine.
2. Implement the functionality of conditional ATRACE_BEGIN/ATRACE_END
   in hwcomposer.

Change-Id: I441d06397a2618f87f132c8037ca83d5fc13b07c
2015-01-30 08:16:37 -08:00
Ramkumar Radhakrishnan
a35a2735d2 sde: Add support for idle fallback.
1. Set idle timeout value to driver through sysfs interface for
   primary display.
2. Get notification about idle timeout from driver and fallback to GPU
   composition.
3. Avoid idle fallback, if there is only one application layer.
4. Define a binder interface to set the idle timeout value through adb.
   (Eg. adb shell "service call display.qservice 16 i32 70")

Change-Id: If0cfcbea140580803ad8a67ac9425db86c0f75bb
2015-01-28 19:12:12 -08:00
Arun Kumar K.R
ecae9b2881 sde: Add support resolution change on HDMI and fix comp_manager
- Provide a debug hook to change resolution on HDMI.
- Config(edid) set by user is validated before setting and this
  overrides the best mode
- Add max_attempts in strategy interface which will be used for
  looping through the strategy selection which removes infinite loop
- Set Max SDE layers on HDMI as 2
- Fix incorrect sde layer index in Dump

Change-Id: I9ae1d0b115a06774470be5c0f9b78c4d930b7065
2015-01-12 14:41:05 -08:00
Linux Build Service Account
bbfaced6b5 Merge "sde: Read simulation flag" 2015-01-09 18:23:47 -08:00
Manoj Kumar AVM
4746f24733 sde: Read simulation flag
Read simulation flag from "debug.hwc.simulate" property.

Change-Id: Ia0dfe88d5d579985a2c1fcd58e83e0cc5583ef15
2015-01-08 12:10:24 -08:00
Ken Zhang
a80bdd8d7f sde: resource manager: rotator resource allocation
Only mark dedicate block for rotator allocation. Use
rotate array other than left_rotate and right_rotate.
Use bit mask to indicate rotation usage because rotation
can be shared by multi displays.

Change-Id: I70bd03250080a24dcf7f38c39dbd6391c0bba97c
2015-01-07 14:43:56 -05:00
Sushil Chauhan
91caa9964d sde: Add bandwidth checks in resource manager
In Resource Manager, add checks for:
1. Per pipe bandwidth
2. Overlap bandwidth of system
3. SDE Clock requirement of system

Change-Id: I01cff8d3252c874061a633817cf95e615394cfdb
2014-12-19 11:10:10 -08:00
Dileep Marchya
1d1f366532 sde: Fix SET_BIT and CLEAR_BIT macros.
1. Set output of SET_BIT and CLEAR_BIT to destination.
2. Remove kernel header dependency from hwc makefile.

Change-Id: Iad6f5776997064654178b54e0aba749576d85a50
2014-12-05 18:44:30 -08:00
Dileep Marchya
1fcbb06e2c sde: Add a client for qservice in hwc.
1. Add a client for qservice in hwc and enable dynamic logging.
2. Remove common makefile and merge it to respective modules makefiles.

Change-Id: I582873c296d21ecd037225ac0be8177e52cc8cda
2014-12-05 16:02:12 -08:00
Dileep Marchya
3ffb4703cf sde: Add support for conditional logging.
1. Add support for conditional logging.
2. Move log handling to hwc client.

Change-Id: I76bb2f9b420a178f22c4ee2ebf64da6daf5b87ed
2014-12-04 16:31:37 -08:00
Ramkumar Radhakrishnan
b36eee9a1d sde: Transition to safe mode in case of resource failures
1. No Pipe resources available for any display, move to safe mode
   composition for all displays, so that strategy manager selects
   the composition mode which requires optimal resource.
2. Move back to normal mode once all the displays are configured
   successfully with the resources for the current drawcycle.

Change-Id: Ic66d893a6ba50eb88cf8c70dae4df3772d47e1a0
2014-11-14 14:25:41 -08:00
Arun Kumar K.R
edb8bc82ff sde: Add support for DisplayEventHandler
- Add DisplayEventHandler to receive VSync event from driver.
- Add hooks to enable/disable VSync from client.
- Propogate VSync timestamp to the client

Change-Id: I27ea9773c424d8ad85f11f292ddd8792564bbcdc
2014-11-13 11:59:29 -08:00
Dileep Marchya
b61346fd8b sde: Add hooks for dump information.
1. Implement dump interface and provide hooks for adding
   dump information from different modules.
2. Rename writeback session module to offline controller.
3. Merge logger.h functionality into debug.h
4. Rename DISPLAY_* as SDE_*.

Change-Id: I3e8df27a848475d067801037bcdc807561d35cc8
2014-11-13 11:57:15 -08:00
Dileep Marchya
f9ba485c78 sde: Interfaces for Snapdragon Display Engine (SDE)
1. Define SDE interfaces for hwc.
2. Define strategy manager interfaces for composition manager.
3. Define utility classes used by SDE.

Change-Id: I2985fbd05e824cb41ac9b03aa0114daac754d712
2014-11-13 11:55:17 -08:00