Commit Graph

91 Commits

Author SHA1 Message Date
Mark Salyzyn 993146092f am d4dabf87: am cdbf28b3: Merge "native frameworks: 64-bit compile issues"
* commit 'd4dabf872ac0a12e12aebae9032f7d62762c2aeb':
  native frameworks: 64-bit compile issues
2014-03-13 23:12:09 +00:00
Mark Salyzyn d4dabf872a am cdbf28b3: Merge "native frameworks: 64-bit compile issues"
* commit 'cdbf28b3f7f5327f4cb0eb95b8326bf4c24c87ba':
  native frameworks: 64-bit compile issues
2014-03-13 15:26:10 +00:00
Mark Salyzyn 92dc3fc52c native frameworks: 64-bit compile issues
- Fix format (print/scanf)
- Suppress unused argument warning messages (bonus)

Change-Id: I05c7724d2aba6da1e82a86000e11f3a8fef4e728
2014-03-12 13:12:44 -07:00
Aravind Akella 35348dc712 am e7643e43: am 8ae7c02e: am ffac23b2: am 4b84704b: Ignore flush complete events when recording last value for a sensor.
* commit 'e7643e431abc2d1b42ab1d68913ec22d0b180554':
  Ignore flush complete events when recording last value for a sensor.
2014-03-06 02:57:23 +00:00
Aravind Akella 8ae7c02e6f am ffac23b2: am 4b84704b: Ignore flush complete events when recording last value for a sensor.
* commit 'ffac23b210a96e769fd79ae912b44a185e7d69bd':
  Ignore flush complete events when recording last value for a sensor.
2014-03-06 02:24:29 +00:00
Aravind Akella 4b84704b97 Ignore flush complete events when recording last value for a sensor.
Bug: 11822806
Change-Id: I1402d6684ed71ed413aef6a7be3aad945b331ec2
2014-03-06 00:48:59 +00:00
Patrick Tjin eefced119b Add uid to sensorservice's dump of active connections
Change-Id: I1c365157bcd28a93635dbde4a8d91c79750e03ae
2014-02-05 15:06:03 -08:00
Aravind Akella ebff73c37d Bug fix for SensorFusion data rate.
SensorFusion is always returning data at the slowest possible sampling rate (5 Hz). batch() is getting called twice, first time with the requested rate and second time with the slowest rate (which overwrites the requested rate). Fix batch call in SensorFusion::activate()

Bug: 12064319
Change-Id: If62f3e514233f69810336fd22b136b4395b667d3
2014-01-31 22:33:51 +00:00
Aravind Akella 8850909038 Bug fix for SensorFusion data rate.
SensorFusion is always returning data at the slowest possible sampling rate (5 Hz). batch() is getting called twice, first time with the requested rate and second time with the slowest rate (which overwrites the requested rate). Fix batch call in SensorFusion::activate()

Bug: 12064319
Change-Id: If62f3e514233f69810336fd22b136b4395b667d3
2013-12-10 01:57:12 +00:00
Aravind Akella 3d0c7797ac am 245c4339: am 46417b84: Merge "Bug fixes for SensorService" into klp-dev
* commit '245c43395b9bb6502e0a4bcde4c60ad9541e5ce2':
  Bug fixes for SensorService
2013-10-25 18:12:58 -07:00
Aravind Akella b4099e77ec Bug fixes for SensorService
i) Emulate Flush for AOSP Fusion Sesnsors on newer HALs that support batching.
ii) Early return if there are no events for the current SensorEventConnection.

Bug: 11325707, 11376538

Change-Id: Idb856302463649a99d3d5d0c965bb06ba06b8e1d
2013-10-25 13:58:58 -07:00
Aravind Akella e276feb813 am 487c7815: am 641a1868: Merge "SensorService Flush API bug fix." into klp-dev
* commit '487c7815d7d81570c4f2cf37ceddf10ec84e0c39':
  SensorService Flush API bug fix.
