FreeBSD kernel usb device Code
|
#include <sys/cdefs.h>
#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/linker_set.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 <dev/usb/usb.h>
#include <dev/usb/usbdi.h>
#include <dev/usb/usbdi_util.h>
#include <dev/usb/usb_cdc.h>
#include "usbdevs.h"
#include <dev/usb/usb_debug.h>
#include <dev/usb/usb_process.h>
#include <dev/usb/serial/usb_serial.h>
#include <dev/usb/serial/umcs.h>
Go to the source code of this file.
Data Structures | |
struct | umcs7840_port_registers |
struct | umcs7840_softc_oneport |
struct | umcs7840_softc |
Macros | |
#define | USB_DEBUG_VAR umcs_debug |
#define | UMCS7840_MODVER 1 |
Enumerations | |
enum | { UMCS7840_BULK_RD_EP , UMCS7840_BULK_WR_EP , UMCS7840_N_TRANSFERS } |
anonymous enum |
__FBSDID | ( | "$FreeBSD$" | ) |
DRIVER_MODULE | ( | umcs7840 | , |
uhub | , | ||
umcs7840_driver | , | ||
umcs7840_devclass | , | ||
0 | , | ||
0 | |||
) |
MODULE_DEPEND | ( | umcs7840 | , |
ucom | , | ||
1 | , | ||
1 | , | ||
1 | |||
) |
MODULE_DEPEND | ( | umcs7840 | , |
usb | , | ||
1 | , | ||
1 | , | ||
1 | |||
) |
MODULE_VERSION | ( | umcs7840 | , |
UMCS7840_MODVER | |||
) |
UCOM_UNLOAD_DRAIN | ( | umcs7840 | ) |
|
static |
Definition at line 300 of file umcs.c.
References usb_config::callback, data, dev, usb_attach_arg::device, device_set_usb_desc(), usb_config::endpoint, error, usbd_lookup_info::idProduct, usb_attach_arg::info, MCS7840_DEV_GPIO_4PORTS, MCS7840_DEV_MODE_EEPROMWR, MCS7840_DEV_MODE_IRDA, MCS7840_DEV_MODE_PLLBYPASS, MCS7840_DEV_MODE_PORBYPASS, MCS7840_DEV_MODE_RESET, MCS7840_DEV_MODE_SELECT24S, MCS7840_DEV_MODE_SER_PRSNT, MCS7840_DEV_REG_GPIO, MCS7840_DEV_REG_MODE, MCS7840_IFACE_INDEX, n, umcs7840_softc::sc_dev, umcs7840_softc::sc_intr_xfer, umcs7840_softc::sc_mtx, umcs7840_softc::sc_numports, ucom_softc::sc_portno, umcs7840_softc::sc_ports, umcs7840_softc::sc_super_ucom, umcs7840_softc::sc_ucom, umcs7840_softc::sc_udev, umcs7840_softc_oneport::sc_xfer, ucom_attach(), ucom_ref(), ucom_set_pnpinfo_usb(), umcs7840_bulk_config_data, UMCS7840_BULK_RD_EP, UMCS7840_BULK_WR_EP, umcs7840_callback, umcs7840_detach, umcs7840_get_reg_sync(), umcs7840_intr_config_data, UMCS7840_N_TRANSFERS, umcs7840_rw_callbacks, usbd_transfer_setup(), and usbd_xfer_set_stall().
|
static |
Definition at line 1090 of file umcs.c.
References MCS7840_DEV_SPx_CLOCK_SHIFT, umcs7840_baudrate_divisors, and umcs7840_baudrate_divisors_len.
Referenced by umcs7840_pre_param(), and umcs7840_set_baudrate().
|
static |
Definition at line 544 of file umcs.c.
References data, DPRINTF, MCS7840_DEV_CONTROLx_RX_DISABLE, MCS7840_UART_REG_IER, MCS7840_UART_REG_MCR, ucom_softc::sc_parent, ucom_softc::sc_portno, umcs7840_get_reg_sync(), umcs7840_set_reg_sync(), umcs7840_set_UART_reg_sync(), umcs7840_stop_read(), and umcs7840_stop_write().
|
static |
Definition at line 743 of file umcs.c.
References DPRINTF, MCS7840_UART_MSR_NEGCTS, MCS7840_UART_MSR_NEGDCD, MCS7840_UART_MSR_NEGDSR, MCS7840_UART_MSR_NEGRI, MCS7840_UART_REG_LSR, MCS7840_UART_REG_MSR, ucom_softc::sc_parent, ucom_softc::sc_portno, and umcs7840_get_UART_reg_sync().
|
static |
Definition at line 441 of file umcs.c.
References data, DPRINTF, MCS7840_DEV_CONTROL1_DRIVER_DONE, MCS7840_DEV_CONTROLx_RX_DISABLE, MCS7840_DEV_REG_CONTROL1, MCS7840_DEV_SPx_RESET_IN_FIFO, MCS7840_DEV_SPx_RESET_OUT_FIFO, MCS7840_DEV_SPx_UART_RESET, MCS7840_UART_FCR_ENABLE, MCS7840_UART_FCR_FLUSHRHR, MCS7840_UART_FCR_FLUSHTHR, MCS7840_UART_FCR_RTL_1_14, MCS7840_UART_IER_MODEM, MCS7840_UART_IER_RXSTAT, MCS7840_UART_LCR_DATALEN8, MCS7840_UART_LCR_STOPB1, MCS7840_UART_MCR_DTR, MCS7840_UART_MCR_IE, MCS7840_UART_MCR_RTS, MCS7840_UART_REG_FCR, MCS7840_UART_REG_IER, MCS7840_UART_REG_LCR, MCS7840_UART_REG_MCR, MCS7840_UART_REG_SCRATCHPAD, MCS7840_UART_SCRATCHPAD_RS232, umcs7840_softc::sc_driver_done, umcs7840_softc_oneport::sc_lcr, umcs7840_softc_oneport::sc_mcr, ucom_softc::sc_parent, ucom_softc::sc_portno, umcs7840_softc::sc_ports, ucom_softc::sc_tty, umcs7840_get_reg_sync(), umcs7840_get_UART_reg_sync(), umcs7840_set_baudrate(), umcs7840_set_reg_sync(), and umcs7840_set_UART_reg_sync().
|
static |
Definition at line 611 of file umcs.c.
References DPRINTF, MCS7840_UART_LCR_DATALEN5, MCS7840_UART_LCR_DATALEN6, MCS7840_UART_LCR_DATALEN7, MCS7840_UART_LCR_DATALEN8, MCS7840_UART_LCR_PARITYEVEN, MCS7840_UART_LCR_PARITYODD, MCS7840_UART_LCR_PARITYON, MCS7840_UART_LCR_STOPB1, MCS7840_UART_LCR_STOPB2, MCS7840_UART_MCR_CTSRTS, MCS7840_UART_MCR_DTRDSR, MCS7840_UART_REG_LCR, MCS7840_UART_REG_MCR, umcs7840_softc_oneport::sc_lcr, umcs7840_softc_oneport::sc_mcr, ucom_softc::sc_parent, ucom_softc::sc_portno, umcs7840_softc::sc_ports, umcs7840_set_baudrate(), and umcs7840_set_UART_reg_sync().
|
static |
Definition at line 596 of file umcs.c.
References DPRINTF, MCS7840_UART_LCR_BREAK, MCS7840_UART_REG_LCR, umcs7840_softc_oneport::sc_lcr, ucom_softc::sc_parent, ucom_softc::sc_portno, umcs7840_softc::sc_ports, and umcs7840_set_UART_reg_sync().
|
static |
Definition at line 566 of file umcs.c.
References DPRINTF, MCS7840_UART_MCR_DTR, MCS7840_UART_REG_MCR, umcs7840_softc_oneport::sc_mcr, ucom_softc::sc_parent, ucom_softc::sc_portno, umcs7840_softc::sc_ports, and umcs7840_set_UART_reg_sync().
|
static |
Definition at line 581 of file umcs.c.
References DPRINTF, MCS7840_UART_MCR_RTS, MCS7840_UART_REG_MCR, umcs7840_softc_oneport::sc_mcr, ucom_softc::sc_parent, ucom_softc::sc_portno, umcs7840_softc::sc_ports, and umcs7840_set_UART_reg_sync().
|
static |
Definition at line 405 of file umcs.c.
References dev, umcs7840_softc::sc_intr_xfer, umcs7840_softc::sc_numports, ucom_softc::sc_portno, umcs7840_softc::sc_ports, umcs7840_softc::sc_super_ucom, umcs7840_softc::sc_ucom, umcs7840_softc_oneport::sc_xfer, ucom_detach(), umcs7840_free_softc(), UMCS7840_N_TRANSFERS, and usbd_transfer_unsetup().
|
static |
Definition at line 435 of file umcs.c.
References ucom_softc::sc_parent, and umcs7840_free_softc().
|
static |
Definition at line 426 of file umcs.c.
References umcs7840_softc::sc_mtx, umcs7840_softc::sc_super_ucom, and ucom_unref().
Referenced by umcs7840_detach(), and umcs7840_free().
|
static |
Definition at line 948 of file umcs.c.
References data, len, MCS7840_RDREQ, reg, req, umcs7840_softc::sc_dev, umcs7840_softc::sc_super_ucom, ucom_super_softc::sc_tq, umcs7840_softc::sc_udev, UMCS7840_CTRL_TIMEOUT, UMCS7840_READ_LENGTH, USB_ERR_INVAL, USB_ERR_NORMAL_COMPLETION, usbd_do_request_proc(), usbd_errstr(), USETW, and UT_READ_VENDOR_DEVICE.
Referenced by umcs7840_attach(), umcs7840_cfg_close(), umcs7840_cfg_open(), and umcs7840_set_baudrate().
|
static |
Definition at line 989 of file umcs.c.
References data, len, MCS7840_RDREQ, reg, req, umcs7840_softc::sc_dev, umcs7840_softc::sc_super_ucom, ucom_super_softc::sc_tq, umcs7840_softc::sc_udev, UMCS7840_CTRL_TIMEOUT, UMCS7840_READ_LENGTH, USB_ERR_INVAL, USB_ERR_NORMAL_COMPLETION, usbd_do_request_proc(), usbd_errstr(), USETW, and UT_READ_VENDOR_DEVICE.
Referenced by umcs7840_cfg_get_status(), and umcs7840_cfg_open().
|
static |
Definition at line 772 of file umcs.c.
References DPRINTF, error, MCS7840_UART_ISR_INTMASK, MCS7840_UART_ISR_MSCHANGE, MCS7840_UART_ISR_NOPENDING, MCS7840_UART_ISR_RXERR, MCS7840_UART_ISR_RXHASDATA, MCS7840_UART_ISR_RXTIMEOUT, umcs7840_softc::sc_dev, umcs7840_softc::sc_numports, ucom_softc::sc_portno, umcs7840_softc::sc_ucom, ucom_status_change(), USB_ERR_CANCELLED, USB_GET_STATE, USB_ST_SETUP, USB_ST_TRANSFERRED, usbd_copy_out(), usbd_transfer_submit(), usbd_xfer_get_frame(), usbd_xfer_max_len(), usbd_xfer_set_frame_len(), usbd_xfer_set_stall(), usbd_xfer_softc(), and usbd_xfer_status().
|
static |
Definition at line 938 of file umcs.c.
References DPRINTF, umcs7840_softc::sc_intr_xfer, ucom_softc::sc_parent, ucom_softc::sc_portno, umcs7840_softc::sc_ports, umcs7840_softc_oneport::sc_xfer, UMCS7840_N_TRANSFERS, and usbd_transfer_poll().
|
static |
Definition at line 686 of file umcs.c.
References umcs7840_calc_baudrate().
|
static |
Definition at line 286 of file umcs.c.
References usbd_lookup_info::bConfigIndex, usbd_lookup_info::bIfaceIndex, dev, usb_attach_arg::info, MCS7840_CONFIG_INDEX, MCS7840_IFACE_INDEX, umcs7840_devs, usb_attach_arg::usb_mode, USB_MODE_HOST, and usbd_lookup_id_by_uaa().
|
static |
Definition at line 826 of file umcs.c.
References error, and umcs7840_read_callbackN().
|
static |
Definition at line 832 of file umcs.c.
References error, and umcs7840_read_callbackN().
|
static |
Definition at line 837 of file umcs.c.
References error, and umcs7840_read_callbackN().
|
static |
Definition at line 843 of file umcs.c.
References error, and umcs7840_read_callbackN().
|
static |
Definition at line 849 of file umcs.c.
References DPRINTF, error, ucom_softc::sc_portno, umcs7840_softc::sc_ucom, ucom_put_data(), USB_ERR_CANCELLED, USB_GET_STATE, USB_ST_SETUP, USB_ST_TRANSFERRED, usbd_transfer_submit(), usbd_xfer_get_frame(), usbd_xfer_max_len(), usbd_xfer_set_frame_len(), usbd_xfer_set_stall(), usbd_xfer_softc(), and usbd_xfer_status().
Referenced by umcs7840_read_callback1(), umcs7840_read_callback2(), umcs7840_read_callback3(), and umcs7840_read_callback4().
|
static |
Definition at line 1037 of file umcs.c.
References data, DPRINTF, MCS7840_DEV_SPx_CLOCK_MASK, MCS7840_UART_LCR_DIVISORS, MCS7840_UART_REG_DLL, MCS7840_UART_REG_DLM, MCS7840_UART_REG_LCR, umcs7840_softc_oneport::sc_lcr, umcs7840_softc::sc_ports, umcs7840_calc_baudrate(), umcs7840_get_reg_sync(), umcs7840_set_reg_sync(), and umcs7840_set_UART_reg_sync().
Referenced by umcs7840_cfg_open(), and umcs7840_cfg_param().
|
static |
Definition at line 970 of file umcs.c.
References data, MCS7840_WRREQ, reg, req, umcs7840_softc::sc_dev, umcs7840_softc::sc_super_ucom, ucom_super_softc::sc_tq, umcs7840_softc::sc_udev, UMCS7840_CTRL_TIMEOUT, usbd_do_request_proc(), usbd_errstr(), USETW, and UT_WRITE_VENDOR_DEVICE.
Referenced by umcs7840_cfg_close(), umcs7840_cfg_open(), and umcs7840_set_baudrate().
|
static |
Definition at line 1015 of file umcs.c.
References data, MCS7840_WRREQ, reg, req, umcs7840_softc::sc_dev, umcs7840_softc::sc_super_ucom, ucom_super_softc::sc_tq, umcs7840_softc::sc_udev, UMCS7840_CTRL_TIMEOUT, usbd_do_request_proc(), usbd_errstr(), USETW, and UT_WRITE_VENDOR_DEVICE.
Referenced by umcs7840_cfg_close(), umcs7840_cfg_open(), umcs7840_cfg_param(), umcs7840_cfg_set_break(), umcs7840_cfg_set_dtr(), umcs7840_cfg_set_rts(), and umcs7840_set_baudrate().
|
static |
Definition at line 697 of file umcs.c.
References umcs7840_softc::sc_intr_xfer, ucom_softc::sc_parent, ucom_softc::sc_portno, umcs7840_softc::sc_ports, umcs7840_softc_oneport::sc_xfer, UMCS7840_BULK_RD_EP, and usbd_transfer_start().
|
static |
Definition at line 720 of file umcs.c.
References umcs7840_softc::sc_intr_xfer, ucom_softc::sc_parent, ucom_softc::sc_portno, umcs7840_softc::sc_ports, umcs7840_softc_oneport::sc_xfer, UMCS7840_BULK_WR_EP, and usbd_transfer_start().
|
static |
Definition at line 710 of file umcs.c.
References ucom_softc::sc_parent, ucom_softc::sc_portno, umcs7840_softc::sc_ports, umcs7840_softc_oneport::sc_xfer, UMCS7840_BULK_RD_EP, and usbd_transfer_stop().
Referenced by umcs7840_cfg_close().
|
static |
Definition at line 733 of file umcs.c.
References ucom_softc::sc_parent, ucom_softc::sc_portno, umcs7840_softc::sc_ports, umcs7840_softc_oneport::sc_xfer, UMCS7840_BULK_WR_EP, and usbd_transfer_stop().
Referenced by umcs7840_cfg_close().
|
static |
Definition at line 882 of file umcs.c.
References error, and umcs7840_write_callbackN().
|
static |
Definition at line 888 of file umcs.c.
References error, and umcs7840_write_callbackN().
|
static |
Definition at line 894 of file umcs.c.
References error, and umcs7840_write_callbackN().
|
static |
Definition at line 900 of file umcs.c.
References error, and umcs7840_write_callbackN().
|
static |
Definition at line 906 of file umcs.c.
References DPRINTF, error, ucom_softc::sc_portno, umcs7840_softc::sc_ucom, ucom_get_data(), USB_ERR_CANCELLED, USB_GET_STATE, USB_ST_SETUP, USB_ST_TRANSFERRED, usbd_transfer_submit(), usbd_xfer_get_frame(), usbd_xfer_max_len(), usbd_xfer_set_frame_len(), usbd_xfer_set_stall(), and usbd_xfer_softc().
Referenced by umcs7840_write_callback1(), umcs7840_write_callback2(), umcs7840_write_callback3(), and umcs7840_write_callback4().
USB_PNP_HOST_INFO | ( | umcs7840_devs | ) |
|
static |
Definition at line 1086 of file umcs.c.
Referenced by umcs7840_calc_baudrate().
|
static |
Definition at line 1087 of file umcs.c.
Referenced by umcs7840_calc_baudrate().
|
static |
Definition at line 202 of file umcs.c.
Referenced by umcs7840_attach().
|
static |
Definition at line 236 of file umcs.c.
Referenced by umcs7840_attach().
|
static |
Definition at line 178 of file umcs.c.
Referenced by umcs7840_attach().
|
static |
Definition at line 259 of file umcs.c.
Referenced by umcs7840_probe().
|
static |
|
static |
|
static |
Definition at line 224 of file umcs.c.
Referenced by umcs7840_attach().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |