summaryrefslogtreecommitdiff
path: root/sys/src/cmd/nusb/serial/ucons.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2014-07-05 23:19:13 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2014-07-05 23:19:13 +0200
commit336e605a1191efe1293333bac3b4f76d07b9f89b (patch)
treed704e9107c46f5d7b8b22321defa78d7257e44a1 /sys/src/cmd/nusb/serial/ucons.c
parentc20bab6fe09a9dea8d743017090b21edaa642ebf (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.c36
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,
-};