Commit Graph

25 Commits

Author SHA1 Message Date
Marissa Wall 956f1f64a1 libadfhwc: Fix adf_hwc_close
The adf hwc event thread now responds to pthread_kill which
allows adf_hwc_close to succeed.

Test: Call "adb shell stop" and check if thread exits.
      This change will allow testing of libadfhwc in future patches.

Change-Id: I66d4fc71a058db42af8d42b5d6193378a8b5d972
2017-03-02 17:40:16 +00:00
Marissa Wall b4f0041421 libadfhwc: add adf_set_active_config_hwc2 support
Add the necessary set mode support to enable HWC2's set_active_config

Test: run gtests located in frameworks/native/services/surfaceflinger/tests/hwc2
Change-Id: I686dce91a2d8fe86db13c66d22f81960c2f8e8f2
2017-03-02 17:40:09 +00:00
Marissa Wall 9dcd750d81 libadfhwc: support hwc2 display attributes
adf_getDisplayAttributes_hwc2 gets the display attributes using the updated
enums from HWC2

Test: run gtests located in frameworks/native/services/surfaceflinger/tests/hwc2
Change-Id: I31325c764ccaf65c6d970727b56327d24c7b16d8
2017-03-02 17:40:02 +00:00
Greg Hackmann dc80973726 libadf: convert to C++
Both humans and the clang static analyzer find libadf's error handling
confusing.

