Commit Graph

589 Commits

Author SHA1 Message Date
Dan Williams
4d5f4f9a82 gsm: only change allowed mode during Simple.Connect when needed 2010-03-16 15:16:01 -07:00
Dan Williams
6744e08104 gsm: simplify finding the right serial port for commands 2010-03-16 13:17:14 -07:00
Dan Williams
b002e54cf4 core: immediately reject Sierra CnS ports during probe
For now; until Sierra releases their CnS documentation.
2010-03-16 13:03:13 -07:00
Dan Williams
882a86040e gsm: make mm_generic_gsm_check_pin() static
No more external users of it.
2010-03-16 11:52:01 -07:00
Dan Williams
eff1bcc7f3 huawei: simplify setting allowed mode 2010-03-16 11:42:57 -07:00
Dan Williams
8af469ccad huawei: clean up and simplify band handling 2010-03-16 11:38:34 -07:00
Dan Williams
e3aa8d5008 api: add UMTS 1900MHz (Class II) band 2010-03-16 11:04:12 -07:00
Dan Williams
19257f540c gsm: handle allowed mode during Simple.Connect() 2010-03-16 11:02:35 -07:00
Dan Williams
e0c3052b0f huawei: handle unsolicited unregistered mode change 2010-03-16 10:29:47 -07:00
Dan Williams
70d9d60d0c mbm: send internet account username/password in modem character set
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-15 14:52:21 -07:00
Dan Williams
d9a47ef2e8 core: fix serial port base class callback types 2010-03-15 14:51:18 -07:00
Dan Williams
3151e0e298 core: add command helper that handles character set conversion 2010-03-15 14:25:49 -07:00
Dan Williams
2dd7e12f72 gsm: allow subclasses to retrieve current character set 2010-03-15 14:24:59 -07:00
Dan Williams
a872107cfc api: better define Scan() command results 2010-03-15 11:57:01 -07:00
Dan Williams
2a94d38edc core: move charset enum/string conversion to it's own file 2010-03-13 16:37:24 -08:00
Dan Williams
ac7310ab10 gsm: add character set get/set support 2010-03-13 16:26:46 -08:00
Dan Williams
429c7cc661 sierra: implement GSM mode preference handling 2010-03-12 17:06:04 -08:00
Dan Williams
2777f9f488 trivial: spacing fixes 2010-03-12 16:59:39 -08:00
Dan Williams
4202bfb86e zte: implement GSM mode preference handling 2010-03-12 16:49:22 -08:00
Dan Williams
c11c0431ff trivial: gitignore updates 2010-03-12 15:34:27 -08:00
Dan Williams
179604d6cb build: another distcheck fix 2010-03-12 15:33:46 -08:00
Dan Williams
ef749399fd build: fix distcheck error 2010-03-12 15:31:29 -08:00
Dan Williams
936533cfcc Merge remote branch 'origin/master' into qcdm 2010-03-12 12:40:00 -08:00
Dan Williams
3e760488b6 cdma: make previous state tag private 2010-03-12 12:38:53 -08:00
Dan Williams
9d91501330 Merge remote branch 'origin/master' into qcdm 2010-03-12 12:21:29 -08:00
Dan Williams
7aa6d03d95 novatel: add CDMA plugin for signal quality parsing
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-12 12:13:21 -08:00
Dan Williams
cda38d390a cdma: fix Simple.GetStatus to actually work 2010-03-12 12:07:08 -08:00
Dan Williams
7a0c503036 cdma: use E1 parser to ignore re-echoed commands
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-12 10:16:24 -08:00
Dan Williams
e055bd72db hso: fix connections with username/password after e3c87e4e14
e3c87e4e14 introduced a use-after-free
bug that causes passwords and usernames to be corrupted.
2010-03-12 08:57:55 -08:00
Dan Williams
4d1e00c496 core: fix merge damage 2010-03-11 16:02:12 -08:00
Dan Williams
3ec7e89f11 Merge remote branch 'origin/master' into qcdm 2010-03-11 13:43:06 -08:00
Dan Williams
749f9c0eb5 core: stop probing known-unusable ports early
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-11 13:20:43 -08:00
Dan Williams
c7739979ed api: update and clarify Location API 2010-03-11 13:15:33 -08:00
Dan Williams
79aef47b25 api: clarify registration info items 2010-03-11 10:22:37 -08:00
Dan Williams
13bc593a29 gsm: ensure PDP context deactivation happens on disconnect
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-10 16:30:58 -08:00
Dan Williams
8f50dd3191 gsm: close open ports on Enable errors 2010-03-10 15:56:27 -08:00
Dan Williams
c0c8954828 gsm: fix PUK2 and other PIN unlock code recognition
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-10 15:45:50 -08:00
Dan Williams
479937cbbb Merge remote branch 'origin/master' into qcdm 2010-03-10 15:04:49 -08:00
Dan Williams
6a32d374cd serial: not all commands have response callbacks
So don't crash if they don't.
2010-03-10 14:57:23 -08:00
Dan Williams
1979512d8d Merge remote branch 'origin/master' into qcdm 2010-03-10 14:50:41 -08:00
Dan Williams
e3c87e4e14 hso: clean up connect and disconnect
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-10 14:42:53 -08:00
Dan Williams
461de7ea0e mbm: use new disconnect handling helper 2010-03-10 14:42:34 -08:00
Dan Williams
59b75b5194 gsm: clean up disconnect handling
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-10 14:39:10 -08:00
Dan Williams
b7858ba235 novatel: fix GSM secondary port enabling after PIN changes
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-10 10:58:27 -08:00
Dan Williams
611e832d0e api: add 'reply' parameter to USSD Initiate() command 2010-03-10 10:17:26 -08:00
Dan Williams
05dde9a315 gsm: revert part of d2e69d34f8
Reg status returned here is cached reg status, so it's pointless to
set it here again.
2010-03-10 00:15:53 -08:00
Dan Williams
d2e69d34f8 gsm: make registration status change handling consistent
Ensure we send out signals when anything changes.
2010-03-10 00:02:56 -08:00
Dan Williams
46ec3bdb47 gsm: fix CREG/CGREG parsing with multiple responses
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-09 23:34:19 -08:00
Dan Williams
658d3d572d zte: handle access technology changes 2010-03-09 22:12:46 -08:00
Dan Williams
b0598738f1 gsm: only update access technology when enabled 2010-03-09 22:12:21 -08:00