From owner-svn-src-head@freebsd.org Fri Mar 31 08:21:00 2017 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B955AD27CAC; Fri, 31 Mar 2017 08:21:00 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 79373DF5; Fri, 31 Mar 2017 08:21:00 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v2V8KxR9040399; Fri, 31 Mar 2017 08:20:59 GMT (envelope-from kevlo@FreeBSD.org) Received: (from kevlo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v2V8Kxv5040396; Fri, 31 Mar 2017 08:20:59 GMT (envelope-from kevlo@FreeBSD.org) Message-Id: <201703310820.v2V8Kxv5040396@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevlo set sender to kevlo@FreeBSD.org using -f From: Kevin Lo Date: Fri, 31 Mar 2017 08:20:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r316326 - in head: share/man/man4 sys/dev/usb sys/dev/usb/misc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Mar 2017 08:21:00 -0000 Author: kevlo Date: Fri Mar 31 08:20:59 2017 New Revision: 316326 URL: https://svnweb.freebsd.org/changeset/base/316326 Log: Add support for ThingM blink(1) notification LED to uled(4). Modified: head/share/man/man4/uled.4 head/sys/dev/usb/misc/uled.c head/sys/dev/usb/usbdevs Modified: head/share/man/man4/uled.4 ============================================================================== --- head/share/man/man4/uled.4 Fri Mar 31 06:33:20 2017 (r316325) +++ head/share/man/man4/uled.4 Fri Mar 31 08:20:59 2017 (r316326) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 5, 2014 +.Dd March 31, 2017 .Dt ULED 4 .Os .Sh NAME @@ -48,7 +48,8 @@ uled_load="YES" .Sh DESCRIPTION The .Nm -driver provides support for the Dream Cheeky WebMail Notifier device. +driver provides support for Dream Cheeky WebMail Notifier and +ThingM blink(1) notification LED. .Pp Subsequently, the .Pa /dev/uled0 Modified: head/sys/dev/usb/misc/uled.c ============================================================================== --- head/sys/dev/usb/misc/uled.c Fri Mar 31 06:33:20 2017 (r316325) +++ head/sys/dev/usb/misc/uled.c Fri Mar 31 08:20:59 2017 (r316326) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2014 Kevin Lo + * Copyright (c) 2014, 2017 Kevin Lo * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -68,10 +68,16 @@ struct uled_softc { uint8_t sc_state; #define ULED_ENABLED 0x01 + + int sc_flags; +#define ULED_FLAG_BLINK1 0x0001 }; -/* prototypes */ +/* Initial commands. */ +static uint8_t blink1[] = { 0x1, 'v', 0, 0, 0, 0, 0, 0 }; +static uint8_t dl100b[] = { 0x1f, 0x2, 0, 0x5f, 0, 0, 0x1a, 0x3 }; +/* Prototypes. */ static device_probe_t uled_probe; static device_attach_t uled_attach; static device_detach_t uled_detach; @@ -88,7 +94,7 @@ static struct usb_fifo_methods uled_fifo }; static usb_error_t uled_ctrl_msg(struct uled_softc *, uint8_t, uint8_t, - uint16_t, uint16_t, void *buf, uint16_t); + uint16_t, uint16_t, void *, uint16_t); static int uled_enable(struct uled_softc *); static devclass_t uled_devclass; @@ -108,7 +114,10 @@ static driver_t uled_driver = { }; static const STRUCT_USB_HOST_ID uled_devs[] = { - {USB_VPI(USB_VENDOR_DREAMLINK, USB_PRODUCT_DREAMLINK_DL100B, 0)}, +#define ULED_DEV(v,p,i) { USB_VPI(USB_VENDOR_##v, USB_PRODUCT_##v##_##p, i) } + ULED_DEV(DREAMLINK, DL100B, 0), + ULED_DEV(THINGM, BLINK1, ULED_FLAG_BLINK1), +#undef ULED_DEV }; DRIVER_MODULE(uled, uhub, uled_driver, uled_devclass, NULL, NULL); @@ -141,6 +150,7 @@ uled_attach(device_t dev) uaa = device_get_ivars(dev); sc = device_get_softc(dev); unit = device_get_unit(dev); + sc->sc_flags = USB_GET_DRIVER_INFO(uaa); device_set_usb_desc(dev); mtx_init(&sc->sc_mtx, "uled lock", NULL, MTX_DEF | MTX_RECURSE); @@ -194,10 +204,11 @@ uled_ctrl_msg(struct uled_softc *sc, uin static int uled_enable(struct uled_softc *sc) { - static uint8_t cmdbuf[] = { 0x1f, 0x02, 0x00, 0x5f, 0x00, 0x00, 0x1a, - 0x03 }; + uint8_t *cmdbuf; int error; + cmdbuf = (sc->sc_flags & ULED_FLAG_BLINK1) ? blink1 : dl100b; + sc->sc_state |= ULED_ENABLED; mtx_lock(&sc->sc_mtx); error = uled_ctrl_msg(sc, UT_WRITE_CLASS_INTERFACE, UR_SET_REPORT, @@ -257,12 +268,21 @@ uled_ioctl(struct usb_fifo *fifo, u_long 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; + if (sc->sc_flags & ULED_FLAG_BLINK1) { + buf[0] = 0x1; + buf[1] = 'n'; + buf[2] = color.red; + buf[3] = color.green; + buf[4] = color.blue; + buf[5] = buf[6] = buf[7] = 0; + } else { + 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; Modified: head/sys/dev/usb/usbdevs ============================================================================== --- head/sys/dev/usb/usbdevs Fri Mar 31 06:33:20 2017 (r316325) +++ head/sys/dev/usb/usbdevs Fri Mar 31 08:20:59 2017 (r316326) @@ -747,6 +747,7 @@ vendor WESTMOUNTAIN 0x2405 West Mountain vendor TRIPPLITE 0x2478 Tripp-Lite vendor HIROSE 0x2631 Hirose Electric vendor NHJ 0x2770 NHJ +vendor THINGM 0x27b8 ThingM vendor PLANEX 0x2c02 Planex Communications vendor VIDZMEDIA 0x3275 VidzMedia Pte Ltd vendor LINKINSTRUMENTS 0x3195 Link Instruments Inc. @@ -4493,6 +4494,9 @@ product TELIT UC864G 0x1004 UC864G 3G m /* Ten X Technology, Inc. */ product TENX UAUDIO0 0xf211 USB audio headset +/* ThingM products */ +product THINGM BLINK1 0x01ed USB notification light + /* Texas Intel products */ product TI UTUSB41 0x1446 UT-USB41 hub product TI TUSB2046 0x2046 TUSB2046 hub