Hi Denis,

On Mon, Jun 27, 2011 at 9:04 PM, Denis Kenzior <[email protected]> wrote:

> Hi Amit,
>
> On 06/27/2011 01:22 AM, Amit Mendapara wrote:
> > The device supports subset of ST-Ericsson AT command
> > extensions but nither STE nor the MBM plugin works with
> > these devices.
> >
> > Fixes MeeGo bug #14784
> > ---
> >  plugins/linktop.c |  120
> +++++++++++++++++++++++------------------------------
> >  1 files changed, 52 insertions(+), 68 deletions(-)
> >
>
> I applied this patch with some amendments:
>

Thanks...


>
> > diff --git a/plugins/linktop.c b/plugins/linktop.c
> > index 953f634..2eb1c55 100644
> > --- a/plugins/linktop.c
> > +++ b/plugins/linktop.c
> > @@ -26,6 +26,7 @@
> >  #include <stdio.h>
> >  #include <errno.h>
> >  #include <stdlib.h>
> > +#include <string.h>
> >
>
> This header doesn't seem necessary
>
> >  #include <glib.h>
> >  #include <gatchat.h>
> > @@ -45,22 +42,20 @@
> >  #include <ofono/cbs.h>
> >  #include <ofono/sms.h>
> >  #include <ofono/ussd.h>
> > -#include <ofono/call-volume.h>
> > -#include <ofono/voicecall.h>
> >  #include <ofono/gprs.h>
> >  #include <ofono/gprs-context.h>
> >  #include <ofono/phonebook.h>
> >  #include <ofono/radio-settings.h>
> >  #include <ofono/log.h>
> >
> > -#include <drivers/atmodem/vendor.h>
> >  #include <drivers/atmodem/atutil.h>
> > +#include <drivers/atmodem/vendor.h>
> >
>
> Since you're not using any VENDOR defines, this header is not necessary.
>  However I actually question whether signal strength updates work right
> now without using the CIND based signal strength updates that MBM uses.
>

Yes, signal strength is being updated correctly using unsolicited CIEV
messages.


> >  static const char *none_prefix[] = { NULL };
> >
> >  struct linktop_data {
> >       GAtChat *modem;
> > -     GAtChat *control;
> > +     GAtChat *aux;
> >       struct ofono_gprs *gprs;
> >       struct ofono_gprs_context *gc;
> >  };
>
> <snip>
>
> > @@ -138,10 +133,9 @@ static void linktop_disconnect(gpointer user_data)
> >       struct ofono_modem *modem = user_data;
> >       struct linktop_data *data = ofono_modem_get_data(modem);
> >
> > -     DBG("");
> > +     DBG("%p, data->gc %p", modem, data->gc);
> >
> > -     if (data->gc)
> > -             ofono_gprs_context_remove(data->gc);
> > +     ofono_gprs_context_remove(data->gc);
> >
> >       g_at_chat_unref(data->modem);
> >       data->modem = NULL;
> > @@ -151,7 +145,7 @@ static void linktop_disconnect(gpointer user_data)
> >               return;
> >
> >       g_at_chat_set_disconnect_function(data->modem,
> > -                                             linktop_disconnect, modem);
> > +                     linktop_disconnect, modem);
>
> The original formatting was correct
>

> >
> >       ofono_info("Reopened GPRS context channel");
> >
> > @@ -232,13 +223,12 @@ static int linktop_disable(struct ofono_modem
> *modem)
> >               data->modem = NULL;
> >       }
> >
>
> It is not necessary to cancel_all on the modem channel, unref it and set
> it to zero, cancel_all is already called automatically from unref.  Not
> to mention you do the same thing in cfun_disable.
>

Thanks for correcting this...


>
> > -     if (data->control == NULL)
> > +     if (data->aux == NULL)
> >               return 0;
> >
> > -     g_at_chat_cancel_all(data->control);
> > -     g_at_chat_unregister_all(data->control);
> > -     g_at_chat_send(data->control, "AT+CFUN=4", none_prefix,
> > -                                     cfun_disable, modem, NULL);
> > +     g_at_chat_cancel_all(data->aux);
> > +     g_at_chat_unregister_all(data->aux);
> > +     g_at_chat_send(data->aux, "AT+CFUN=4", NULL, cfun_disable, modem,
> NULL);
> >
> >       return -EINPROGRESS;
> >  }
> > @@ -247,22 +237,25 @@ static void set_online_cb(gboolean ok, GAtResult
> *result, gpointer user_data)
> >  {
> >       struct cb_data *cbd = user_data;
> >       ofono_modem_online_cb_t cb = cbd->cb;
> > -     struct ofono_error error;
> >
> > -     decode_at_error(&error, g_at_result_final_response(result));
> > -     cb(&error, cbd->data);
> > +     if (ok)
> > +             CALLBACK_WITH_SUCCESS(cb, cbd->data);
> > +     else
> > +             CALLBACK_WITH_FAILURE(cb, cbd->data);
>
> The original was actually correct and I updated the mbm plugin to do the
> same.
>
> >  }
> >
>
> Please test my changes and make sure I didn't break anything
>
>
I just tested and everything works fine :).

Thank you again...

Regards
--
Amit Mendapara
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono

Reply via email to