aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Android.mk5
-rw-r--r--samsung-ipc/device/h1/h1_ipc.c6
-rw-r--r--samsung-ipc/ipc.c15
3 files changed, 20 insertions, 6 deletions
diff --git a/Android.mk b/Android.mk
index 8997e80..70109d0 100644
--- a/Android.mk
+++ b/Android.mk
@@ -45,9 +45,12 @@ samsung-ipc_files := \
samsung-ipc/misc.c \
samsung-ipc/net.c \
samsung-ipc/sec.c \
- samsung-ipc/device/$(samsung-ipc_device)/$(samsung-ipc_device)_ipc.c
+ samsung-ipc/device/h1/h1_ipc.c \
+ samsung-ipc/device/crespo/crespo_ipc.c \
+ samsung-ipc/device/aries/aries_ipc.c
LOCAL_SRC_FILES := $(samsung-ipc_files)
+LOCAL_CFLAGS += -DIPC_DEVICE_EXPLICIT=\"$(samsung-ipc_device)\"
LOCAL_SHARED_LIBRARIES := libutils
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include \
diff --git a/samsung-ipc/device/h1/h1_ipc.c b/samsung-ipc/device/h1/h1_ipc.c
index 1f6b825..ffe5ca3 100644
--- a/samsung-ipc/device/h1/h1_ipc.c
+++ b/samsung-ipc/device/h1/h1_ipc.c
@@ -131,7 +131,7 @@ int h1_ipc_send(struct ipc_client *client, struct ipc_message_info *request)
hex_dump(frame, frame_length);
- client->handlers->write(frame, frame_length, client->handlers->io_data);
+ client->handlers->write(frame, frame_length, client->handlers->write_data);
free(frame);
@@ -147,14 +147,14 @@ int h1_ipc_recv(struct ipc_client *client, struct ipc_message_info *response)
int num_read;
int left;
- num_read = client->handlers->read((void*)buf, sizeof(buf), client->handlers->io_data);
+ num_read = client->handlers->read((void*)buf, sizeof(buf), client->handlers->read_data);
if(num_read == sizeof(buf) && *buf == FRAME_START) {
frame_length = (unsigned short*)&buf[1];
left = (*frame_length - 3 + 1);
data = (unsigned char*)malloc(left);
- num_read = client->handlers->read((void*)data, left, client->handlers->io_data);
+ num_read = client->handlers->read((void*)data, left, client->handlers->read_data);
if(num_read == left && data[left-1] == FRAME_END) {
ipc = (struct ipc_header*)data;
diff --git a/samsung-ipc/ipc.c b/samsung-ipc/ipc.c
index 67a9cfe..7ac9694 100644
--- a/samsung-ipc/ipc.c
+++ b/samsung-ipc/ipc.c
@@ -30,6 +30,7 @@
#include <termios.h>
#include <fcntl.h>
#include <string.h>
+#include <ctype.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <sys/types.h>
@@ -66,7 +67,7 @@ int ipc_device_detect(void)
#ifdef IPC_DEVICE_EXPLICIT
for(i=0 ; i < ipc_devices_count ; i++)
{
- if(strcmp(IPC_DEVICE_EXPLICIT, ipc_device[i].name) == 0)
+ if(strcmp(IPC_DEVICE_EXPLICIT, ipc_devices[i].name) == 0)
{
index = i;
break;
@@ -87,9 +88,19 @@ int ipc_device_detect(void)
int rc;
if ((rc = strncmp(pch, "Hardware", 9)) == 9)
{
+ char *str = (void *) (pch + 9);
+ int len = strlen(str);
+ char tmp;
+
+ for(i=0 ; i < len ; i++)
+ {
+ tmp = (char) tolower(str[i]);
+ str[i] = tmp;
+ }
+
for(i=0 ; i < ipc_devices_count ; i++)
{
- if(strcmp(pch, ipc_devices[i].board_name) == 0)
+ if(strstr(pch, ipc_devices[i].board_name) != NULL)
{
index = i;
break;