Commit Graph

25 Commits

Author SHA1 Message Date
Ramkumar Radhakrishnan
0a021a85a3 hwc: Define binder interface to set view frame of a display
Define binder interface setViewFrame to set view frame information
of a display by surfaceflinger when projection for that display
changes.

Change-Id: If737b51ae0f04303a1a29c91a9703f64354b61fb
2014-06-10 14:52:44 -07:00
Dileep Kumar Reddi
e351d84ca0 HWC: Update DisplayFrame of all layers properly in Dynamic FB
Use change in HWC_GEOMETRY_CHANGED flag appropriately to avoid
redundant and unintentional overwrites of DisplayFrame values,
which may result fall back to GPU.

Change-Id: Ifb0f8dc5d356c965b6e80644f32392c460fb1ae7
2014-04-25 17:48:51 +05:30
Raj kamal
59fea567e1 Display and wfd synchronization during teardown
* Provide a binder interface call for wfd module
to inform display about the start/stop/pause/resume
of wfd session.

* This is needed for wfd-hdmi synchronization in
case of v4l2 wfd solution. If hdmi is plugged
in during v4l2 wfd session, display-hal waits in
uevent thread for wfd teardown notification from
wfd module, before going ahead with configuring
external display.

* For VDS WFD solution, display-hal waits in uevent
thread for wfd-teardown to be signalled from
the composition thread.

Change-Id: I9514cb5bc7ff81de0b5dd4cdf66d8286a64ba094
2014-04-15 14:15:59 +05:30
Naseer Ahmed
330a2820c2 display: Remove VPU related code
Targets in which VPU interacts with display through HWC are no
longer supported.

Change-Id: I65a5348a375ad0c193a8659d0cdfb37c2db6f38e
2014-03-15 13:54:07 -07:00
Arun Kumar K.R
2aa44c66fa hwc: resolve compiler warnings
- remove unused variables.
- fix incorrect castings.

Change-Id: I7661edb4539a3ffc7d4aedbb9f633bc5ba1dc149
2014-02-03 09:20:36 -08:00
Zohaib Alam
1bb656178e hwc: vpuclient: vpuClient implementation
Vpuclient is the client side for VFM in hwc. It follows the
similar pattern of prepare and draw. It has 2 step prepare
including: setVpuSession and prepare. The setVpuSession function
passes all the layers from the SF list to VFM, which marks
the layers that it can support. After this, the layer
allocation/configuration is done, and finally in prepare the
allocated pipes are passed down to VFM. The draw function
passes the handle to the VFM to draw the video layer.

Change-Id: I5d8795de35ed98716f7fa4cd48506b488cb3cb5d
2014-01-31 14:59:19 -05:00
Arun Kumar K.R
c62935ae37 display: Add binder interface to pause/resume WFD
- Client can call this when it want to pause/resume wfd
- Calling this will make sure after pause, black screen
  is shown on the sink
- Currently used by the SecureDisplay module

Change-Id: If618edf76a82abe49fb676d3845ca1f1d5a8bf25
2014-01-07 09:57:51 -08:00
Arun Kumar K.R
8e7a62fc97 hwc: Add binder interface to get the visibleRegion
- This binder interface can be used by clients to know the
  active visible region for a display(pri/ext/virt)
- When external orientation is used, return the destFrame of
  the FrameBuffer layer, as its the viewFrame

Change-Id: I7cfd149c76c16b9a3031103c89b1932d44bcbecd
2013-12-19 18:45:18 -08:00
Naseer Ahmed
78c952e4d0 qdutils: Add display config to qdutils
This API is meant for system level users that need to get/set
various display attributes that are normally not available via
the regular Android framework channels.
Initially the APIs exposed are to check HDMI status, get display
attributes and set HSIC data.
Only physically connected displays are supported for now.

Change-Id: Ia783ce2ab0c4599a54c992171e01e2f0504550dc
2013-12-10 22:17:22 -08:00
Naseer Ahmed
4957c52d9c display: Clean up binder interface
The current binder implementation is inflexible when it comes to
adding new input/output parameters. It also needs a lot of
boilerplate code written when adding a simple enable/disable type
command.
Instead, let clients specify the parcels they want to pass and
unparcel them at the end points only.
Please note that it is assumed that all commands coming in
need the same permission checks. If this is no longer the case,
some commands need to be split out on the receiver end in
IQService.cpp.
This change also simplifies the code end clients need to write.
They should be able to include QServiceUtils and call a single
function to set the binder up and make the call.

Change-Id: I4db66f2427ecf16d7a6264462ae85815217a16b1
2013-11-25 20:36:13 -08:00
Naseer Ahmed
58780b987b hwc: Add vpu client
Stub implementation of VPU in HWC.
This commit passes through binder calls from HWC
to the VPU library. It also has stub prepare/draw calls
in the VPU client object which can be used to configure
VPU in the composition cycle.

