[om2008.8] Testing packages for Qtopia
Michael Shiloh
michael at openmoko.org
Tue Aug 12 21:51:51 CEST 2008
Lorn Potter wrote:
> Michael Shiloh wrote:
>>
>> Holger Freyther wrote:
>>> Hey,
>>>
>>> I think that the No PIN Dialog (#1765, #1798), GSM Antenna/No Network
>>> (#1766), missing SMS notification (#1792) and the various duplicates
>>> and variations (no phonebook..) are related to a funny issue in the
>>> QAtChat and TI Calypso handling.
>>>
>>> As the planned "testing feed" might need one more day and the issue
>>> is obviously quite big I have created a small Qtopia update.
>>>
>>> You can add: "src/gz zecke
>>> http://people.openmoko.org/zecke/qtopia-testing/" to your feed config
>>> and do a opkg update, opkg upgrade to get the Qtopia fixes. Feedback
>>> is welcomed.
>>>
>>>
>>>
>>> Explanation of the issue:
>>>
>>> Players:
>>> - QAtChat is responsible for queueing commands and forwarding
>>> responses
>>> - TI Calypso is the hardware/module that runs the GSM firmware.
>>>
>>> Ti Calypso:
>>> - The module does PM on it's own. After ~5 seconds it goes to a
>>> deep sleep/suspend. Writing anything to the serial will wake it up,
>>> the down side is that the first command will be lost.
>>>
>>> QAtChat:
>>> - This class can handle modems like the TI Calypso and can send a
>>> wakeup command.
>>>
>>>
>>> So everything looks fine? Well, it depends on the wakeup command you
>>> send. The existing code picked ATE0 which might or might not generate
>>> a response. So the current code needs to discard everything that
>>> comes from the modem until after a timeout (500msec) has passed.
>>> Well, everything but notifications (first patch from me).
>>>
>>> Now timing enters the stage. Qtopia starts qdsync which on our flash
>>> takes quite a bit to start and somehow the QAtChat queue is blocked,
>>> sometimes we manage to send a ATE0 (wakeup before starting qdsync)
>>> and the discard interval passed without executing any code but we
>>> didn't process the input from the modem.... So we get an OK as ATE0
>>> response and treat it like the response of the current command and
>>> things start to fail. We treat the output of the previous command as
>>> the result of the current one...
>>>
>>> Two solutions:
>>> - Send a command that does not generate a response. Mickeyl found
>>> one and is happily using that for the TI Calypso in ogsmd and I
>>> copied that now.
>>>
>>> - QAtChat::wakeupFinished might flush commands, or remove "OK"
>>> but getting this right is really tricky. So the above solution is
>>> preferred.
>>>
>>>
>>> feedback is welcome, I've been running with these changes since
>>> saturday...
>>
>>
>> Holger,
>>
>> Thanks for this great explanation of what's going on at this level.
>> This type of understanding is excellent.
>>
>> If you, or someone, had the time to wikify this information it would
>> be wonderful.
>
> why would you want to put this kind of bug report on a wiki? (unless you
> mean internal)
> It will most likely get fixed/worked around at some point. The user can
> do nothing about this anyway.
>
Not the bug report, but the discussion of how QAtChat and Calypso talk
to each other.
Michael
More information about the devel
mailing list