summaryrefslogtreecommitdiffstats
path: root/libsensors_iio/MPLSupport.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libsensors_iio/MPLSupport.cpp')
-rw-r--r--libsensors_iio/MPLSupport.cpp109
1 files changed, 16 insertions, 93 deletions
diff --git a/libsensors_iio/MPLSupport.cpp b/libsensors_iio/MPLSupport.cpp
index c0b7d2a..a961d78 100644
--- a/libsensors_iio/MPLSupport.cpp
+++ b/libsensors_iio/MPLSupport.cpp
@@ -1,19 +1,3 @@
-/*
-* Copyright (C) 2012 Invensense, Inc.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
#include <MPLSupport.h>
#include <string.h>
#include <stdio.h>
@@ -21,8 +5,6 @@
#include "SensorBase.h"
#include <fcntl.h>
-#include "ml_sysfs_helper.h"
-
int inv_read_data(char *fname, long *data)
{
VFUNC_LOG;
@@ -83,13 +65,20 @@ int enable_sysfs_sensor(int fd, int en)
int err = 0;
if (fd >= 0) {
- char c = en ? '1' : '0';
- nb = write(fd, &c, 1);
+ char buf[2];
+ if (en) {
+ buf[0] = '1';
+ nb = write(fd, buf, 1);
+ } else {
+ buf[0] = '0';
+ nb = write(fd, buf, 1);
+ }
+ buf[1] = '\0';
if (nb <= 0) {
err = errno;
LOGE("HAL:enable_sysfs_sensor - write %c returned %d (%s / %d)",
- c, nb, strerror(err), err);
+ buf[0], nb, strerror(err), err);
}
close(fd);
} else {
@@ -122,28 +111,6 @@ int write_attribute_sensor(int fd, long data)
return num_b;
}
-/* This one DOES NOT close FDs for you */
-int write_attribute_sensor_continuous(int fd, long data)
-{
- VFUNC_LOG;
-
- int num_b = 0;
-
- if (fd >= 0) {
- char buf[80];
- sprintf(buf, "%ld", data);
- num_b = write(fd, buf, strlen(buf) + 1);
- if (num_b <= 0) {
- int err = errno;
- LOGE("HAL:write fd %d returned '%s' (%d)", fd, strerror(err), err);
- } else {
- LOGV_IF(EXTRA_VERBOSE, "HAL:fd=%d write attribute to %ld", fd, data);
- }
- }
-
- return num_b;
-}
-
int read_sysfs_int(char *filename, int *var)
{
int res=0;
@@ -152,10 +119,10 @@ int read_sysfs_int(char *filename, int *var)
sysfsfp = fopen(filename, "r");
if (sysfsfp!=NULL) {
fscanf(sysfsfp, "%d\n", var);
- fclose(sysfsfp);
+ fclose(sysfsfp);
} else {
- res = errno;
- LOGE("HAL:ERR open file %s to read with error %d", filename, res);
+ LOGE("HAL:ERR open file to read");
+ res= -1;
}
return res;
}
@@ -168,54 +135,10 @@ int write_sysfs_int(char *filename, int var)
sysfsfp = fopen(filename, "w");
if (sysfsfp!=NULL) {
fprintf(sysfsfp, "%d\n", var);
- fclose(sysfsfp);
+ fclose(sysfsfp);
} else {
- res = errno;
- LOGE("HAL:ERR open file %s to read with error %d", filename, res);
+ LOGE("HAL:ERR open file to write");
+ res= -1;
}
return res;
}
-
-int fill_dev_full_name_by_prefix(const char* dev_prefix,
- char *dev_full_name, int len)
-{
- char cand_name[20];
- int prefix_len = strlen(dev_prefix);
- strncpy(cand_name, dev_prefix, sizeof(cand_name) / sizeof(cand_name[0]));
-
- // try adding a number, 0-9
- for(int cand_postfix = 0; cand_postfix < 10; cand_postfix++) {
- snprintf(&cand_name[prefix_len],
- sizeof(cand_name) / sizeof(cand_name[0]),
- "%d", cand_postfix);
- int dev_num = find_type_by_name(cand_name, "iio:device");
- if (dev_num != -ENODEV) {
- strncpy(dev_full_name, cand_name, len);
- return 0;
- }
- }
- // try adding a small letter, a-z
- for(char cand_postfix = 'a'; cand_postfix <= 'z'; cand_postfix++) {
- snprintf(&cand_name[prefix_len],
- sizeof(cand_name) / sizeof(cand_name[0]),
- "%c", cand_postfix);
- int dev_num = find_type_by_name(cand_name, "iio:device");
- if (dev_num != -ENODEV) {
- strncpy(dev_full_name, cand_name, len);
- return 0;
- }
- }
- // try adding a capital letter, A-Z
- for(char cand_postfix = 'A'; cand_postfix <= 'Z'; cand_postfix++) {
- snprintf(&cand_name[prefix_len],
- sizeof(cand_name) / sizeof(cand_name[0]),
- "%c", cand_postfix);
- int dev_num = find_type_by_name(cand_name, "iio:device");
- if (dev_num != -ENODEV) {
- strncpy(dev_full_name, cand_name, len);
- return 0;
- }
- }
- return 1;
-}
-