svn commit: r252123 - head/sys/dev/usb/serial
Thomas Quinot
thomas at FreeBSD.org
Sun Jun 23 20:19:52 UTC 2013
Author: thomas
Date: Sun Jun 23 20:19:51 2013
New Revision: 252123
URL: http://svnweb.freebsd.org/changeset/base/252123
Log:
Fix minor typo in comment
Modified:
head/sys/dev/usb/serial/uark.c
head/sys/dev/usb/serial/umcs.h
Modified: head/sys/dev/usb/serial/uark.c
==============================================================================
--- head/sys/dev/usb/serial/uark.c Sun Jun 23 20:19:05 2013 (r252122)
+++ head/sys/dev/usb/serial/uark.c Sun Jun 23 20:19:51 2013 (r252123)
@@ -92,6 +92,7 @@ struct uark_softc {
uint8_t sc_msr;
uint8_t sc_lsr;
+ uint8_t sc_irda; /* Set to 1 for IrDA */
};
/* prototypes */
@@ -173,8 +174,12 @@ MODULE_DEPEND(uark, ucom, 1, 1, 1);
MODULE_DEPEND(uark, usb, 1, 1, 1);
MODULE_VERSION(uark, 1);
+#define UARK_TYPE_SERIAL 0
+#define UARK_TYPE_IRDA 1
+
static const STRUCT_USB_HOST_ID uark_devs[] = {
- {USB_VPI(USB_VENDOR_ARKMICRO, USB_PRODUCT_ARKMICRO_ARK3116, 0)},
+ {USB_VPI(USB_VENDOR_ARKMICRO, USB_PRODUCT_ARKMICRO_ARK3116, UARK_TYPE_SERIAL)},
+ {USB_VPI(USB_VENDOR_ARKMICRO2, USB_PRODUCT_ARKMICRO2_ARK3118, UARK_TYPE_IRDA)},
};
static int
@@ -207,6 +212,7 @@ uark_attach(device_t dev)
ucom_ref(&sc->sc_super_ucom);
sc->sc_udev = uaa->device;
+ sc->sc_irda = (USB_GET_DRIVER_INFO (uaa) == UARK_TYPE_IRDA);
iface_index = UARK_IFACE_INDEX;
error = usbd_transfer_setup
@@ -378,6 +384,15 @@ uark_cfg_param(struct ucom_softc *ucom,
uint32_t speed = t->c_ospeed;
uint16_t data;
+ if (!(sc->sc_irda)) {
+ uark_cfg_write(sc, 0xb, 0);
+ } else {
+ uark_cfg_write(sc, 0xb, 1);
+ uark_cfg_write(sc, 0xc, 0);
+ uark_cfg_write(sc, 0xd, 0x41);
+ uark_cfg_write(sc, 0xa, 1);
+ }
+
/*
* NOTE: When reverse computing the baud rate from the "data" all
* allowed baud rates are within 3% of the initial baud rate.
@@ -419,6 +434,10 @@ uark_cfg_param(struct ucom_softc *ucom,
}
uark_cfg_write(sc, 3, 0x00);
uark_cfg_write(sc, 3, data);
+
+ uark_cfg_write(sc, 0xe, 0);
+ if (sc->sc_irda)
+ uark_cfg_write (sc, 9, 0);
}
static void
Modified: head/sys/dev/usb/serial/umcs.h
==============================================================================
--- head/sys/dev/usb/serial/umcs.h Sun Jun 23 20:19:05 2013 (r252122)
+++ head/sys/dev/usb/serial/umcs.h Sun Jun 23 20:19:51 2013 (r252123)
@@ -596,7 +596,7 @@
#define MCS7840_UART_LSR_RHROVERRUN 0x02 /* Data FIFO/register overflow */
#define MCS7840_UART_LSR_PARITYERR 0x04 /* Parity error */
#define MCS7840_UART_LSR_FRAMEERR 0x10 /* Framing error */
-#define MCS7840_UART_LSR_BREAKERR 0x20 /* BREAK sigmal received */
+#define MCS7840_UART_LSR_BREAKERR 0x20 /* BREAK signal received */
#define MCS7840_UART_LSR_THREMPTY 0x40 /* THR register is empty,
* ready for transmit */
#define MCS7840_UART_LSR_HASERR 0x80 /* Has error in receiver FIFO */
More information about the svn-src-all
mailing list