2013-10-15 10:07:23 -07:00
Aravind Akella c551eac5b1 SensorService Flush API bug fix.
SensorService is dead locking itself when flush is called on older devices which don't support batching. mConnectionLock is acquired twice.

Change-Id: I5c25585bfb2b396df4b05826a9cba1da7997a3ee
2013-10-14 17:09:19 -07:00
Aravind Akella 4a1e00fb3a am 1f1e5768: am 5d6aa951: Merge "Change API from flush(handle) to flush(). Call flush on all active sensors in the given SensorEventConnection." into klp-dev
* commit '1f1e576840d5b36a091368abb6fe6610384b6449':
  Change API from flush(handle) to flush(). Call flush on all active sensors in the given SensorEventConnection.
2013-10-10 19:26:34 -07:00
Aravind Akella 701166d9f6 Change API from flush(handle) to flush(). Call flush on all active sensors in the given SensorEventConnection.
Change-Id: I4ef2bec80406c517903ab9782dc9eaf3fa8b7f36
2013-10-09 17:26:01 -07:00
Mike Lockwood 63ff1c644f Cleanup Binder interface between sensorservice and BatteryStats
Change-Id: Ia507160a2534059afe93849c8efc8407a046b50e
2013-09-25 09:28:41 -07:00
Aravind Akella fca43392b7 Merge "Fix for AOSP fusion sensors not handling multiple clients correctly." into klp-dev 2013-09-17 18:17:50 +00:00
Aravind Akella bf72deea2f Fix for AOSP fusion sensors not handling multiple clients correctly.
Bug: 10786801
Change-Id: I7b938bc583a303a30237c3d93b5accbf64cc90b5
2013-09-16 15:49:49 -07:00
Aravind Akella 4c8b951f8d Sensor Batching Bug fixes.
i) SensorService dropping events. Increase SOCKET_BUFFER_SIZE in BitTube ctor.
ii) Call flush before every activate.
iii) Emulate flush for older devices. Add a trivial flush complete event when flush is called.

Bug: 10641596
Change-Id: I30d0f3948e830457143f16e157b6ad81908687ce
2013-09-16 14:43:02 -07:00
Mathias Agopian 90ed3e8d78 fix a few problems with BitTube
BitTube used to send objects one at a time and didn't
handle errors properly.

We now send all the objects in one call, which means they
have to be read as a single batch as well. This changes the
BitTube API.

Update SensorService to the new API.

Also added an API to set the size of the send buffer.

Bug: 10641596
Change-Id: I77c70d35e351fdba0416fae4b7ca3b1d56272251
2013-09-10 21:10:53 -07:00
Aravind Akella 724d91d778 Sensor batching. Changes to the native code.
Bug: 10109508
Change-Id: I7333f3aac76125a8226a4c99c901fb904588df04
2013-09-03 17:04:36 -07:00
Mathias Agopian 7ffaa7c60d move services executables sources in their respective src folder
Change-Id: Ic65434a26c7fed1699abf0851fec6faa40e09c0c
2013-07-22 12:25:18 -07:00
Dianne Hackborn ee83397bb0 Fix issue #9860494: Waiting for service batteryinfo...
I changed the name of the service, this needs to follow.

Change-Id: Id8e346cee9d75cfe142cd43f6aea43302878b6dc
2013-07-15 15:20:11 -07:00
Mathias Agopian cdd7d8bc14 resolved conflicts for merge of 00aea5c5 to master
Change-Id: Ie1769be863ee2d411eae451907a928db57882e14
2013-07-12 14:19:10 -07:00
Mathias Agopian ac9a96da65 fix a dead-lock in sensorservice
sensorservice would deadlock if for some reason
a sensor failed to enable.

simplifed the code a bit, and made it behave a little
closer to mr1.1 -- I couldn't convince myself that
some changes in how locks were used were correct.

Bug: 9794362
Change-Id: I6110f5dbb67e543f1c71d127de2299232badb36a
2013-07-12 02:08:06 -07:00
Mathias Agopian ba02cd2f6c improve sensorservice's dumpsys
it now displays the reported trigger mode properly, as well as
the number and type of the last received data

Change-Id: I2ff64b32ab71f1332bc2e09671c8c02bb9550490
2013-07-08 15:44:41 -07:00
Mathias Agopian 7438fd1a01 simplify some unnecessary complex code
getSensorType() ran in O(n) instead of O(1). fix that.

Change-Id: Idcf29e46fc34db32604a0d8e5a9156486783b74f
2013-07-08 12:50:39 -07:00
Mathias Agopian 24f9bea8eb revert parts of dc5b63e40, which made gyro drift estimation unstable
initialize the system covariance matrix with non-zero
    values for the gyro-bias part. this improves the initial
    bias estimation speed significantly.

the initial covariance matrix should be small because the drift
changes slowly. the real problem is that we're not starting with
a good estimate of the drift, which this algorithm relies on.

so with this revert, it'll take a while for the drift to be estimated
but it won't be unstable.

Change-Id: Id5584bc114a2390d507643b2451b2650c1b90721
2013-05-30 14:26:36 -07:00
Mathias Agopian 2e2a560c4b use gyro timestamp directly in fusion
we used to estimate the gyro rate and deduce the period from that
but it turns out this is causing problems.

Bug: 5192288
Change-Id: I8ca826d0e11e488587bcaa1720de99e92b82f191
2013-05-30 14:18:23 -07:00
Mathias Agopian 0319306670 various fixes to the sensorservice
1) "google" sensors are now reporting AOSP as the vendor string
2) don't expose the system's sensor fusion if the HAL provides it
3) use uncalibrated gyro if availble for the system's sensor fusion

Change-Id: I25140436cdb29d55e39fd6fbbf8c44a410a83d5c
2013-05-16 18:47:21 -07:00
Mathias Agopian b6df7d0e4c make all libsurfaceflinger and libsensorservice symbols's visibility hidden
we only export the main entry-point.
this saves about 150KB.

Change-Id: I55eb2b6705386fdfa43860deb62f9cdd2a0982aa
2013-05-09 16:51:37 -07:00
Jaikumar Ganesh 4c01b1ad80 Fix activation issue with auto disabled sensors.
Auto disabled sensors get auto disabled after trigger.
An activation after this wasn't working because the
state was not being reset.

b/8609561

Change-Id: If72c9f27345e91671d7ad0a7a066f6dc3d255b78
2013-04-17 14:58:22 -07:00
Jaikumar Ganesh 4342fdf14f Sensor changes.
1. Some sensors can wake up the AP. Add wakelocks.
2. Handle backward compatibility for rotation vector
   heading accuracy.
3. Cleanup auto disabled sensors.
4. Fix race condition between enable and dispatch.

Change-Id: I39dddf12e208d83cd288201986ee994312555820
2013-04-12 09:34:44 -07:00
Ying Wang 8a0cb4ee0b Add liblog
Bug: 8580410
Change-Id: I2ca4fa00dde0b574df3619134836bcb9315bd506
2013-04-09 21:55:39 -07:00
Mathias Agopian 787ac1b388 improve sensor battery usage tracking
until now we were tracking when a sensors was
physically enabled or disabled and we were reporting
that to the BattaryService.

this wasn incorrect because we could have several different
apps enabling the same sensor, so the accounting by the
battery service would be incorrect in that case (depending
on the order in which these apps disabled said sensor).

BatteryService tracks sensors per uid, however SensorService
does this per binder connection, so we could have several
binder connections for the same uid, to solve this we keep
a list of sensor/uid -> count, which is the bulk of this
change.

