Re: Modem Manager gets into a funny state with CDMA modems



On Wed, 2010-03-10 at 18:03 -0500, Jason Glasgow wrote:
> I've been working with a Novatel Modem on a 2.6.31 kernel using the
> generic CDMA driver.   If I enable the modem via ModemManager and then
> connect, everything works fine.  But if I disconnect the modem using
> the DBUS API, and shut down ppp, ModemManager gets confused.  The
> internal modem state indicates that the modem is now REGISTERED, but
> the kernel appears to have sent a hangup (G_IO_HUP) to the usb port,
> so mm-serial-port.c has closed the port (->fd == -1).

Does the modem crash at that point, or drop off the bus?  This may
indicate a USB driver problem or just a bug in ModemManager.  But
normally with serial ports, when you get a hangup, you're done.

Also, what specific novatel device?

Dan

> 
> Other than Disable(), no command works because the ->fd is now -1.
> 
> 
> Do you have any thoughts on the best way to fix this?  And what the
> semantics of receiving a HUP on the modem port should be.  My thought
> is that disconnect() should leave the modem in a registered (or
> enabled) state, and that fp should still be valid.
>       * Might it be reasonable to ignore the G_IO_HUP?  
>       * Should we automatically reopen then port for all commands that
>         are issued?  Seems like a bad idea.
>       * Should we automatically reopen the port if
>         mm_modem_get_state() > MM_MODEM_STATE_ENABLED?
>       * Maybe the most logical is to have G_IO_HUP invoke a callback
>         to notify the code that originally opened the serial port that
>         it has been closed.  It then can update the state of the modem
>         appropriately.
> Thanks for your thoughts,
> Jason
> _______________________________________________
> NetworkManager-list mailing list
> NetworkManager-list gnome org
> http://mail.gnome.org/mailman/listinfo/networkmanager-list




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]