sim hot swap problem with Telit GE910-QUAD

Aleksander Morgado aleksander at aleksander.es
Mon Jul 24 08:59:05 UTC 2017


Hey,

>
>> I just reproduced the issue on my hardware, so I can develop a patch for
>> this
>
>
>
> after some analysis, I think that the fix for this issue should count two
> steps
>
> 1. When +CSIM=1 is sent, the QSS handler should ignore QSS unsolicited -> I
> brefly solved this with a "is_csim_locked" boolean in MMBroadbandModemTelit
> priv, set by csim_lock_ready and read by the handler.
>
> 2. As well as +CSIM=1 causes a #QSS=0, even +CSIM=0 causes a #QSS=1, but
> this time we need to wait for this unsolicited to come before accepting any
> other call to the SIM. Considering that the very next call is +CSRM, we need
> to stop soon after unlocking SIM interface.
>
> I think I can do this in csim_unlock_ready, waiting 'till the QSS handler
> receives #QSS=1 (and up to some maximum amount of time, like 3-5 seconds,
> just to be sure), but since this will stop the entire process I preferred to
> share this idea with you before working on it.
>
> what do you think?

I was going to suggest you use
mm_port_serial_at_enable_unsolicited_msg_handler() as that allows you
to temporarily disable/enable an already configured unsolicited
message handler, but in this case you do want to use the handler as
you're expecting the #QSS=1 after +CSIM=0...

What would happen if you completely disable and enable the handlers
with the method I'm suggesting, and then you just let the #QSS=1
indication happen? If the modem already had a SIM inserted, an extra
#QSS=1 wouldn't harm, right? Won't it be just ignored when it's
processed?

-- 
Aleksander
https://aleksander.es


More information about the ModemManager-devel mailing list