summaryrefslogtreecommitdiffstats
path: root/libsensors/CompassSensor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libsensors/CompassSensor.cpp')
-rw-r--r--libsensors/CompassSensor.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/libsensors/CompassSensor.cpp b/libsensors/CompassSensor.cpp
index f4b3685..4ed3e20 100644
--- a/libsensors/CompassSensor.cpp
+++ b/libsensors/CompassSensor.cpp
@@ -21,6 +21,7 @@
#include <unistd.h>
#include <dirent.h>
#include <sys/select.h>
+#include <cutils/properties.h>
#include <cutils/log.h>
@@ -88,6 +89,12 @@ int CompassSensor::enable(int32_t, int en) {
err = write(fd, buf, sizeof(buf));
close(fd);
mEnabled = flags;
+
+ /* Since the migration to 3.0 kernel, orientationd doesn't poll
+ * the enabled state properly, so start it when it's enabled and
+ * stop it when we're done using it.
+ */
+ property_set(mEnabled ? "ctl.start" : "ctl.stop", "orientationd");
return 0;
}
return -1;