svn commit: r271159 - in head: . share/man/man4 sys/conf sys/dev/usb sys/dev/usb/misc sys/dev/usb/quirk sys/modules/usb sys/modules/usb/uled

Konstantin Belousov kostikbel at gmail.com
Fri Sep 5 13:08:37 UTC 2014


On Fri, Sep 05, 2014 at 11:25:58AM +0000, Kevin Lo wrote:
> Author: kevlo
> Date: Fri Sep  5 11:25:58 2014
> New Revision: 271159
> URL: http://svnweb.freebsd.org/changeset/base/271159
> 
> Log:
>   The USB LED driver for the Dream Cheeky WebMail Notifier.
>   
>   Reviewed by:	hselasky
> 
> Added:
>   head/share/man/man4/uled.4   (contents, props changed)
>   head/sys/dev/usb/misc/uled.c   (contents, props changed)
>   head/sys/dev/usb/uled_ioctl.h   (contents, props changed)
>   head/sys/modules/usb/uled/
>   head/sys/modules/usb/uled/Makefile   (contents, props changed)
> Modified:
>   head/Makefile
^^^^^^^^^

>   head/share/man/man4/Makefile
>   head/sys/conf/NOTES
>   head/sys/conf/files
>   head/sys/dev/usb/quirk/usb_quirk.c
>   head/sys/dev/usb/usbdevs
>   head/sys/modules/usb/Makefile
> 
> Modified: head/Makefile
> ==============================================================================
> --- head/Makefile	Fri Sep  5 11:11:15 2014	(r271158)
> +++ head/Makefile	Fri Sep  5 11:25:58 2014	(r271159)
> @@ -1,6 +1,42 @@
>  #
>  # $FreeBSD$
>  #
> +# Copyright (c) 2014 Kevin Lo. All rights reserved.
> +#
> +# 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 AUTHOR 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 AUTHOR 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.
> +#
> +
> +S=     ${.CURDIR}/../../..
> +
> +.PATH: $S/dev/usb/misc
> +
> +KMOD=	uled
> +SRCS=	opt_bus.h opt_usb.h device_if.h bus_if.h usb_if.h vnode_if.h usbdevs.h \
> +	uled.c
> +
> +.include <bsd.kmod.mk>
> +#
> +# $FreeBSD$
> +#
>  # The user-driven targets are:
>  #
>  # universe            - *Really* build *everything* (buildworld and
> 
It seems you mis-patched the commit tree.

> Modified: head/share/man/man4/Makefile
> ==============================================================================
> --- head/share/man/man4/Makefile	Fri Sep  5 11:11:15 2014	(r271158)
> +++ head/share/man/man4/Makefile	Fri Sep  5 11:25:58 2014	(r271159)
> @@ -527,6 +527,7 @@ MAN=	aac.4 \
>  	uhso.4 \
>  	uipaq.4 \
>  	ukbd.4 \
> +	uled.4 \
>  	ulpt.4 \
>  	umass.4 \
>  	umcs.4 \
> 
> Added: head/share/man/man4/uled.4
> ==============================================================================
> --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/share/man/man4/uled.4	Fri Sep  5 11:25:58 2014	(r271159)
> @@ -0,0 +1,95 @@
> +.\"
> +.\" Copyright (c) 2014 Kevin Lo
> +.\" All rights reserved.
> +.\"
> +.\" 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 AUTHOR 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 AUTHOR 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.
> +.\"
> +.\" $FreeBSD$
> +.\"
> +.Dd September 5, 2014
> +.Dt ULED 4
> +.Os
> +.Sh NAME
> +.Nm uled
> +.Nd USB LED driver
> +.Sh SYNOPSIS
> +To compile this driver into the kernel, place the following lines into
> +your kernel configuration file:
> +.Bd -ragged -offset indent
> +.Cd "device uled"
> +.Cd "device usb"
> +.Ed
> +.Pp
> +Alternatively, to load the driver as a module at boot time,
> +place the following line in
> +.Xr loader.conf 5 :
> +.Bd -literal -offset indent
> +uled_load="YES"
> +.Ed
> +.Sh DESCRIPTION
> +The
> +.Nm
> +driver provides support for the Dream Cheeky WebMail Notifier device.
> +.Pp
> +Subsequently, the
> +.Pa /dev/uled0
> +device can be used by userland applications.
> +.Sh IOCTLS
> +The following
> +.Xr ioctl 2
> +commands can be performed on
> +.Pa /dev/uled0 ,
> +which are defined in
> +.In dev/usb/uled_ioctl.h :
> +.Bl -tag -width indent
> +.It Dv ULED_GET_COLOR
> +The command returns LED colors with values for RGB.
> +This
> +.Xr ioctl 2
> +takes the following structure:
> +.Bd -literal
> +struct uled_color {
> +	uint8_t	red;
> +	uint8_t	green;
> +	uint8_t	blue;
> +};
> +.Ed
> +.Pp
> +.It Dv ULED_SET_COLOR
> +The command sets LED colors with values for RGB.
> +It uses the same structure as above.
> +.El
> +.Sh FILES
> +.Bl -tag -width ".Pa /dev/uled0" -compact
> +.It Pa /dev/uled0
> +blocking device node
> +.El
> +.Sh SEE ALSO
> +.Xr ohci 4 ,
> +.Xr uhci 4 ,
> +.Xr usb 4
> +.Sh AUTHORS
> +.An -nosplit
> +The
> +.Nm
> +driver was written by
> +.An Kevin Lo Aq Mt kevlo at FreeBSD.org .
> 
> Modified: head/sys/conf/NOTES
> ==============================================================================
> --- head/sys/conf/NOTES	Fri Sep  5 11:11:15 2014	(r271158)
> +++ head/sys/conf/NOTES	Fri Sep  5 11:25:58 2014	(r271159)
> @@ -2653,6 +2653,8 @@ device		usb
>  device		udbp
>  # USB Fm Radio
>  device		ufm
> +# USB LED
> +device		uled
>  # Human Interface Device (anything with buttons and dials)
>  device		uhid
>  # USB keyboard
> 
> Modified: head/sys/conf/files
> ==============================================================================
> --- head/sys/conf/files	Fri Sep  5 11:11:15 2014	(r271158)
> +++ head/sys/conf/files	Fri Sep  5 11:25:58 2014	(r271159)
> @@ -2542,6 +2542,7 @@ dev/usb/serial/usb_serial.c 	optional uc
>  #
>  dev/usb/misc/ufm.c		optional ufm
>  dev/usb/misc/udbp.c		optional udbp
> +dev/usb/misc/uled.c		optional uled
>  #
>  # USB input drivers
>  #
> 
> Added: head/sys/dev/usb/misc/uled.c
> ==============================================================================
> --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/sys/dev/usb/misc/uled.c	Fri Sep  5 11:25:58 2014	(r271159)
> @@ -0,0 +1,275 @@
> +/*-
> + * Copyright (c) 2014 Kevin Lo
> + * All rights reserved.
> + *
> + * 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 AUTHOR 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 AUTHOR 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.
> + *
> + */
> +
> +#include <sys/cdefs.h>
> +__FBSDID("$FreeBSD$");
> +
> +#include <sys/stdint.h>
> +#include <sys/stddef.h>
> +#include <sys/param.h>
> +#include <sys/queue.h>
> +#include <sys/types.h>
> +#include <sys/systm.h>
> +#include <sys/kernel.h>
> +#include <sys/bus.h>
> +#include <sys/module.h>
> +#include <sys/lock.h>
> +#include <sys/mutex.h>
> +#include <sys/condvar.h>
> +#include <sys/sysctl.h>
> +#include <sys/sx.h>
> +#include <sys/unistd.h>
> +#include <sys/callout.h>
> +#include <sys/malloc.h>
> +#include <sys/priv.h>
> +#include <sys/conf.h>
> +#include <sys/fcntl.h>
> +
> +#include <dev/usb/usb.h>
> +#include <dev/usb/usbdi.h>
> +#include <dev/usb/usbhid.h>
> +#include "usbdevs.h"
> +
> +#define	USB_DEBUG_VAR usb_debug
> +#include <dev/usb/usb_debug.h>
> +
> +#include <dev/usb/uled_ioctl.h>
> +
> +struct uled_softc {
> +	struct usb_fifo_sc	sc_fifo;
> +	struct mtx		sc_mtx;
> +
> +	struct usb_device	*sc_udev;
> +	struct uled_color	sc_color;
> +
> +	uint8_t			sc_state;
> +#define	ULED_ENABLED	0x01
> +};
> +
> +/* prototypes */
> +
> +static device_probe_t	uled_probe;
> +static device_attach_t	uled_attach;
> +static device_detach_t	uled_detach;
> +
> +static usb_fifo_open_t	uled_open;
> +static usb_fifo_close_t	uled_close;
> +static usb_fifo_ioctl_t	uled_ioctl;
> +
> +static struct usb_fifo_methods uled_fifo_methods = {
> +	.f_open = &uled_open,
> +	.f_close = &uled_close,
> +	.f_ioctl = &uled_ioctl,
> +	.basename[0] = "uled",
> +};
> +
> +static usb_error_t	uled_ctrl_msg(struct uled_softc *, uint8_t, uint8_t,
> +			    uint16_t, uint16_t, void *buf, uint16_t);
> +static int		uled_enable(struct uled_softc *);
> +
> +static devclass_t uled_devclass;
> +
> +static device_method_t uled_methods[] = {
> +	DEVMETHOD(device_probe,		uled_probe),
> +	DEVMETHOD(device_attach,	uled_attach),
> +	DEVMETHOD(device_detach,	uled_detach),
> +
> +	DEVMETHOD_END
> +};
> +
> +static driver_t uled_driver = {
> +	.name = "uled",
> +	.methods = uled_methods,
> +	.size = sizeof(struct uled_softc),
> +};
> +
> +DRIVER_MODULE(uled, uhub, uled_driver, uled_devclass, NULL, NULL);
> +MODULE_DEPEND(uled, usb, 1, 1, 1);
> +MODULE_VERSION(uled, 1);
> +
> +static const STRUCT_USB_HOST_ID uled_devs[] = {
> +	{USB_VPI(USB_VENDOR_DREAMLINK, USB_PRODUCT_DREAMLINK_DL100B, 0)},
> +};
> +
> +static int
> +uled_probe(device_t dev)
> +{
> +	struct usb_attach_arg *uaa;
> +
> +	uaa = device_get_ivars(dev);
> +	if (uaa->usb_mode != USB_MODE_HOST)
> +		return (ENXIO);
> +	if (uaa->info.bInterfaceClass != UICLASS_HID)
> +		return (ENXIO);
> +
> +	return (usbd_lookup_id_by_uaa(uled_devs, sizeof(uled_devs), uaa));
> +}
> +
> +static int
> +uled_attach(device_t dev)
> +{
> +	struct usb_attach_arg *uaa;
> +	struct uled_softc *sc;
> +	int unit;
> +	usb_error_t error;
> +
> +	uaa = device_get_ivars(dev);
> +	sc = device_get_softc(dev);
> +	unit = device_get_unit(dev);
> +
> +	device_set_usb_desc(dev);
> +	mtx_init(&sc->sc_mtx, "uled lock", NULL, MTX_DEF | MTX_RECURSE);
> +
> +	sc->sc_udev = uaa->device;
> +
> +	error = usb_fifo_attach(uaa->device, sc, &sc->sc_mtx,
> +	    &uled_fifo_methods, &sc->sc_fifo, unit, -1,
> +	    uaa->info.bIfaceIndex, UID_ROOT, GID_OPERATOR, 0644);
> +	if (error != 0)
> +		goto detach;
> +
> +	sc->sc_color.red = 0;
> +	sc->sc_color.green = 0;
> +	sc->sc_color.blue = 0;
> +
> +	return (0);
> +
> +detach:
> +	uled_detach(dev);
> +	return (ENOMEM);
> +}
> +
> +static int
> +uled_detach(device_t dev)
> +{
> +	struct uled_softc *sc;
> +
> +	sc = device_get_softc(dev);
> +	usb_fifo_detach(&sc->sc_fifo);
> +	mtx_destroy(&sc->sc_mtx);
> +	return (0);
> +}
> +
> +static usb_error_t
> +uled_ctrl_msg(struct uled_softc *sc, uint8_t rt, uint8_t reqno,
> +    uint16_t value, uint16_t index, void *buf, uint16_t buflen)
> +{
> +	struct usb_device_request req;
> +
> +	req.bmRequestType = rt;
> +	req.bRequest = reqno;
> +	USETW(req.wValue, value);
> +	USETW(req.wIndex, index);
> +	USETW(req.wLength, buflen);
> +
> +	return (usbd_do_request_flags(sc->sc_udev, &sc->sc_mtx, &req, buf,
> +	    0, NULL, 2000));
> +}
> +
> +static int
> +uled_enable(struct uled_softc *sc)
> +{
> +	static uint8_t cmdbuf[] = { 0x1f, 0x02, 0x00, 0x5f, 0x00, 0x00, 0x1a,
> +	    0x03 };
> +	int error;
> +
> +	sc->sc_state |= ULED_ENABLED;
> +	mtx_lock(&sc->sc_mtx);
> +	error = uled_ctrl_msg(sc, UT_WRITE_CLASS_INTERFACE, UR_SET_REPORT,
> +	    0x200, 0, cmdbuf, sizeof(cmdbuf));
> +	mtx_unlock(&sc->sc_mtx);
> +	return (error);
> +}
> +
> +static int
> +uled_open(struct usb_fifo *fifo, int fflags)
> +{
> +	if (fflags & FREAD) {
> +		struct uled_softc *sc;
> +		int rc;
> +
> +		sc = usb_fifo_softc(fifo);
> +		if (sc->sc_state & ULED_ENABLED)
> +			return (EBUSY);
> +		if ((rc = uled_enable(sc)) != 0)
> +			return (rc);
> +	}
> +	return (0);
> +}
> +
> +static void
> +uled_close(struct usb_fifo *fifo, int fflags)
> +{
> +	if (fflags & FREAD) {
> +		struct uled_softc *sc;
> +
> +		sc = usb_fifo_softc(fifo);
> +		sc->sc_state &= ~ULED_ENABLED;
> +	}
> +}
> +			
> +static int
> +uled_ioctl(struct usb_fifo *fifo, u_long cmd, void *addr, int fflags)
> +{
> +	struct uled_softc *sc;
> +	struct uled_color color;
> +	int error;
> +
> +	sc = usb_fifo_softc(fifo);
> +	error = 0;
> +
> +	mtx_lock(&sc->sc_mtx);
> +
> +	switch(cmd) {
> +	case ULED_GET_COLOR:
> +		*(struct uled_color *)addr = sc->sc_color;
> +		break;
> +	case ULED_SET_COLOR:
> +		color = *(struct uled_color *)addr;
> +		uint8_t buf[8];
> +
> +		sc->sc_color.red = color.red;
> +		sc->sc_color.green = color.green;
> +		sc->sc_color.blue = color.blue;
> +
> +		buf[0] = color.red;
> +		buf[1] = color.green;
> +		buf[2] = color.blue;
> +		buf[3] = buf[4] = buf[5] = 0;
> +		buf[6] = 0x1a;
> +		buf[7] = 0x05;
> +		error = uled_ctrl_msg(sc, UT_WRITE_CLASS_INTERFACE,
> +		    UR_SET_REPORT, 0x200, 0, buf, sizeof(buf));
> +		break;
> +	default:
> +		error = ENOTTY;
> +		break;
> +	}
> +
> +	mtx_unlock(&sc->sc_mtx);
> +	return (error);
> +}
> 
> Modified: head/sys/dev/usb/quirk/usb_quirk.c
> ==============================================================================
> --- head/sys/dev/usb/quirk/usb_quirk.c	Fri Sep  5 11:11:15 2014	(r271158)
> +++ head/sys/dev/usb/quirk/usb_quirk.c	Fri Sep  5 11:25:58 2014	(r271159)
> @@ -110,6 +110,7 @@ static struct usb_quirk_entry usb_quirks
>  	USB_QUIRK(CYBERPOWER, 1500CAVRLCD, 0x0000, 0xffff, UQ_HID_IGNORE),
>  	USB_QUIRK(CYPRESS, SILVERSHIELD, 0x0000, 0xffff, UQ_HID_IGNORE),
>  	USB_QUIRK(DELORME, EARTHMATE, 0x0000, 0xffff, UQ_HID_IGNORE),
> +	USB_QUIRK(DREAMLINK, DL100B, 0x0000, 0xffff, UQ_HID_IGNORE),
>  	USB_QUIRK(ITUNERNET, USBLCD2X20, 0x0000, 0xffff, UQ_HID_IGNORE),
>  	USB_QUIRK(ITUNERNET, USBLCD4X20, 0x0000, 0xffff, UQ_HID_IGNORE),
>  	USB_QUIRK(LIEBERT, POWERSURE_PXT, 0x0000, 0xffff, UQ_HID_IGNORE),
> 
> Added: head/sys/dev/usb/uled_ioctl.h
> ==============================================================================
> --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/sys/dev/usb/uled_ioctl.h	Fri Sep  5 11:25:58 2014	(r271159)
> @@ -0,0 +1,43 @@
> +/*-
> + * Copyright (c) 2014 Kevin Lo
> + * All rights reserved.
> + *
> + * 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 AUTHOR 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 AUTHOR 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.
> + *
> + * $FreeBSD$
> + */
> +
> +#ifndef _ULED_IOCTL_H_
> +#define _ULED_IOCTL_H_
> +
> +#include <sys/ioccom.h>
> +
> +struct uled_color {
> +	uint8_t	red;
> +	uint8_t	green;
> +	uint8_t	blue;
> +};
> +
> +#define	ULED_GET_COLOR	_IOR('U', 205, struct uled_color)
> +#define	ULED_SET_COLOR	_IOW('U', 206, struct uled_color)
> +
> +#endif	/* _ULED_IOCTL_H_ */
> 
> Modified: head/sys/dev/usb/usbdevs
> ==============================================================================
> --- head/sys/dev/usb/usbdevs	Fri Sep  5 11:11:15 2014	(r271158)
> +++ head/sys/dev/usb/usbdevs	Fri Sep  5 11:25:58 2014	(r271159)
> @@ -713,6 +713,7 @@ vendor LONGCHEER	0x1c9e	Longcheer Holdin
>  vendor MPMAN		0x1cae	MpMan
>  vendor DRESDENELEKTRONIK 0x1cf1 dresden elektronik
>  vendor NEOTEL		0x1d09	Neotel
> +vendor DREAMLINK	0x1d34	Dream Link
>  vendor PEGATRON		0x1d4d	Pegatron
>  vendor QISDA		0x1da5  Qisda
>  vendor METAGEEK2	0x1dd5	MetaGeek
> @@ -1657,6 +1658,9 @@ product DMI DISK		0x2bcf	Generic Disk
>  /* DrayTek products */
>  product DRAYTEK VIGOR550	0x0550	Vigor550
>  
> +/* Dream Link products */
> +product DREAMLINK DL100B	0x0004	USB Webmail Notifier
> +
>  /* dresden elektronik products */
>  product DRESDENELEKTRONIK SENSORTERMINALBOARD  0x0001 SensorTerminalBoard
>  product DRESDENELEKTRONIK WIRELESSHANDHELDTERMINAL  0x0004 Wireless Handheld Terminal
> 
> Modified: head/sys/modules/usb/Makefile
> ==============================================================================
> --- head/sys/modules/usb/Makefile	Fri Sep  5 11:11:15 2014	(r271158)
> +++ head/sys/modules/usb/Makefile	Fri Sep  5 11:25:58 2014	(r271159)
> @@ -48,7 +48,7 @@ SUBDIR += ${_dwc_otg} ehci ${_musb} ohci
>  	  ${_atmegadci} ${_avr32dci} ${_rsu} ${_rsufw} ${_saf1761otg}
>  SUBDIR += ${_rum} ${_run} ${_runfw} ${_uath} upgt usie ural ${_zyd} ${_urtw} 
>  SUBDIR += ${_urtwn} ${_urtwnfw}
> -SUBDIR += atp uhid ukbd ums udbp ufm uep wsp
> +SUBDIR += atp uhid ukbd ums udbp ufm uep wsp uled
>  SUBDIR += ucom u3g uark ubsa ubser uchcom ucycom ufoma uftdi ugensa uipaq ulpt \
>  	  umct umcs umodem umoscom uplcom uslcom uvisor uvscom
>  SUBDIR += uether aue axe axge cdce cue ${_kue} mos rue smsc udav uhso ipheth
> 
> Added: head/sys/modules/usb/uled/Makefile
> ==============================================================================
> --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ head/sys/modules/usb/uled/Makefile	Fri Sep  5 11:25:58 2014	(r271159)
> @@ -0,0 +1,36 @@
> +#
> +# $FreeBSD$
> +#
> +# Copyright (c) 2014 Kevin Lo. All rights reserved.
> +#
> +# 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 AUTHOR 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 AUTHOR 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.
> +#
> +
> +S=     ${.CURDIR}/../../..
> +
> +.PATH: $S/dev/usb/misc
> +
> +KMOD=	uled
> +SRCS=	opt_bus.h opt_usb.h device_if.h bus_if.h usb_if.h vnode_if.h usbdevs.h \
> +	uled.c
> +
> +.include <bsd.kmod.mk>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/svn-src-head/attachments/20140905/5a337e3e/attachment.sig>


More information about the svn-src-head mailing list