summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/dc/if_dc.c20
-rw-r--r--sys/dev/dc/if_dcreg.h14
-rw-r--r--sys/dev/usb/if_aue.c1
-rw-r--r--sys/dev/usb/usbdevs1
4 files changed, 36 insertions, 0 deletions
diff --git a/sys/dev/dc/if_dc.c b/sys/dev/dc/if_dc.c
index 19ba308..42dd8c9 100644
--- a/sys/dev/dc/if_dc.c
+++ b/sys/dev/dc/if_dc.c
@@ -202,6 +202,12 @@ static struct dc_type dc_devs[] = {
"PlaneX FNW-3602-T CardBus 10/100" },
{ DC_VENDORID_3COM, DC_DEVICEID_3CSOHOB,
"3Com OfficeConnect 10/100B" },
+ { DC_VENDORID_MICROSOFT, DC_DEVICEID_MSMN120,
+ "Microsoft MN-120 CardBus 10/100" },
+ { DC_VENDORID_MICROSOFT, DC_DEVICEID_MSMN130,
+ "Microsoft MN-130 10/100" },
+ { DC_VENDORID_MICROSOFT, DC_DEVICEID_MSMN130_FAKE,
+ "Microsoft MN-130 10/100" },
{ 0, 0, NULL }
};
@@ -1587,6 +1593,18 @@ dc_devtype(device_t dev)
if (t->dc_did == DC_DEVICEID_DM9102 &&
rev >= DC_REVISION_DM9102A)
t++;
+ /*
+ * The Microsoft MN-130 has a device ID of 0x0002,
+ * which happens to be the same as the PNIC 82c168.
+ * To keep dc_attach() from getting confused, we
+ * pretend its ID is something different.
+ * XXX: ideally, dc_attach() should be checking
+ * vendorid+deviceid together to avoid such
+ * collisions.
+ */
+ if (t->dc_vid == DC_VENDORID_MICROSOFT &&
+ t->dc_did == DC_DEVICEID_MSMN130)
+ t++;
return (t);
}
t++;
@@ -1927,6 +1945,8 @@ dc_attach(device_t dev)
case DC_DEVICEID_EN2242:
case DC_DEVICEID_HAWKING_PN672TX:
case DC_DEVICEID_3CSOHOB:
+ case DC_DEVICEID_MSMN120:
+ case DC_DEVICEID_MSMN130_FAKE: /* XXX avoid collision with PNIC*/
sc->dc_type = DC_TYPE_AN985;
sc->dc_flags |= DC_64BIT_HASH;
sc->dc_flags |= DC_TX_USE_TX_INTR;
diff --git a/sys/dev/dc/if_dcreg.h b/sys/dev/dc/if_dcreg.h
index edbefef..e4ad2b9 100644
--- a/sys/dev/dc/if_dcreg.h
+++ b/sys/dev/dc/if_dcreg.h
@@ -985,6 +985,20 @@ struct dc_softc {
#define DC_DEVICEID_HAWKING_PN672TX 0xab08
/*
+ * Microsoft device ID.
+ */
+#define DC_VENDORID_MICROSOFT 0x1414
+
+/*
+ * Supported Microsoft PCI and cardbus NICs. These are really
+ * ADMtek parts in disguise.
+ */
+
+#define DC_DEVICEID_MSMN120 0x0001
+#define DC_DEVICEID_MSMN130 0x0002
+#define DC_DEVICEID_MSMN130_FAKE 0xFFF2
+
+/*
* PCI low memory base and low I/O base register, and
* other PCI registers.
*/
diff --git a/sys/dev/usb/if_aue.c b/sys/dev/usb/if_aue.c
index 80e8b42..c0f6e67 100644
--- a/sys/dev/usb/if_aue.c
+++ b/sys/dev/usb/if_aue.c
@@ -156,6 +156,7 @@ Static const struct aue_type aue_devs[] = {
{{ USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB100H1}, LSYS|PNA },
{{ USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TA}, LSYS },
{{ USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TX2}, LSYS|PII },
+ {{ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_MN110}, PII },
{{ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX1}, 0 },
{{ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX5}, 0 },
{{ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUA2TX5}, PII },
diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs
index 63d0ff6..21ab74b 100644
--- a/sys/dev/usb/usbdevs
+++ b/sys/dev/usb/usbdevs
@@ -859,6 +859,7 @@ product MICROSOFT SIDEWINDER 0x001a Sidewinder Precision Racing Wheel
product MICROSOFT INETPRO 0x001c Internet Keyboard Pro
product MICROSOFT INTELLIEYE 0x0025 IntelliEye mouse
product MICROSOFT INETPRO2 0x002b Internet Keyboard Pro
+product MICROSOFT MN110 0x007a 10/100 USB NIC
/* Microtech products */
product MICROTECH SCSIDB25 0x0004 USB-SCSI-DB25
OpenPOWER on IntegriCloud