This patch was generated by the following semantic patch
(http://coccinelle.lip6.fr/)
// <smpl>
@fix disable is_null,isnt_null1@
expression *E;
@@
- !E
+ E == NULL
// </smpl>
The GPRS context can only be fully supported with the internal multiplexer
right now. So use M-RAW_IP support in that case. If using a kernel based
multiplexer, then no GPRS context is provided.
When driving the Infineon modem with the builtin multiplexer there is
a small race condition with setting up the channels and sending the
first AT commands. The window here is pretty small, but it seems to be
a modem firmware issue. In case the AT command is send right away it can
happen that the modem does not process any further AT commands. In that
case the setup is stuck and enabling the modem fails.
Just adding a 10 milliseconds delay after DLC creation and before
sending the first AT commands is enough to make this work smoothly.
The XGENDATA result contains various strings that also contain the modem
model. Make this command mandatory for the modem bringup and after it
succeeded, check for the XMM6260 string to setup specific audio settings.
This makes using ENV{OFONO_IFX_MODEL}="XMM6260" obsolete, but for now it
is still left as a possible option. It might be removed later.
The firmware details can be requested via AT+XGENDATA. So do this at
modem init to have these in the logs. Currently nothing is done with
this data, but eventually it can be used for modem specific settings
like the audio configuration.
For the XMM6260 Infineon modem it is possible to use different audio
configuration depending on your platform. Currently the setup of
FULL_DUPLEX, BURSTMODE_48KHZ and BURSTMODE_96KHZ are supported. If
appropiate values for OFONO_IFX_MODEL and OFONO_IFX_AUDIO are set
in the udev rules file, then the audio configuration will be changed
when bringing up the modem.
When not using none_prefix for matching the responses of AT+XSIMSTATE
call, it will consume all notifications. And this includes the initial
SIM state that the modem sends at that point. Without this notification
the SIM will never be marked as inserted.
Since the udev support allows to specify a line discipline number as
part of the modem configuration, use that one and report and error if
it has not been set.
The +XSIM notifies us about missing or removed SIM. Use that for telling
the core if a SIM card is present or not. Besides that all other states
are treated as when a SIM card got inserted.
This supports a simple static multiplexer that is activated with setting
the line discipline 23 on the TTY. It is static, because the DLC numbers
are hardcoded.
This is a first attempt at the Infineon modem support. The support
is limited since it doesn't handle the setup of the multiplexer or
the different SIM states yet.