Added here is the header file that defines HDMI-CEC HAL interface.
Its main purpose is to support major CEC features such as 'one touch
play', 'standby' for playback device. But basic skeleton for supporting
other kinds of devices(like TV) is also in place.
Change-Id: Iccbbec398bc675d69cb78ad6848ec57ac727cb8d
For HAL3.2 or above, the HAL must return the input buffer in capture result
rather than capture request.
Change-Id: I0108cda1cdf51556d7273b2c3cfbaf0e6ecd1d76
There's a discrepancy in the order of arguments between the interface
and the implementation. bluedroid swaps the |error| and |local_role|
arguments when calling back so this change redefines the interface
for consistency.
http://b/12853951
Change-Id: I0ccfc6d6d2002d647d484ab7f53744863b569502
The upstream goldfish_pipe driver uses goldfish_pipe as a name instead
of qemu_pipe. Try using this name if the old name (qemu_pipe) fails.
For: ABIT-15
Change-Id: I8c6178faf27b1cdb31cc4343cf1af396e929f7e4
Signed-off-by: Octavian Purdila <octavian.purdila@intel.com>
Signed-off-by: Jun Tian <jun.j.tian@intel.com>
- Deprecates vendor tag specification in camera3 device.
- Moves vendor tag ops declaration to camera metadata library and
cleans up definitions.
- Updates the example HAL.
Change-Id: Ifb16bb0d4bbc896bc32d33dd150e7e174af57dad
Android's implementation of vibrator needs to be done inside a
hardware module, so that it can make a vendor implementation possible.
Hw module's name becomes vibrator.default.so.
This change is related to other changes in:
- frameworks/base
- hardware/libhardware_legacy
- device/generic/goldfish
- platform/build
Change-Id: I844279f5535289f079d412fdc44c5cb3c9c1130c
Author: Vincent Becker <vincentx.becker@intel.com>
Signed-off-by: Vincent Becker <vincentx.becker@intel.com>
Signed-off-by: Shuo Gao <shuo.gao@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Signed-off-by: David Wagner <david.wagner@intel.com>
Author-tracking-BZ: 49760 94611
Ensure none of the HAL structs change size over time.
Issues might arise when making changes without taking the different
pointer sizes for specific architectures into account.
Change-Id: I63f00004a23f09b2f46df01e7c69296766a5d03f
For wrapping the disk encryption secret, we add a flag that indicates it
can be done without having to start some storage daemon which the
trusted OS will query to get data needed to load up the keys. This
usually means that the "key blob" we store is actually just the RSA key
encrypted with the device's KEK and not a reference to an encrypted
filesystem stored on /data
Also to allow other providers to upgrade to V3 of the header, we add
flags to show whether the keymaster supports different key types. This
allows keymaster HALs to support the whole device encryption secret
wrapping without needing to implement DSA and EC key handling. The V2
header made support implicit.
Change-Id: Ic5b13e2e84dd91e7a4ae443048ecc16cc805cb97
Needed to support the real case of continuous focus giving up on a
scene for a while (say, a blank wall), during which we shouldn't claim
the lens is in motion.
Also add new states for INACTIVE to clarify it as the starting state
after mode transitions or enabling AF/AE/AWB.
Bug: 10860639
Bug: 10446772
Change-Id: Ie4c1ac73e5a9eb6d1894d83dbded49a2767a8ffd
The original version of this HAL used a field in keymaster_module to
represent the module's version number, but a later revision of the HAL
interface added a distinguisher between HAL module and device versions.
This is needed to support upgrade code in keystore.
(cherry picked from commit c124b23f94)
Bug: 10600582
Change-Id: Ia2b0cbeca5c507600228c39ec7a8402f819f8804
This updates the camera module API to have vendor-specific tag support.
Vendor-specific metadata tags could be contained in static camera
characteristics, so we need a method of accessing vendor tag information
from the module level (and not just with a device open).
Bug: 10612133
Change-Id: I28e8c769f8112ff4f745f3f1b5472e8a718f1356
The original version of this HAL used a field in keymaster_module to
represent the module's version number, but a later revision of the HAL
interface added a distinguisher between HAL module and device versions.
This is needed to support upgrade code in keystore.
Bug: 10600582
Change-Id: Ied34cf382e2b7725e648faada00df2dee993e6c5
Added EFFECT_CMD_OFFLOAD command to audio effect control
interface. It is used by the framework to indicate if
the playback thread the effect is attached to is offloaded
of not.
Added effect flag EFFECT_FLAG_OFFLOAD_SUPPORTED indicating if
the effect implementation supports offloading to a DSP.
Change-Id: I26553576657d3aa9cd0cdcd5785c813b02f48136
Signed-off-by: jpadmana <jayashree.r.padmanaban@intel.com>
Signed-off-by: Eric Laurent <elaurent@google.com>
Both surfaceflinger and HWC implementations have been defining these
themselves, making future changes more difficult. Better to define
them centrally, where they can be updated easily.
Change-Id: I793158b858c84b2470b05f9ea77cc5a0c7e247f1
If a remote devices offers multiple descriptors with the same UUID, the
instance ID is used to differentiate between them.
Change-Id: Ia5ab989f222a5cf1b7cb66966ad4f91f2b660708
Step count can reset when android restarts
When calling activate() without calling setDelay() before, use a default rate
Uncalibrated magnetometer should not be low pass filtered
The accelerometer can be used for the geomagnetic rotation vector
When batching call retuns an error, it shouldn't change the state. In particular, it shouldn't change the rate.
batch(timeout=0) must always return success
Wake upon fifo full will never be specified when timeout=0
setDelay is not called when in batch mode
Change-Id: I8a437eeedbdc54e5f1f3e644a92e9f781d7add0d
- Add non-blocking write support, set_callback() function
- Add pause, resume, flush, drain functions to audio output stream
- Add audio parameter defines for compressed audio metadata
- Extend audio_config_t to include an audio_offload_info_t field
- Add is_offload_supported() function to test whether there is
hardware decode support for a given compressed audio format
- Change audio_stream_frame_size() to handle offloaded streams.
For an offloaded stream the size is always counted in bytes
(frame size == 1) and the number of channels is irrelevant.
Change-Id: I5b82c3fdcfa1456502d0042888f166bf02d8d54b
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Signed-off-by: Eric Laurent <elaurent@google.com>
Flush is used to quiesce a camera device as quickly as possible, which
can be used to deal with a pathological client (requests a frame
duration of hours then dying) as well as speed up stream configuration
changes when the outstanding requests data isn't required.
Change-Id: Ie822efae8c705bd64d63c0eab7e9c291ecb570ef
HALs seem to need to know the gralloc usage flags of the opposite
endpoint (producer/consumer) of a stream at configure time.
Instead of adding another call to pass stream information, we just
pass the usage flags in the existing usage field.
Change-Id: I745baf2c4dd9123273d811b9bd52ae68c854b70c
Add hints for video encode and decode use cases. These
hints are sent when the relevant use case starts and ends.
Clients can also send metadata along with the hint to provide
context to the power HAL so that it can make more informed
decisions about how to tweak system-level parameters.
Bug: 9325608
Change-Id: I4731acbe50a7401a95ec9231c4e1a4795098fcd4
Signed-off-by: Iliyan Malchev <malchev@google.com>
Fused location allows for fusion of information from
multiple source like GPS, Wifi, Cell, Bluetooth, Sensors etc
to get a location. Doing this in hardware is useful because
it can be done completely in the baseband without waking up the AP.
Change-Id: Ib007839ff51b7e87e8d62f0ff9fea1c4a474b1d1
This method is meant for locking the flexible YCbCr format documented in
the system graphics header.
Bug: 8734880
Change-Id: I45ae8937dcc16d0ae8a204a136121f78b4cc51e0
- Clarify ownership of fence file descriptors, including in case of
errors.
- Make it clear notify SHUTTER must be called before the first
process_capture_result.
Change-Id: I644054a7a055c2e8a6a164c5ab6439ef2a0d1df1
This method is meant for locking the flexible YCbCr format documented in
the system graphics header.
Change-Id: I98b196bab06f1d05fce725da44760180ce487034
Allow the HAL to split the capture result across multiple calls to
process_capture_result, so that when the sync framework cannot be
used, some output buffers can still be returned later than others.
Change-Id: Iea7f77a3d28daac3a94045ab4566f677aa53a7f9
Improve explanation of Batch mode
Put the 4th component of the unit quaternion back in the rotation vector
Modify rotation vector description
Modify definition of uncalibrated sensor event
Remove query()
Change-Id: I7564073fac0e2467bcfca040b259d9d20e2688c5
- Detailed documentation of the 3A state machines
(autofocus, autoexposure, auto-whitebalance)
- Add error return value for out-of-sequence device calls
- Spelling fixes
Change-Id: Icc4e1980b1ff058425a42bc665d345070944b173
- Array of streams given to configure_streams() must be an array of
pointers to streams, to allow framework to fulfill stream structure
lifetime guarantees.
- buffer_handle_t needs extra level of indirection to match HAL1 & 2.
Change-Id: Iee071da39218a748933c3dfa7bccb66fe92c05f1
Specified more precisely what the uncalibrated magnetometer should be
Added uncalibrated sensors event struct
Specified that rotation vector and game rotation vector have to use gyroscopes
Added magnetic field rotation vector
Added accuracy field to rotation vector and magnetometer rotation vector
Added section on comparative importance of batching different sensors
Specified that one-shot sensors must deactivate themselves before sending an event.
Change-Id: Ibc30ce6fc30e698af49a91930bd5a8316b6568b9
- Support a simple callback from camera HAL module to framework, to
indicate a change to module configuration or status.
- Add support for per-instance metadata to camera 2 device HAL.
Change-Id: I25699ff096c4f3578b9e54c7e6e60ce2449adc82
- High-level behavior is identical to device HAL 2.0
- Interface is cleaned up and simplified greatly
Change-Id: Ia867bbf9484be2256470f4acfab7fc3d47e408f4
A special value for NULL effect UUID is declared as const
in audio_effect.h. This prevents several modules including
audio_effect.h to be linked together.
The fix consists in declaring the value as static const.
Change-Id: I86e74dc9da8eaed13a3ad44765abb9cd1e80f316
mainly update the documentation, add new sensor types
and add a batch mode.
- TYPE_PEDOMETER, defines a pedometer sensor
- TYPE_SIGNIFICANT_MOTION, defines a sensor that triggers an
event when the device is moving "enough". This sensor must allow
the SoC to go into suspend, while it is enabled.
- TYPE_STEP_COUNTER, defines a pedometer but returns a step count
(and looses precise timestamps, per step).
Change-Id: I3e20ff165851b7cb318f3c6637a6580de156b8fe
- add support for SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED
- add support for SENSOR_TYPE_GAME_ROTATION_VECTOR
- add support for SENSOR_TYPE_GYROSCOPE_UNCALIBRATED
Change-Id: I83048eb239d2123b5ec1f411b99f1883080a646f
Add support for querying whether there is currently a recording
underway from the specified audio source.
Bug 7314859
Change-Id: I270f27eff4dcf1cc179089859a4c690140825ad1
The way buffers are passed to JPEG encoders makes it difficult to
account for a header offset. This explains moving the header to
the end, and clarifies the required header packing.
Bug: 7108816
Change-Id: I569cd0cde37bd6fd7110fbc95d7fced9a55cff9c
The hotplug callback is non-reentrant. The display config functions
return an error if called for a disconnected display type.
Change-Id: I52d11a53f9b30a7c39e98b0a9b07eb97a3d2becd
To simplify passing compressed JPEG data between the HAL and the
camera service, add a transport header for use with JPEG streams.
Bug: 7108816
Change-Id: I91060051f59032e66eaaab3ee9f651badd1f2ac0
Until all HAL implementations move to the new gralloc format selection
scheme, define FORMAT_ZSL for indicating ZSL streams.
Bug: 6243944
Change-Id: I90249beaaca5da80c9464eedd6aa9d3648bb56cc
Changed audio device API version to 2.0 because of
new enums for audio input and output devices.
Removed implementations of get_supported_devices() in
stub and usb audio modules.
Change-Id: I09345d38929d931e5015e36d18259f5a5f950298
New definitions of audio devices for remote submix: one representing
a sink for writing the audio buffers that won't be played directly
locally, another representing the audio source that can be read from
to obtain the audio mix.
New audio hardware module encapsulating the submix loop functionality.
Create a Pipe to serve as non-blocking audio ring buffer between
the output device (the sink) and the input device (the source).
Change-Id: I527f4721a69ced0430a99ebba3b4db7d419f2bb2
More dependent projects than I realized
This reverts commit 7fa4a7e706cd8da0a4fd6722ff3b00b8088a01ae
Change-Id: I813ffde0f8d602fd6d75186bf82e93c7ffed9a9a
Align camera2's management of platform-opaque formats with rest of
framework. Instead of using CAMERA2_PIXEL_FORMAT_OPAQUE, use
HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED as the format for both the
camera HAL and for gralloc, and depend on the gralloc usage flags to
let the gralloc module select the appropriate real format for specific
stream endpoints.
Add a new gralloc usage for ZSL mode, where the camera service will
hold a streaming circular buffer of opaque full-resolution images
during camera preview. Since this is an opaque format that needs to be
optimized for 30fps operation, need gralloc to be aware of this use
case.
Bug: 6243944
Change-Id: If7f2516649381ce9bcffe4e319b63cbc068f643f
Disallow modification to static characteristics structure, and clarify
ownership and lifetime of the structure.
Also update test code accordingly.
Bug: 6243944
Change-Id: I6921d6889937212867efb99aa3881ab3ffc4f6f9
Needs a third change that's not yet done with review.
This reverts commit c9ec8a656b59912f496880d3a63c0decd490f09d
Change-Id: Ic3e465e1308cbf107a250ec17b73a59a35e52f9f
Disallow modification to static characteristics structure, and clarify
ownership and lifetime of the structure.
Also update test code accordingly.
Bug: 6243944
Change-Id: Ib8de5e9d6580187b21a5ae9a28a3d24f1d083f7b
During the HWC 0.x evolution, some fields were left optional or
organized strangely to avoid breaking backwards compatibility. Since
we're breaking it in the transition to HWC 1.0 anyway, we can clean
these up a little.
* The current callbacks are now registered immediately after the
device is opened and guaranteed to be present, so the implementation
can rely on them being present.
* The hwc_methods_t structure is gone, with its two methods folded
into the main hwc_composer_device_1_t.
* All methods and callbacks are now required except dump(). New
methods and callbacks we add in the future will still be optional
for backwards compatibility.
Change-Id: I5d58774a5144016993c12df3dd6ad2a5d746bee9
Change the documentation of the blank function in the hw composer to
specify that the screen state transition must be complete when the
function returns.
Change-Id: Ibd0a9cdef13991c36cabada5fc0e4f7bb8fa7af9
- Add CAMERA2_HAL_PIXEL_FORMAT_ZSL
- Add CAMERA2_TRIGGER_CANCEL_AUTOFOCUS
- Add documentation to describe how AUTOFOCUS and CANCEL_AUTOFOCUS
triggers interact with AF state, mode, and notifications.
- Other minor edits
Bug: 6243944
Change-Id: I679c40cfe08e62d3a5851839f748fe2292bbfae7
Documentation updated for semantic changes vs. HWC 0.x:
* Prepare won't be called with NULL pointers. This used to be used to
disable hardware composition, though that wasn't documented. Now
we'll call prepare with non-NULL pointers but the layer list will
have zero layers.
* Set won't be called with NULL pointers. This used to cause the
display to turn off; that is now done by calling the blank() method,
which is no longer optional.
Change-Id: I9c69dc34f64e499a5ba5f8729836e7c216f8c733
(cherry picked from commit d245968b7ef0be5c776c9aefff3eca9e293d1b35)
> Extend the audio HAL interface to support get/set master mute
>
> Hand merge from ics-aah
>
> > Extend the audio HAL interface to support get/set master mute: DO NOT MERGE
> >
> > Extend the audio HAL interface to allow HALs to optionally support HW
> > level master mute. This follows the same pattern as master volume and
> > is part of the fix for bug 6828363. Because of the divergences
> > between ICS and master, this change will need to be merged by hand.
> >
> > Signed-off-by: John Grossman <johngro@google.com>
> > Change-Id: Ica6f5e37e13d13dde60463966f41f271ffa104fd
>
> Change-Id: I5e7aea6d7da0012dcc077281f9077fc04cfb9889
> Signed-off-by: John Grossman <johngro@google.com>
Change-Id: I2011cc5bc41ca7081ce255a4bfba65f36f899bc4
Signed-off-by: John Grossman <johngro@google.com>
GRALLOC_USAGE_HW_CAMERA_WRITE is for camera outputs in the new camera HAL.
GRALLOC_USAGE_HW_CAMERA_READ is for sending previously captured camera
data back into the camera pipeline for further processing. For
example, for converting a raw sensor image into YUV or JPEG data.
Bug: 6243944
Change-Id: If9011ec320a1a804f3337704243ed7fc410fec91
Add a new blank operation to be called by surfaceflinger when the screen
turns on or off. Also rev the API version to 1.1 for the new field.
Change-Id: I266fb33f66184538e34cfc319f63cf809dcb2f18
The new version adds an acquire and release fence to each layer,
providing explicit producer->hwc and hwc->producer synchronization.
Change-Id: Ibd6e3c7b3515c012c767246e6d6514274fdef01d
Added definitions for querying supported channel masks, sampling rates and
format with out_get_parameters().
Change-Id: Icb28fcef504c7e0a0b2daeb1bc7e704d20d3b738
hwcomposer_defs.h now contains enums, which are essentially names.
This won't change when we rev the h/w composer API (new ones will be added instead).
we do this to avoid having to abstract all these constants in higher
level APIs; instead hwcomposer_defs.h can be included without exposing
the hwcomposer's data structures (which are a lot more fragile wrt.
backward compatibility)
Change-Id: Ifb514f64de02a599fdd2d31c188327209ccb0ffc
- Clean up const/struct usage in HAL
- Add user pointer to notify callback
- Revamp allocate_stream, now it picks its own ID.
- Much simpler stream interface
- Merged request/reprocess input queues
- Frame queue interface no longer a mirror of request queue
- Added triggers/notifications
- Added default request creation
- Lots of comments
Unit tests added:
- Lots of utility code to speed up test writing
- Basic open/close
- Capturing 1 raw buffer (request input, frame output, buffer output)
- Capturing a burst of 10 raw buffers
Bug: 6243944
Change-Id: I490bd5df81079a44c43d87b02c9a7f7ca251f531
This change clarifies the meaning of the HWC vsync timestamp to specify that
the timestamp must be relative to the system monotonic clock.
Change-Id: I4386ce90511fd5b8f8e988917da637d84d86f026