Hi Denis Kenzior,
    I find a bug about ofono, in src/ifx.c. The function setup_internal_mux. if 
we modem use Mux in ofono code, ofono will create six channel to send request. 
After we send AT commands, each mux channel should be active that through send 
a little data and receive. In setup_internal_mux function it only set 10 
millisecond to do that, it manual think channel active while 10 millisecond. if 
the modem don't response channel active in 10 millisecond, the sending AT 
commands don't dispatch to right channel. if you are lucky, ofono will work 
well, but it don't guarantee. and also i have the problem. ofono don't work 
well, it be cause by channel havn't configure, ofono send AT comands. The 
GAtMux receive the response, but GAtMux don't know which channel the response 
should be dispatched. GAtMux will discard the right response, and the AT 
command will don't receive the response forever, it will case some request 
timeout, and ofono think it have some problem it don't work.
    any questions. then we open mux, ofono will create a new IOChannel, the 
previously device IOChannel should remove from main context, but ofono don't do 
that. why?

static void setup_internal_mux(struct ofono_modem *modem)
{
    ..............
    g_at_mux_start(data->mux);

    for (i = 0; i < NUM_DLC; i++) {
        GIOChannel *channel = g_at_mux_create_channel(data->mux);

        data->dlcs[i] = create_chat(channel, modem, dlc_prefixes[i]);
        if (data->dlcs[i] == NULL) {
            ofono_error("Failed to create channel");
            goto error;
        }
    }

    /* wait for DLC creation to settle */
    data->dlc_init_source = g_timeout_add(10, dlc_setup, modem);
    ....................
}

Best regards
And Thanks!
Jiangbo.wu
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono

Reply via email to