summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjmb <jmb@FreeBSD.org>2000-04-02 12:43:34 +0000
committerjmb <jmb@FreeBSD.org>2000-04-02 12:43:34 +0000
commit090fde9a7695bc804b6a26eb67cb706fd805231a (patch)
tree59ce508b311d991b496d465c3dd1160e70067d4a
parente6ca4d95a01d09f8918a825895708be6a9a5b53d (diff)
downloadFreeBSD-src-090fde9a7695bc804b6a26eb67cb706fd805231a.zip
FreeBSD-src-090fde9a7695bc804b6a26eb67cb706fd805231a.tar.gz
Add support for the LinkSys USB10T network adapter that
contains the ADMtek Pegasus AN986 USB chipset. The adapter supports both 10BaseT and 100BaseT (including full-duplex). The product code for these adapters is 0x2206.
-rw-r--r--share/man/man4/aue.46
-rw-r--r--sys/dev/usb/if_aue.c8
-rw-r--r--sys/dev/usb/usbdevs1
-rw-r--r--sys/dev/usb/usbdevs.h1
-rw-r--r--sys/dev/usb/usbdevs_data.h6
5 files changed, 18 insertions, 4 deletions
diff --git a/share/man/man4/aue.4 b/share/man/man4/aue.4
index 89bcac4..70ad137 100644
--- a/share/man/man4/aue.4
+++ b/share/man/man4/aue.4
@@ -48,8 +48,10 @@ The
.Nm
driver provides support for USB ethernet adapters based on the ADMtek
AN986 Pegasus chipset, including the LinkSys USB100TX, the Billionton
-Systems USB100, the Melco Inc. LU-ATX, the D-Link DSB-650TX and the
-SMC 2202USB.
+Systems USB100, the Melco Inc. LU-ATX, the D-Link DSB-650TX, the
+SMC 2202USB, and those LinkSys USB10T adapters that contain the
+AN986 Pegasus chipset. The LinkSys USB10T adapters that contain the
+AN986 Pegasus chipset will operate at 100Base-TX and full-duplex.
.Pp
The Pegasus contains a 10/100
ethernet MAC with MII interface and is designed to work with both
diff --git a/sys/dev/usb/if_aue.c b/sys/dev/usb/if_aue.c
index fe0e9f5..b2f3a5c 100644
--- a/sys/dev/usb/if_aue.c
+++ b/sys/dev/usb/if_aue.c
@@ -111,6 +111,7 @@ static struct aue_type aue_devs[] = {
{ USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX_PNA },
{ USB_VENDOR_SMC, USB_PRODUCT_SMC_2202USB },
{ USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB100TX },
+ { USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TA },
{ USB_VENDOR_COREGA, USB_PRODUCT_COREGA_FETHER_USB_TX },
{ 0, 0 }
};
@@ -480,6 +481,8 @@ static void aue_miibus_statchg(dev)
*/
if ((sc->aue_info->aue_vid == USB_VENDOR_LINKSYS &&
sc->aue_info->aue_did == USB_PRODUCT_LINKSYS_USB100TX) ||
+ (sc->aue_info->aue_vid == USB_VENDOR_LINKSYS &&
+ sc->aue_info->aue_did == USB_PRODUCT_LINKSYS_USB10TA) ||
(sc->aue_info->aue_vid == USB_VENDOR_DLINK &&
sc->aue_info->aue_did == USB_PRODUCT_DLINK_DSB650TX)) {
u_int16_t auxmode;
@@ -571,6 +574,8 @@ static void aue_reset(sc)
/* Grrr. LinkSys has to be different from everyone else. */
if ((sc->aue_info->aue_vid == USB_VENDOR_LINKSYS &&
sc->aue_info->aue_did == USB_PRODUCT_LINKSYS_USB100TX) ||
+ (sc->aue_info->aue_vid == USB_VENDOR_LINKSYS &&
+ sc->aue_info->aue_did == USB_PRODUCT_LINKSYS_USB10TA) ||
(sc->aue_info->aue_vid == USB_VENDOR_DLINK &&
sc->aue_info->aue_did == USB_PRODUCT_DLINK_DSB650TX)) {
csr_write_1(sc, AUE_GPIO0, AUE_GPIO_SEL0|AUE_GPIO_SEL1);
@@ -1234,7 +1239,6 @@ static void aue_init(xsc)
csr_write_1(sc, AUE_CTL0, AUE_CTL0_RXSTAT_APPEND|AUE_CTL0_RX_ENB);
AUE_SETBIT(sc, AUE_CTL0, AUE_CTL0_TX_ENB);
AUE_SETBIT(sc, AUE_CTL2, AUE_CTL2_EP3_CLR);
-
mii_mediachg(mii);
/* Open RX and TX pipes. */
@@ -1246,7 +1250,7 @@ static void aue_init(xsc)
splx(s);
return;
}
- usbd_open_pipe(sc->aue_iface, sc->aue_ed[AUE_ENDPT_TX],
+ err = usbd_open_pipe(sc->aue_iface, sc->aue_ed[AUE_ENDPT_TX],
USBD_EXCLUSIVE_USE, &sc->aue_ep[AUE_ENDPT_TX]);
if (err) {
printf("aue%d: open tx pipe failed: %s\n",
diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs
index e49f6d3..e6b929b 100644
--- a/sys/dev/usb/usbdevs
+++ b/sys/dev/usb/usbdevs
@@ -401,6 +401,7 @@ product LEXMARK S2450 0x0009 Optra S 2450
/* Linksys products */
product LINKSYS USB10T 0x2202 USB10T Ethernet
product LINKSYS USB100TX 0x2203 USB100TX Ethernet
+product LINKSYS USB10TA 0x2206 USB10TA Ethernet
/* Logitech products */
product LOGITECH M2452 0x0203 M2452 keyboard
diff --git a/sys/dev/usb/usbdevs.h b/sys/dev/usb/usbdevs.h
index 55132fb..6fa0f18 100644
--- a/sys/dev/usb/usbdevs.h
+++ b/sys/dev/usb/usbdevs.h
@@ -408,6 +408,7 @@
/* Linksys products */
#define USB_PRODUCT_LINKSYS_USB10T 0x2202 /* USB10T Ethernet */
#define USB_PRODUCT_LINKSYS_USB100TX 0x2203 /* USB100TX Ethernet */
+#define USB_PRODUCT_LINKSYS_USB10TA 0x2206 /* USB10TA Ethernet */
/* Logitech products */
#define USB_PRODUCT_LOGITECH_M2452 0x0203 /* M2452 keyboard */
diff --git a/sys/dev/usb/usbdevs_data.h b/sys/dev/usb/usbdevs_data.h
index 4b8b205..ddc6e7c 100644
--- a/sys/dev/usb/usbdevs_data.h
+++ b/sys/dev/usb/usbdevs_data.h
@@ -526,6 +526,12 @@ struct usb_knowndev usb_knowndevs[] = {
"USB100TX Ethernet",
},
{
+ USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TA,
+ 0,
+ "Linksys Inc.",
+ "USB10TA Ethernet",
+ },
+ {
USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_M2452,
0,
"Logitech Inc.",
OpenPOWER on IntegriCloud