diff options
author | 2013-11-15 19:42:19 +0000 | |
---|---|---|
committer | 2013-11-15 19:42:19 +0000 | |
commit | e737cace1f90b7edb44ca1b2e535b985306471ae (patch) | |
tree | 8559b440b9141ea1bfdfa1850602b45ed3f218e6 | |
parent | ansify some function definitions. (diff) | |
download | wireguard-openbsd-e737cace1f90b7edb44ca1b2e535b985306471ae.tar.xz wireguard-openbsd-e737cace1f90b7edb44ca1b2e535b985306471ae.zip |
Added dev/usb/if_ugl.c, a driver for Genesys Logic GL620USB-A
USB host-to-host link cable. This driver is derived from upl(4).
40 files changed, 1025 insertions, 39 deletions
diff --git a/sys/arch/alpha/conf/GENERIC b/sys/arch/alpha/conf/GENERIC index 5b4af778e24..e241c9313dd 100644 --- a/sys/arch/alpha/conf/GENERIC +++ b/sys/arch/alpha/conf/GENERIC @@ -1,4 +1,4 @@ -# $OpenBSD: GENERIC,v 1.234 2013/10/29 22:33:10 deraadt Exp $ +# $OpenBSD: GENERIC,v 1.235 2013/11/15 19:42:19 sasano Exp $ # # For further information on compiling OpenBSD kernels, see the config(8) # man page. @@ -109,6 +109,7 @@ cdce* at uhub? # CDC Ethernet urndis* at uhub? # Remote NDIS Ethernet udav* at uhub? # Davicom DM9601 based Ethernet upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' url* at uhub? # Realtek RTL8150L based adapters wi* at uhub? # WaveLAN IEEE 802.11DS urio* at uhub? # Diamond Multimedia Rio 500 diff --git a/sys/arch/alpha/conf/RAMDISKBIG b/sys/arch/alpha/conf/RAMDISKBIG index a782bd9d17d..7ee9fb10df4 100644 --- a/sys/arch/alpha/conf/RAMDISKBIG +++ b/sys/arch/alpha/conf/RAMDISKBIG @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISKBIG,v 1.89 2013/10/29 22:33:10 deraadt Exp $ +# $OpenBSD: RAMDISKBIG,v 1.90 2013/11/15 19:42:20 sasano Exp $ # $NetBSD: GENERIC,v 1.31 1996/12/03 17:25:29 cgd Exp $ # # Generic Alpha kernel. Enough to get booted, etc., but not much more. @@ -95,6 +95,7 @@ kue* at uhub? # Kawasaki KL5KUSB101B based Ethernet smsc* at uhub? # SMSC LAN95xx Ethernet udav* at uhub? # Davicom DM9601 based Ethernet upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' url* at uhub? # Realtek RTL8150L based adapters wi* at uhub? # WaveLAN IEEE 802.11DS diff --git a/sys/arch/amd64/conf/GENERIC b/sys/arch/amd64/conf/GENERIC index 15376392185..a0918411932 100644 --- a/sys/arch/amd64/conf/GENERIC +++ b/sys/arch/amd64/conf/GENERIC @@ -1,4 +1,4 @@ -# $OpenBSD: GENERIC,v 1.352 2013/11/04 14:07:15 deraadt Exp $ +# $OpenBSD: GENERIC,v 1.353 2013/11/15 19:42:20 sasano Exp $ # # For further information on compiling OpenBSD kernels, see the config(8) # man page. @@ -223,6 +223,7 @@ smsc* at uhub? # SMSC LAN95xx Ethernet cdce* at uhub? # CDC Ethernet urndis* at uhub? # Remote NDIS Ethernet upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' udav* at uhub? # Davicom DM9601 based Ethernet mos* at uhub? # MOSCHIP MCS7730/7830 10/100 Ethernet url* at uhub? # Realtek RTL8150L based adapters diff --git a/sys/arch/amd64/conf/RAMDISK b/sys/arch/amd64/conf/RAMDISK index 1d572164ead..109174572f0 100644 --- a/sys/arch/amd64/conf/RAMDISK +++ b/sys/arch/amd64/conf/RAMDISK @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISK,v 1.59 2013/10/29 22:37:25 deraadt Exp $ +# $OpenBSD: RAMDISK,v 1.60 2013/11/15 19:42:20 sasano Exp $ machine amd64 # architecture, used by config; REQUIRED @@ -105,6 +105,7 @@ wskbd* at ukbd? mux 1 #cue* at uhub? # CATC USB-EL1201A based Ethernet #kue* at uhub? # Kawasaki KL5KUSB101B based Ethernet #upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +#ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' #urio* at uhub? # Diamond Multimedia Rio 500 #uyap* at uhub? # Y@P firmware loader #ugen* at uhub? # USB Generic driver diff --git a/sys/arch/amd64/conf/RAMDISK_CD b/sys/arch/amd64/conf/RAMDISK_CD index 4d3fbbc6c94..eeeedc8011c 100644 --- a/sys/arch/amd64/conf/RAMDISK_CD +++ b/sys/arch/amd64/conf/RAMDISK_CD @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISK_CD,v 1.131 2013/11/04 14:07:15 deraadt Exp $ +# $OpenBSD: RAMDISK_CD,v 1.132 2013/11/15 19:42:20 sasano Exp $ machine amd64 # architecture, used by config; REQUIRED @@ -116,6 +116,7 @@ mos* at uhub? # MOSCHIP MCS7730/7830 10/100 Ethernet url* at uhub? # Realtek RTL8150L based adapters wi* at uhub? # WaveLAN IEEE 802.11DS upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' #urio* at uhub? # Diamond Multimedia Rio 500 #uyap* at uhub? # Y@P firmware loader #ugen* at uhub? # USB Generic driver diff --git a/sys/arch/armish/conf/GENERIC b/sys/arch/armish/conf/GENERIC index 47fe249a9d4..c9b277bb951 100644 --- a/sys/arch/armish/conf/GENERIC +++ b/sys/arch/armish/conf/GENERIC @@ -1,4 +1,4 @@ -# $OpenBSD: GENERIC,v 1.49 2013/09/05 19:42:06 sasano Exp $ +# $OpenBSD: GENERIC,v 1.50 2013/11/15 19:42:20 sasano Exp $ # # For further information on compiling OpenBSD kernels, see the config(8) # man page. @@ -139,6 +139,7 @@ smsc* at uhub? # SMSC LAN95xx Ethernet cdce* at uhub? # CDC Ethernet urndis* at uhub? # Remote NDIS Ethernet upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' udav* at uhub? # Davicom DM9601 based Ethernet url* at uhub? # Realtek RTL8150L based adapters wi* at uhub? # WaveLAN IEEE 802.11DS diff --git a/sys/arch/armish/conf/RAMDISK b/sys/arch/armish/conf/RAMDISK index 308b0bf8e26..121e3ed8081 100644 --- a/sys/arch/armish/conf/RAMDISK +++ b/sys/arch/armish/conf/RAMDISK @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISK,v 1.26 2013/08/20 14:27:26 ajacoutot Exp $ +# $OpenBSD: RAMDISK,v 1.27 2013/11/15 19:42:20 sasano Exp $ # # For further information on compiling OpenBSD kernels, see the config(8) # man page. @@ -132,6 +132,7 @@ kue* at uhub? # Kawasaki KL5KUSB101B based Ethernet smsc* at uhub? # SMSC LAN95xx Ethernet cdce* at uhub? # CDC Ethernet upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' udav* at uhub? # Davicom DM9601 based Ethernet url* at uhub? # Realtek RTL8150L based adapters wi* at uhub? # WaveLAN IEEE 802.11DS diff --git a/sys/arch/armv7/conf/GENERIC-IMX b/sys/arch/armv7/conf/GENERIC-IMX index f7779591872..265a3ab6798 100644 --- a/sys/arch/armv7/conf/GENERIC-IMX +++ b/sys/arch/armv7/conf/GENERIC-IMX @@ -1,4 +1,4 @@ -# $OpenBSD: GENERIC-IMX,v 1.3 2013/10/05 23:05:11 patrick Exp $ +# $OpenBSD: GENERIC-IMX,v 1.4 2013/11/15 19:42:20 sasano Exp $ # # GENERIC machine description file # @@ -118,6 +118,7 @@ kue* at uhub? # Kawasaki KL5KUSB101B based Ethernet smsc* at uhub? # SMSC LAN95xx Ethernet cdce* at uhub? # CDC Ethernet upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' udav* at uhub? # Davicom DM9601 based Ethernet url* at uhub? # Realtek RTL8150L based adapters wi* at uhub? # WaveLAN IEEE 802.11DS diff --git a/sys/arch/armv7/conf/GENERIC-OMAP b/sys/arch/armv7/conf/GENERIC-OMAP index dd414f04f2b..37560854401 100644 --- a/sys/arch/armv7/conf/GENERIC-OMAP +++ b/sys/arch/armv7/conf/GENERIC-OMAP @@ -1,4 +1,4 @@ -# $OpenBSD: GENERIC-OMAP,v 1.3 2013/10/18 15:25:03 syl Exp $ +# $OpenBSD: GENERIC-OMAP,v 1.4 2013/11/15 19:42:20 sasano Exp $ # # GENERIC machine description file # @@ -127,6 +127,7 @@ kue* at uhub? # Kawasaki KL5KUSB101B based Ethernet smsc* at uhub? # SMSC LAN95xx Ethernet cdce* at uhub? # CDC Ethernet upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' udav* at uhub? # Davicom DM9601 based Ethernet url* at uhub? # Realtek RTL8150L based adapters wi* at uhub? # WaveLAN IEEE 802.11DS diff --git a/sys/arch/armv7/conf/GENERIC-SUNXI b/sys/arch/armv7/conf/GENERIC-SUNXI index b33222f6198..b353eafbd45 100644 --- a/sys/arch/armv7/conf/GENERIC-SUNXI +++ b/sys/arch/armv7/conf/GENERIC-SUNXI @@ -1,4 +1,4 @@ -# $OpenBSD: GENERIC-SUNXI,v 1.2 2013/10/27 03:06:25 aalm Exp $ +# $OpenBSD: GENERIC-SUNXI,v 1.3 2013/11/15 19:42:20 sasano Exp $ # # GENERIC machine description file # @@ -121,6 +121,7 @@ kue* at uhub? # Kawasaki KL5KUSB101B based Ethernet smsc* at uhub? # SMSC LAN95xx Ethernet cdce* at uhub? # CDC Ethernet upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' udav* at uhub? # Davicom DM9601 based Ethernet url* at uhub? # Realtek RTL8150L based adapters wi* at uhub? # WaveLAN IEEE 802.11DS diff --git a/sys/arch/armv7/conf/RAMDISK-IMX b/sys/arch/armv7/conf/RAMDISK-IMX index cc6c528aefc..51c26e20f11 100644 --- a/sys/arch/armv7/conf/RAMDISK-IMX +++ b/sys/arch/armv7/conf/RAMDISK-IMX @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISK-IMX,v 1.5 2013/11/01 20:26:51 jasper Exp $ +# $OpenBSD: RAMDISK-IMX,v 1.6 2013/11/15 19:42:20 sasano Exp $ # # GENERIC machine description file # @@ -128,6 +128,7 @@ kue* at uhub? # Kawasaki KL5KUSB101B based Ethernet smsc* at uhub? # SMSC LAN95xx Ethernet cdce* at uhub? # CDC Ethernet upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' udav* at uhub? # Davicom DM9601 based Ethernet url* at uhub? # Realtek RTL8150L based adapters wi* at uhub? # WaveLAN IEEE 802.11DS diff --git a/sys/arch/armv7/conf/RAMDISK-OMAP b/sys/arch/armv7/conf/RAMDISK-OMAP index 0e20ce08885..254cfd9fc5a 100644 --- a/sys/arch/armv7/conf/RAMDISK-OMAP +++ b/sys/arch/armv7/conf/RAMDISK-OMAP @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISK-OMAP,v 1.3 2013/11/01 20:26:51 jasper Exp $ +# $OpenBSD: RAMDISK-OMAP,v 1.4 2013/11/15 19:42:20 sasano Exp $ # # GENERIC machine description file # @@ -140,6 +140,7 @@ uhid* at uhidev? # USB generic HID support smsc* at uhub? # SMSC LAN95xx Ethernet # cdce* at uhub? # CDC Ethernet # upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +# ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' # udav* at uhub? # Davicom DM9601 based Ethernet # url* at uhub? # Realtek RTL8150L based adapters # wi* at uhub? # WaveLAN IEEE 802.11DS diff --git a/sys/arch/armv7/conf/RAMDISK-SUNXI b/sys/arch/armv7/conf/RAMDISK-SUNXI index a9d8c0d5a4a..d4d03bdf129 100644 --- a/sys/arch/armv7/conf/RAMDISK-SUNXI +++ b/sys/arch/armv7/conf/RAMDISK-SUNXI @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISK-SUNXI,v 1.3 2013/11/01 20:26:51 jasper Exp $ +# $OpenBSD: RAMDISK-SUNXI,v 1.4 2013/11/15 19:42:20 sasano Exp $ # # GENERIC machine description file # @@ -124,6 +124,7 @@ uhid* at uhidev? # USB generic HID support # smsc* at uhub? # SMSC LAN95xx Ethernet # cdce* at uhub? # CDC Ethernet # upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +# ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' # udav* at uhub? # Davicom DM9601 based Ethernet # url* at uhub? # Realtek RTL8150L based adapters # wi* at uhub? # WaveLAN IEEE 802.11DS diff --git a/sys/arch/hppa/conf/GENERIC b/sys/arch/hppa/conf/GENERIC index e0aba489af8..c6b4876a01e 100644 --- a/sys/arch/hppa/conf/GENERIC +++ b/sys/arch/hppa/conf/GENERIC @@ -1,4 +1,4 @@ -# $OpenBSD: GENERIC,v 1.153 2013/10/29 22:37:25 deraadt Exp $ +# $OpenBSD: GENERIC,v 1.154 2013/11/15 19:42:20 sasano Exp $ # # For further information on compiling OpenBSD kernels, see the config(8) # man page. @@ -152,6 +152,7 @@ cdce* at uhub? # CDC Ethernet urndis* at uhub? # Remote NDIS Ethernet udav* at uhub? # Davicom DM9601 based Ethernet upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' wi* at uhub? # WaveLAN IEEE 802.11DS urio* at uhub? # Diamond Multimedia Rio 500 uyap* at uhub? # Y@P firmware loader diff --git a/sys/arch/hppa/conf/RAMDISK b/sys/arch/hppa/conf/RAMDISK index d5d75659c6b..276ac3940a9 100644 --- a/sys/arch/hppa/conf/RAMDISK +++ b/sys/arch/hppa/conf/RAMDISK @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISK,v 1.98 2013/10/29 22:37:25 deraadt Exp $ +# $OpenBSD: RAMDISK,v 1.99 2013/11/15 19:42:20 sasano Exp $ # # Diskless kernel config # @@ -150,6 +150,7 @@ smsc* at uhub? # SMSC LAN95xx Ethernet cdce* at uhub? # CDC Ethernet udav* at uhub? # Davicom DM9601 based Ethernet upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' wi* at uhub? # WaveLAN IEEE 802.11DS #urio* at uhub? # Diamond Multimedia Rio 500 #uyap* at uhub? # Y@P firmware loader diff --git a/sys/arch/hppa64/conf/GENERIC b/sys/arch/hppa64/conf/GENERIC index 93e9525bd5c..7adbcf41c66 100644 --- a/sys/arch/hppa64/conf/GENERIC +++ b/sys/arch/hppa64/conf/GENERIC @@ -1,4 +1,4 @@ -# $OpenBSD: GENERIC,v 1.30 2013/10/29 22:37:25 deraadt Exp $ +# $OpenBSD: GENERIC,v 1.31 2013/11/15 19:42:20 sasano Exp $ # # For further information on compiling OpenBSD kernels, see the config(8) # man page. @@ -102,6 +102,7 @@ com1 at ssio? irq 3 #urndis* at uhub? # Remote NDIS Ethernet #udav* at uhub? # Davicom DM9601 based Ethernet #upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +#ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' #url* at uhub? # Realtek RTL8150L based adapters #wi* at uhub? # WaveLAN IEEE 802.11DS #urio* at uhub? # Diamond Multimedia Rio 500 diff --git a/sys/arch/hppa64/conf/RAMDISK b/sys/arch/hppa64/conf/RAMDISK index 34e4dae9140..bee0317c344 100644 --- a/sys/arch/hppa64/conf/RAMDISK +++ b/sys/arch/hppa64/conf/RAMDISK @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISK,v 1.17 2013/10/29 22:37:25 deraadt Exp $ +# $OpenBSD: RAMDISK,v 1.18 2013/11/15 19:42:20 sasano Exp $ # # Diskless kernel config # @@ -102,6 +102,7 @@ pcmcia* at cardslot? #cdce* at uhub? # CDC Ethernet #udav* at uhub? # Davicom DM9601 based Ethernet #upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +#ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' #url* at uhub? # Realtek RTL8150L based adapters #wi* at uhub? # WaveLAN IEEE 802.11DS #urio* at uhub? # Diamond Multimedia Rio 500 diff --git a/sys/arch/i386/conf/GENERIC b/sys/arch/i386/conf/GENERIC index 880964e76df..f82e559f111 100644 --- a/sys/arch/i386/conf/GENERIC +++ b/sys/arch/i386/conf/GENERIC @@ -1,4 +1,4 @@ -# $OpenBSD: GENERIC,v 1.760 2013/11/04 14:07:16 deraadt Exp $ +# $OpenBSD: GENERIC,v 1.761 2013/11/15 19:42:20 sasano Exp $ # # For further information on compiling OpenBSD kernels, see the config(8) # man page. @@ -276,6 +276,7 @@ smsc* at uhub? # SMSC LAN95xx Ethernet cdce* at uhub? # CDC Ethernet urndis* at uhub? # Remote NDIS Ethernet upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' udav* at uhub? # Davicom DM9601 based Ethernet mos* at uhub? # MOSCHIP MCS7730/7830 10/100 Ethernet url* at uhub? # Realtek RTL8150L based adapters diff --git a/sys/arch/i386/conf/RAMDISKC b/sys/arch/i386/conf/RAMDISKC index 87e970d848f..00ec9374f6e 100644 --- a/sys/arch/i386/conf/RAMDISKC +++ b/sys/arch/i386/conf/RAMDISKC @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISKC,v 1.107 2013/10/28 12:33:32 mpi Exp $ +# $OpenBSD: RAMDISKC,v 1.108 2013/11/15 19:42:20 sasano Exp $ machine i386 # architecture, used by config; REQUIRED @@ -116,6 +116,7 @@ wskbd* at ukbd? mux 1 #kue* at uhub? # Kawasaki KL5KUSB101B based Ethernet #cdce* at uhub? # CDC Ethernet #upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +#ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' #udav* at uhub? # Davicom DM9601 based Ethernet #url* at uhub? # Realtek RTL8150L based adapters #wi* at uhub? # WaveLAN IEEE 802.11DS diff --git a/sys/arch/i386/conf/RAMDISK_CD b/sys/arch/i386/conf/RAMDISK_CD index 09e82619c09..2a27f963003 100644 --- a/sys/arch/i386/conf/RAMDISK_CD +++ b/sys/arch/i386/conf/RAMDISK_CD @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISK_CD,v 1.205 2013/11/04 14:07:16 deraadt Exp $ +# $OpenBSD: RAMDISK_CD,v 1.206 2013/11/15 19:42:20 sasano Exp $ machine i386 # architecture, used by config; REQUIRED @@ -131,6 +131,7 @@ cue* at uhub? # CATC USB-EL1201A based Ethernet kue* at uhub? # Kawasaki KL5KUSB101B based Ethernet smsc* at uhub? # SMSC LAN95xx Ethernet #upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +#ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' #urio* at uhub? # Diamond Multimedia Rio 500 cdce* at uhub? # CDC Ethernet udav* at uhub? # Davicom DM9601 based Ethernet diff --git a/sys/arch/landisk/conf/GENERIC b/sys/arch/landisk/conf/GENERIC index 5fb719c7ccc..d64c32eefbf 100644 --- a/sys/arch/landisk/conf/GENERIC +++ b/sys/arch/landisk/conf/GENERIC @@ -1,4 +1,4 @@ -# $OpenBSD: GENERIC,v 1.40 2013/09/05 19:42:07 sasano Exp $ +# $OpenBSD: GENERIC,v 1.41 2013/11/15 19:42:20 sasano Exp $ # # For further information on compiling OpenBSD kernels, see the config(8) # man page. @@ -135,6 +135,7 @@ smsc* at uhub? # SMSC LAN95xx Ethernet cdce* at uhub? # CDC Ethernet urndis* at uhub? # Remote NDIS Ethernet upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' udav* at uhub? # Davicom DM9601 based Ethernet url* at uhub? # Realtek RTL8150L based adapters wi* at uhub? # WaveLAN IEEE 802.11DS diff --git a/sys/arch/landisk/conf/RAMDISK b/sys/arch/landisk/conf/RAMDISK index 60354f1f6eb..ee006901e15 100644 --- a/sys/arch/landisk/conf/RAMDISK +++ b/sys/arch/landisk/conf/RAMDISK @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISK,v 1.18 2013/08/20 09:14:15 mpi Exp $ +# $OpenBSD: RAMDISK,v 1.19 2013/11/15 19:42:20 sasano Exp $ # # For further information on compiling OpenBSD kernels, see the config(8) # man page. @@ -99,6 +99,7 @@ kue* at uhub? # Kawasaki KL5KUSB101B based Ethernet smsc* at uhub? # SMSC LAN95xx Ethernet cdce* at uhub? # CDC Ethernet upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' udav* at uhub? # Davicom DM9601 based Ethernet url* at uhub? # Realtek RTL8150L based adapters wi* at uhub? # WaveLAN IEEE 802.11DS diff --git a/sys/arch/loongson/conf/GENERIC b/sys/arch/loongson/conf/GENERIC index 516e0225255..4e8e286bb52 100644 --- a/sys/arch/loongson/conf/GENERIC +++ b/sys/arch/loongson/conf/GENERIC @@ -1,4 +1,4 @@ -# $OpenBSD: GENERIC,v 1.40 2013/09/05 19:42:07 sasano Exp $ +# $OpenBSD: GENERIC,v 1.41 2013/11/15 19:42:20 sasano Exp $ # # For further information on compiling OpenBSD kernels, see the config(8) # man page. @@ -147,6 +147,7 @@ uath* at uhub? # Atheros AR5005UG/AR5005UX udav* at uhub? # Davicom DM9601 based Ethernet upgt* at uhub? # Conexant/Intersil PrismGT SoftMAC USB upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' ural* at uhub? # Ralink RT2500USB url* at uhub? # Realtek RTL8150L based adapters urtw* at uhub? # RealTek 8187 diff --git a/sys/arch/loongson/conf/RAMDISK b/sys/arch/loongson/conf/RAMDISK index 3718642642e..4646bd6efb3 100644 --- a/sys/arch/loongson/conf/RAMDISK +++ b/sys/arch/loongson/conf/RAMDISK @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISK,v 1.20 2012/09/27 14:01:35 jsg Exp $ +# $OpenBSD: RAMDISK,v 1.21 2013/11/15 19:42:20 sasano Exp $ # # For further information on compiling OpenBSD kernels, see the config(8) # man page. @@ -121,6 +121,7 @@ uath* at uhub? # Atheros AR5005UG/AR5005UX udav* at uhub? # Davicom DM9601 based Ethernet upgt* at uhub? # Conexant/Intersil PrismGT SoftMAC USB upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' ural* at uhub? # Ralink RT2500USB url* at uhub? # Realtek RTL8150L based adapters urtw* at uhub? # RealTek 8187 diff --git a/sys/arch/macppc/conf/GENERIC b/sys/arch/macppc/conf/GENERIC index dc160287e76..aa78bfd2ac5 100644 --- a/sys/arch/macppc/conf/GENERIC +++ b/sys/arch/macppc/conf/GENERIC @@ -1,4 +1,4 @@ -# $OpenBSD: GENERIC,v 1.227 2013/11/04 14:07:16 deraadt Exp $g +# $OpenBSD: GENERIC,v 1.228 2013/11/15 19:42:20 sasano Exp $g # # For further information on compiling OpenBSD kernels, see the config(8) # man page. @@ -260,6 +260,7 @@ smsc* at uhub? # SMSC LAN95xx Ethernet cdce* at uhub? # CDC Ethernet urndis* at uhub? # Remote NDIS Ethernet upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620A-USB host-to-host `network' udav* at uhub? # Davicom DM9601 based Ethernet mos* at uhub? # MOSCHIP MCS7730/7830 10/100 Ethernet url* at uhub? # Realtek RTL8150L based adapters diff --git a/sys/arch/macppc/conf/RAMDISK b/sys/arch/macppc/conf/RAMDISK index eded4557a7f..670f3709f90 100644 --- a/sys/arch/macppc/conf/RAMDISK +++ b/sys/arch/macppc/conf/RAMDISK @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISK,v 1.98 2013/11/10 12:10:43 mpi Exp $ +# $OpenBSD: RAMDISK,v 1.99 2013/11/15 19:42:20 sasano Exp $ # # PPC GENERIC config file # @@ -171,6 +171,7 @@ kue* at uhub? # Kawasaki KL5KUSB101B based Ethernet smsc* at uhub? # SMSC LAN95xx Ethernet cdce* at uhub? # CDC Ethernet upl* at uhub? # Prolific PL2301/PL2302 host-to-host +ugl* at uhub? # Genesys Logic GL620A-USB host-to-host udav* at uhub? # Davicom DM9601 based Ethernet mos* at uhub? # MOSCHIP MCS7730/7830 10/100 Ethernet ural* at uhub? # Ralink RT2500 diff --git a/sys/arch/sgi/conf/GENERIC-IP27 b/sys/arch/sgi/conf/GENERIC-IP27 index 0b21927b0fb..2cb414a6131 100644 --- a/sys/arch/sgi/conf/GENERIC-IP27 +++ b/sys/arch/sgi/conf/GENERIC-IP27 @@ -1,4 +1,4 @@ -# $OpenBSD: GENERIC-IP27,v 1.47 2013/09/05 19:42:08 sasano Exp $ +# $OpenBSD: GENERIC-IP27,v 1.48 2013/11/15 19:42:20 sasano Exp $ # # THIS KERNEL IS FOR Origin, Onyx, Fuel, Tezro (IP27, IP35) SYSTEMS ONLY. # @@ -136,6 +136,7 @@ uath* at uhub? # Atheros AR5005UG/AR5005UX udav* at uhub? # Davicom DM9601 based Ethernet upgt* at uhub? # Conexant/Intersil PrismGT SoftMAC USB upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' ural* at uhub? # Ralink RT2500USB url* at uhub? # Realtek RTL8150L based adapters urtw* at uhub? # RealTek 8187 diff --git a/sys/arch/sgi/conf/GENERIC-IP30 b/sys/arch/sgi/conf/GENERIC-IP30 index 95b1e6d7885..1761eccb0cb 100644 --- a/sys/arch/sgi/conf/GENERIC-IP30 +++ b/sys/arch/sgi/conf/GENERIC-IP30 @@ -1,4 +1,4 @@ -# $OpenBSD: GENERIC-IP30,v 1.41 2013/09/05 19:42:08 sasano Exp $ +# $OpenBSD: GENERIC-IP30,v 1.42 2013/11/15 19:42:20 sasano Exp $ # # THIS KERNEL IS FOR Octane and Octane 2 (IP30) SYSTEMS ONLY. # @@ -128,6 +128,7 @@ uath* at uhub? # Atheros AR5005UG/AR5005UX udav* at uhub? # Davicom DM9601 based Ethernet upgt* at uhub? # Conexant/Intersil PrismGT SoftMAC USB upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' ural* at uhub? # Ralink RT2500USB url* at uhub? # Realtek RTL8150L based adapters urtw* at uhub? # RealTek 8187 diff --git a/sys/arch/sgi/conf/GENERIC-IP32 b/sys/arch/sgi/conf/GENERIC-IP32 index ac1dafc84a2..e9b2b331d59 100644 --- a/sys/arch/sgi/conf/GENERIC-IP32 +++ b/sys/arch/sgi/conf/GENERIC-IP32 @@ -1,4 +1,4 @@ -# $OpenBSD: GENERIC-IP32,v 1.32 2013/09/05 19:42:08 sasano Exp $ +# $OpenBSD: GENERIC-IP32,v 1.33 2013/11/15 19:42:20 sasano Exp $ # # THIS KERNEL IS FOR O2 (IP32) SYSTEMS ONLY. # @@ -120,6 +120,7 @@ uath* at uhub? # Atheros AR5005UG/AR5005UX udav* at uhub? # Davicom DM9601 based Ethernet upgt* at uhub? # Conexant/Intersil PrismGT SoftMAC USB upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' ural* at uhub? # Ralink RT2500USB url* at uhub? # Realtek RTL8150L based adapters urtw* at uhub? # RealTek 8187 diff --git a/sys/arch/sgi/conf/RAMDISK-IP27 b/sys/arch/sgi/conf/RAMDISK-IP27 index fbb3d9bd8f8..70367a9ae2e 100644 --- a/sys/arch/sgi/conf/RAMDISK-IP27 +++ b/sys/arch/sgi/conf/RAMDISK-IP27 @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISK-IP27,v 1.27 2012/09/27 14:01:35 jsg Exp $ +# $OpenBSD: RAMDISK-IP27,v 1.28 2013/11/15 19:42:20 sasano Exp $ # # THIS KERNEL IS FOR Origin, Onyx, Fuel, Tezro (IP27, IP35) SYSTEMS ONLY. @@ -130,6 +130,7 @@ uath* at uhub? # Atheros AR5005UG/AR5005UX udav* at uhub? # Davicom DM9601 based Ethernet upgt* at uhub? # Conexant/Intersil PrismGT SoftMAC USB upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' ural* at uhub? # Ralink RT2500USB url* at uhub? # Realtek RTL8150L based adapters urtw* at uhub? # RealTek 8187 diff --git a/sys/arch/sgi/conf/RAMDISK-IP30 b/sys/arch/sgi/conf/RAMDISK-IP30 index b5b8cc76fc5..78442371dc6 100644 --- a/sys/arch/sgi/conf/RAMDISK-IP30 +++ b/sys/arch/sgi/conf/RAMDISK-IP30 @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISK-IP30,v 1.23 2012/09/27 14:01:35 jsg Exp $ +# $OpenBSD: RAMDISK-IP30,v 1.24 2013/11/15 19:42:20 sasano Exp $ # # THIS KERNEL IS FOR Octane and Octane 2 (IP30) SYSTEMS ONLY. @@ -123,6 +123,7 @@ uath* at uhub? # Atheros AR5005UG/AR5005UX udav* at uhub? # Davicom DM9601 based Ethernet upgt* at uhub? # Conexant/Intersil PrismGT SoftMAC USB upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' ural* at uhub? # Ralink RT2500USB url* at uhub? # Realtek RTL8150L based adapters urtw* at uhub? # RealTek 8187 diff --git a/sys/arch/sgi/conf/RAMDISK-IP32 b/sys/arch/sgi/conf/RAMDISK-IP32 index 94a76a81551..85f54838ad2 100644 --- a/sys/arch/sgi/conf/RAMDISK-IP32 +++ b/sys/arch/sgi/conf/RAMDISK-IP32 @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISK-IP32,v 1.19 2012/09/27 14:01:35 jsg Exp $ +# $OpenBSD: RAMDISK-IP32,v 1.20 2013/11/15 19:42:20 sasano Exp $ # # THIS KERNEL IS FOR O2 (IP32) SYSTEMS ONLY. @@ -113,6 +113,7 @@ uath* at uhub? # Atheros AR5005UG/AR5005UX udav* at uhub? # Davicom DM9601 based Ethernet upgt* at uhub? # Conexant/Intersil PrismGT SoftMAC USB upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' ural* at uhub? # Ralink RT2500USB url* at uhub? # Realtek RTL8150L based adapters urtw* at uhub? # RealTek 8187 diff --git a/sys/arch/sparc64/conf/GENERIC b/sys/arch/sparc64/conf/GENERIC index 52afd406501..b7a7052143d 100644 --- a/sys/arch/sparc64/conf/GENERIC +++ b/sys/arch/sparc64/conf/GENERIC @@ -1,4 +1,4 @@ -# $OpenBSD: GENERIC,v 1.273 2013/09/05 19:42:08 sasano Exp $ +# $OpenBSD: GENERIC,v 1.274 2013/11/15 19:42:20 sasano Exp $ # # For further information on compiling OpenBSD kernels, see the config(8) # man page. @@ -218,6 +218,7 @@ urndis* at uhub? # Remote NDIS devices udav* at uhub? # Davicom DM9601 based Ethernet mos* at uhub? # MOSCHIP MCS7730/7830 10/100 Ethernet upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' +ugl* at uhub? # Genesys Logic GL620USB-A host-to-host `network' ural* at uhub? # Ralink RT2500USB uath* at uhub? # Atheros AR5005UG/AR5005UX rsu* at uhub? # Realtek RTL8188SU/RTL8191SU/RTL8192SU diff --git a/sys/arch/zaurus/conf/GENERIC b/sys/arch/zaurus/conf/GENERIC index a977debdc5c..dbf8a13a502 100644 --- a/sys/arch/zaurus/conf/GENERIC +++ b/sys/arch/zaurus/conf/GENERIC @@ -1,4 +1,4 @@ -# $OpenBSD: GENERIC,v 1.89 2013/08/20 14:27:31 ajacoutot Exp $ +# $OpenBSD: GENERIC,v 1.90 2013/11/15 19:42:20 sasano Exp $ # # For further information on compiling OpenBSD kernels, see the config(8) # man page. @@ -115,6 +115,7 @@ smsc* at uhub? # SMSC LAN95xx Ethernet cdce* at uhub? # CDC Ethernet urndis* at uhub? # Remote NDIS devices upl* at uhub? # Prolific PL2301/PL2302 host-to-host +ugl* at uhub? # Genesys Logic GL620A-USB host-to-host udav* at uhub? # Davicom DM9601 based Ethernet ural* at uhub? # Ralink RT2500USB rum* at uhub? # Ralink RT2501USB/RT2601USB diff --git a/sys/arch/zaurus/conf/RAMDISK b/sys/arch/zaurus/conf/RAMDISK index cc75f2bb512..4a1d28afe4b 100644 --- a/sys/arch/zaurus/conf/RAMDISK +++ b/sys/arch/zaurus/conf/RAMDISK @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISK,v 1.45 2013/08/20 14:27:31 ajacoutot Exp $ +# $OpenBSD: RAMDISK,v 1.46 2013/11/15 19:42:20 sasano Exp $ machine zaurus arm @@ -88,6 +88,7 @@ ural* at uhub? # Ralink RT2500 url* at uhub? # Realtek RTL8150L based adapters wi* at uhub? # WaveLAN IEEE 802.11DS upl* at uhub? # Prolific PL2301/PL2302 host-to-host +ugl* at uhub? # Genesys Logic GL620A-USB host-to-host #uyap* at uhub? # Y@P firmware loader #ugen* at uhub? # USB Generic driver umass* at uhub? # USB Mass Storage devices diff --git a/sys/dev/usb/files.usb b/sys/dev/usb/files.usb index 4dddc2ad929..b736803d5a3 100644 --- a/sys/dev/usb/files.usb +++ b/sys/dev/usb/files.usb @@ -1,4 +1,4 @@ -# $OpenBSD: files.usb,v 1.110 2013/10/07 05:37:41 yuo Exp $ +# $OpenBSD: files.usb,v 1.111 2013/11/15 19:42:20 sasano Exp $ # $NetBSD: files.usb,v 1.16 2000/02/14 20:29:54 augustss Exp $ # # Config file and device description for machine-independent USB code. @@ -257,6 +257,11 @@ device upl: ifnet attach upl at uhub file dev/usb/if_upl.c upl +# Genesys Logic GL620USB-A host-host +device ugl: ether, ifnet, ifmedia +attach ugl at uhub +file dev/usb/if_ugl.c ugl + # Realtek RTL8150L(M) device url: ether, ifnet, mii attach url at uhub diff --git a/sys/dev/usb/if_ugl.c b/sys/dev/usb/if_ugl.c new file mode 100644 index 00000000000..0e7d8a1a5c8 --- /dev/null +++ b/sys/dev/usb/if_ugl.c @@ -0,0 +1,940 @@ +/* $OpenBSD: if_ugl.c,v 1.1 2013/11/15 19:42:20 sasano Exp $ */ +/* $NetBSD: if_upl.c,v 1.19 2002/07/11 21:14:26 augustss Exp $ */ +/* + * Copyright (c) 2000 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Lennart Augustsson (lennart@augustsson.net) at + * Carlstedt Research & Technology. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Genesys Logic GL620USB-A driver + * This driver is based on Prolific PL2301/PL2302 driver (if_upl.c). + */ + +#include <bpfilter.h> + +#include <sys/param.h> +#include <sys/systm.h> +#include <sys/timeout.h> +#include <sys/sockio.h> +#include <sys/mbuf.h> +#include <sys/kernel.h> +#include <sys/socket.h> + +#include <sys/device.h> + +#include <net/if.h> +#include <net/if_types.h> +#include <net/if_dl.h> +#include <net/netisr.h> + +#if NBPFILTER > 0 +#include <net/bpf.h> +#endif + +#ifdef INET +#include <netinet/in.h> +#include <netinet/in_systm.h> +#include <netinet/ip.h> +#include <netinet/if_ether.h> +#else +#error ugl without INET? +#endif + +#include <dev/usb/usb.h> +#include <dev/usb/usbdi.h> +#include <dev/usb/usbdi_util.h> +#include <dev/usb/usbdevs.h> + +#define UGL_INTR_PKTLEN 8 +#define UGL_BULK_PKTLEN 64 + +#define UGL_CONFIG_NO 1 +#define UGL_IFACE_IDX 0 + +/***/ + +#define UGL_INTR_INTERVAL 20 + +#define UGL_MAX_MTU 1514 +#define UGL_BUFSZ roundup(sizeof(struct ugl_packet), UGL_BULK_PKTLEN) + +#define UGL_RX_FRAMES 1 /* must be one */ +#define UGL_TX_FRAMES 1 /* must be one */ + +#define UGL_RX_LIST_CNT 1 +#define UGL_TX_LIST_CNT 1 + +#define UGL_ENDPT_RX 0x0 +#define UGL_ENDPT_TX 0x1 +#define UGL_ENDPT_INTR 0x2 +#define UGL_ENDPT_MAX 0x3 + +struct ugl_softc; + +struct ugl_packet { + uDWord pkt_count; + uDWord pkt_length; + char pkt_data[UGL_MAX_MTU]; +} __packed; + +struct ugl_chain { + struct ugl_softc *ugl_sc; + struct usbd_xfer *ugl_xfer; + struct ugl_packet *ugl_buf; + struct mbuf *ugl_mbuf; + int ugl_idx; +}; + +struct ugl_cdata { + struct ugl_chain ugl_tx_chain[UGL_TX_LIST_CNT]; + struct ugl_chain ugl_rx_chain[UGL_RX_LIST_CNT]; + int ugl_tx_prod; + int ugl_tx_cons; + int ugl_tx_cnt; + int ugl_rx_prod; +}; + +struct ugl_softc { + struct device sc_dev; + + struct arpcom sc_arpcom; +#define GET_IFP(sc) (&(sc)->sc_arpcom.ac_if) + struct timeout sc_stat_ch; + + struct usbd_device *sc_udev; + struct usbd_interface *sc_iface; + u_int16_t sc_vendor; + u_int16_t sc_product; + int sc_ed[UGL_ENDPT_MAX]; + struct usbd_pipe *sc_ep[UGL_ENDPT_MAX]; + struct ugl_cdata sc_cdata; + + uByte sc_ibuf[UGL_INTR_PKTLEN]; + + int sc_unit; + u_int sc_rx_errs; + struct timeval sc_rx_notice; + u_int sc_intr_errs; +}; + +#ifdef UGL_DEBUG +#define DPRINTF(x) do { if (ugldebug) printf x; } while (0) +#define DPRINTFN(n,x) do { if (ugldebug >= (n)) printf x; } while (0) +int ugldebug = 0; +#else +#define DPRINTF(x) +#define DPRINTFN(n,x) +#endif + +extern int ticks; + +/* + * Various supported device vendors/products. + */ +struct usb_devno ugl_devs[] = { + { USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL620USB_A }, +}; + +int ugl_match(struct device *, void *, void *); +void ugl_attach(struct device *, struct device *, void *); +int ugl_detach(struct device *, int); +int ugl_activate(struct device *, int); + +struct cfdriver ugl_cd = { + NULL, "ugl", DV_IFNET +}; + +const struct cfattach ugl_ca = { + sizeof(struct ugl_softc), + ugl_match, + ugl_attach, + ugl_detach, + ugl_activate, +}; + +int ugl_openpipes(struct ugl_softc *); +int ugl_tx_list_init(struct ugl_softc *); +int ugl_rx_list_init(struct ugl_softc *); +int ugl_newbuf(struct ugl_softc *, struct ugl_chain *, struct mbuf *); +int ugl_send(struct ugl_softc *, struct mbuf *, int); +void ugl_intr(struct usbd_xfer *, void *, usbd_status); +void ugl_rxeof(struct usbd_xfer *, void *, usbd_status); +void ugl_txeof(struct usbd_xfer *, void *, usbd_status); +void ugl_start(struct ifnet *); +int ugl_ioctl(struct ifnet *, u_long, caddr_t); +void ugl_init(void *); +void ugl_stop(struct ugl_softc *); +void ugl_watchdog(struct ifnet *); + +/* + * Probe for a Genesys Logic chip. + */ +int +ugl_match(struct device *parent, void *match, void *aux) +{ + struct usb_attach_arg *uaa = aux; + + if (uaa->iface != NULL) + return (UMATCH_NONE); + + return (usb_lookup(ugl_devs, uaa->vendor, uaa->product) != NULL ? + UMATCH_VENDOR_PRODUCT : UMATCH_NONE); +} + +void +ugl_attach(struct device *parent, struct device *self, void *aux) +{ + struct ugl_softc *sc = (struct ugl_softc *)self; + struct usb_attach_arg *uaa = aux; + int s; + struct usbd_device *dev = uaa->device; + struct usbd_interface *iface; + usbd_status err; + struct ifnet *ifp; + usb_interface_descriptor_t *id; + usb_endpoint_descriptor_t *ed; + int i; + u_int16_t macaddr_hi; + + DPRINTFN(5,(" : ugl_attach: sc=%p, dev=%p", sc, dev)); + + err = usbd_set_config_no(dev, UGL_CONFIG_NO, 1); + if (err) { + printf("%s: setting config no failed\n", + sc->sc_dev.dv_xname); + return; + } + + sc->sc_unit = self->dv_unit; + sc->sc_udev = dev; + sc->sc_product = uaa->product; + sc->sc_vendor = uaa->vendor; + + err = usbd_device2interface_handle(dev, UGL_IFACE_IDX, &iface); + if (err) { + printf("%s: getting interface handle failed\n", + sc->sc_dev.dv_xname); + return; + } + + sc->sc_iface = iface; + id = usbd_get_interface_descriptor(iface); + + /* Find endpoints. */ + for (i = 0; i < id->bNumEndpoints; i++) { + ed = usbd_interface2endpoint_descriptor(iface, i); + if (ed == NULL) { + printf("%s: couldn't get ep %d\n", + sc->sc_dev.dv_xname, i); + return; + } + if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_IN && + UE_GET_XFERTYPE(ed->bmAttributes) == UE_BULK) { + sc->sc_ed[UGL_ENDPT_RX] = ed->bEndpointAddress; + } else if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_OUT && + UE_GET_XFERTYPE(ed->bmAttributes) == UE_BULK) { + sc->sc_ed[UGL_ENDPT_TX] = ed->bEndpointAddress; + } else if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_IN && + UE_GET_XFERTYPE(ed->bmAttributes) == UE_INTERRUPT) { + sc->sc_ed[UGL_ENDPT_INTR] = ed->bEndpointAddress; + } + } + + if (sc->sc_ed[UGL_ENDPT_RX] == 0 || sc->sc_ed[UGL_ENDPT_TX] == 0 || + sc->sc_ed[UGL_ENDPT_INTR] == 0) { + printf("%s: missing endpoint\n", sc->sc_dev.dv_xname); + return; + } + + s = splnet(); + + macaddr_hi = htons(0x2acb); + bcopy(&macaddr_hi, &sc->sc_arpcom.ac_enaddr[0], sizeof(u_int16_t)); + bcopy(&ticks, &sc->sc_arpcom.ac_enaddr[2], sizeof(u_int32_t)); + sc->sc_arpcom.ac_enaddr[5] = (u_int8_t)(sc->sc_unit); + + printf("%s: address %s\n", + sc->sc_dev.dv_xname, ether_sprintf(sc->sc_arpcom.ac_enaddr)); + + /* Initialize interface info.*/ + ifp = GET_IFP(sc); + ifp->if_softc = sc; + ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; + ifp->if_ioctl = ugl_ioctl; + ifp->if_start = ugl_start; + ifp->if_watchdog = ugl_watchdog; + strlcpy(ifp->if_xname, sc->sc_dev.dv_xname, IFNAMSIZ); + + IFQ_SET_READY(&ifp->if_snd); + + /* Attach the interface. */ + if_attach(ifp); + ether_ifattach(ifp); + + splx(s); +} + +int +ugl_detach(struct device *self, int flags) +{ + struct ugl_softc *sc = (struct ugl_softc *)self; + struct ifnet *ifp = GET_IFP(sc); + int s; + + DPRINTFN(2,("%s: %s: enter\n", sc->sc_dev.dv_xname, __func__)); + + s = splusb(); + + if (ifp->if_flags & IFF_RUNNING) + ugl_stop(sc); + + if (ifp->if_softc != NULL) + if_detach(ifp); + +#ifdef DIAGNOSTIC + if (sc->sc_ep[UGL_ENDPT_TX] != NULL || + sc->sc_ep[UGL_ENDPT_RX] != NULL || + sc->sc_ep[UGL_ENDPT_INTR] != NULL) + printf("%s: detach has active endpoints\n", + sc->sc_dev.dv_xname); +#endif + + splx(s); + + return (0); +} + +int +ugl_activate(struct device *self, int act) +{ + struct ugl_softc *sc = (struct ugl_softc *)self; + + switch (act) { + case DVACT_DEACTIVATE: + usbd_deactivate(sc->sc_udev); + break; + } + return (0); +} + +/* + * Initialize an RX descriptor and attach an MBUF cluster. + */ +int +ugl_newbuf(struct ugl_softc *sc, struct ugl_chain *c, struct mbuf *m) +{ + struct mbuf *m_new = NULL; + + DPRINTFN(8,("%s: %s: enter\n", sc->sc_dev.dv_xname, __func__)); + + if (m == NULL) { + MGETHDR(m_new, M_DONTWAIT, MT_DATA); + if (m_new == NULL) { + printf("%s: no memory for rx list " + "-- packet dropped!\n", sc->sc_dev.dv_xname); + return (ENOBUFS); + } + + MCLGET(m_new, M_DONTWAIT); + if (!(m_new->m_flags & M_EXT)) { + printf("%s: no memory for rx list " + "-- packet dropped!\n", sc->sc_dev.dv_xname); + m_freem(m_new); + return (ENOBUFS); + } + m_new->m_len = m_new->m_pkthdr.len = MCLBYTES; + } else { + m_new = m; + m_new->m_len = m_new->m_pkthdr.len = MCLBYTES; + m_new->m_data = m_new->m_ext.ext_buf; + } + + c->ugl_mbuf = m_new; + + return (0); +} + +int +ugl_rx_list_init(struct ugl_softc *sc) +{ + struct ugl_cdata *cd; + struct ugl_chain *c; + int i; + + DPRINTFN(5,("%s: %s: enter\n", sc->sc_dev.dv_xname, __func__)); + + cd = &sc->sc_cdata; + for (i = 0; i < UGL_RX_LIST_CNT; i++) { + c = &cd->ugl_rx_chain[i]; + c->ugl_sc = sc; + c->ugl_idx = i; + if (ugl_newbuf(sc, c, NULL) == ENOBUFS) + return (ENOBUFS); + if (c->ugl_xfer == NULL) { + c->ugl_xfer = usbd_alloc_xfer(sc->sc_udev); + if (c->ugl_xfer == NULL) + return (ENOBUFS); + c->ugl_buf = usbd_alloc_buffer(c->ugl_xfer, UGL_BUFSZ); + if (c->ugl_buf == NULL) { + usbd_free_xfer(c->ugl_xfer); + return (ENOBUFS); + } + } + } + + return (0); +} + +int +ugl_tx_list_init(struct ugl_softc *sc) +{ + struct ugl_cdata *cd; + struct ugl_chain *c; + int i; + + DPRINTFN(5,("%s: %s: enter\n", sc->sc_dev.dv_xname, __func__)); + + cd = &sc->sc_cdata; + for (i = 0; i < UGL_TX_LIST_CNT; i++) { + c = &cd->ugl_tx_chain[i]; + c->ugl_sc = sc; + c->ugl_idx = i; + c->ugl_mbuf = NULL; + if (c->ugl_xfer == NULL) { + c->ugl_xfer = usbd_alloc_xfer(sc->sc_udev); + if (c->ugl_xfer == NULL) + return (ENOBUFS); + c->ugl_buf = usbd_alloc_buffer(c->ugl_xfer, UGL_BUFSZ); + if (c->ugl_buf == NULL) { + usbd_free_xfer(c->ugl_xfer); + return (ENOBUFS); + } + } + } + + return (0); +} + +/* + * A frame has been uploaded: pass the resulting mbuf chain up to + * the higher level protocols. + */ +void +ugl_rxeof(struct usbd_xfer *xfer, void *priv, usbd_status status) +{ + struct ugl_chain *c = priv; + struct ugl_softc *sc = c->ugl_sc; + struct ifnet *ifp = GET_IFP(sc); + struct mbuf *m; + int total_len = 0; + unsigned int packet_len, packet_count; + int s; + + if (usbd_is_dying(sc->sc_udev)) + return; + + if (!(ifp->if_flags & IFF_RUNNING)) + return; + + if (status != USBD_NORMAL_COMPLETION) { + if (status == USBD_NOT_STARTED || status == USBD_CANCELLED) + return; + sc->sc_rx_errs++; + if (usbd_ratecheck(&sc->sc_rx_notice)) { + printf("%s: %u usb errors on rx: %s\n", + sc->sc_dev.dv_xname, sc->sc_rx_errs, + usbd_errstr(status)); + sc->sc_rx_errs = 0; + } + if (status == USBD_STALLED) + usbd_clear_endpoint_stall_async(sc->sc_ep[UGL_ENDPT_RX]); + goto done; + } + + usbd_get_xfer_status(xfer, NULL, NULL, &total_len, NULL); + + DPRINTFN(9,("%s: %s: enter status=%d length=%d\n", + sc->sc_dev.dv_xname, __func__, status, total_len)); + + if (total_len < offsetof(struct ugl_packet, pkt_data)) { + printf("%s: bad header (length=%d)\n", + sc->sc_dev.dv_xname, total_len); + + goto done; + } + + packet_count = UGETDW(c->ugl_buf->pkt_count); + if (packet_count != UGL_RX_FRAMES) { + printf("%s: bad packet count (%d)\n", + sc->sc_dev.dv_xname, packet_count); + + if (packet_count == 0) + goto done; + } + + packet_len = UGETDW(c->ugl_buf->pkt_length); + if (total_len < packet_len) { + printf("%s: bad packet size(%d), length=%d\n", + sc->sc_dev.dv_xname, packet_len, total_len); + + if (packet_len == 0) + goto done; + } + + m = c->ugl_mbuf; + memcpy(mtod(c->ugl_mbuf, char *), c->ugl_buf->pkt_data, packet_len); + + ifp->if_ipackets++; + m->m_pkthdr.len = m->m_len = packet_len; + + m->m_pkthdr.rcvif = ifp; + + s = splnet(); + + /* XXX ugly */ + if (ugl_newbuf(sc, c, NULL) == ENOBUFS) { + ifp->if_ierrors++; + goto done1; + } + +#if NBPFILTER > 0 + /* + * Handle BPF listeners. Let the BPF user see the packet, but + * don't pass it up to the ether_input() layer unless it's + * a broadcast packet, multicast packet, matches our ethernet + * address or the interface is in promiscuous mode. + */ + if (ifp->if_bpf) { + bpf_mtap(ifp->if_bpf, m, BPF_DIRECTION_IN); + } +#endif + + DPRINTFN(10,("%s: %s: deliver %d\n", sc->sc_dev.dv_xname, + __func__, m->m_len)); + + ether_input_mbuf(ifp, m); + + done1: + splx(s); + + done: + /* Setup new transfer. */ + usbd_setup_xfer(c->ugl_xfer, sc->sc_ep[UGL_ENDPT_RX], + c, c->ugl_buf, UGL_BUFSZ, USBD_SHORT_XFER_OK | USBD_NO_COPY, + USBD_NO_TIMEOUT, ugl_rxeof); + usbd_transfer(c->ugl_xfer); + + DPRINTFN(10,("%s: %s: start rx\n", sc->sc_dev.dv_xname, + __func__)); +} + +/* + * A frame was downloaded to the chip. It's safe for us to clean up + * the list buffers. + */ +void +ugl_txeof(struct usbd_xfer *xfer, void *priv, usbd_status status) +{ + struct ugl_chain *c = priv; + struct ugl_softc *sc = c->ugl_sc; + struct ifnet *ifp = GET_IFP(sc); + int s; + + if (usbd_is_dying(sc->sc_udev)) + return; + + s = splnet(); + + DPRINTFN(10,("%s: %s: enter status=%d\n", sc->sc_dev.dv_xname, + __func__, status)); + + ifp->if_timer = 0; + ifp->if_flags &= ~IFF_OACTIVE; + + if (status != USBD_NORMAL_COMPLETION) { + if (status == USBD_NOT_STARTED || status == USBD_CANCELLED) { + splx(s); + return; + } + ifp->if_oerrors++; + printf("%s: usb error on tx: %s\n", sc->sc_dev.dv_xname, + usbd_errstr(status)); + if (status == USBD_STALLED) + usbd_clear_endpoint_stall_async(sc->sc_ep[UGL_ENDPT_TX]); + splx(s); + return; + } + + ifp->if_opackets++; + + m_freem(c->ugl_mbuf); + c->ugl_mbuf = NULL; + + if (IFQ_IS_EMPTY(&ifp->if_snd) == 0) + ugl_start(ifp); + + splx(s); +} + +int +ugl_send(struct ugl_softc *sc, struct mbuf *m, int idx) +{ + int total_len; + struct ugl_chain *c; + usbd_status err; + + c = &sc->sc_cdata.ugl_tx_chain[idx]; + + /* + * Copy the mbuf data into a contiguous buffer, leaving two + * bytes at the beginning to hold the frame length. + */ + USETDW(c->ugl_buf->pkt_count, UGL_TX_FRAMES); + USETDW(c->ugl_buf->pkt_length, m->m_pkthdr.len); + m_copydata(m, 0, m->m_pkthdr.len, c->ugl_buf->pkt_data); + c->ugl_mbuf = m; + + total_len = offsetof(struct ugl_packet, pkt_data[m->m_pkthdr.len]); + + DPRINTFN(10,("%s: %s: total_len=%d\n", + sc->sc_dev.dv_xname, __func__, total_len)); + + usbd_setup_xfer(c->ugl_xfer, sc->sc_ep[UGL_ENDPT_TX], + c, c->ugl_buf, total_len, USBD_FORCE_SHORT_XFER | USBD_NO_COPY, + USBD_DEFAULT_TIMEOUT, ugl_txeof); + + /* Transmit */ + err = usbd_transfer(c->ugl_xfer); + if (err != USBD_IN_PROGRESS) { + printf("%s: ugl_send error=%s\n", sc->sc_dev.dv_xname, + usbd_errstr(err)); + ugl_stop(sc); + return (EIO); + } + + sc->sc_cdata.ugl_tx_cnt++; + + return (0); +} + +void +ugl_start(struct ifnet *ifp) +{ + struct ugl_softc *sc = ifp->if_softc; + struct mbuf *m_head = NULL; + + if (usbd_is_dying(sc->sc_udev)) + return; + + DPRINTFN(10,("%s: %s: enter\n", sc->sc_dev.dv_xname,__func__)); + + if (ifp->if_flags & IFF_OACTIVE) + return; + + IFQ_POLL(&ifp->if_snd, m_head); + if (m_head == NULL) + return; + + if (ugl_send(sc, m_head, 0)) { + ifp->if_flags |= IFF_OACTIVE; + return; + } + + IFQ_DEQUEUE(&ifp->if_snd, m_head); + +#if NBPFILTER > 0 + /* + * If there's a BPF listener, bounce a copy of this frame + * to him. + */ + if (ifp->if_bpf) + bpf_mtap(ifp->if_bpf, m_head, BPF_DIRECTION_OUT); +#endif + + ifp->if_flags |= IFF_OACTIVE; + + /* + * Set a timeout in case the chip goes out to lunch. + */ + ifp->if_timer = 5; +} + +void +ugl_init(void *xsc) +{ + struct ugl_softc *sc = xsc; + struct ifnet *ifp = GET_IFP(sc); + int s; + + if (usbd_is_dying(sc->sc_udev)) + return; + + DPRINTFN(10,("%s: %s: enter\n", sc->sc_dev.dv_xname,__func__)); + + if (ifp->if_flags & IFF_RUNNING) + return; + + s = splnet(); + + /* Init TX ring. */ + if (ugl_tx_list_init(sc) == ENOBUFS) { + printf("%s: tx list init failed\n", sc->sc_dev.dv_xname); + splx(s); + return; + } + + /* Init RX ring. */ + if (ugl_rx_list_init(sc) == ENOBUFS) { + printf("%s: rx list init failed\n", sc->sc_dev.dv_xname); + splx(s); + return; + } + + if (sc->sc_ep[UGL_ENDPT_RX] == NULL) { + if (ugl_openpipes(sc)) { + splx(s); + return; + } + } + + ifp->if_flags |= IFF_RUNNING; + ifp->if_flags &= ~IFF_OACTIVE; + + splx(s); +} + +int +ugl_openpipes(struct ugl_softc *sc) +{ + struct ugl_chain *c; + usbd_status err; + int i; + + /* Open RX and TX pipes. */ + err = usbd_open_pipe(sc->sc_iface, sc->sc_ed[UGL_ENDPT_RX], + USBD_EXCLUSIVE_USE, &sc->sc_ep[UGL_ENDPT_RX]); + if (err) { + printf("%s: open rx pipe failed: %s\n", + sc->sc_dev.dv_xname, usbd_errstr(err)); + return (EIO); + } + err = usbd_open_pipe(sc->sc_iface, sc->sc_ed[UGL_ENDPT_TX], + USBD_EXCLUSIVE_USE, &sc->sc_ep[UGL_ENDPT_TX]); + if (err) { + printf("%s: open tx pipe failed: %s\n", + sc->sc_dev.dv_xname, usbd_errstr(err)); + return (EIO); + } + err = usbd_open_pipe_intr(sc->sc_iface, sc->sc_ed[UGL_ENDPT_INTR], + USBD_EXCLUSIVE_USE, &sc->sc_ep[UGL_ENDPT_INTR], sc, + sc->sc_ibuf, UGL_INTR_PKTLEN, ugl_intr, + UGL_INTR_INTERVAL); + if (err) { + printf("%s: open intr pipe failed: %s\n", + sc->sc_dev.dv_xname, usbd_errstr(err)); + return (EIO); + } + + /* Start up the receive pipe. */ + for (i = 0; i < UGL_RX_LIST_CNT; i++) { + c = &sc->sc_cdata.ugl_rx_chain[i]; + usbd_setup_xfer(c->ugl_xfer, sc->sc_ep[UGL_ENDPT_RX], + c, c->ugl_buf, UGL_BUFSZ, + USBD_SHORT_XFER_OK | USBD_NO_COPY, USBD_NO_TIMEOUT, + ugl_rxeof); + usbd_transfer(c->ugl_xfer); + } + + return (0); +} + +void +ugl_intr(struct usbd_xfer *xfer, void *priv, usbd_status status) +{ + struct ugl_softc *sc = priv; + struct ifnet *ifp = GET_IFP(sc); + int i; + + DPRINTFN(15,("%s: %s: enter\n", sc->sc_dev.dv_xname,__func__)); + + if (usbd_is_dying(sc->sc_udev)) + return; + + if (!(ifp->if_flags & IFF_RUNNING)) + return; + + if (status != USBD_NORMAL_COMPLETION) { + if (status == USBD_NOT_STARTED || status == USBD_CANCELLED) { + return; + } + sc->sc_intr_errs++; + if (usbd_ratecheck(&sc->sc_rx_notice)) { + printf("%s: %u usb errors on intr: %s\n", + sc->sc_dev.dv_xname, sc->sc_rx_errs, + usbd_errstr(status)); + sc->sc_intr_errs = 0; + } + if (status == USBD_STALLED) + usbd_clear_endpoint_stall_async(sc->sc_ep[UGL_ENDPT_RX]); + return; + } + + DPRINTFN(10,("%s: %s:", sc->sc_dev.dv_xname, __func__)); + for (i = 0; i < UGL_INTR_PKTLEN; i++) + DPRINTFN(10,(" 0x%02x", sc->sc_ibuf[i])); + DPRINTFN(10,("\n")); + +} + +int +ugl_ioctl(struct ifnet *ifp, u_long command, caddr_t data) +{ + struct ugl_softc *sc = ifp->if_softc; + struct ifaddr *ifa = (struct ifaddr *)data; + struct ifreq *ifr = (struct ifreq *)data; + int s, error = 0; + + if (usbd_is_dying(sc->sc_udev)) + return (EIO); + + DPRINTFN(5,("%s: %s: cmd=0x%08lx\n", + sc->sc_dev.dv_xname, __func__, command)); + + s = splnet(); + + switch(command) { + case SIOCSIFADDR: + ifp->if_flags |= IFF_UP; + ugl_init(sc); + + switch (ifa->ifa_addr->sa_family) { +#ifdef INET + case AF_INET: + arp_ifinit(&sc->sc_arpcom, ifa); + break; +#endif /* INET */ + } + break; + + case SIOCSIFMTU: + if (ifr->ifr_mtu > UGL_MAX_MTU) + error = EINVAL; + else + ifp->if_mtu = ifr->ifr_mtu; + break; + + case SIOCSIFFLAGS: + if (ifp->if_flags & IFF_UP) { + if (!(ifp->if_flags & IFF_RUNNING)) + ugl_init(sc); + } else { + if (ifp->if_flags & IFF_RUNNING) + ugl_stop(sc); + } + error = 0; + break; + default: + error = ENOTTY; + break; + } + + splx(s); + return (error); +} + +void +ugl_watchdog(struct ifnet *ifp) +{ + struct ugl_softc *sc = ifp->if_softc; + + if (usbd_is_dying(sc->sc_udev)) + return; + + ifp->if_oerrors++; + printf("%s: watchdog timeout\n", sc->sc_dev.dv_xname); +} + +/* + * Stop the adapter and free any mbufs allocated to the + * RX and TX lists. + */ +void +ugl_stop(struct ugl_softc *sc) +{ + struct ifnet *ifp; + int i; + + DPRINTFN(10,("%s: %s: enter\n", sc->sc_dev.dv_xname,__func__)); + + ifp = GET_IFP(sc); + ifp->if_timer = 0; + ifp->if_flags &= ~(IFF_RUNNING | IFF_OACTIVE); + + /* Stop transfers. */ + if (sc->sc_ep[UGL_ENDPT_RX] != NULL) { + usbd_abort_pipe(sc->sc_ep[UGL_ENDPT_RX]); + usbd_close_pipe(sc->sc_ep[UGL_ENDPT_RX]); + sc->sc_ep[UGL_ENDPT_RX] = NULL; + } + + if (sc->sc_ep[UGL_ENDPT_TX] != NULL) { + usbd_abort_pipe(sc->sc_ep[UGL_ENDPT_TX]); + usbd_close_pipe(sc->sc_ep[UGL_ENDPT_TX]); + sc->sc_ep[UGL_ENDPT_TX] = NULL; + } + + if (sc->sc_ep[UGL_ENDPT_INTR] != NULL) { + usbd_abort_pipe(sc->sc_ep[UGL_ENDPT_INTR]); + usbd_close_pipe(sc->sc_ep[UGL_ENDPT_INTR]); + sc->sc_ep[UGL_ENDPT_INTR] = NULL; + } + + /* Free RX resources. */ + for (i = 0; i < UGL_RX_LIST_CNT; i++) { + if (sc->sc_cdata.ugl_rx_chain[i].ugl_mbuf != NULL) { + m_freem(sc->sc_cdata.ugl_rx_chain[i].ugl_mbuf); + sc->sc_cdata.ugl_rx_chain[i].ugl_mbuf = NULL; + } + if (sc->sc_cdata.ugl_rx_chain[i].ugl_xfer != NULL) { + usbd_free_xfer(sc->sc_cdata.ugl_rx_chain[i].ugl_xfer); + sc->sc_cdata.ugl_rx_chain[i].ugl_xfer = NULL; + } + } + + /* Free TX resources. */ + for (i = 0; i < UGL_TX_LIST_CNT; i++) { + if (sc->sc_cdata.ugl_tx_chain[i].ugl_mbuf != NULL) { + m_freem(sc->sc_cdata.ugl_tx_chain[i].ugl_mbuf); + sc->sc_cdata.ugl_tx_chain[i].ugl_mbuf = NULL; + } + if (sc->sc_cdata.ugl_tx_chain[i].ugl_xfer != NULL) { + usbd_free_xfer(sc->sc_cdata.ugl_tx_chain[i].ugl_xfer); + sc->sc_cdata.ugl_tx_chain[i].ugl_xfer = NULL; + } + } +} diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs index b544e2518df..3010acde6ae 100644 --- a/sys/dev/usb/usbdevs +++ b/sys/dev/usb/usbdevs @@ -1,4 +1,4 @@ -$OpenBSD: usbdevs,v 1.612 2013/11/09 04:01:37 jsg Exp $ +$OpenBSD: usbdevs,v 1.613 2013/11/15 19:42:20 sasano Exp $ /* $NetBSD: usbdevs,v 1.322 2003/05/10 17:47:14 hamajima Exp $ */ /* @@ -1922,6 +1922,7 @@ product GCTSEMICON INSTALL 0x7f40 GDM720x MASS storage mode product GEMPLUS PROXPU 0x5501 Prox-PU/CU /* Genesys Logic products */ +product GENESYS GL620USB_A 0x0502 GL620USB-A GeneLink USB-USB Bridge product GENESYS GENELINK 0x05e3 GeneLink Host-Host Bridge product GENESYS GL650 0x0604 GL650 Hub product GENESYS GL641USB 0x0700 GL641USB CompactFlash diff --git a/sys/dev/usb/usbdevs.h b/sys/dev/usb/usbdevs.h index 95fb9b21e37..5d165bd15c5 100644 --- a/sys/dev/usb/usbdevs.h +++ b/sys/dev/usb/usbdevs.h @@ -1,4 +1,4 @@ -/* $OpenBSD: usbdevs.h,v 1.623 2013/11/09 04:02:02 jsg Exp $ */ +/* $OpenBSD: usbdevs.h,v 1.624 2013/11/15 19:42:20 sasano Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. @@ -1929,6 +1929,7 @@ #define USB_PRODUCT_GEMPLUS_PROXPU 0x5501 /* Prox-PU/CU */ /* Genesys Logic products */ +#define USB_PRODUCT_GENESYS_GL620USB_A 0x0502 /* GL620USB-A GeneLink USB-USB Bridge */ #define USB_PRODUCT_GENESYS_GENELINK 0x05e3 /* GeneLink Host-Host Bridge */ #define USB_PRODUCT_GENESYS_GL650 0x0604 /* GL650 Hub */ #define USB_PRODUCT_GENESYS_GL641USB 0x0700 /* GL641USB CompactFlash */ diff --git a/sys/dev/usb/usbdevs_data.h b/sys/dev/usb/usbdevs_data.h index 8a0478a95f3..8782a9e1d0f 100644 --- a/sys/dev/usb/usbdevs_data.h +++ b/sys/dev/usb/usbdevs_data.h @@ -1,4 +1,4 @@ -/* $OpenBSD: usbdevs_data.h,v 1.617 2013/11/09 04:02:02 jsg Exp $ */ +/* $OpenBSD: usbdevs_data.h,v 1.618 2013/11/15 19:42:20 sasano Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. @@ -3850,6 +3850,10 @@ const struct usb_known_product usb_known_products[] = { "Prox-PU/CU", }, { + USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL620USB_A, + "GL620USB-A GeneLink USB-USB Bridge", + }, + { USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GENELINK, "GeneLink Host-Host Bridge", }, |