aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-03-16option: generalize common Option/HSO mode and unsolicited response handlingDan Williams
2010-03-16gsm: only change allowed mode during Simple.Connect when neededDan Williams
2010-03-16gsm: simplify finding the right serial port for commandsDan Williams
2010-03-16core: immediately reject Sierra CnS ports during probeDan Williams
For now; until Sierra releases their CnS documentation.
2010-03-16gsm: make mm_generic_gsm_check_pin() staticDan Williams
No more external users of it.
2010-03-16huawei: simplify setting allowed modeDan Williams
2010-03-16huawei: clean up and simplify band handlingDan Williams
2010-03-16api: add UMTS 1900MHz (Class II) bandDan Williams
2010-03-16gsm: handle allowed mode during Simple.Connect()Dan Williams
2010-03-16huawei: handle unsolicited unregistered mode changeDan Williams
2010-03-15mbm: send internet account username/password in modem character setDan Williams
Apparently at least the F3507g wants the username and password in the modem's current character set, otherwise it sends the wrong thing over-the-air.
2010-03-15core: fix serial port base class callback typesDan Williams
2010-03-15core: add command helper that handles character set conversionDan Williams
2010-03-15gsm: allow subclasses to retrieve current character setDan Williams
2010-03-15api: better define Scan() command resultsDan Williams
2010-03-13core: move charset enum/string conversion to it's own fileDan Williams
2010-03-13gsm: add character set get/set supportDan Williams
2010-03-12sierra: implement GSM mode preference handlingDan Williams
2010-03-12trivial: spacing fixesDan Williams
2010-03-12zte: implement GSM mode preference handlingDan Williams
2010-03-12trivial: gitignore updatesDan Williams
2010-03-12build: another distcheck fixDan Williams
2010-03-12build: fix distcheck errorDan Williams
2010-03-12Merge remote branch 'origin/master' into qcdmDan Williams
2010-03-12cdma: make previous state tag privateDan Williams
2010-03-12Merge remote branch 'origin/master' into qcdmDan Williams
2010-03-12novatel: add CDMA plugin for signal quality parsingDan Williams
Some Novatel devices reply with the normal units to +CSQ and it doesn't look quite like the +CSQ reply is in dBm either; so use the custom Novatel command for RSSI.
2010-03-12cdma: fix Simple.GetStatus to actually workDan Williams
2010-03-12cdma: use E1 parser to ignore re-echoed commandsDan Williams
Some modems turn E1 on and off random (Huawei EC168C) and sometimes the echoed command confuses things. We have a parser just for that, so let's use it. It should be safe to use with devices that repect E0 too.
2010-03-12hso: fix connections with username/password after ↵Dan Williams
e3c87e4e1418a25bb8da9e64eba882d8fa335265 e3c87e4e1418a25bb8da9e64eba882d8fa335265 introduced a use-after-free bug that causes passwords and usernames to be corrupted.
2010-03-11core: fix merge damageDan Williams
2010-03-11Merge remote branch 'origin/master' into qcdmDan Williams
2010-03-11core: stop probing known-unusable ports earlyDan Williams
Some ports we know we shouldn't use when we get certain responses from them. Reading from these ports triggers kernel bugs (at least on 2.6.31 and 2.6.32) relating to flow control in some drivers (*cough* hso *cough*), so lets try not to aggravate the kernel too much. This happens on Icera-based Option devices like the GI0322 (AT&T Quicksilver) for example. (note: AFAICT this doesn't have any relation to the recent XON/XOFF patch, since I get this problem without the XON/XOFF patch on both 2.6.31 and 2.6.32 as well) --- BUG: sleeping function called from invalid context at kernel/mutex.c:94 in_atomic(): 1, irqs_disabled(): 1, pid: 9295, name: modem-manager Pid: 9295, comm: modem-manager Not tainted 2.6.32.9-67.fc12.x86_64 #1 Call Trace: <IRQ> [<ffffffff81045d41>] __might_sleep+0xed/0xef [<ffffffff81454dd0>] mutex_lock+0x24/0x50 [<ffffffff8104811e>] ? enqueue_task_fair+0x2a/0x6d [<ffffffff812af79f>] tty_throttle+0x1b/0x49 [<ffffffff812af0d9>] n_tty_receive_buf+0xdbb/0xe12 [<ffffffff810459fd>] ? task_rq_unlock+0x11/0x13 [<ffffffff81050c5c>] ? try_to_wake_up+0x2f3/0x305 [<ffffffff8110de0c>] ? __kmalloc+0x37/0x15e [<ffffffff8110de42>] ? __kmalloc+0x6d/0x15e [<ffffffff812b12c9>] flush_to_ldisc+0xf8/0x18d [<ffffffff812b13ae>] tty_flip_buffer_push+0x50/0x61 [<ffffffffa040ccd5>] put_rxbuf_data+0xea/0x124 [hso] [<ffffffffa040cd97>] put_rxbuf_data_and_resubmit_bulk_urb+0x21/0x6b [hso] [<ffffffffa040d0b1>] hso_std_serial_read_bulk_callback+0x14d/0x15f [hso] [<ffffffff8132edf7>] ? dma_unmap_single_attrs.clone.0+0x38/0x3a [<ffffffff8132ef74>] usb_hcd_giveback_urb+0x91/0xc5 [<ffffffff813417c8>] ehci_urb_done+0x7b/0x90 [<ffffffff81050c5c>] ? try_to_wake_up+0x2f3/0x305 [<ffffffff81341b45>] qh_completions+0x368/0x4b9 [<ffffffff8103e7a0>] ? __wake_up_common+0x4e/0x84 [<ffffffff81343f70>] ehci_work+0x95/0x732 [<ffffffff81045b53>] ? __wake_up+0x44/0x4d [<ffffffff81070490>] ? insert_work+0x8e/0x9b [<ffffffff81345f01>] ehci_irq+0x2be/0x420 [<ffffffff8107071a>] ? __queue_work+0x3a/0x41 [<ffffffff81049e43>] ? resched_cpu+0x6e/0x77 [<ffffffff8107075d>] ? delayed_work_timer_fn+0x3c/0x3e [<ffffffff810b0e44>] ? __rcu_process_callbacks+0x7d/0x28a [<ffffffff8132e846>] usb_hcd_irq+0x3f/0x7b [<ffffffff810acd61>] handle_IRQ_event+0x60/0x121 [<ffffffff810aeb8e>] handle_fasteoi_irq+0x8b/0xc7 [<ffffffff81014625>] handle_irq+0x8b/0x96 [<ffffffff81459c14>] do_IRQ+0x5c/0xbc [<ffffffff81012693>] ret_from_intr+0x0/0x11
2010-03-11api: update and clarify Location APIDan Williams
2010-03-11api: clarify registration info itemsDan Williams
2010-03-10gsm: ensure PDP context deactivation happens on disconnectDan Williams
The port is still connected until disconnect_done() runs, but by this point we already know it's been disconnected so it's safe to run the CGACT commands.
2010-03-10gsm: close open ports on Enable errorsDan Williams
2010-03-10gsm: fix PUK2 and other PIN unlock code recognitionDan Williams
Longer entries first so we catch them before matching shorter substrings. Previously, the strcmp() would have treated PUK2 and PUK unlocks the same.
2010-03-10Merge remote branch 'origin/master' into qcdmDan Williams
2010-03-10serial: not all commands have response callbacksDan Williams
So don't crash if they don't.
2010-03-10Merge remote branch 'origin/master' into qcdmDan Williams
2010-03-10hso: clean up connect and disconnectDan Williams
Disconnect didn't actually work for HSO since it overrode the parent class's connect handler and thus didn't set the right state after the connection was made. It turns out we can use the same logic that 'mbm' does for connection and not have to override quite so much of the parent class. This also splits the authentication and connection parts into two distinct stages, which wasn't the case before but was what was intended.
2010-03-10mbm: use new disconnect handling helperDan Williams
2010-03-10gsm: clean up disconnect handlingDan Williams
Allow subclasses to override disconnect more cleanly so that modem state gets handled correctly when the disconnect is complete. Also fix up PDP Context ID handle (cid) so that subclasses can get the previously-activated context ID when disconnecting, and let the cid be an int since '0' is a valid context number. For the generic devices, this also attempts to actually deactivate the PDP context to ensure that the data session is terminated.
2010-03-10novatel: fix GSM secondary port enabling after PIN changesDan Williams
With the PIN changes, the primary port would already be closed by the time the Novatel modem class was able to send the DMAT command to enable the secondary ports. Just try again later.
2010-03-10api: add 'reply' parameter to USSD Initiate() commandDan Williams
2010-03-10gsm: revert part of d2e69d34f86e8994f74fb209082fcfb7573b2ea2Dan Williams
Reg status returned here is cached reg status, so it's pointless to set it here again.
2010-03-10gsm: make registration status change handling consistentDan Williams
Ensure we send out signals when anything changes.
2010-03-09gsm: fix CREG/CGREG parsing with multiple responsesDan Williams
When a modem sends both CREG and CGREG in the same response packet, the parser was failing to correctly distinguish which response was being parsed, since the string passed to g_regex_match() is the whole response including both CREG + CGREG.
2010-03-09zte: handle access technology changesDan Williams