Change-Id: I2606f2884e870448d29ef26e02faac92e157e2c6
2013-09-12 09:15:44 -07:00
Linux Build Service Account
5383b360a4 Merge "display: Add BufferMirrorMode support for External" 2013-08-29 04:40:10 -07:00
Linux Build Service Account
1d784e592f Merge "Revert "display: Add BufferMirrorMode support for External"" 2013-08-23 17:33:05 -07:00
Arun Kumar K.R
fb5bfa6ff1 display: Add BufferMirrorMode support for External
- In Buffer mirror mode, the output on the external should be rotated
  based on the primary orientation.
- this is used for the side sync feature.
- buffermirrormode has higher precedence over external orientation
- Add binder interface to enable/disable buffermirror mode

Change-Id: Ibea0af9627d69b4d42453adc868b113d82613437
2013-08-22 15:38:25 -07:00
Ramkumar Radhakrishnan
dc4aeb53da Revert "display: Add BufferMirrorMode support for External"
This reverts commit 027d96511c.
2013-08-22 13:31:33 -07:00
Saurabh Shah
b39f8151ab hwc: Fix locking.
Remove the unnecessary blank lock, mdp comp lock, secure lock.
Rename the ext lock to a more appropriate draw lock.

The mdp comp lock is at an incorrect place and causes unwanted
objects to show up in dumpsys, since configDone hasnt cleaned
them up yet.

dump(), blank(), draw() should all acquire a common lock.
draw() includes prepare() and set().

Change-Id: I595547dd5a393a8af6cd8c9297d50793b715e658
2013-08-22 13:15:57 -07:00
Linux Build Service Account
e81a2b11b4 Merge "display: Add BufferMirrorMode support for External" 2013-08-21 12:25:21 -07:00
Raj kamal
a67027089c hwc: Define and Use mSecureLock
Define and Use mSecureLock in composition and binder
thread. This is to ensure both variables mSecureMode
and mSecuring are updated in binder thread without
any context switch to composition thread

Change-Id: Ibd701bd3363515e2f7e8a9711bbc5b66053cfa03
2013-08-19 12:23:11 +05:30
Arun Kumar K.R
027d96511c display: Add BufferMirrorMode support for External
- In Buffer mirror mode, the output on the external should be rotated
  based on the primary orientation.
- this is used for the side sync feature.
- buffermirrormode has higher precedence over external orientation
- Add binder interface to enable/disable buffermirror mode

Change-Id: I1768dbfac239ae663927358ca9b8e5510b683385
2013-08-16 21:06:04 -07:00
Arun Kumar K.R
4b79e27fcf display: fix binder interface for setExtOrientation
Add missing hook b/w the binder client and service for
setting EXTERNAL_ORIENTATION

Change-Id: If6084031793251cca16b926bd82f5dccf76468a1
2013-06-11 11:39:01 -07:00
Arun Kumar K.R
ffef74885b display: Add support orientation control on ext display
- The required orientation on External can be set using the
  properyt sys.ext_orientation.
- Values can be HAL_TRANSFORM_ROT_90, HAL_TRANSFORM_ROT_270
- According to the value set, the FB_TARGET for External will
  be rotated and positioned as per aspect ratio on Ext
- For YUV(video layer) it just calculates the position, as the
  rotation should be the source orientation
- This feature is supported only for low resolution panel.

Change-Id: I3d532ee0cb8dca3c37869537b55cd8044fd9047e
2013-05-11 18:16:46 -07:00
Saurabh Shah
c212577ea8 hwc: qclient: Subscribe to mediaplayer death later.
Subscribing to mediaplayer death on bootup delays
display startup because it depends on mediaplayer startup.
Defer until later.

Change-Id: Id73e90e5cc8581d8e2359d7c7effee1b65de488b
2013-03-20 10:07:49 -07:00
Jeykumar Sankaran
9f59a7685d display: Add hook for triggering screen update
DSI command mode panels do not need to be refreshed on each
vsync. Due to one frame latency in CABL LUT calculation, when CABL is
enabled for DSI command mode panels, the LUT doesnt get updated for last
frame. Triggering an extra update for DSI command mode panels fixes it.

Change-Id: I7a22e338609430746dda4d3081ff199109a95035
2013-03-06 10:29:36 -08:00
Saurabh Shah
7128e50fae hwc: Get notified on media player death.
Add support to get notified of media player death.
This is useful in reseting secure sessions initiated by mediaserver.

Change-Id: I215b5b552a0874c86a07426cd7d16ed48f307b5d
2013-02-20 17:42:10 -08:00
Saurabh Shah
86c1729e75 libqservice: Add a client interface.
Add a client interface which interfaces with hwc.
qservice upon receiving IPC, provides a callback notification to the qclient
which does appropriate stuff in hwc.

In future, qservice can safely be even made a separate process with no changes
to exisiting code. This was not true earlier owing to the hwc pointer held by
qservice forcing it to be in the same process that hwc is in.

CRs-fixed: 452977
Change-Id: I05838c213f5d4606a6573693de1bacbc5876107e
2013-02-14 17:27:55 -08:00