diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2014-07-05 23:19:13 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2014-07-05 23:19:13 +0200 |
commit | 336e605a1191efe1293333bac3b4f76d07b9f89b (patch) | |
tree | d704e9107c46f5d7b8b22321defa78d7257e44a1 /sys/src/cmd/nusb/serial/ucons.c | |
parent | c20bab6fe09a9dea8d743017090b21edaa642ebf (diff) |
support for huawei e220 g3 modem, cleanup nusb/serial
Diffstat (limited to 'sys/src/cmd/nusb/serial/ucons.c')
-rw-r--r-- | sys/src/cmd/nusb/serial/ucons.c | 36 |
1 files changed, 14 insertions, 22 deletions
diff --git a/sys/src/cmd/nusb/serial/ucons.c b/sys/src/cmd/nusb/serial/ucons.c index 8dcf6376e..7b2f3f9ee 100644 --- a/sys/src/cmd/nusb/serial/ucons.c +++ b/sys/src/cmd/nusb/serial/ucons.c @@ -5,15 +5,23 @@ #include <9p.h> #include "usb.h" #include "serial.h" -#include "ucons.h" + +enum { + Net20DCVid = 0x0525, /* Ajays usb debug cable */ + Net20DCDid = 0x127a, + + HuaweiVid = 0x12d1, + HuaweiE220 = 0x1003, +}; Cinfo uconsinfo[] = { { Net20DCVid, Net20DCDid }, + { HuaweiVid, HuaweiE220 }, { 0, 0 }, }; int -uconsmatch(char *info) +uconsmatch(Serial *ser, char *info) { Cinfo *ip; char buf[50]; @@ -22,27 +30,11 @@ uconsmatch(char *info) snprint(buf, sizeof buf, "vid %#06x did %#06x", ip->vid, ip->did); dsprint(2, "serial: %s %s\n", buf, info); - if(strstr(info, buf) != nil) + if(strstr(info, buf) != nil){ + if(ip->vid == HuaweiVid && ip->did == HuaweiE220) + ser->nifcs = 2; return 0; + } } return -1; } - -static int -ucseteps(Serialport *p) -{ - Serial *ser; - - ser = p->s; - - p->baud = ~0; /* not real port */ - ser->maxrtrans = ser->maxwtrans = 8; - devctl(p->epin, "maxpkt 8"); - devctl(p->epout, "maxpkt 8"); - return 0; -} - -/* all nops */ -Serialops uconsops = { - .seteps = ucseteps, -}; |