update new sdk
This commit is contained in:
parent
f33907443a
commit
744c72c133
1643 changed files with 83006 additions and 28021 deletions
|
@ -15,7 +15,7 @@
|
|||
*/
|
||||
|
||||
#define LOG_TAG "audio_hw_primary"
|
||||
#define LOG_NDEBUG 0
|
||||
//#define LOG_NDEBUG 0
|
||||
|
||||
#include <errno.h>
|
||||
#include <pthread.h>
|
||||
|
@ -303,6 +303,7 @@ static inline void print_sunxi_stream_in(const struct sunxi_stream_in *in)
|
|||
static uint32_t out_get_sample_rate(const struct audio_stream *stream)
|
||||
{
|
||||
struct sunxi_stream_out *out = (struct sunxi_stream_out *)stream;
|
||||
ALOGV("out_set_sample_rate: %d", out->sample_rate);
|
||||
|
||||
return out->sample_rate;
|
||||
}
|
||||
|
@ -326,7 +327,7 @@ static size_t out_get_buffer_size(const struct audio_stream *stream)
|
|||
static audio_channel_mask_t out_get_channels(const struct audio_stream *stream)
|
||||
{
|
||||
struct sunxi_stream_out *out = (struct sunxi_stream_out *)stream;
|
||||
//ALOGV("out_get_channels: return %d", out->channel_mask);
|
||||
ALOGV("out_get_channels: %#x", out->channel_mask);
|
||||
char val[PROPERTY_VALUE_MAX];
|
||||
property_get("vts.native_server.on", val, "0");
|
||||
if (strcmp(val, "0") == 0) {
|
||||
|
@ -338,8 +339,8 @@ static audio_channel_mask_t out_get_channels(const struct audio_stream *stream)
|
|||
|
||||
static audio_format_t out_get_format(const struct audio_stream *stream)
|
||||
{
|
||||
//ALOGV("out_get_format");
|
||||
struct sunxi_stream_out *out = (struct sunxi_stream_out *)stream;
|
||||
ALOGV("out_get_format: %#x", out->format);
|
||||
|
||||
return out->format;
|
||||
}
|
||||
|
@ -347,7 +348,7 @@ static audio_format_t out_get_format(const struct audio_stream *stream)
|
|||
static int out_set_format(struct audio_stream *stream, audio_format_t format)
|
||||
{
|
||||
UNUSED(stream);
|
||||
ALOGV("out_set_format: %d",format);
|
||||
ALOGV("out_set_format: %#x",format);
|
||||
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
@ -454,7 +455,7 @@ static void select_devices(struct sunxi_audio_device *adev)
|
|||
int out_pdev = 0;
|
||||
int in_pdev = 0;
|
||||
|
||||
ALOGD("select_devices:mode(%#x),out_devices(%#x),in_devices(%#x),"
|
||||
ADLOG("select_devices:mode(%#x),out_devices(%#x),in_devices(%#x),"
|
||||
"active_output(%p),active_input(%p).",
|
||||
adev->mode, adev->out_devices, adev->in_devices,
|
||||
adev->active_output, adev->active_input);
|
||||
|
@ -519,7 +520,6 @@ static void select_devices(struct sunxi_audio_device *adev)
|
|||
|
||||
static int out_set_parameters(struct audio_stream *stream, const char *kvpairs)
|
||||
{
|
||||
ALOGV("out_set_parameters");
|
||||
struct sunxi_stream_out *out = (struct sunxi_stream_out *)stream;
|
||||
struct sunxi_audio_device *adev = out->dev;
|
||||
struct str_parms *parms;
|
||||
|
@ -586,7 +586,7 @@ static int out_set_volume(struct audio_stream_out *stream, float left,
|
|||
|
||||
int start_output_stream(struct sunxi_stream_out *out)
|
||||
{
|
||||
ALOGV("start_output_stream");
|
||||
ALOGD("start_output_stream");
|
||||
int ret = 0;
|
||||
struct sunxi_audio_device *adev = out->dev;
|
||||
int platform_device;
|
||||
|
@ -640,6 +640,8 @@ int start_output_stream(struct sunxi_stream_out *out)
|
|||
platform_plugins_process_start_stream(adev->platform,
|
||||
ON_START_OUTPUT_STREAM,
|
||||
out->config);
|
||||
ADLOG("+++++++++++++++ start_output_stream: pcm sample_rate: %d,pcm fmt: 0x%08x,pcm channels: %d",
|
||||
out->config.rate, out->config.format, out->config.channels);
|
||||
|
||||
out->pcm = pcm_open(out->card, out->port, PCM_OUT | PCM_MONOTONIC,
|
||||
&out->config);
|
||||
|
@ -662,6 +664,7 @@ static ssize_t out_write(struct audio_stream_out *stream, const void* buffer,
|
|||
size_t frame_size = audio_stream_out_frame_size(stream);
|
||||
size_t out_frames = bytes / frame_size;
|
||||
ssize_t ret = 0;
|
||||
ALOGV("out_write");
|
||||
|
||||
pthread_mutex_lock(&out->lock);
|
||||
if (out->standby) {
|
||||
|
@ -787,8 +790,8 @@ static int out_get_presentation_position(const struct audio_stream_out *stream,
|
|||
/** audio_stream_in implementation **/
|
||||
static uint32_t in_get_sample_rate(const struct audio_stream *stream)
|
||||
{
|
||||
ALOGV("in_get_sample_rate");
|
||||
struct sunxi_stream_in *in = (struct sunxi_stream_in *)stream;
|
||||
ALOGV("in_get_sample_rate: %d", in->sample_rate);
|
||||
|
||||
return in->sample_rate;
|
||||
}
|
||||
|
@ -819,7 +822,7 @@ static size_t in_get_buffer_size(const struct audio_stream *stream)
|
|||
|
||||
static audio_channel_mask_t in_get_channels(const struct audio_stream *stream)
|
||||
{
|
||||
//ALOGV("in_get_channels");
|
||||
ALOGV("in_get_channels");
|
||||
struct sunxi_stream_in *in = (struct sunxi_stream_in *)stream;
|
||||
|
||||
return in->channel_mask;
|
||||
|
@ -828,7 +831,7 @@ static audio_channel_mask_t in_get_channels(const struct audio_stream *stream)
|
|||
static audio_format_t in_get_format(const struct audio_stream *stream)
|
||||
{
|
||||
UNUSED(stream);
|
||||
//ALOGV("in_get_format");
|
||||
ALOGV("in_get_format");
|
||||
|
||||
return AUDIO_FORMAT_PCM_16_BIT;
|
||||
}
|
||||
|
@ -836,6 +839,7 @@ static audio_format_t in_get_format(const struct audio_stream *stream)
|
|||
static int in_set_format(struct audio_stream *stream, audio_format_t format)
|
||||
{
|
||||
UNUSED(stream); UNUSED(format);
|
||||
ALOGV("in_set_format");
|
||||
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
@ -860,7 +864,7 @@ static int in_standby(struct audio_stream *stream)
|
|||
struct sunxi_stream_in *in = (struct sunxi_stream_in *)stream;
|
||||
struct sunxi_audio_device *adev = in->dev;
|
||||
int status = 0;
|
||||
ALOGV("%s: enter", __func__);
|
||||
ALOGD("%s: enter", __func__);
|
||||
|
||||
pthread_mutex_lock(&in->lock);
|
||||
pthread_mutex_lock(&adev->lock);
|
||||
|
@ -941,7 +945,7 @@ static int in_set_parameters(struct audio_stream *stream, const char *kvpairs)
|
|||
int ret, val = 0;
|
||||
int status = 0;
|
||||
|
||||
ALOGV("%s: enter: kvpairs=%s", __func__, kvpairs);
|
||||
ALOGD("%s: enter: kvpairs=%s", __func__, kvpairs);
|
||||
parms = str_parms_create_str(kvpairs);
|
||||
|
||||
/* in stream routing */
|
||||
|
@ -970,6 +974,7 @@ static char * in_get_parameters(const struct audio_stream *stream,
|
|||
const char *keys)
|
||||
{
|
||||
UNUSED(stream); UNUSED(keys);
|
||||
ALOGV("start_input_stream");
|
||||
|
||||
return strdup("");
|
||||
}
|
||||
|
@ -977,13 +982,14 @@ static char * in_get_parameters(const struct audio_stream *stream,
|
|||
static int in_set_gain(struct audio_stream_in *stream, float gain)
|
||||
{
|
||||
UNUSED(stream); UNUSED(gain);
|
||||
ALOGV("in_set_gain");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int start_input_stream(struct sunxi_stream_in *in)
|
||||
{
|
||||
ALOGV("start_input_stream");
|
||||
ALOGD("start_input_stream");
|
||||
int ret = 0;
|
||||
struct sunxi_audio_device *adev = in->dev;
|
||||
int platform_device;
|
||||
|
@ -1002,6 +1008,8 @@ int start_input_stream(struct sunxi_stream_in *in)
|
|||
|
||||
update_debug_flag();
|
||||
print_sunxi_stream_in(in);
|
||||
ADLOG("+++++++++++++++ start_input_stream: pcm sample_rate: %d,pcm fmt: 0x%08x,pcm channels: %d",
|
||||
in->config.rate, in->config.format, in->config.channels);
|
||||
|
||||
in->pcm = pcm_open(in->card, in->port, PCM_IN | PCM_MONOTONIC, &in->config);
|
||||
if (!pcm_is_ready(in->pcm)) {
|
||||
|
@ -1069,6 +1077,7 @@ static ssize_t in_read(struct audio_stream_in *stream, void* buffer,
|
|||
size_t frames = bytes / audio_stream_in_frame_size(stream);
|
||||
int i;
|
||||
int ret = -1;
|
||||
ALOGV("in_read");
|
||||
|
||||
pthread_mutex_lock(&in->lock);
|
||||
|
||||
|
@ -1155,6 +1164,8 @@ static int in_add_audio_effect(const struct audio_stream *stream,
|
|||
effect_handle_t effect)
|
||||
{
|
||||
UNUSED(stream); UNUSED(effect);
|
||||
ALOGV("in_add_audio_effect");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1162,6 +1173,8 @@ static int in_remove_audio_effect(const struct audio_stream *stream,
|
|||
effect_handle_t effect)
|
||||
{
|
||||
UNUSED(stream); UNUSED(effect);
|
||||
ALOGV("in_remove_audio_effect");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1174,7 +1187,7 @@ static int adev_open_output_stream(struct audio_hw_device *dev,
|
|||
const char *address __unused)
|
||||
{
|
||||
UNUSED(handle);
|
||||
ALOGV("adev_open_output_stream");
|
||||
ALOGD("adev_open_output_stream");
|
||||
|
||||
struct sunxi_audio_device *adev = (struct sunxi_audio_device *)dev;
|
||||
struct sunxi_stream_out *out;
|
||||
|
@ -1229,7 +1242,7 @@ static int adev_open_output_stream(struct audio_hw_device *dev,
|
|||
} else {
|
||||
out->format = config->format;
|
||||
out->sample_rate = config->sample_rate;
|
||||
ALOGD("+++++++++++++++ channel_mask: add out-get-channel_mask for vts!!");
|
||||
ALOGV("+++++++++++++++ channel_mask: add out-get-channel_mask for vts!!");
|
||||
out->channel_mask_vts = config->channel_mask;
|
||||
out->channel_mask = AUDIO_CHANNEL_OUT_STEREO;
|
||||
}
|
||||
|
@ -1245,7 +1258,7 @@ static int adev_open_output_stream(struct audio_hw_device *dev,
|
|||
config->channel_mask = out_get_channels(&out->stream.common);
|
||||
config->sample_rate = out_get_sample_rate(&out->stream.common);
|
||||
|
||||
ALOGV("+++++++++++++++ adev_open_output_stream: req_sample_rate: %d, fmt: %x, channel_mask: %d",
|
||||
ADLOG("+++++++++++++++ adev_open_output_stream: req_sample_rate: %d, fmt: 0x%08x, channel_mask: 0x%08x",
|
||||
config->sample_rate, config->format, config->channel_mask);
|
||||
|
||||
platform_plugins_process(adev->platform, ON_OPEN_OUTPUT_STREAM);
|
||||
|
@ -1275,7 +1288,7 @@ static void adev_close_output_stream(struct audio_hw_device *dev,
|
|||
|
||||
static int adev_set_parameters(struct audio_hw_device *dev, const char *kvpairs)
|
||||
{
|
||||
ALOGV("adev_set_parameters, %s", kvpairs);
|
||||
ALOGD("adev_set_parameters, %s", kvpairs);
|
||||
struct sunxi_audio_device *adev = (struct sunxi_audio_device *)dev;
|
||||
struct sunxi_stream_out *out = adev->active_output;
|
||||
|
||||
|
@ -1386,7 +1399,7 @@ static int adev_set_mode(struct audio_hw_device *dev, audio_mode_t mode)
|
|||
|
||||
static int adev_set_mic_mute(struct audio_hw_device *dev, bool state)
|
||||
{
|
||||
ALOGD("%s: state %d\n", __func__, state);
|
||||
ALOGV("%s: state %d\n", __func__, state);
|
||||
struct sunxi_audio_device *adev = (struct sunxi_audio_device *)dev;
|
||||
|
||||
pthread_mutex_lock(&adev->lock);
|
||||
|
@ -1480,11 +1493,11 @@ static int adev_open_input_stream(struct audio_hw_device *dev,
|
|||
audio_source_t source __unused)
|
||||
{
|
||||
UNUSED(handle);
|
||||
ALOGV("adev_open_input_stream...");
|
||||
ALOGD("adev_open_input_stream...");
|
||||
|
||||
struct sunxi_audio_device *adev = (struct sunxi_audio_device *)dev;
|
||||
struct sunxi_stream_in *in;
|
||||
int channel_count = popcount(config->channel_mask);
|
||||
int channel_count = audio_channel_count_from_in_mask(config->channel_mask);
|
||||
int ret;
|
||||
|
||||
in = (struct sunxi_stream_in *)calloc(1, sizeof(struct sunxi_stream_in));
|
||||
|
@ -1524,6 +1537,8 @@ static int adev_open_input_stream(struct audio_hw_device *dev,
|
|||
|
||||
memcpy(&in->config, &in_pcm_config, sizeof(struct pcm_config));
|
||||
in->config.channels = channel_count;
|
||||
ADLOG("+++++++++++++++ adev_open_input_stream: req_sample_rate: %d, fmt: 0x%08x, channel_mask: 0x%08x",
|
||||
config->sample_rate, config->format, config->channel_mask);
|
||||
|
||||
*stream_in = &in->stream;
|
||||
|
||||
|
@ -1607,7 +1622,7 @@ static int adev_close(hw_device_t *device)
|
|||
static int adev_open(const hw_module_t* module, const char* name,
|
||||
hw_device_t** device)
|
||||
{
|
||||
ALOGV("adev_open: %s", name);
|
||||
ALOGD("adev_open: %s", name);
|
||||
|
||||
struct sunxi_audio_device *adev;
|
||||
int ret;
|
||||
|
|
8
android/hardware/aw/gpu/mali-utgard/mali400/arm64/aw_version
Normal file → Executable file
8
android/hardware/aw/gpu/mali-utgard/mali400/arm64/aw_version
Normal file → Executable file
|
@ -1,6 +1,6 @@
|
|||
mali400: r8p1-00rel0 um android oreo_mr1 arm64 003
|
||||
mali400: r8p1-00rel0 um android oreo_mr1 arm64 008
|
||||
|
||||
Fix mali-utgard prerotate issue on Android O;
|
||||
Fix Dajing platform failed on CtsThemeHostTestCases issue;
|
||||
|
||||
Build parameters:
|
||||
VARIANT=mali400-r1p1-gles-linux-android-oreo-prerotate-no_profiling-dma_buf-rgb_is_xrgb-no_Werror-egl_wait_sync
|
||||
|
@ -10,5 +10,5 @@ CONFIG=release
|
|||
CROSS_COMPILE=aarch64-linux-
|
||||
|
||||
MD5 Info:
|
||||
5e47d50472785b632c0835cb36836196 lib/libGLES_mali.so
|
||||
955a65789eb92586d356385c1714b4d6 lib64/libGLES_mali.so
|
||||
49c90f5da5373fb7f4b7751e5ef6cfa8 lib/libGLES_mali.so
|
||||
63de2088e7437fbb9f2aa627a4baa81e lib64/libGLES_mali.so
|
||||
|
|
BIN
android/hardware/aw/gpu/mali-utgard/mali400/arm64/lib/libGLES_mali.so
Normal file → Executable file
BIN
android/hardware/aw/gpu/mali-utgard/mali400/arm64/lib/libGLES_mali.so
Normal file → Executable file
Binary file not shown.
BIN
android/hardware/aw/gpu/mali-utgard/mali400/arm64/lib64/libGLES_mali.so
Normal file → Executable file
BIN
android/hardware/aw/gpu/mali-utgard/mali400/arm64/lib64/libGLES_mali.so
Normal file → Executable file
Binary file not shown.
|
@ -64,6 +64,7 @@ typedef struct eventThreadContext {
|
|||
}eventThreadContext_t;
|
||||
|
||||
int hdmifd = -1;
|
||||
static int hdmihotplug=0;
|
||||
eventThreadContext_t eventContext;
|
||||
#define EPOLL_COUNT 6
|
||||
static void *eventThreadLoop(void *user);
|
||||
|
@ -302,6 +303,7 @@ hotplugUeventParse(eventThreadContext_t *context, const char *msg)
|
|||
read(hdmifd, &state, 1);
|
||||
ALOGD("Receive %s hotplug state[%d]", switch_name, state-48);
|
||||
callHotplug(context, display, state == '1'? 1 : 0);
|
||||
hdmihotplug= (state == '1'? 1 : 0);
|
||||
}
|
||||
}
|
||||
while (*msg++);
|
||||
|
@ -336,8 +338,10 @@ static void *eventThreadLoop(void *user)
|
|||
for (int i = 0; i < context->numberDisplay; i++) {
|
||||
display = context->display[i];
|
||||
if (strcmp(context->display[0]->displayName, "hdmi")) {
|
||||
if (!strcmp(display->displayName, "hdmi"))
|
||||
if (!strcmp(display->displayName, "hdmi")){
|
||||
callHotplug(context, display, state == '1'? 1 : 0);
|
||||
hdmihotplug=1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -388,14 +392,14 @@ init_epoll:
|
|||
== sizeof(cmd_esg)) {
|
||||
switch(cmd_esg.cmd) {
|
||||
case 1:// switch hdmi mode
|
||||
ALOGD("chang hdmi[%d] mode[%d] from user",cmd_esg.disp, cmd_esg.data);
|
||||
ALOGD("chang hdmi[%d] mode[%d] hdmihotplug[%d] from user",cmd_esg.disp, cmd_esg.data,hdmihotplug);
|
||||
if (cmd_esg.disp != 1 ||
|
||||
context->display[cmd_esg.disp]->default_mode == cmd_esg.data)
|
||||
context->display[cmd_esg.disp]->default_mode == cmd_esg.data ||(hdmihotplug==0))
|
||||
break;
|
||||
callHotplug(context, context->display[cmd_esg.disp], 0);
|
||||
context->display[cmd_esg.disp]->default_mode = cmd_esg.data;
|
||||
|
||||
callHotplug(context, context->display[cmd_esg.disp], 1);
|
||||
// if(hdmihotplug==1)
|
||||
callHotplug(context, context->display[cmd_esg.disp], 1);
|
||||
break;
|
||||
case 2://3D
|
||||
if (((enum display_3d_mode)cmd_esg.data != DISPLAY_3D_LEFT_RIGHT_HDMI) &&
|
||||
|
@ -411,7 +415,9 @@ init_epoll:
|
|||
|
||||
default:
|
||||
ALOGD("not a right mesg");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1513,7 +1513,11 @@ KeyMaster_V2_Update(const keymaster_device_t* dev,
|
|||
|
||||
keymaster_error_t err_type = KM_ERROR_OK;
|
||||
uint32_t in_params_size;
|
||||
in_params_size = compute_param_set_length(in_params);
|
||||
if(in_params) {
|
||||
in_params_size = compute_param_set_length(in_params);
|
||||
} else {
|
||||
in_params_size = 0;
|
||||
}
|
||||
|
||||
uint32_t paramsize;
|
||||
paramsize = sizeof(TEE_params_expand) +
|
||||
|
|
|
@ -75,7 +75,7 @@ static size_t tee_fs_get_absolute_filename(char *file, char *out,
|
|||
/* Safe to cast since we have checked that sizes are OK */
|
||||
return (size_t)s;
|
||||
}
|
||||
|
||||
#ifdef CREATE_TEE_DIR
|
||||
static int do_mkdir(const char *path, mode_t mode)
|
||||
{
|
||||
struct stat st;
|
||||
|
@ -113,19 +113,20 @@ static int mkpath(const char *path, mode_t mode)
|
|||
free(subpath);
|
||||
return status;
|
||||
}
|
||||
|
||||
#endif
|
||||
int tee_supp_fs_init(void)
|
||||
{
|
||||
size_t n;
|
||||
#ifdef CREATE_TEE_DIR
|
||||
mode_t mode = 0700;
|
||||
|
||||
#endif
|
||||
n = snprintf(tee_fs_root, sizeof(tee_fs_root), "%s/tee/", TEE_FS_PARENT_PATH);
|
||||
if (n >= sizeof(tee_fs_root))
|
||||
return -1;
|
||||
|
||||
#ifdef CREATE_TEE_DIR
|
||||
if (mkpath(tee_fs_root, mode) != 0)
|
||||
return -1;
|
||||
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
44
android/hardware/aw/sensors/aw_sensors/AccelSensor.cpp
Normal file → Executable file
44
android/hardware/aw/sensors/aw_sensors/AccelSensor.cpp
Normal file → Executable file
|
@ -262,13 +262,18 @@ int AccelSensor::readEvents(sensors_event_t* data, int count) {
|
|||
return -EINVAL;
|
||||
|
||||
ssize_t n = mInputReader.fill(data_fd);
|
||||
if (n < 0)
|
||||
return n;
|
||||
|
||||
if (n < 0) {
|
||||
ALOGE(" sensor AceelSensor readEvents fill buffer failed\n");
|
||||
return n;
|
||||
}
|
||||
int numEventReceived = 0;
|
||||
input_event const* event;
|
||||
ssize_t dataAvailable = 0;
|
||||
dataAvailable = mInputReader.readEvent(&event);
|
||||
if (dataAvailable <= 0)
|
||||
ALOGE("sensor no sensor data available\n");
|
||||
|
||||
while (count && mInputReader.readEvent(&event)) {
|
||||
while (count && dataAvailable) {
|
||||
int type = event->type;
|
||||
|
||||
if ((type == EV_ABS) || (type == EV_REL) || (type == EV_KEY)) {
|
||||
|
@ -276,28 +281,26 @@ int AccelSensor::readEvents(sensors_event_t* data, int count) {
|
|||
mInputReader.next();
|
||||
} else if (type == EV_SYN) {
|
||||
int64_t time = timevalToNano(event->time);
|
||||
|
||||
if (mPendingMask) {
|
||||
mPendingMask = 0;
|
||||
mPendingEvent.timestamp = time;
|
||||
|
||||
if (mEnabled) {
|
||||
*data++ = mPendingEvent;
|
||||
mAccData = mPendingEvent;
|
||||
count--;
|
||||
numEventReceived++;
|
||||
}
|
||||
}
|
||||
if (mPendingMask) {
|
||||
mPendingMask = 0;
|
||||
mPendingEvent.timestamp = time;
|
||||
*data++ = mPendingEvent;
|
||||
mAccData = mPendingEvent;
|
||||
count--;
|
||||
numEventReceived++;
|
||||
} else
|
||||
ALOGE("AccelSensor error no data but sync event\n");
|
||||
|
||||
if (!mPendingMask) {
|
||||
mInputReader.next();
|
||||
}
|
||||
|
||||
} else {
|
||||
ALOGE("AccelSensor: unknown event (type=%d, code=%d)",
|
||||
type, event->code);
|
||||
mInputReader.next();
|
||||
}
|
||||
}
|
||||
|
||||
dataAvailable = mInputReader.readEvent(&event);
|
||||
}
|
||||
|
||||
return numEventReceived;
|
||||
|
@ -332,6 +335,11 @@ void AccelSensor::processEvent(int code, int value) {
|
|||
mPendingMask = 1;
|
||||
mPendingEvent.acceleration.z = value * direct_z ;
|
||||
break;
|
||||
|
||||
default:
|
||||
ALOGE("AccelSensor: unknown code (value=%d, code=%d)\n",
|
||||
value, code);
|
||||
break;
|
||||
}
|
||||
|
||||
#ifdef DEBUG_SENSOR
|
||||
|
|
11
android/hardware/aw/sensors/aw_sensors/InputEventReader.cpp
Normal file → Executable file
11
android/hardware/aw/sensors/aw_sensors/InputEventReader.cpp
Normal file → Executable file
|
@ -50,11 +50,12 @@ InputEventCircularReader::~InputEventCircularReader()
|
|||
ssize_t InputEventCircularReader::fill(int fd)
|
||||
{
|
||||
size_t numEventsRead = 0;
|
||||
if (mFreeSpace) {
|
||||
if (mFreeSpace > 0) {
|
||||
const ssize_t nread = read(fd, mHead, mFreeSpace * sizeof(input_event));
|
||||
if (nread<0 || nread % sizeof(input_event)) {
|
||||
if (nread <= 0 || nread % sizeof(input_event)) {
|
||||
// we got a partial event!!
|
||||
return nread<0 ? -errno : -EINVAL;
|
||||
ALOGE("sensor InputEventCircular read data frome fd fail\n");
|
||||
return nread < 0 ? -errno : -EINVAL;
|
||||
}
|
||||
|
||||
numEventsRead = nread / sizeof(input_event);
|
||||
|
@ -68,7 +69,9 @@ ssize_t InputEventCircularReader::fill(int fd)
|
|||
mHead = mBuffer + s;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ALOGE("sensor InputEventCircular no free space for data\n");
|
||||
}
|
||||
|
||||
return numEventsRead;
|
||||
}
|
||||
|
|
24
android/hardware/aw/sensors/aw_sensors/ProximitySensor.cpp
Normal file → Executable file
24
android/hardware/aw/sensors/aw_sensors/ProximitySensor.cpp
Normal file → Executable file
|
@ -126,25 +126,23 @@ int ProximitySensor::readEvents(sensors_event_t* data, int count)
|
|||
processEvent(event->code, event->value);
|
||||
mInputReader.next();
|
||||
} else if (type == EV_SYN) {
|
||||
int64_t time = timevalToNano(event->time);
|
||||
int64_t time = timevalToNano(event->time);
|
||||
if (mPendingMask) {
|
||||
mPendingMask = 0;
|
||||
mPendingEvent.timestamp = time;
|
||||
|
||||
if (mPendingMask) {
|
||||
mPendingMask = 0;
|
||||
mPendingEvent.timestamp = time;
|
||||
*data++ = mPendingEvent;
|
||||
count--;
|
||||
numEventReceived++;
|
||||
} else
|
||||
ALOGE("ProximitySensor sensor error no data but sync event\n");
|
||||
|
||||
if (mEnabled) {
|
||||
*data++ = mPendingEvent;
|
||||
count--;
|
||||
numEventReceived++;
|
||||
}
|
||||
}
|
||||
|
||||
if (!mPendingMask) {
|
||||
if (!mPendingMask) {
|
||||
mInputReader.next();
|
||||
}
|
||||
|
||||
} else {
|
||||
ALOGE("AccelSensor: unknown event (type=%d, code=%d)",
|
||||
ALOGE("ProximitySensor: unknown event (type=%d, code=%d)",
|
||||
type, event->code);
|
||||
mInputReader.next();
|
||||
}
|
||||
|
|
10
android/hardware/aw/sensors/aw_sensors/sensorDetect.cpp
Normal file → Executable file
10
android/hardware/aw/sensors/aw_sensors/sensorDetect.cpp
Normal file → Executable file
|
@ -119,9 +119,9 @@ struct sensor_extend_t proSensorList[] = {
|
|||
SENSORS_PROXIMITY_HANDLE,
|
||||
SENSOR_TYPE_PROXIMITY,
|
||||
1.0f, 0.1f,
|
||||
0.873f, 0,
|
||||
0.873f, 50000,
|
||||
0,0,SENSOR_STRING_TYPE_PROXIMITY,
|
||||
0,0,SENSOR_FLAG_WAKE_UP,
|
||||
0,1000000,(SENSOR_FLAG_WAKE_UP | SENSOR_FLAG_ON_CHANGE_MODE),
|
||||
{ },
|
||||
},
|
||||
}
|
||||
|
@ -154,9 +154,9 @@ struct sensor_extend_t ligSensorList[] = {
|
|||
SENSORS_LIGHT_HANDLE,
|
||||
SENSOR_TYPE_LIGHT,
|
||||
4096.0f, 1.0f,
|
||||
0.09f, 0,
|
||||
0.09f, 50000,
|
||||
0,0,SENSOR_STRING_TYPE_LIGHT,
|
||||
0,0,SENSOR_FLAG_ON_CHANGE_MODE,
|
||||
0,1000000,SENSOR_FLAG_ON_CHANGE_MODE,
|
||||
{ },
|
||||
},
|
||||
},
|
||||
|
@ -243,7 +243,7 @@ struct sensor_extend_t gsensorList[] = {
|
|||
SENSOR_TYPE_ACCELEROMETER,
|
||||
4.0f*9.81f,
|
||||
(4.0f*9.81f)/1024.0f,
|
||||
0.2f, 8100,
|
||||
0.2f, 10000,
|
||||
0,0,SENSOR_STRING_TYPE_ACCELEROMETER,
|
||||
0,1000000,SENSOR_FLAG_CONTINUOUS_MODE,
|
||||
{ },
|
||||
|
|
11
android/hardware/aw/sensors/aw_sensors/sensors.cpp
Normal file → Executable file
11
android/hardware/aw/sensors/aw_sensors/sensors.cpp
Normal file → Executable file
|
@ -285,6 +285,7 @@ int sensors_poll_context_t::pollEvents(sensors_event_t* data, int count)
|
|||
{
|
||||
int nbEvents = 0;
|
||||
int n = 0;
|
||||
int noInCnt = 0;
|
||||
// check flush pending
|
||||
for (int i = 0; i < 10; i++) {
|
||||
if(getFlushPending(i)) {
|
||||
|
@ -301,7 +302,7 @@ int sensors_poll_context_t::pollEvents(sensors_event_t* data, int count)
|
|||
|
||||
n = poll(mPollFds, sNumber, -1);
|
||||
if (n<0) {
|
||||
ALOGE(" AW poll() failed (%s)", strerror(errno));
|
||||
ALOGE(" AW sensor poll() failed (%s)", strerror(errno));
|
||||
return 0;
|
||||
}
|
||||
if (mPollFds[wake].revents & POLLIN) {
|
||||
|
@ -314,7 +315,6 @@ int sensors_poll_context_t::pollEvents(sensors_event_t* data, int count)
|
|||
// read sensor event
|
||||
for (int i = 0 ; (count >= 0) && (i < sNumber) ; i++) {
|
||||
SensorBase* const sensor(mSensors[i]);
|
||||
|
||||
#ifdef DEBUG_SENSOR
|
||||
ALOGE("AW count:%d, mPollFds[%d].revents:%d, hasPendingEvents():%d,sNumber:%d\n",
|
||||
count, i, mPollFds[i].revents, sensor->hasPendingEvents(),sNumber);
|
||||
|
@ -324,10 +324,15 @@ int sensors_poll_context_t::pollEvents(sensors_event_t* data, int count)
|
|||
if (nb < count) {
|
||||
mPollFds[i].revents = 0;
|
||||
}
|
||||
if (nb <= 0)
|
||||
ALOGE("AW sensor: %d error readEvents return %d\n", i, nb);
|
||||
count -= nb;
|
||||
nbEvents += nb;
|
||||
data += nb;
|
||||
}
|
||||
} else
|
||||
noInCnt++;
|
||||
if (noInCnt == sNumber)
|
||||
ALOGE("AW sensor error no data pollin\n");
|
||||
}
|
||||
return nbEvents;
|
||||
}
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -14,10 +14,11 @@
|
|||
# limitations under the License.
|
||||
#
|
||||
|
||||
include hardware/aw/wlan/config/config.mk
|
||||
include hardware/aw/wlan/firmware/broadcom/ap6212/device-bcm.mk
|
||||
#include hardware/aw/wlan/firmware/broadcom/ap6356s/device-bcm.mk
|
||||
#include hardware/aw/wlan/firmware/broadcom/ap6255/device-bcm.mk
|
||||
#include hardware/aw/wlan/firmware/broadcom/ap6210/device-bcm.mk
|
||||
#include hardware/aw/wlan/firmware/broadcom/ap6330/device-bcm.mk
|
||||
#include hardware/aw/wlan/firmware/broadcom/ap6335/device-bcm.mk
|
||||
include hardware/aw/wlan/firmware/broadcom/ap6356s/device-bcm.mk
|
||||
include hardware/aw/wlan/firmware/broadcom/ap6255/device-bcm.mk
|
||||
include hardware/aw/wlan/firmware/broadcom/ap6210/device-bcm.mk
|
||||
include hardware/aw/wlan/firmware/broadcom/ap6330/device-bcm.mk
|
||||
include hardware/aw/wlan/firmware/broadcom/ap6335/device-bcm.mk
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue