Re: [PATCH] Phonesim HACKING updated to refer to phonesim.conf instead of modem.conf.
Hi Essi, 2011/2/1 Essi Vehmersalo essi.vehmers...@nokia.com: -automatically includes this option. +automatically includes this option. See phonesim.conf sample configuration +under ofono/plugins on how to configure oFono to use phonesim. Run phonesim in foreground using the following options # ./src/phonesim -p 12345 -gui src/default.xml -Check your modem.conf file and enable the phonesim configuration before -executing the above command. Argument -p should be followed by the proper -port number, in case you have changed the default 12345. Argument -gui -will launch the gui once the modem is enabled. +Argument -p should be followed by the proper port number, in case you have +changed the default 12345. Argument -gui will launch the gui once the +modem is enabled. A couple of nits: there are some extra whitespace at the end of the lines, and also, the commit message header should be below 50 characters. Cheers, Aki ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH v7] ifx: Adding modem selftest for Infineon modem
Hi Robertino, Infineon modem selftest, during ifx_enable(). Two steps trigger, with timeout. In case one fails, modem will not power up. --- plugins/ifx.c | 50 +++--- 1 files changed, 47 insertions(+), 3 deletions(-) diff --git a/plugins/ifx.c b/plugins/ifx.c index 411c012..da8ed0b 100644 --- a/plugins/ifx.c +++ b/plugins/ifx.c @@ -72,6 +72,8 @@ #define GPRS3_DLC 4 #define AUX_DLC 5 +#define IFX_SETUP_TIMEOUT10 + static char *dlc_prefixes[NUM_DLC] = { Voice: , Net: , GPRS1: , GPRS2: , GPRS3: , Aux: }; @@ -524,10 +526,12 @@ static gboolean mux_timeout_cb(gpointer user_data) struct ofono_modem *modem = user_data; struct ifx_data *data = ofono_modem_get_data(modem); - ofono_error(Timeout with multiplexer setup); + ofono_error(Timeout with AT command setup); call this Timeout with modem and multiplexer setup now. data-mux_init_timeout = 0; + g_at_chat_cancel_all(data-dlcs[AUX_DLC]); + This one is not needed. Since first it is the last command anyway. There is nothing else in the queue. g_at_chat_unref(data-dlcs[AUX_DLC]); And second this will do it anyway for you. data-dlcs[AUX_DLC] = NULL; @@ -539,6 +543,35 @@ static gboolean mux_timeout_cb(gpointer user_data) return FALSE; } +static void dev_ver_selftest_cb(gboolean ok, GAtResult *result, + gpointer user_data) +{ + + struct ofono_modem *modem = user_data; + struct ifx_data *data = ofono_modem_get_data(modem); + + if (!ok) { + ofono_error(ERROR:IFX Selftest at@vers:device_version_id() + -FAILED); + + g_at_chat_cancel_all(data-dlcs[AUX_DLC]); + } +} I would just do here this: if (ok) return; ofono_error(... However you now need to clean up properly. if (data-mux_init_timeout 0) { g_source_remove(data-mux_init_timeout); data-mux_init_timeout = 0; } g_at_chat_unref(data-dlcs[AUX_DLC]); data-dlcs[AUX_DLC] = NULL; g_io_channel_unref(data-device); data-device = NULL; ofono_modem_set_powered(modem, FALSE); If you don't do that you leak memory and a file descriptor. And in addition the user has to wait for the setup timeout, even if it is already clear that the enabling failed. + +static void rtc_gti_selftest_cb(gboolean ok, GAtResult *result, + gpointer user_data) +{ + struct ofono_modem *modem = user_data; + struct ifx_data *data = ofono_modem_get_data(modem); + + if (!ok) { + ofono_error(ERROR:IFX Selftest + at@rtc:rtc_gti_test_verify_32khz()-FAILED); + + g_at_chat_cancel_all(data-dlcs[AUX_DLC]); + } +} + static int ifx_enable(struct ofono_modem *modem) { struct ifx_data *data = ofono_modem_get_data(modem); @@ -592,13 +625,24 @@ static int ifx_enable(struct ofono_modem *modem) g_at_chat_send(chat, ATE0 +CMEE=1, NULL, NULL, NULL, NULL); + /* Execute Modem Self tests */ + data-dlcs[AUX_DLC] = chat; Don't bother moving this one around. It is fine where it is. There is no race condition here. We are single threaded and we need to go back to the mainloop to write the commands before this will be called. + g_at_chat_send(data-dlcs[AUX_DLC], + at@rtc:rtc_gti_test_verify_32khz(), + NULL, rtc_gti_selftest_cb, modem, NULL); + + g_at_chat_send(data-dlcs[AUX_DLC], at@vers:device_version_id(), + NULL, dev_ver_selftest_cb, modem, NULL); + + /* Enable MUX Channels */ data-frame_size = 1509; g_at_chat_send(chat, AT+CMUX=0,0,,1509,10,3,30,,, NULL, mux_setup_cb, modem, NULL); - data-mux_init_timeout = g_timeout_add_seconds(5, mux_timeout_cb, - modem); + data-mux_init_timeout = g_timeout_add_seconds( + IFX_SETUP_TIMEOUT, mux_timeout_cb, modem); To be honest the define with the setup timeout value does not help here. Just change this to 10 and put a comment section above the the timeout command to state what is expected execution time of the test commands. That makes this a lot clearer to understand. data-dlcs[AUX_DLC] = chat; Regards Marcel ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[PATCH 1/2] atmodem: convert dst from hours to seconds
--- drivers/atmodem/network-registration.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/atmodem/network-registration.c b/drivers/atmodem/network-registration.c index 4913611..3df72af 100644 --- a/drivers/atmodem/network-registration.c +++ b/drivers/atmodem/network-registration.c @@ -741,7 +741,7 @@ static void ifx_ctzdst_notify(GAtResult *result, gpointer user_data) DBG(dst %d, dst); - nd-time.dst = dst; + nd-time.dst = dst * 60 * 60; ofono_netreg_time_notify(netreg, nd-time); } -- 1.7.0.4 ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH 0/2] Fix issue with DST
On Tuesday 01 February 2011 13:44:03 ext Jeevaka Badrappan, you wrote: Hi, Following patch converts the DST from hours to seconds which is the expected outcome. Is it? I think DST is just a boolean. -- Rémi Denis-Courmont Nokia Devices RD, Maemo Software, Helsinki ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
RE: [PATCH 0/2] Fix issue with DST
ofono-boun...@ofono.org wrote: On Tuesday 01 February 2011 13:44:03 ext Jeevaka Badrappan, you wrote: Hi, Following patch converts the DST from hours to seconds which is the expected outcome. Is it? I think DST is just a boolean. Refere 3GPP TS 24.008 section 10.5.3.12 Regards, Jeevaka ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[PATCH 0/1] Add pin retry count support for mbm
Hi, Following patch adds pin retry count support for mbm modem. Regards, Jeevaka Jeevaka Badrappan (1): atmodem: Add pin retry count support for mbm drivers/atmodem/sim.c | 46 ++ 1 files changed, 46 insertions(+), 0 deletions(-) ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH 1/1] atmodem: Add pin retry count support for mbm
Hi Jeevaka, drivers/atmodem/sim.c | 46 ++ 1 files changed, 46 insertions(+), 0 deletions(-) and this is conflicting with Remi's patch for the generic CPINR now. Regards Marcel ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH] atmodem: implement standard PIN retries
Hi Remi, drivers/atmodem/sim.c | 48 1 files changed, 48 insertions(+), 0 deletions(-) diff --git a/drivers/atmodem/sim.c b/drivers/atmodem/sim.c index 0938998..dfd40f8 100644 --- a/drivers/atmodem/sim.c +++ b/drivers/atmodem/sim.c @@ -57,6 +57,7 @@ static const char *cpin_prefix[] = { +CPIN:, NULL }; static const char *clck_prefix[] = { +CLCK:, NULL }; static const char *huawei_cpin_prefix[] = { ^CPIN:, NULL }; static const char *xpincnt_prefix[] = { +XPINCNT:, NULL }; +static const char *cpinr_prefixes[] = { +CPINR:, +CPINRE:, NULL }; static const char *none_prefix[] = { NULL }; let's leave it like this. Patch has been applied. Regards Marcel ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH] TODO: SMS Validity Period
Hi Marcel, Seems that you are not going to go with me on this. I do understand your point that this is very marginal feature, me myself I only use it couple times a year (which also answers to your question) and I might be in a rare group. But I do appreciate the feature when I need it. I am not following here. What is an option good for if it does not give anything to the user. In fact it could potentially be actually lying to the user since we have no control whatsoever. What I meant was that if the network does not support the setting, then it could be hidden from the UI. Then there would not be scenario that user has option that does nothing. I understand from the specification (23.040) that this should be possible to know: The SC shall reject any Unsupported/ Reserved values received by returning the ‘TP-VP not supported’ TP-FCS value in the Submit SM Report for RP-Error. But when it comes to this SMS Validity Period being supported in oFono, I guess we are done. I asked for it and gave my arguments but you said no. I don't find I am able to do more to this for now at least. BR, Miia ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[PATCH 0/1] Add pin retry count support for mbm
Hi, Following patch adds pin retry count support for mbm modem. Regards, Jeevaka Jeevaka Badrappan (1): atmodem: Add pin retry count support for mbm drivers/atmodem/sim.c | 46 ++ 1 files changed, 46 insertions(+), 0 deletions(-) ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[PATCH 1/1] atmodem: Add pin retry count support for mbm
--- drivers/atmodem/sim.c | 46 ++ 1 files changed, 46 insertions(+), 0 deletions(-) diff --git a/drivers/atmodem/sim.c b/drivers/atmodem/sim.c index dfd40f8..d9c0d8d 100644 --- a/drivers/atmodem/sim.c +++ b/drivers/atmodem/sim.c @@ -58,6 +58,7 @@ static const char *clck_prefix[] = { +CLCK:, NULL }; static const char *huawei_cpin_prefix[] = { ^CPIN:, NULL }; static const char *xpincnt_prefix[] = { +XPINCNT:, NULL }; static const char *cpinr_prefixes[] = { +CPINR:, +CPINRE:, NULL }; +static const char *epin_prefix[] = { *EPIN:, NULL }; static const char *none_prefix[] = { NULL }; static void at_crsm_info_cb(gboolean ok, GAtResult *result, gpointer user_data) @@ -555,6 +556,45 @@ error: CALLBACK_WITH_FAILURE(cb, NULL, cbd-data); } +static void at_epin_cb(gboolean ok, GAtResult *result, gpointer user_data) +{ + struct cb_data *cbd = user_data; + ofono_sim_pin_retries_cb_t cb = cbd-cb; + const char *final = g_at_result_final_response(result); + GAtResultIter iter; + struct ofono_error error; + int retries[OFONO_SIM_PASSWORD_INVALID]; + size_t i; + static enum ofono_sim_password_type password_types[] = { + OFONO_SIM_PASSWORD_SIM_PIN, + OFONO_SIM_PASSWORD_SIM_PUK, + OFONO_SIM_PASSWORD_SIM_PIN2, + OFONO_SIM_PASSWORD_SIM_PUK2, + }; + + decode_at_error(error, final); + + if (!ok) { + cb(error, NULL, cbd-data); + return; + } + + g_at_result_iter_init(iter, result); + + if (!g_at_result_iter_next(iter, *EPIN:)) + goto error; + + BUILD_PIN_RETRIES_ARRAY(password_types, ARRAY_SIZE(password_types), + retries); + + cb(error, retries, cbd-data); + + return; + +error: + CALLBACK_WITH_FAILURE(cb, NULL, cbd-data); +} + static void at_cpinr_cb(gboolean ok, GAtResult *result, gpointer user_data) { struct cb_data *cbd = user_data; @@ -621,6 +661,12 @@ static void at_pin_retries_query(struct ofono_sim *sim, return; break; + case OFONO_VENDOR_MBM: + if (g_at_chat_send(sd-chat, AT*EPIN?, epin_prefix, + at_epin_cb, cbd, g_free) 0) + return; + + break; default: if (g_at_chat_send(sd-chat, AT+CPINR, cpinr_prefixes, at_cpinr_cb, cbd, g_free) 0) -- 1.7.0.4 ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[PATCH v2 0/3] ISI modem version detection with plugin
The same patch as before, but split up in three parts as per your suggestion. As before, please note that this does not build unless the gisi patch gisi: Updated subscriptions and pipe handling to accomodate additional isimodem versions is added first. We are currently looking at your comments on that one and will send in an update as soon as we can. Best Regards, Jessica Nilsson u8500: add plugin for u8500 udev: u8500 support and style fix isimodem: header updates for ISI2.5 Makefile.am|4 + drivers/isimodem/debug.c | 132 drivers/isimodem/debug.h |9 + drivers/isimodem/mtc.h | 38 drivers/isimodem/version.h | 26 +++ plugins/ofono.rules|3 + plugins/u8500.c| 507 plugins/udev.c |5 +- 8 files changed, 723 insertions(+), 1 deletions(-) create mode 100644 drivers/isimodem/version.h create mode 100644 plugins/u8500.c -- 1.7.3.5 ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[PATCH v2 1/3] u8500: add plugin for u8500
--- Makefile.am |4 + plugins/ofono.rules |3 + plugins/u8500.c | 507 +++ 3 files changed, 514 insertions(+), 0 deletions(-) create mode 100644 plugins/u8500.c diff --git a/Makefile.am b/Makefile.am index a38fcb9..4762cc8 100644 --- a/Makefile.am +++ b/Makefile.am @@ -110,6 +110,7 @@ builtin_sources += $(gisi_sources) \ drivers/isimodem/mtc.h \ drivers/isimodem/debug.h \ drivers/isimodem/isiutil.h \ + drivers/isimodem/version.h \ drivers/isimodem/debug.c \ drivers/isimodem/phonebook.c \ drivers/isimodem/devinfo.c \ @@ -144,6 +145,9 @@ builtin_sources += plugins/isiusb.c builtin_modules += n900 builtin_sources += plugins/n900.c plugins/nokia-gpio.h plugins/nokia-gpio.c + +builtin_modules += u8500 +builtin_sources += plugins/u8500.c endif if ATMODEM diff --git a/plugins/ofono.rules b/plugins/ofono.rules index 111f071..333bff0 100644 --- a/plugins/ofono.rules +++ b/plugins/ofono.rules @@ -356,6 +356,9 @@ SUBSYSTEMS==usb, ENV{OFONO_DRIVER}=isiusb, ENV{OFONO_ISI_ADDRESS}=16 # Nokia N900 modem SUBSYSTEMS==hsi, ENV{OFONO_DRIVER}=n900, ENV{OFONO_ISI_ADDRESS}=108 +# STE u8500 +KERNEL==shrm0, ENV{OFONO_DRIVER}=u8500 + LABEL=ofono_isi_end SUBSYSTEM!=usb, GOTO=ofono_end diff --git a/plugins/u8500.c b/plugins/u8500.c new file mode 100644 index 000..3a3b2bc --- /dev/null +++ b/plugins/u8500.c @@ -0,0 +1,507 @@ +/* + * + * oFono - Open Source Telephony + * + * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + * Copyright (C) ST-Ericsson SA 2011. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#ifdef HAVE_CONFIG_H +#include config.h +#endif + +#include stdio.h +#include errno.h +#include stdlib.h +#include string.h +#include glib.h + +#include gisi/netlink.h +#include gisi/modem.h +#include gisi/client.h +#include gisi/message.h + +#define OFONO_API_SUBJECT_TO_CHANGE +#include ofono/plugin.h +#include ofono/log.h +#include ofono/modem.h +#include ofono/devinfo.h +#include ofono/phonebook.h +#include ofono/netreg.h +#include ofono/voicecall.h +#include ofono/sms.h +#include ofono/cbs.h +#include ofono/sim.h +#include ofono/ussd.h +#include ofono/ssn.h +#include ofono/call-forwarding.h +#include ofono/call-settings.h +#include ofono/call-barring.h +#include ofono/call-meter.h +#include ofono/radio-settings.h +#include ofono/gprs.h +#include ofono/gprs-context.h + +#include drivers/isimodem/isimodem.h +#include drivers/isimodem/isiutil.h +#include drivers/isimodem/mtc.h +#include drivers/isimodem/debug.h +#include drivers/isimodem/version.h + +struct isi_data { + char const *ifname; + GIsiModem *modem; + GIsiClient *client; + GIsiPhonetNetlink *link; + GIsiPhonetLinkState linkstate; + unsigned interval; + int reported; + ofono_bool_t online; + struct isi_cb_data *online_cbd; +}; + +static const GIsiVersion modemversion = { + .major = 2, + .minor = 5, +}; + +static gboolean check_response_status(const GIsiMessage *msg, uint8_t msgid) +{ + if (g_isi_msg_error(msg) 0) { + DBG(Error: %s, strerror(-g_isi_msg_error(msg))); + return FALSE; + } + + if (g_isi_msg_id(msg) != msgid) { + DBG(Unexpected msg: %s, + mce_message_id_name(g_isi_msg_id(msg))); + return FALSE; + } + return TRUE; +} + +static void report_powered(struct ofono_modem *modem, struct isi_data *isi, + ofono_bool_t powered) +{ + if (powered == isi-reported) + return; + + isi-reported = powered; + ofono_modem_set_powered(modem, powered); +} + +static void report_online(struct isi_data *isi, ofono_bool_t online) +{ + struct isi_cb_data *cbd = isi-online_cbd; + ofono_modem_online_cb_t cb = cbd-cb; + + isi-online_cbd = NULL; + + if (isi-online == online) + CALLBACK_WITH_SUCCESS(cb, cbd-data); + else + CALLBACK_WITH_FAILURE(cb, cbd-data); + + g_free(cbd); +} + +static void set_power_by_mce_state(struct ofono_modem
[PATCH v2 2/3] udev: u8500 support and style fix
--- plugins/udev.c |5 - 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/plugins/udev.c b/plugins/udev.c index ce1efe6..49b5eb8 100644 --- a/plugins/udev.c +++ b/plugins/udev.c @@ -185,7 +185,8 @@ static void add_hso(struct ofono_modem *modem, devnode = udev_device_get_devnode(udev_device); if (g_str_has_suffix(type, Application) == TRUE) - ofono_modem_set_string(modem, APPLICATION_PORT, devnode); + ofono_modem_set_string(modem, APPLICATION_PORT, + devnode); else if (g_str_has_suffix(type, Control) == TRUE) ofono_modem_set_string(modem, CONTROL_PORT, devnode); } else if (g_str_equal(subsystem, net) == TRUE) { @@ -636,6 +637,8 @@ done: add_nokia(modem, udev_device); else if (g_strcmp0(driver, isiusb) == 0) add_isi(modem, udev_device); + else if (g_strcmp0(driver, u8500) == 0) + add_isi(modem, udev_device); else if (g_strcmp0(driver, n900) == 0) add_isi(modem, udev_device); else if (g_strcmp0(driver, gobi) == 0) -- 1.7.3.5 ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[PATCH 3/4] nettime: Documentation
--- doc/network-time-api.txt | 36 1 files changed, 36 insertions(+), 0 deletions(-) create mode 100644 doc/network-time-api.txt diff --git a/doc/network-time-api.txt b/doc/network-time-api.txt new file mode 100644 index 000..9133a73 --- /dev/null +++ b/doc/network-time-api.txt @@ -0,0 +1,36 @@ +Network time hierarchy +== + +Interface com.meego.NetworkTime +Object path[variable] + +Methodsvoid Notify(dict info) + + Notifies the service of current time and date + as notified by the cellular network. The info + argument contains a dictionary with the + following possible keys: + + int64 UTC [optional] + Network time in seconds from epoch + normalized to device boot time. + Reveicing entity obtains current real + time by adding the value from monotonic + clock e.g. + clock_gettime(CLOCK_MONOTONIC,...). + + int32 Timezone [optional] + Current timezone offset in seconds from + UTC. + + int32 DST [optional] + Current daylight saving setting in + hours. + + string MobileCountryCode + The Mobile country code of the + current network operator. + + string MobileNetworkCode + The Mobile network code of the + current network operator. -- 1.7.1 ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[PATCH 4/4] nettime: Mock Timed for testing
--- test/test-nettime | 35 +++ 1 files changed, 35 insertions(+), 0 deletions(-) create mode 100755 test/test-nettime diff --git a/test/test-nettime b/test/test-nettime new file mode 100755 index 000..908a5db --- /dev/null +++ b/test/test-nettime @@ -0,0 +1,35 @@ +#!/usr/bin/python + +import gobject +import dbus +import sys +import time +import dbus.service +import dbus.mainloop.glib + + +class NetworkTime(dbus.service.Object): + def __init__(self): + busName = dbus.service.BusName('com.meego.time', + bus = dbus.SystemBus()) + dbus.service.Object.__init__(self, busName, '/com/meego/time') + @dbus.service.method(dbus_interface=com.meego.NetworkTime, + in_signature=a{sv}, out_signature=) + def Notify(self, arg): + print arg + print + print Time from mobile: %d % arg[UTC] + print DST: %d % arg[DST] + print Timezone: %d % arg[Timezone] + print MNC: %s % arg[MobileNetworkCode] + print MCC: %s % arg[MobileCountryCode] + +if __name__ == '__main__': + dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) + agent = NetworkTime() + + mainloop = gobject.MainLoop() + mainloop.run() + + + -- 1.7.1 ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[PATCH 2/4] nettime: Makefile.am modification
--- Makefile.am |9 +++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index a38fcb9..2d54025 100644 --- a/Makefile.am +++ b/Makefile.am @@ -337,6 +337,9 @@ builtin_modules += example_provision builtin_sources += examples/provision.c endif +builtin_modules += nettime +builtin_sources += plugins/nettime.c + builtin_modules += smart_messaging builtin_sources += plugins/smart-messaging.c @@ -404,7 +407,8 @@ doc_files = doc/overview.txt doc/ofono-paper.txt doc/release-faq.txt \ doc/phonebook-api.txt doc/radio-settings-api.txt \ doc/sim-api.txt doc/stk-api.txt \ doc/audio-settings-api.txt doc/text-telephony-api.txt \ - doc/calypso-modem.txt doc/message-api.txt + doc/calypso-modem.txt doc/message-api.txt \ + doc/network-time-api.txt test_scripts = test/backtrace \ @@ -478,7 +482,8 @@ test_scripts = test/backtrace \ test/cdma-dial-number \ test/cdma-hangup \ test/disable-call-forwarding \ - test/list-messages + test/list-messages \ + test/test-nettime if TEST testdir = $(pkglibdir)/test -- 1.7.1 ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[PATCH] ste: Add support for CBS interface
STE modems support standard AT commands in CBS --- plugins/ste.c |2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/plugins/ste.c b/plugins/ste.c index 0b02a0d..cf8aed8 100644 --- a/plugins/ste.c +++ b/plugins/ste.c @@ -48,6 +48,7 @@ #include ofono/netreg.h #include ofono/phonebook.h #include ofono/sim.h +#include ofono/cbs.h #include ofono/sms.h #include ofono/ssn.h #include ofono/ussd.h @@ -373,6 +374,7 @@ static void ste_post_online(struct ofono_modem *modem) ofono_call_barring_create(modem, 0, atmodem, data-chat); ofono_ssn_create(modem, 0, atmodem, data-chat); ofono_call_volume_create(modem, 0, atmodem, data-chat); + ofono_cbs_create(modem, 0, atmodem, data-chat); gprs = ofono_gprs_create(modem, OFONO_VENDOR_MBM, atmodem, data-chat); -- 1.7.0.4 ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
RE: [PATCH 3/4] nettime: Documentation
Hi Antti, ofono-boun...@ofono.org wrote: --- doc/network-time-api.txt | 36 1 files changed, 36 insertions(+), 0 deletions(-) create mode 100644 doc/network-time-api.txt diff --git a/doc/network-time-api.txt b/doc/network-time-api.txt new file mode 100644 index 000..9133a73 --- /dev/null +++ b/doc/network-time-api.txt @@ -0,0 +1,36 @@ +Network time hierarchy +== + +Interfacecom.meego.NetworkTime +Object path [variable] + +Methods void Notify(dict info) + + Notifies the service of current time and date + as notified by the cellular network. The info + argument contains a dictionary with the + following possible keys: + + int64 UTC [optional] + Network time in seconds from epoch + normalized to device boot time. + Reveicing entity obtains current real + time by adding the value from monotonic + clock e.g. + clock_gettime(CLOCK_MONOTONIC,...). + + int32 Timezone [optional] + Current timezone offset in seconds from + UTC. + + int32 DST [optional] + Current daylight saving setting in + hours. few hours back I delivered a patch for converting the DST from hours to seconds in ofono driver code. are we going to take that into consideration? Aki?? Regards, Jeevaka ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH 0/3] EF-SPN API to sim-atom
Hi Marcel, On 02/01/2011 04:38 AM, Marcel Holtmann wrote: Hi Denis, On Thu, 2011-01-27 at 15:22 +0200, Jukka Saunamaki wrote: Here is an asynchronous implementation of SIM Service Provider Name (EF-SPN) getter API. The trick is to delay setting sim ready until spn reading is finished. Any comments about this? So, yes, it slightly delays SIM initialisation (usually SPN value should come from disk cache), but then netreg can use it immediately when it registers. Alternative is still to create an asyncronous API now that there is a patch for safe SIM file reading. So my main problem here is that you require the SPN a handful of times in the phone's lifetime, more likely once. Yet you pay the cost of reading and delaying the initialization every time. In my view this is not really acceptable. does it really matter in the end? It gets read once and after that we are caching it on disk anyway. Of course it does, while SIM is initializing everything else is blocked. Once we're in sim ready you can have n atoms initializing at the same time. On good hardware with proper muxing that can shave tremendous amount of time off your startup cost. Regards, -Denis ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH 1/1] atmodem: Add pin retry count support for mbm
Hi Jeevaka, drivers/atmodem/sim.c | 46 ++ 1 files changed, 46 insertions(+), 0 deletions(-) patch has been applied. Thanks. Regards Marcel ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH v2 2/3] udev: u8500 support and style fix
Hi Jessica, plugins/udev.c |5 - 1 files changed, 4 insertions(+), 1 deletions(-) so you wanna combine the udev rule change and the udev change together actually. They both belong together. The actual modem plugin driver is not related. diff --git a/plugins/udev.c b/plugins/udev.c index ce1efe6..49b5eb8 100644 --- a/plugins/udev.c +++ b/plugins/udev.c @@ -185,7 +185,8 @@ static void add_hso(struct ofono_modem *modem, devnode = udev_device_get_devnode(udev_device); if (g_str_has_suffix(type, Application) == TRUE) - ofono_modem_set_string(modem, APPLICATION_PORT, devnode); + ofono_modem_set_string(modem, APPLICATION_PORT, + devnode); What is this part doing here? else if (g_str_has_suffix(type, Control) == TRUE) ofono_modem_set_string(modem, CONTROL_PORT, devnode); } else if (g_str_equal(subsystem, net) == TRUE) { @@ -636,6 +637,8 @@ done: add_nokia(modem, udev_device); else if (g_strcmp0(driver, isiusb) == 0) add_isi(modem, udev_device); + else if (g_strcmp0(driver, u8500) == 0) + add_isi(modem, udev_device); else if (g_strcmp0(driver, n900) == 0) add_isi(modem, udev_device); else if (g_strcmp0(driver, gobi) == 0) Regards Marcel ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH v2 3/3] isimodem: header updates for ISI2.5
Hi Jessica, drivers/isimodem/debug.c | 132 drivers/isimodem/debug.h |9 +++ drivers/isimodem/mtc.h | 38 + drivers/isimodem/version.h | 26 + 4 files changed, 205 insertions(+), 0 deletions(-) create mode 100644 drivers/isimodem/version.h snip +enum isi_version { + ISI_20 = 0, + ISI_25 = 1 +}; so what is the final decision here now. ISI doing auto-detection and this gets not exposed to the modem drivers or we do. Aki, I remember you saying that this is not needed at all. Regards Marcel ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [RFC] voice call API changes (proposal)
Hi Denis, On 01/31/2011 09:58 PM, ext Denis Kenzior wrote: Hi Andras, On 01/31/2011 05:56 AM, Andras Domokos wrote: Here is a proposal for expanding the VoiceCallManager interface with call related Supplementary Services signals, and the VoiceCall interface with new properties. --- doc/call-barring-api.txt | 10 -- doc/voicecall-api.txt| 15 +++ doc/voicecallmanager-api.txt | 21 + 3 files changed, 36 insertions(+), 10 deletions(-) diff --git a/doc/call-barring-api.txt b/doc/call-barring-api.txt index 41ae4b1..1534494 100644 --- a/doc/call-barring-api.txt +++ b/doc/call-barring-api.txt @@ -37,16 +37,6 @@ Signals PropertyChanged(string property, variant value) Signal is emitted whenever a property has changed. The new value is passed as the signal argument. - IncomingBarringInEffect() - - Signal is emitted when a call is made and an - incoming call barring supplementary service is in use. - - OutgoingBarringInEffect() - - Signal is emitted when a call is made and an - outgoing call barring supplementary service is in use. - Propertiesstring VoiceIncoming [readwrite] Contains the value of the barrings for the incoming diff --git a/doc/voicecall-api.txt b/doc/voicecall-api.txt index 047b8cb..e7276a3 100644 --- a/doc/voicecall-api.txt +++ b/doc/voicecall-api.txt @@ -145,3 +145,18 @@ Properties string LineIdentification [readonly] Contains the indication if the voice call is an emergency call or not. + + boolean Forwarded + + Contains the indication whether the voice call is a + forwarded call or not. + So just to clarify, this is usually set on a local Incoming / Waiting call, correct? This property would apply to both, outgoing and incoming calls. When the incoming call is a forwarded call the call is accompanied by a forwarded call SS notification. When the call is an outgoing call and the call is forwarded due to the remote party having a conditional or unconditional forwarding enabled, the outgoing call is accompanied by a call has been forwarded SS notification. I think would be a good idea, if not mandatory, to have a voice call property indicating the call direction. + boolean RemoteHold + + Contains the indication whether the voice call has been + put on hold by the remote party or not. + This one is rather tricky, since AT modems do not report the index of the call. So the only way you can report this is if you have only a single call active or your modem supports this properly (I know ISI does). Indeed, this is a tricky case since the standard AT Supplementary Services notification don't provide the call index within the notifications. Although in many cases the call index can be inferred correctly, there are cases when this is impossible and the call index needs to be provided explicitly, like in the remote hold/multiparty cases and assuming 2 local calls. We do best effort guess for modems not supporting call indexes. + boolean Waiting + + Contains the indication whether the outgoing voice call + is waiting or not. And this is for a local dialing / alerting call. Correct? This is an indication from the network in connection with an outgoing call telling that the remote party is already engaged into a call and your call is waiting to be answered or rejected (handled). diff --git a/doc/voicecallmanager-api.txt b/doc/voicecallmanager-api.txt index 2bf9ded..bbd80db 100644 --- a/doc/voicecallmanager-api.txt +++ b/doc/voicecallmanager-api.txt @@ -144,6 +144,27 @@ SignalsCallAdded(object path, dict properties) Signal is emitted whenever a property has changed. The new value is passed as the signal argument. + UnconditionalForwardingInEffect + + Signal is emitted when a call is made and unconditional + call forwarding supplementary service is active. This is for a local dialing / alerting call. Correct? The notification is sent in connection with an outgoing call when the remote party has unconditional call forwarding enabled that is enforced by the network. + + ConditionalForwardingInEffect + + Signal is emitted when a call is made and some of the + conditional call forwarding supplementary services are + active. + Same as above? The notification is sent in connection with an outgoing call when the remote party has such conditional call forwarding enabled that is enforced by the network. +
Re: [PATCH] ste: Add support for CBS interface
Hi Lasse, STE modems support standard AT commands in CBS --- plugins/ste.c |2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) patch has been applied. Thanks. Regards Marcel ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH v2 2/3] udev: u8500 support and style fix
Hi Marcel, Jessica is out of office. On 2011-02-01 16:39, Marcel Holtmann wrote: Hi Jessica, plugins/udev.c |5 - 1 files changed, 4 insertions(+), 1 deletions(-) so you wanna combine the udev rule change and the udev change together actually. They both belong together. The actual modem plugin driver is not related. Ok, will correct. diff --git a/plugins/udev.c b/plugins/udev.c index ce1efe6..49b5eb8 100644 --- a/plugins/udev.c +++ b/plugins/udev.c @@ -185,7 +185,8 @@ static void add_hso(struct ofono_modem *modem, devnode = udev_device_get_devnode(udev_device); if (g_str_has_suffix(type, Application) == TRUE) - ofono_modem_set_string(modem, APPLICATION_PORT, devnode); + ofono_modem_set_string(modem, APPLICATION_PORT, + devnode); What is this part doing here? Style fix, should it be removed ? else if (g_str_has_suffix(type, Control) == TRUE) ofono_modem_set_string(modem, CONTROL_PORT, devnode); } else if (g_str_equal(subsystem, net) == TRUE) { @@ -636,6 +637,8 @@ done: add_nokia(modem, udev_device); else if (g_strcmp0(driver, isiusb) == 0) add_isi(modem, udev_device); + else if (g_strcmp0(driver, u8500) == 0) + add_isi(modem, udev_device); else if (g_strcmp0(driver, n900) == 0) add_isi(modem, udev_device); else if (g_strcmp0(driver, gobi) == 0) Regards Andreas ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH v2 2/3] udev: u8500 support and style fix
Hi Andreas, diff --git a/plugins/udev.c b/plugins/udev.c index ce1efe6..49b5eb8 100644 --- a/plugins/udev.c +++ b/plugins/udev.c @@ -185,7 +185,8 @@ static void add_hso(struct ofono_modem *modem, devnode = udev_device_get_devnode(udev_device); if (g_str_has_suffix(type, Application) == TRUE) - ofono_modem_set_string(modem, APPLICATION_PORT, devnode); + ofono_modem_set_string(modem, APPLICATION_PORT, + devnode); What is this part doing here? Style fix, should it be removed ? style fixes should always be a separate patch. Do not intermix totally unrelated style fixes with actual changes. Regards Marcel ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH] atmodem: implement standard PIN retries
Hi Remi, drivers/atmodem/sim.c | 48 1 files changed, 48 insertions(+), 0 deletions(-) diff --git a/drivers/atmodem/sim.c b/drivers/atmodem/sim.c index 0938998..dfd40f8 100644 --- a/drivers/atmodem/sim.c +++ b/drivers/atmodem/sim.c @@ -57,6 +57,7 @@ static const char *cpin_prefix[] = { +CPIN:, NULL }; static const char *clck_prefix[] = { +CLCK:, NULL }; static const char *huawei_cpin_prefix[] = { ^CPIN:, NULL }; static const char *xpincnt_prefix[] = { +XPINCNT:, NULL }; +static const char *cpinr_prefixes[] = { +CPINR:, +CPINRE:, NULL }; static const char *none_prefix[] = { NULL }; any chance we get a patch that also adds this to Phonesim for testing actually. Since it is a standard, it should be fine to add this as well to Phonesim. Lucas, are you willing to have a step here since you wrote the initial feature? Regards Marcel ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[PATCH 2/9] common: implement initializer for ofono_call
--- src/common.c |7 +++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/src/common.c b/src/common.c index 8bf9dbb..f25f105 100644 --- a/src/common.c +++ b/src/common.c @@ -762,3 +762,10 @@ const char *ofono_uuid_to_str(const struct ofono_uuid *uuid) return encode_hex_own_buf(uuid-uuid, OFONO_SHA1_UUID_LEN, 0, buf); } + +void ofono_call_init(struct ofono_call *call) +{ + memset(call, 0, sizeof(struct ofono_call)); + call-cnap_validity = CNAP_VALIDITY_NOT_AVAILABLE; + call-clip_validity = CLIP_VALIDITY_NOT_AVAILABLE; +} -- 1.7.4 ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[PATCH 4/9] calypsomodem: use ofono_call initializer
--- drivers/calypsomodem/voicecall.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/calypsomodem/voicecall.c b/drivers/calypsomodem/voicecall.c index 01be990..fed442c 100644 --- a/drivers/calypsomodem/voicecall.c +++ b/drivers/calypsomodem/voicecall.c @@ -314,7 +314,7 @@ static void cpi_notify(GAtResult *result, gpointer user_data) g_at_chat_send(vd-chat, AT%N0187, none_prefix, NULL, NULL, NULL); - memset(call, 0, sizeof(call)); + ofono_call_init(call); switch (msgtype) { case 0: -- 1.7.4 ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[PATCH 6/9] huaweimodem: use ofono_call initializer
--- drivers/huaweimodem/voicecall.c |4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/drivers/huaweimodem/voicecall.c b/drivers/huaweimodem/voicecall.c index a30513a..53377d9 100644 --- a/drivers/huaweimodem/voicecall.c +++ b/drivers/huaweimodem/voicecall.c @@ -56,10 +56,12 @@ static struct ofono_call *create_call(struct ofono_voicecall *vc, int type, struct ofono_call *call; /* Generate a call structure for the waiting call */ - call = g_try_new0(struct ofono_call, 1); + call = g_try_new(struct ofono_call, 1); if (call == NULL) return NULL; + ofono_call_init(call); + call-id = id; call-type = type; call-direction = direction; -- 1.7.4 ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[PATCH 7/9] ifxmodem: use ofono_call initializer
--- drivers/ifxmodem/voicecall.c |4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/drivers/ifxmodem/voicecall.c b/drivers/ifxmodem/voicecall.c index 716652c..e7f72fc 100644 --- a/drivers/ifxmodem/voicecall.c +++ b/drivers/ifxmodem/voicecall.c @@ -87,10 +87,12 @@ static struct ofono_call *create_call(struct ofono_voicecall *vc, int type, struct ofono_call *call; /* Generate a call structure for the waiting call */ - call = g_try_new0(struct ofono_call, 1); + call = g_try_new(struct ofono_call, 1); if (call == NULL) return NULL; + ofono_call_init(call); + call-id = ofono_voicecall_get_next_callid(vc); call-type = type; call-direction = direction; -- 1.7.4 ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[RFC 2/2] doc: Add description for history agent interface
--- doc/history-agent-api.txt | 83 + 1 files changed, 83 insertions(+), 0 deletions(-) create mode 100644 doc/history-agent-api.txt diff --git a/doc/history-agent-api.txt b/doc/history-agent-api.txt new file mode 100644 index 000..373974d --- /dev/null +++ b/doc/history-agent-api.txt @@ -0,0 +1,83 @@ +History hierarchy += + +Serviceorg.ofono +Interface org.ofono.History +Object path[variable prefix]/{modem0,modem1,...} + +Methodsvoid RegisterAgent(object path) + + Registers an agent which will be called whenever a + new history update is available. + + Possible Errors: [service].Error.InvalidArguments +[service].Error.InvalidFormat + + void UnregisterAgent(object path) + + Unregisters an agent. + + Possible Errors: [service].Error.InvalidArguments + + +History Agent hierarchy +=== + +Serviceunique name +Interface org.ofono.HistoryAgent +Object pathfreely definable + +Methodsvoid CallEnded(dict info) + + Call has been established and finished now. + + The info dictionary contains 'Direction', 'Number', + 'Name', 'StartTime' and 'EndTime' properties. + + Possible Errors: None + + void CallMissed(dict info) + + Call has been missed. + + The info dictionary contains 'Number', 'Name' and + 'LocalTime' properties. + + Possible Errors: None + + void MessageReceived(dict info) + + Incoming text message. + + The info dictionary contains 'Identifier', 'Sender', + 'Text', 'LocalTime' and 'RemoteTime' properties. + + Possible Errors: None + + void MessageSubmitted(dict info) + + Outgoing text message that is currently queued up. + + The info dictionary contains 'Identifier', 'Receiver', + 'Text' and 'LocalTime' properties. + + Possible Errors: None + + void MessageStatus(dict info) + + Update on the status of outgoing messages. + + The info dictionary contains 'Identifier', 'Status' + and 'LocalTime' properties. + + Status can be 'pending', 'submitted', 'submit-failed', + 'delivered' or 'deliver-failed'. + + Possible Errors: None + + void Release() [noreply] + + Agent is being released, possibly because of daemon + terminating or modem being turned off. + + No UnregisterAgent call is needed. -- 1.7.3.5 ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[RFC 1/2] plugins: Add basic support for history agent interface
--- plugins/history-agent.c | 509 +++ 1 files changed, 509 insertions(+), 0 deletions(-) create mode 100644 plugins/history-agent.c diff --git a/plugins/history-agent.c b/plugins/history-agent.c new file mode 100644 index 000..42298c1 --- /dev/null +++ b/plugins/history-agent.c @@ -0,0 +1,509 @@ +/* + * + * oFono - Open Source Telephony + * + * Copyright (C) 2008-2011 Intel Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#ifdef HAVE_CONFIG_H +#include config.h +#endif + +#include errno.h +#include string.h +#include glib.h +#include gdbus.h +#include ofono.h + +#define OFONO_API_SUBJECT_TO_CHANGE +#include ofono/plugin.h +#include ofono/log.h +#include ofono/modem.h +#include ofono/dbus.h +#include common.h + +#define HISTORY_INTERFACE org.ofono.History +#define AGENT_INTERFACE org.ofono.HistoryAgent + +struct history_agent { + DBusConnection *conn; + const char *path; + char *agent_path; + char *agent_owner; + guint agent_watch; +}; + +struct agent_request { + struct history_agent *history; + DBusMessage *msg; + DBusMessageIter iter; + DBusPendingCall *call; +}; + +static struct agent_request *agent_request_new(struct history_agent *history, + const char *method) +{ + struct agent_request *req; + + DBG(owner: %s, history-agent_owner); + + if (history-agent_owner == NULL || history-agent_path == NULL) + return NULL; + + req = g_try_new0(struct agent_request, 1); + if (req == NULL) + return NULL; + + req-history = history; + + req-msg = dbus_message_new_method_call(history-agent_owner, + history-agent_path, + AGENT_INTERFACE, method); + if (req-msg == NULL) { + g_free(req); + return NULL; + } + + dbus_message_iter_init_append(req-msg, req-iter); + + return req; +} + +static void agent_request_free(struct agent_request *req) +{ + dbus_pending_call_unref(req-call); + + dbus_message_unref(req-msg); + + g_free(req); +} + +static void agent_request_reply_cb(DBusPendingCall *call, void *data) +{ + struct agent_request *req = data; + DBusMessage *reply = dbus_pending_call_steal_reply(call); + DBusError error; + + dbus_error_init(error); + + if (dbus_set_error_from_message(error, reply) == TRUE) { + ofono_error(Agent method failed: %s, error.name); + dbus_error_free(error); + } + + dbus_message_unref(reply); + + agent_request_free(req); +} + +static void agent_request_dispatch(struct agent_request *req) +{ + struct history_agent *history = req-history; + + if (dbus_connection_send_with_reply(history-conn, req-msg, + req-call, -1) == FALSE) { + ofono_error(Sending D-Bus method failed); + return; + } + + dbus_pending_call_set_notify(req-call, agent_request_reply_cb, + req, NULL); +} + +static void free_agent_data(struct history_agent *history) +{ + g_free(history-agent_path); + history-agent_path = NULL; + + g_free(history-agent_owner); + history-agent_owner = NULL; +} + +static void agent_disconnect_cb(DBusConnection *conn, void *data) +{ + struct history_agent *history = data; + + history-agent_watch = 0; + + free_agent_data(history); +} + +static DBusMessage *register_agent(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + struct history_agent *history = data; + const char *path, *sender; + + if (history-agent_owner != NULL) + return __ofono_error_busy(msg); + + if (dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, path, + DBUS_TYPE_INVALID) == FALSE) + return __ofono_error_invalid_args(msg); + + if (!__ofono_dbus_valid_object_path(path)) + return __ofono_error_invalid_format(msg); + + sender =
Re: [PATCH 1/9] include: define initializer for ofono_call
Hi Lucas, Some fields in struct ofono_call such as cnap_validity and clip_validity are not correctly initialized as 0 since this means they are present. If driver does not implement the necessary handlers, it might send to core an ofono_call signalling that cnap and clip are available when they are actually not. all 9 patches have been applied. Thanks. Regards Marcel ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
[PATCH 2/5] doc: fix misspelling
--- doc/sim-api.txt |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/doc/sim-api.txt b/doc/sim-api.txt index 65c920d..c8091f7 100644 --- a/doc/sim-api.txt +++ b/doc/sim-api.txt @@ -129,7 +129,7 @@ Properties boolean Present [readonly] string CardIdentifier [readonly] - Contains the Intergrated Circuit Card Identifer (ICCID) + Contains the Integrated Circuit Card Identifer (ICCID) which is read directly from the SIM. boolean FixedDialing [readonly] -- 1.7.4 ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH v2 3/3] isimodem: header updates for ISI2.5
Hi Marcel, On Tue, 2011-02-01 at 16:43 +0100, ext Marcel Holtmann wrote: +enum isi_version { + ISI_20 = 0, + ISI_25 = 1 +}; so what is the final decision here now. ISI doing auto-detection and this gets not exposed to the modem drivers or we do. Like I replied earlier, I don't see the need for this. Also, it will not work well with the isiusb plugin, which has the potential to work with any ISI modem. I'm not willing to break that potential until we just absolutely have to. So, my stance holds: we quirk based on resource ID and based on the server's ISI version. I'm starting to think me just saying this out loud is not concrete enough, so I guess one way forward here could be for me to go ahead and adapt e.g. the netreg driver to work with N900 and later ISI modems. The netreg driver would make a good example, as it is one of those where the resource ID changes post N900, and the messages do vary based on it. Cheers, Aki ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH 0/3] EF-SPN API to sim-atom
Hi On Tue, 2011-02-01 at 22:38 +0200, ext Aki Niemi wrote: That reminds me, I think there are SIMs out there that use the CPHS ONS instead of SPN, and these can be used interchangeably. Jukka, don't you actually also need the ONS? In theory maybe, but in practice so far all cases where operator/service provider name is needed for provisioning have had SPN. --Jukka ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono
Re: [PATCH v8] ifx: Adding modem selftest for Infineon modem
Hi Robertino, Infineon modem selftest, during ifx_enable(). Two steps trigger, with timeout. In case one fails, modem will not power up. --- plugins/ifx.c | 58 ++-- 1 files changed, 51 insertions(+), 7 deletions(-) diff --git a/plugins/ifx.c b/plugins/ifx.c index 411c012..0250f64 100644 --- a/plugins/ifx.c +++ b/plugins/ifx.c @@ -524,21 +524,57 @@ static gboolean mux_timeout_cb(gpointer user_data) struct ofono_modem *modem = user_data; struct ifx_data *data = ofono_modem_get_data(modem); - ofono_error(Timeout with multiplexer setup); + ofono_error(Timeout with modem and multiplexer setup); data-mux_init_timeout = 0; - g_at_chat_unref(data-dlcs[AUX_DLC]); - data-dlcs[AUX_DLC] = NULL; + if(data-dlcs[AUX_DLC]) { + g_at_chat_unref(data-dlcs[AUX_DLC]); + data-dlcs[AUX_DLC] = NULL; + } - g_io_channel_unref(data-device); - data-device = NULL; + if(data-device) { + g_io_channel_unref(data-device); + data-device = NULL; + } what are these suppose to be doing? This is in the timeout handler and the timeout will only ever be triggered if data-dlcs[AUX_DLC] is actually valid. If it gets triggered otherwise then you forgot to disable the timer. So these should not be needed. However, please follow our coding style. It is ... ifspace( ... ofono_modem_set_powered(modem, FALSE); return FALSE; } +static void dev_ver_selftest_cb(gboolean ok, GAtResult *result, + gpointer user_data) +{ + + struct ofono_modem *modem = user_data; + struct ifx_data *data = ofono_modem_get_data(modem); + + if (ok) + return; + + ofono_error(ERROR:IFX Selftest at@vers:device_version_id() + -FAILED); + g_at_chat_cancel_all(data-dlcs[AUX_DLC]); + shutdown_device(data); You do need to watch out for such really simple issues with the coding style. Please get them fixed before submitting a patch. Now to the fact of using shutdown_device() here. That is not really a good idea. That function can only be used after you have the MUX up and running since it takes care of taking down the MUX or restoring the line discipline. However you have not done that yet. +} + +static void rtc_gti_selftest_cb(gboolean ok, GAtResult *result, + gpointer user_data) +{ + struct ofono_modem *modem = user_data; + struct ifx_data *data = ofono_modem_get_data(modem); + + if (ok) + return; + + ofono_error(ERROR:IFX Selftest + at@rtc:rtc_gti_test_verify_32khz()-FAILED); And I would prefer if you just leave the ERROR:IFX Selftest part out here. It is clear that it is an error since ofono_error() says so and also tells syslog about it. + + g_at_chat_cancel_all(data-dlcs[AUX_DLC]); + shutdown_device(data); +} + static int ifx_enable(struct ofono_modem *modem) { struct ifx_data *data = ofono_modem_get_data(modem); @@ -592,13 +628,21 @@ static int ifx_enable(struct ofono_modem *modem) g_at_chat_send(chat, ATE0 +CMEE=1, NULL, NULL, NULL, NULL); + /* Execute Modem Self tests */ + g_at_chat_send(chat, at@rtc:rtc_gti_test_verify_32khz(), + NULL, rtc_gti_selftest_cb, modem, NULL); + + g_at_chat_send(chat, at@vers:device_version_id(), + NULL, dev_ver_selftest_cb, modem, NULL); + + /* Enable MUX Channels */ data-frame_size = 1509; g_at_chat_send(chat, AT+CMUX=0,0,,1509,10,3,30,,, NULL, mux_setup_cb, modem, NULL); - data-mux_init_timeout = g_timeout_add_seconds(5, mux_timeout_cb, - modem); + data-mux_init_timeout = g_timeout_add_seconds( + 10, mux_timeout_cb, modem); Please keep the original style with 10, mux_timeout_cb in the original line. And you might wanna still add the comment about expected execution time of the selftest commands. Regards Marcel ___ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono