shithub: riscv

Download patch

ref: 8eecdc96643cf0d90f850212e6e2bd351bdc00e7
parent: 7af5442d3b031a3f81ea5c25c88f99692fb16822
author: mischief <mischief@offblast.org>
date: Wed Oct 10 12:37:13 EDT 2018

etheriwl: support type 2000 devices and the 2200 chip in x230t

--- a/sys/src/9/pc/etheriwl.c
+++ b/sys/src/9/pc/etheriwl.c
@@ -404,6 +404,7 @@
 	Type6050	= 8,
 	Type6005	= 11,	/* also Centrino Advanced-N 6030, 6235 */
 	Type2030	= 12,
+	Type2000	= 16,
 };
 
 static char *fwname[32] = {
@@ -417,6 +418,7 @@
 	[Type6050] "iwn-6050",
 	[Type6005] "iwn-6005", /* see in iwlattach() below */
 	[Type2030] "iwn-2030",
+	[Type2000] "iwn-2000",
 };
 
 static char *qcmd(Ctlr *ctlr, uint qid, uint code, uchar *data, int size, Block *block);
@@ -883,7 +885,7 @@
 
 	ctlr->eeprom.temp = 0;
 	ctlr->eeprom.rawtemp = 0;
-	if(ctlr->type == Type2030){
+	if(ctlr->type == Type2030 || ctlr->type == Type2000){
 		if((err = eepromread(ctlr, b, 2, caloff + 0x12a)) != nil)
 			goto Err2;
 		ctlr->eeprom.temp = get16(b);
@@ -1203,7 +1205,7 @@
 		csr32w(ctlr, GpDrv, csr32r(ctlr, GpDrv) | GpDrvCalV6);
 	if(ctlr->type == Type6005)
 		csr32w(ctlr, GpDrv, csr32r(ctlr, GpDrv) | GpDrv1X2);
-	if(ctlr->type == Type2030)
+	if(ctlr->type == Type2030 || ctlr->type == Type2000)
 		csr32w(ctlr, GpDrv, csr32r(ctlr, GpDrv) | GpDrvRadioIqInvert);
 	nicunlock(ctlr);
 
@@ -1455,10 +1457,11 @@
 				Block *b;
 
 				i = cmds[q];
-				if(i == 8 && ctlr->type != Type5150 && ctlr->type != Type2030)
+				if(i == 8 && ctlr->type != Type5150 && ctlr->type != Type2030 &&
+					ctlr->type != Type2000)
 					continue;
 				if(i == 17 && (ctlr->type >= Type6000 || ctlr->type == Type5150) &&
-					ctlr->type != Type2030)
+					ctlr->type != Type2030 && ctlr->type != Type2000)
 					continue;
 
 				if((b = ctlr->calib.cmd[i]) == nil)
@@ -1486,6 +1489,7 @@
 				break;
 
 			case Type2030:
+			case Type2000:
 				memset(c, 0, sizeof(c));
 				c[0] = 18;
 				c[1] = 0;
@@ -2473,6 +2477,7 @@
 		case 0x4238:	/* Centrino Ultimate-N 6300 variant 2 */
 		case 0x08ae:	/* Centrino Wireless-N 100 */
 		case 0x0083:	/* Centrino Wireless-N 1000 */
+		case 0x0891:	/* Centrino Wireless-N 2200 */
 		case 0x0887:	/* Centrino Wireless-N 2230 */
 		case 0x0888:	/* Centrino Wireless-N 2230 */
 		case 0x0090:	/* Centrino Advanced-N 6030 */