Hi Guillaume,
On 04/12/2012 09:28 AM, Guillaume Zajac wrote:
> For some modem like ZTE MF180/190, we need to do some
> polling to check SIM state when it returns +CME ERROR: 14 busy.
> ---
> drivers/atmodem/sim.c | 59 +++++++++++++++++++++++++++++++++++++++---------
> 1 files changed, 48 insertions(+), 11 deletions(-)
>
<snip>
> @@ -874,9 +878,22 @@ static void at_cpin_cb(gboolean ok, GAtResult *result,
> gpointer user_data)
> else
> decode_at_error(&error, final);
>
> - if (!ok) {
> + switch (error.type) {
> + case OFONO_ERROR_TYPE_NO_ERROR:
> + break;
> + case OFONO_ERROR_TYPE_CME:
> + /* Check for SIM busy - try again later */
> + if (error.error == 14) {
> + if (sd->poll_count++ < 12) {
> + sd->poll_source = g_timeout_add_seconds(2,
> + sim_state_check, cbd);
> + return;
> + }
> + }
> + /* fall through */
> + default:
> cb(&error, -1, cbd->data);
> - return;
> + goto done;
> }
>
> if (sd->vendor == OFONO_VENDOR_WAVECOM) {
Is there a reason we are not using at_util_sim_state_query_new?
<snip>
Regards,
-Denis
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono