Inheritance of HAL object is performed by composing a child structure of a
single parent structure located at offset 0 followed by new data members
and function pointers in the child structure.
For example,
struct child {
struct parent common;
int a_data_member;
void (*a_method)(struct child *c, int v);
};
HAL code assumes this layout when accessing child structures given a pointer
to a parent structure such that users write code like the following...
void child_method(struct *parent, int v) {
struct child * c = (struct child*)parent;
// do stuff with c
}
Code above will break if a member is added before "common" in "struct child".
This change adds comments that describe the restriction on the location of
parent HAL objects within a derived HAL object. HAL objects that already
have comments that describe the required location of parent objects are not
modified.
Change-Id: Ibe4300275286ef275b2097534c84f1029d761d87
The existing API exposed to clients for software lock/unlock forces the gralloc
implementation to complete these operations synchronously. This change adds new
entry points for lock/unlock functionality that is suited for use with Android's
explicit synchronisation concept. This provides scope for the gralloc module
to internally optimise the work it must do for lock/unlock and to hide this cost
from the client.
Change-Id: If4b1bb5490ab2b20d796214a7da8a96427cfe52d
The existing API exposed to clients for software lock/unlock forces the gralloc
implementation to complete these operations synchronously. This change adds new
entry points for lock/unlock functionality that is suited for use with Android's
explicit synchronisation concept. This provides scope for the gralloc module
to internally optimise the work it must do for lock/unlock and to hide this cost
from the client.
Change-Id: I6c41f4a532b705fc76c7777b2f04ea293506b381
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.
(cherry picked from commit 8a3849e26f)
Change-Id: I49be8403faf9f4c3888c84848b3009b44ab6d183
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
Previously it was HAL that was responsible for the logical address
allocation. The address allocation logic itself is based on the algorithm
specified in the CEC standard, is dependent neither on vendor nor
on hardware. This CL replaces the method 'allocate_logical_address',
'get_logical_address' with 'add_logical_address', so that the common
allocation logic will be implemented in the cec service and can be used by
all vendors without having them put the same logic in all HAL
implementations. HAL is supposed to be passed the allocated address
and use it to configure the chipset in this new definition.
The change in the service that implements the address allocation logic
will be done in a follow up CL.
Also removed the description in 'get_version' about version number.
It needs not be in the description since it is an implementation detail.
Change-Id: I33f31580792785bec38b7bd6997f91b89bfbb500
Merged and resolved conflicts with Ic66b792c8229867fa5ff760cdde3d7c6f3360296
Conflicts:
include/hardware/sensors.h
Change-Id: I47b7e5f16b50fd5272590f6daba4a9d6833b3afb
Used for tinyalsa related functions common to the audio hardware
layer.
Change-Id: Iae69caaa713b65bfeb6bdc1eeec5b31771f10edb
Signed-off-by: Andy Hung <hunga@google.com>
Also clarfieid the method description (allocate_logical_address),
update method signatures to use more appropriate type.
Change-Id: Ie5d13969308e77ca19b3dbde682ca968337ab41b
HAL for physical TV input such as HDMI-in. The main purpose is to
provide sideband video stream source handle to feed SurfaceFlinger and
audio related information to feed AudioManager (TBD).
Change-Id: I8eeddcd6c63f6f8c0b1e7a87e9a6856baa9ceddd
The new function allows the HDMI-CEC service to get the logical address
updated by HAL implementation.
Change-Id: I1a4c5f7b7773279091d5bd7c6971a8c9090a81ca
Additional parameter helps the caller avoid managing a static instance
variable. The parameter is used to pass the caller object itself.
Change-Id: I06cbcc7736031678f4638a0b5082d7b6a7ea51b6
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