Now that the platform has better C++ support, we can clean up things up
by switching to C++ and using STL + RAII in targeted parts of the code.
This isn't a complete rewrite in idiomatic C++, but it's enough to get
rid of all the "goto" statements (and the false-positive memory leaks
found by clang's static analyzer).

Bug: 27125399

Test: WITH_STATIC_ANALYZER=1 mmm system/core/adf/libadf
Test: /data/nativetest/adf-unit-tests/adf-unit-tests (on Nexus 9)
Test: /data/nativetest64/adf-unit-tests/adf-unit-tests (on Nexus 9)
Change-Id: Ie9dd5d5dc424d1a3ddcc3cba836fce04190f46fd
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2017-02-22 21:18:48 +00:00
Greg Hackmann 52ae36ed57 libadf: adf_test: fix crash on adf.devices failure
If devs is uninitialized and adf_devices() fails, we'll end up passing
the uninitialized pointer to free().

Test: /data/nativetest64/adf-unit-tests/adf-unit-tests (on Nexus 9 w/o root)
Change-Id: Ifc6038c1da14d32ee564675bac54fc7df2623c1d
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2017-02-22 11:07:15 -08:00
Greg Hackmann 095da6fb73 libadf: support ADF_{POST,SIMPLE_POST}_CONFIG_V2 ioctls
adf_{device,interface_simple}_post_v2 let the client choose what kind of
fence is returned from the kernel:

* ADF_COMPLETE_FENCE_NONE: no fence is returned
* ADF_COMPLETE_FENCE_PRESENT: the returned fence fires when the
  specified configuration appears on the screen
* ADF_COMPLETE_FENCE_RELEASE: the returned fence fires when the
  specified configuration is removed from the screen

The "V2" calls with fence type ADF_COMPLETE_FENCE_RELEASE are functionally
equivalent to "V1" calls.

Test: included gtest (on Nexus 9)
Change-Id: I36190d1b6cea0fbaed2af3ad64fa4729200c5520
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2017-02-14 16:06:05 -08:00
Greg Hackmann fe79bcbef8 libadf: move ADF uapi header out of bionic
ADF isn't a candidate for upstreaming and isn't (directly) usable from
unprivileged NDK code, so it makes more sense to keep video/adf.h as a
private header inside libadf, where it'll still be usable by HWC
implementations without shipping in the NDK.

libadf exports its entire include/ directory, so this shouldn't have
any impact on HWC implementations that already link against libadf.

Test: mmm system/core/adf/libadf
Test: /data/nativetest64/adf-unit-tests/adf-unit-tests (on Nexus 9)
Change-Id: I14532d59005196e002f7465474ac3c7cc9e59bd3
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2017-01-31 23:08:26 +00:00
Greg Hackmann 09f8f986a9 libadf: adf_test: fix clang + kati build
kati needs us to add "tests" as a subdir of the libadf Android.bp.
clang also requires an explicit definition of AdfTest::dev_id where
g++ does not.

Test: mmm system/core/adf/libadf
Test: /data/nativetest64/adf-unit-tests/adf-unit-tests (on Nexus 9)
Change-Id: I1fc371af1b5b115f088edd963a87e6647a52882b
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2017-01-31 22:55:46 +00:00
Mark Salyzyn 30f991f251 liblog: use log/log.h when utilizing ALOG macros
Test: compile
Bug: 30465923
Change-Id: Id6d76510819ebd88c3f5003d00d73a0dbe85e943
2017-01-11 09:31:15 -08:00
Mark Salyzyn 66ce3e08c5 system/core Replace cutils/log.h with android/log.h
Should use android/log.h instead of cutils/log.h as a good example
to all others.  Adjust header order to comply with Android Coding
standards.

Test: Compile
Bug: 26552300
Bug: 31289077
Change-Id: I2c9cbbbd64d8dccf2d44356361d9742e4a9b9031
2016-09-30 12:47:05 -07:00
Colin Cross af933290f6 Update escaping in Android.bp files
Strings like cflags in Android.bp files are parsed by blueprint,
written to build.ninja files, parsed by ninja, and then passed to
/bin/sh -c.  This had resulted in a combination of blueprint
(\"), ninja ($$), and shell (\$) escaping being necessary.

Soong has been updated to automatically handle ninja and shell
escaping, remove extra escaping from Android.bp files.

Bug: 31221587
Test: m -j
Change-Id: I78003c7a18028d27dff444af7d84901345d323a1
2016-09-29 14:07:08 -07:00
Dan Willemsen 45f05240c2 Convert more Android.mk files to Android.bp
These modules have their dependencies satisfied, and aren't doing
anything strange.

Change-Id: I72039a15256cbd5e5eee0d79a15d66d74a6c087d
2016-07-13 17:41:45 -07:00
Andreas Gampe a9f0a80c52 Adf: Remove unused variable
For build-system CFLAGS clean-up.

Bug: 18632512
Change-Id: Iaacfc08aeaf1a3f27771a136f2c977e54971257b
2015-07-27 22:08:16 -07:00
Greg Hackmann e6b793c7b0 libadf: enable -Werror
Bug: 19606869

Change-Id: If2ea55732e71e8288641b6b34d229b367fd3fb3b
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2015-03-10 15:14:38 -07:00
Greg Hackmann 39b0c1c67d libadf: tests: fix signed/unsigned comparison warnings
Bug: 19606869

Change-Id: I29cfa363b6640cc13973c1023d2f4ea1a97e3af2
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2015-03-10 15:14:38 -07:00
Elliott Hughes 3d74d7a739 Add missing includes.
Change-Id: Iaa130c0a7eb2cbc0c8486546e5b622661b6d9e23
2015-01-29 21:31:23 -08:00
Elliott Hughes a744b05984 Add missing <malloc.h> and <string.h> includes.
Change-Id: Ia41756e607663d056e7d2fdd7ecbec7e5841a913
2015-01-28 11:37:57 -08:00
Greg Hackmann bfdbb2fcf0 libadf: add tests for various failure modes
Change-Id: I1b13e84c6663cb73af2829bedd3514119a01764c
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2014-05-07 15:28:05 -07:00
Greg Hackmann 29925dcc89 libadf: add tests
Change-Id: I353099bf194d4d566c720e44190ad34f407f3dce
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2014-05-07 15:28:05 -07:00
Greg Hackmann 20fcb78e58 libadf: silence false positive warning
Some versions of gcc warn that intfs may be used uninitialized

Change-Id: I3b8d7e919e9c2902ac56adeabd09a45ececfb3c4
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2014-05-07 15:27:59 -07:00
Greg Hackmann 18b7127845 libadfhwc: use %zu for logging size_t
Change-Id: Ica75935a194509f9d85d8e577b81f9de03aaaea4
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2014-03-11 14:42:53 -07:00
Greg Hackmann 1832635319 libadf: add helper to set up a simple post
Change-Id: I381b47f924b02c208ea6f20cf887abdef1035830
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2013-11-26 15:40:02 -08:00
Greg Hackmann 47e0c8d849 libadf: filter overlay engines by a list of acceptable formats
Change-Id: Ibb294f0520a7a7a6a2a89e1e3eb3c335906d3e66
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2013-11-26 15:40:02 -08:00
Greg Hackmann ebb26c71fe add libadfhwc
Helper library for implementing a hwcomposer HAL on top of libadf

Change-Id: I2af0617416fb4a6b3a1d182a22e809bfdc54a532
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2013-11-26 15:40:02 -08:00
Greg Hackmann b85d12a307 add libadf
Helper library to enumerate ADF objects, wrap ADF ioctls, and read event
data

Change-Id: I7aa7f88935174e650a40b2f9db3212280121f760
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2013-11-26 15:39:50 -08:00