Bug: 6661604
Change-Id: I561c198c42ba1736a8671bdacda4c76d72b9dd6f
2012-09-18 23:33:36 -07:00
Mathias Agopian 5307d17fe3 track UID with connections
Change-Id: Id4865f3cd27a95acdbbfdff1f2bb4123f312a13b
2012-09-18 23:33:36 -07:00
Mathias Agopian a5b8e8bfa9 fix a typo in SensorService
It shouldn't have caused much harm though.
Also log a warning when enabling a sensor
for a connection that is already enabled.

Change-Id: Ia4a052381e79183cd4cb1bedc7ba08e5228d7a38
2012-09-18 17:19:04 -07:00
Mathias Agopian 33264868ba add a way to enable debugging sensors at runtime
if debug.sensors is true, extra debugging
sensors are enabled and HAL provided sensor fusion
is disabled

Change-Id: I9b093424edb8c5363d1337237cdf6abe4ab266f9
2012-06-28 19:46:54 -07:00
Mathias Agopian bdf277355d improve sensor fusion
we now use a better quaternion propagation equation
this is especially beneficial for lower gyroscope rates

Change-Id: Ifbf273c8a092a8849ca4fe4b9bca30787e924018
2012-06-28 18:21:43 -07:00
Mathias Agopian 8f11b24a72 add some comments
Change-Id: Ia2e2c9531715fc2bd5b51c4dc58389e01abfe7e6
2012-06-28 17:35:14 -07:00
Mathias Agopian dc5b63e40e small improvement to sensor fusion
1) there was a typo when computing the system covariance
a term in dT^3 was ommitted; the impact was was very limited
because of how small this term is.

2) initialize the system covariance matrix with non-zero
values for the gyro-bias part. this improves the initial
bias estimation speed significantly.

3) added comments here and there

Change-Id: I4328c9cca73e089889d5e74b9fda99d7831762dc
2012-06-27 17:07:56 -07:00
Mathias Agopian 8dd4fe8dd3 fix a potential buffer overflow in sensorservice
Bug: 6580560
Change-Id: Icf6cafbca09174515a964a7cd69d8cc589ad52de
2012-06-27 17:07:56 -07:00
Mathias Agopian d1920ffede Fix a stack corruption in sensorservice
Bug: 6576732
Change-Id: If0f2fb0d0c35b932fb77cd262e676042145b28f9
2012-06-27 17:07:56 -07:00
Mathias Agopian a5c106a4f0 fix a typo causing sensor event to be sorted in reverse chronological order
Change-Id: I041c64616d88ed1abb5efc90ed9eb0d9baeb4832
2012-06-27 17:07:56 -07:00
Mathias Agopian 907103bf18 usea socketpair instead of a pipe in BitTube
Bug: 6252830
Change-Id: I363cc7e9f73a5b7d8bbccee312c6d8938c84e99a
2012-06-27 17:07:56 -07:00
Steve Block f5a1230d32 Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE
See https://android-git.corp.google.com/g/#/c/157220

Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
2012-06-27 17:07:56 -07:00
Steve Block 3c20fbed7f Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE
See https://android-git.corp.google.com/g/157065

Bug: 5449033
Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
2012-06-27 17:07:56 -07:00
Steve Block c7839e8976 Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE
See https://android-git.corp.google.com/g/156801

Bug: 5449033
Change-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea
2012-06-27 17:07:56 -07:00
Steve Block a551237de1 Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE
See https://android-git.corp.google.com/g/156016

Bug: 5449033
Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
2012-06-27 17:07:56 -07:00
Mathias Agopian 1a62301fc5 handle EINTR when calling sensor HAL's poll function
some sensor HALs don't handle EINTR, make sure to catch it in the
sensorservice.

also if we ever encounter an error that we can't handle, we abort
which will restart us (or the whole system process if we're running
in it)

Bug: 5511741
Change-Id: I7051882b06980f778736b53d6cd021a99b5ca8d2
2012-06-27 17:07:56 -07:00