diff options
author | Florian Boor <florian.boor@kernelconcepts.de> | 2007-07-24 13:55:13 +0000 |
---|---|---|
committer | Florian Boor <florian.boor@kernelconcepts.de> | 2007-07-24 13:55:13 +0000 |
commit | 10f9c4bee78b3afa5cc44b62e9cd61289940dade (patch) | |
tree | fb4722c92786081b8cd20115a6fb5beb597909da /packages/gpephone/phoneserver | |
parent | 5822e102ca298cffc468fc9766f5a4e3ce0f4eb8 (diff) |
phoneserver: Add patch for FIC GTA01 support.
Diffstat (limited to 'packages/gpephone/phoneserver')
-rw-r--r-- | packages/gpephone/phoneserver/phoneserver-gta01.patch | 391 |
1 files changed, 391 insertions, 0 deletions
diff --git a/packages/gpephone/phoneserver/phoneserver-gta01.patch b/packages/gpephone/phoneserver/phoneserver-gta01.patch new file mode 100644 index 0000000000..fc5968ef5a --- /dev/null +++ b/packages/gpephone/phoneserver/phoneserver-gta01.patch @@ -0,0 +1,391 @@ +diff -u -r phoneserver-1.0/config.h phoneserver-1.0-mine/config.h +--- phoneserver-1.0/config.h 2007-02-02 13:20:13.000000000 +0100 ++++ phoneserver-1.0-mine/config.h 2007-07-10 15:06:28.000000000 +0200 +@@ -21,8 +21,7 @@ + + /* serial port name */ + #ifndef SERIAL_PORT +-//#define SERIAL_PORT "/dev/pts/0" //ttyS1" +-#define SERIAL_PORT "/dev/ttyS1" //ttyS1" ++#define SERIAL_PORT "/dev/ttySAC0" /* NEO1973 */ + #endif /* */ + + /* serial port baudrate */ +@@ -30,6 +29,8 @@ + #define SERIAL_BAUDRATE B115200 + #endif /* */ + ++#define CRTSCTS 1 /* NEO needs RTS/CTS flow control */ ++ + /* buffer to hold AT command response */ + #ifndef ATCOMMAND_BUFFER_SIZE + #define ATCOMMAND_BUFFER_SIZE 10240 +diff -u -r phoneserver-1.0/Makefile.am phoneserver-1.0-mine/Makefile.am +--- phoneserver-1.0/Makefile.am 2007-02-02 13:20:13.000000000 +0100 ++++ phoneserver-1.0-mine/Makefile.am 2007-07-10 13:14:47.000000000 +0200 +@@ -3,7 +3,7 @@ + + INCLUDES = @DEPS_CFLAGS@ -DPREFIX=\"@prefix@\" -D_GNU_SOURCE -Wall \ + -DDBUS_API_SUBJECT_TO_CHANGE \ +- -DDEBUG -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -DCELLON_PLATFORM ++ -DDEBUG -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -DT39_PLATFORM -DNEO1973 + LDADD = @DEPS_LIBS@ + + +diff -u -r phoneserver-1.0/Makefile.in phoneserver-1.0-mine/Makefile.in +--- phoneserver-1.0/Makefile.in 2007-02-02 13:25:43.000000000 +0100 ++++ phoneserver-1.0-mine/Makefile.in 2007-07-10 13:07:16.000000000 +0200 +@@ -158,7 +158,7 @@ + target_alias = @target_alias@ + INCLUDES = @DEPS_CFLAGS@ -DPREFIX=\"@prefix@\" -D_GNU_SOURCE -Wall \ + -DDBUS_API_SUBJECT_TO_CHANGE \ +- -DDEBUG -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -DCELLON_PLATFORM ++ -DDEBUG -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -DT39_PLATFORM + + LDADD = @DEPS_LIBS@ + phoneserver_SOURCES = phoneserver.c phone-server-voc.c phone-server-sms.c phone-server-mul.c phone-server-pbk.c \ +diff -u -r phoneserver-1.0/phoneserver.c phoneserver-1.0-mine/phoneserver.c +--- phoneserver-1.0/phoneserver.c 2007-02-02 13:20:13.000000000 +0100 ++++ phoneserver-1.0-mine/phoneserver.c 2007-07-10 13:43:57.000000000 +0200 +@@ -324,22 +324,31 @@ + phonebook_update_entry_handler); + #endif + ++#ifdef NEO1973 ++ system("echo 1 > /sys/devices/platform/gta01-pm-gsm.0/power_on"); ++ sleep(1); ++#endif ++ + // tapi begins + // Initialize + result = tapi_initialize (); + + // Get file descripter +- if (result == TEL_ERR_NONE) +- { ++ if (result == TEL_ERR_NONE) { + result = tel_get_fd (sid, (UInt32 *) & g_fd); ++ } else { ++ /* without modem there is nothing we can do */ ++ exit(1); + } ++ + // Open session +- if (result == TEL_ERR_NONE) +- { ++ if (result == TEL_ERR_NONE) { + result = tel_open_session (&sid); ++ } else { ++ /* without fd we are as well useless */ ++ exit(1); + } + +- + if (result == TEL_ERR_NONE) + { + /* pbk section */ +@@ -357,6 +366,9 @@ + tel_evt_register (sid, TEL_EVENT_MTSMS, sms_incoming_cb, NULL); + tel_evt_register (sid, TEL_EVENT_STATUS_REPORT, sta_report_cb, NULL); + ++ } else { ++ /* without session we are also lost */ ++ exit(1); + } + // tapi ends + #if 1 +diff -u -r phoneserver-1.0/phone-server-voc.c phoneserver-1.0-mine/phone-server-voc.c +--- phoneserver-1.0/phone-server-voc.c 2007-02-02 13:20:13.000000000 +0100 ++++ phoneserver-1.0-mine/phone-server-voc.c 2007-07-10 16:38:12.000000000 +0200 +@@ -1028,6 +1028,7 @@ + g_print ("$$$$$$$$$$$$$$$$$$$notify VOC about the %s, and call_id = %d\n", + pmethod, call_id); + ++#if 0 + //0803 + + guint index; +@@ -1038,7 +1039,7 @@ + ("###The held call which is going to be hungup is equal to: %d, index=%d,cid=%d", + call_id, index, cid_dbus); + //0803 +- ++#endif + + if (!strcmp (pmethod, "accept")) + { +diff -u -r phoneserver-1.0/serial.c phoneserver-1.0-mine/serial.c +--- phoneserver-1.0/serial.c 2007-02-02 13:20:13.000000000 +0100 ++++ phoneserver-1.0-mine/serial.c 2007-07-10 15:07:14.000000000 +0200 +@@ -124,7 +124,7 @@ + + + /* Open a device with standard options. +- *Use value (-1) for "with_hw_handshake" if its specification is required from the user. ++ * Use value (-1) for "with_hw_handshake" if its specification is required from the user. + */ + int + serial_opendevice (const Int8 *file, Int32 with_odd_parity, Int32 with_async) +@@ -148,8 +148,7 @@ + + /* Set port settings for canonical input processing */ + tp.c_cflag = B0 | CS8 | CLOCAL | CREAD | HUPCL; +- if (with_odd_parity) +- { ++ if (with_odd_parity) { + tp.c_cflag |= (PARENB | PARODD); + tp.c_iflag = 0; + } +@@ -157,35 +156,36 @@ + tp.c_iflag = IGNPAR; + + #ifdef CRTSCTS ++ tp.c_cflag |= CRTSCTS; ++#else + tp.c_cflag &= ~CRTSCTS; +- +-#endif /* */ ++#endif + tp.c_oflag = 0; + tp.c_lflag = 0; + tp.c_cc[VMIN] = 1; + tp.c_cc[VTIME] = 0; ++ + retcode = tcflush (fd, TCIFLUSH); +- if (retcode == -1) +- { ++ if (retcode == -1) { + perror ("Gnokii serial_opendevice: tcflush"); + serial_close (fd); + return -1; + } ++ + retcode = tcsetattr (fd, TCSANOW, &tp); +- if (retcode == -1) +- { ++ if (retcode == -1) { + perror ("Gnokii serial_opendevice: tcsetattr"); + serial_close (fd); + return -1; + } ++ + serial_changespeed (fd, 115200); + + /* We need to turn off O_NONBLOCK now (we have CLOCAL set so it is safe). + *When we run some device script it really doesn't expect NONBLOCK! + */ + retcode = fcntl (fd, F_SETFL, 0); +- if (retcode == -1) +- { ++ if (retcode == -1) { + perror ("Gnokii serial_opendevice: fnctl(F_SETFL)"); + serial_close (fd); + return -1; +@@ -195,8 +195,7 @@ + + #if !(__unices__) + retcode = fcntl (fd, F_SETOWN, getpid ()); +- if (retcode == -1) +- { ++ if (retcode == -1) { + perror ("Gnokii serial_opendevice: fnctl(F_SETOWN)"); + serial_close (fd); + return -1; +@@ -223,12 +222,12 @@ + + # endif + #endif /* */ +- if (retcode == -1) +- { ++ if (retcode == -1) { + perror ("Gnokii serial_opendevice: fnctl(F_SETFL)"); + serial_close (fd); + return -1; + } ++ + return fd; + } + +@@ -240,15 +239,16 @@ + unsigned int flags; + + flags = TIOCM_DTR; ++ + if (dtr) + ioctl (fd, TIOCMBIS, &flags); +- + else + ioctl (fd, TIOCMBIC, &flags); ++ + flags = TIOCM_RTS; ++ + if (rts) + ioctl (fd, TIOCMBIS, &flags); +- + else + ioctl (fd, TIOCMBIC, &flags); + } +@@ -262,6 +262,7 @@ + FD_SET (fd, &readfds); + return select (fd + 1, &readfds, NULL, NULL, timeout); + } ++ + static int + serial_wselect (int fd, struct timeval *timeout) + { +@@ -361,12 +362,9 @@ + { + bs = n; + got = write (fd, buf + r, bs); +- if (got == 0) +- { +- g_print ("Serial write: oops, zero byte has written!\n"); +- } +- else if (got < 0) +- { ++ if (got == 0) { ++ g_print ("Serial write: oops, zero byte written!\n"); ++ } else if (got < 0) { + if (errno == EINTR) + continue; + if (errno != EAGAIN) +diff -u -r phoneserver-1.0/tapi.c phoneserver-1.0-mine/tapi.c +--- phoneserver-1.0/tapi.c 2007-02-02 13:20:13.000000000 +0100 ++++ phoneserver-1.0-mine/tapi.c 2007-07-10 16:51:22.000000000 +0200 +@@ -112,6 +112,7 @@ + /************************************************************************/ + /* Initialization Function Block */ + /************************************************************************/ ++tel_err_t tapi_Init_PowerOn (); + tel_err_t tapi_Init_SoftReset (); + tel_err_t tapi_Init_SetNoEcho (); + tel_err_t tapi_Init_SetCharset (); +@@ -287,6 +288,7 @@ + + ****************/ + static init_function init_func_table[] = { ++ tapi_Init_PowerOn, + tapi_Init_SoftReset, + tapi_Init_SetNoEcho, + tapi_Init_SetCharset, +@@ -477,6 +479,18 @@ + + + tel_err_t ++tapi_Init_PowerOn () ++{ ++ tel_err_t result; ++ Int8 *CommandStr; ++ ++ /* AT+CFUN=1 */ ++ CommandStr = AT_Builder_ExeCmd ((Int8 *) CMD_CFUN, (Int8 *) "=1", (Int8 *) NULL); ++ result = tapi_init_general (CommandStr); ++ return result; ++} ++ ++tel_err_t + tapi_Init_SoftReset () + { + tel_err_t result; +@@ -516,7 +530,7 @@ + //TODO: This phone does not support "HEX", we should set it to HEX + #ifdef T39_PLATFORM + CommandStr = +- AT_Builder_SetCmd ((Int8 *) CMD_CSCS, (Int8 *) "\"UTF-8\"", (Int8 *) NULL); ++ AT_Builder_SetCmd ((Int8 *) CMD_CSCS, (Int8 *) "\"8859-1\"", (Int8 *) NULL); + #endif + #ifdef CELLON_PLATFORM + CommandStr = +@@ -689,8 +703,8 @@ + (Int8 *) "0", (Int8 *) "1", (Int8 *) "0", (Int8 *) NULL); + #else + CommandStr = +- AT_Builder_SetCmd ((Int8 *) CMD_CNMI, (Int8 *) "3", (Int8 *) "1", +- (Int8 *) "0", (Int8 *) "0", (Int8 *) "0", (Int8 *) NULL); ++ AT_Builder_SetCmd ((Int8 *) CMD_CNMI, (Int8 *) "2", (Int8 *) "1", ++ (Int8 *) "0", (Int8 *) "1", (Int8 *) "0", (Int8 *) NULL); + #endif + result = tapi_init_general (CommandStr); + return result; +@@ -1737,7 +1751,7 @@ + (*evt)->evt_data.async_data.cb = tel_ctx.cur_async_evt.cb; + (*evt)->evt_data.async_data.user_data = tel_ctx.cur_async_evt.user_data; + #ifdef DEBUG +- //g_print("sms data is --> %s\n", data->user_data[0].text); ++ g_print("sms data is --> %s\n", data->user_data[0].text); + #endif + return TEL_ERR_NONE; + } +@@ -1979,14 +1993,14 @@ + sscanf (param_str, "%d", &index); + entry->index = index; + #ifdef DEBUG +- //g_print("index -> %d\n", index); ++ g_print("index -> %d\n", index); + #endif + /* number */ + param_str = (Int8 *) g_ptr_array_index (param, 1); + //exclude the quotation + memcpy (entry->number.number, param_str + 1, strlen (param_str) - 2); + #ifdef DEBUG +- //g_print("number -> %s\n", entry->number.number); ++ g_print("number -> %s\n", entry->number.number); + #endif + /* type */ + param_str = (Int8 *) g_ptr_array_index (param, 2); +@@ -1994,7 +2008,7 @@ + entry->number.npi = index & 0xF; + entry->number.ton = (index & 0x70) >> 4; + #ifdef DEBUG +- //g_print("type -> %s\n", param_str); ++ g_print("type -> %s\n", param_str); + #endif + /* text */ + param_str = (Int8 *) g_ptr_array_index (param, 3); +@@ -2015,7 +2029,7 @@ + char_unicode_decode (entry->text, entry_textbuffer, len); + #endif + #ifdef DEBUG +- //g_print("text -> %s\n", entry->text); ++ g_print("text -> %s\n", entry->text); + #endif + AT_Parser_Free (param); + /* add the entry into array */ +@@ -2524,11 +2538,11 @@ + tel_call_info_change_t *call_status = g_new0 (tel_call_info_change_t, 1); + at_command_buffer_t *cmd_buffer; + +- //g_print("AT_UNSO_PPURC_Handler called\n"); +-// cmd_buffer = tapi_get_cmd_buffer(in_buffer, CMD_PPURC, 0, NULL); ++ g_print("AT_UNSO_PPURC_Handler called\n"); ++ cmd_buffer = tapi_get_cmd_buffer(in_buffer, CMD_PPURC, 0, NULL); + #ifdef DEBUG +- //g_print("====cur parser pos is ---> %d\n", tel_ctx.cur_parser_pos); +- //g_print("====total parser item is ---> %d\n", tel_ctx.cur_resp.cmd->len); ++ g_print("====cur parser pos is ---> %d\n", tel_ctx.cur_parser_pos); ++ g_print("====total parser item is ---> %d\n", tel_ctx.cur_resp.cmd->len); + #endif + cmd_buffer = + tapi_get_cmd_buffer (in_buffer, CMD_PPURC, tel_ctx.cur_parser_pos - 1, +@@ -3749,8 +3763,10 @@ + break; + case TEL_HANGUPALL: + /* +CHUP */ ++ //CommandStr = ++ // AT_Builder_ExeCmd ((Int8 *) CMD_CHUP, (Int8 *) NULL, (Int8 *) NULL); + CommandStr = +- AT_Builder_ExeCmd ((Int8 *) CMD_CHUP, (Int8 *) NULL, (Int8 *) NULL); ++ AT_Builder_ExeCmd ((Int8 *) "H", (Int8 *) NULL, (Int8 *) NULL); + break; + case TEL_HANGUPACTIVE_ACCEPTOTHER: + /* +CHLD=1 */ +@@ -3859,7 +3875,8 @@ + break; + case TEL_HANGUPALL: + /* +CHUP */ +- AT_Builder_AppendCmd ((Int8 *) CMD_CHUP, (Int8 *) NULL, (Int8 *) NULL); ++ //AT_Builder_AppendCmd ((Int8 *) CMD_CHUP, (Int8 *) NULL, (Int8 *) NULL); ++ AT_Builder_AppendCmd ((Int8 *) "H", (Int8 *) NULL, (Int8 *) NULL); + break; + case TEL_HANGUPACTIVE_ACCEPTOTHER: + /* +CHLD=1 */ |