FreeBSD kernel usb device Code
|
#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 <dev/usb/usb.h>
#include <dev/usb/usbdi.h>
#include <dev/usb/usb_core.h>
#include <dev/usb/usb_debug.h>
#include <dev/usb/usb_busdma.h>
#include <dev/usb/usb_process.h>
#include <dev/usb/usb_transfer.h>
#include <dev/usb/usb_device.h>
#include <dev/usb/usb_hub.h>
#include <dev/usb/usb_util.h>
#include <dev/usb/usb_controller.h>
#include <dev/usb/usb_bus.h>
#include <dev/usb/controller/atmegadci.h>
Go to the source code of this file.
Macros | |
#define | USB_DEBUG_VAR atmegadci_debug |
#define | ATMEGA_BUS2SC(bus) __containerof(bus, struct atmegadci_softc, sc_bus) |
#define | ATMEGA_PC2SC(pc) ATMEGA_BUS2SC(USB_DMATAG_TO_XROOT((pc)->tag_parent)->bus) |
#define | ATMEGA_INTR_ENDPT 1 |
#define | HSETW(ptr, val) ptr = { (uint8_t)(val), (uint8_t)((val) >> 8) } |
#define | STRING_VENDOR "A\0T\0M\0E\0G\0A" |
#define | STRING_PRODUCT "D\0C\0I\0 \0R\0o\0o\0t\0 \0H\0U\0B" |
Variables | |
static const struct usb_bus_methods | atmegadci_bus_methods |
static const struct usb_pipe_methods | atmegadci_device_non_isoc_methods |
static const struct usb_pipe_methods | atmegadci_device_isoc_fs_methods |
static atmegadci_cmd_t | atmegadci_setup_rx |
static atmegadci_cmd_t | atmegadci_data_rx |
static atmegadci_cmd_t | atmegadci_data_tx |
static atmegadci_cmd_t | atmegadci_data_tx_sync |
static const struct usb_hw_ep_profile | atmegadci_ep_profile [2] |
static const struct usb_device_descriptor | atmegadci_devd |
static const struct atmegadci_config_desc | atmegadci_confd |
static const struct usb_hub_descriptor_min | atmegadci_hubd |
#define ATMEGA_BUS2SC | ( | bus | ) | __containerof(bus, struct atmegadci_softc, sc_bus) |
Definition at line 81 of file atmegadci.c.
#define ATMEGA_INTR_ENDPT 1 |
Definition at line 96 of file atmegadci.c.
#define ATMEGA_PC2SC | ( | pc | ) | ATMEGA_BUS2SC(USB_DMATAG_TO_XROOT((pc)->tag_parent)->bus) |
Definition at line 84 of file atmegadci.c.
Definition at line 1505 of file atmegadci.c.
#define STRING_PRODUCT "D\0C\0I\0 \0R\0o\0o\0t\0 \0H\0U\0B" |
Definition at line 1520 of file atmegadci.c.
#define STRING_VENDOR "A\0T\0M\0E\0G\0A" |
Definition at line 1517 of file atmegadci.c.
#define USB_DEBUG_VAR atmegadci_debug |
Definition at line 64 of file atmegadci.c.
|
static |
Definition at line 1191 of file atmegadci.c.
References ATMEGA_BUS2SC, atmegadci_clear_stall_sub(), usb_endpoint_descriptor::bEndpointAddress, usb_endpoint_descriptor::bmAttributes, usb_device::bus, usb_endpoint::edesc, usb_device::flags, UE_ADDR, UE_DIR_IN, UE_DIR_OUT, UE_XFERTYPE, USB_BUS_LOCK_ASSERT, usb_device_flags::usb_mode, and USB_MODE_DEVICE.
|
static |
Definition at line 1131 of file atmegadci.c.
References ATMEGA_READ_1, ATMEGA_UECFG0X, ATMEGA_UECFG0X_EPDIR, ATMEGA_UECFG0X_EPTYPE1, ATMEGA_UECFG0X_EPTYPE2, ATMEGA_UECFG0X_EPTYPE3, ATMEGA_UECFG1X, ATMEGA_UECFG1X_ALLOC, ATMEGA_UECFG1X_EPBK0, ATMEGA_UECFG1X_EPSIZE, ATMEGA_UECONX, ATMEGA_UECONX_EPEN, ATMEGA_UECONX_RSTDT, ATMEGA_UECONX_STALLRQ, ATMEGA_UECONX_STALLRQC, ATMEGA_UENUM, ATMEGA_UERST, ATMEGA_UERST_MASK, ATMEGA_UESTA0X, ATMEGA_UESTA0X_CFGOK, ATMEGA_WRITE_1, usb_bus::bdev, atmegadci_softc::sc_bus, UE_BULK, UE_CONTROL, UE_DIR_IN, and UE_INTERRUPT.
Referenced by atmegadci_clear_stall().
|
static |
Definition at line 170 of file atmegadci.c.
References ATMEGA_USBCON, ATMEGA_USBCON_FRZCLK, ATMEGA_USBCON_OTGPADE, ATMEGA_USBCON_USBE, ATMEGA_USBCON_VBUSTE, ATMEGA_WRITE_1, atmegadci_flags::clocks_off, atmegadci_softc::sc_bus, atmegadci_softc::sc_clocks_off, and atmegadci_softc::sc_flags.
Referenced by atmegadci_init(), atmegadci_roothub_exec(), and atmegadci_uninit().
|
static |
Definition at line 149 of file atmegadci.c.
References ATMEGA_USBCON, ATMEGA_USBCON_OTGPADE, ATMEGA_USBCON_USBE, ATMEGA_USBCON_VBUSTE, ATMEGA_WRITE_1, atmegadci_flags::clocks_off, atmegadci_flags::port_powered, atmegadci_softc::sc_bus, atmegadci_softc::sc_clocks_on, and atmegadci_softc::sc_flags.
Referenced by atmegadci_roothub_exec().
|
static |
Definition at line 328 of file atmegadci.c.
References ATMEGA_PC2SC, ATMEGA_READ_1, ATMEGA_READ_MULTI_1, ATMEGA_UEBCHX, ATMEGA_UEBCLX, ATMEGA_UEDATX, ATMEGA_UEIENX, ATMEGA_UEIENX_RXOUTE, ATMEGA_UEIENX_RXSTPE, ATMEGA_UEINTX, ATMEGA_UEINTX_FIFOCON, ATMEGA_UEINTX_RXOUTI, ATMEGA_UEINTX_RXSTPI, ATMEGA_UENUM, ATMEGA_WRITE_1, usb_page_search::buffer, count, atmegadci_td::ep_no, atmegadci_td::error, usb_page_search::length, atmegadci_td::max_packet_size, atmegadci_td::offset, atmegadci_td::pc, atmegadci_td::remainder, atmegadci_td::short_pkt, and usbd_get_page().
|
static |
Definition at line 442 of file atmegadci.c.
References ATMEGA_PC2SC, ATMEGA_READ_1, ATMEGA_UEDATX, ATMEGA_UEIENX, ATMEGA_UEIENX_RXSTPE, ATMEGA_UEIENX_TXINE, ATMEGA_UEINTX, ATMEGA_UEINTX_FIFOCON, ATMEGA_UEINTX_RXSTPI, ATMEGA_UEINTX_TXINI, ATMEGA_UENUM, ATMEGA_UESTA0X, ATMEGA_WRITE_1, ATMEGA_WRITE_MULTI_1, usb_page_search::buffer, count, atmegadci_td::ep_no, atmegadci_td::error, usb_page_search::length, atmegadci_td::max_packet_size, atmegadci_td::offset, atmegadci_td::pc, atmegadci_td::remainder, atmegadci_td::short_pkt, and usbd_get_page().
|
static |
Definition at line 527 of file atmegadci.c.
References ATMEGA_PC2SC, ATMEGA_READ_1, ATMEGA_UEIENX, ATMEGA_UEIENX_RXSTPE, ATMEGA_UEIENX_TXINE, ATMEGA_UEINTX, ATMEGA_UEINTX_RXSTPI, ATMEGA_UENUM, ATMEGA_UESTA0X, ATMEGA_WRITE_1, atmegadci_set_address(), atmegadci_td::ep_no, atmegadci_td::pc, and atmegadci_softc::sc_dv_addr.
|
static |
Definition at line 1077 of file atmegadci.c.
References ATMEGA_BUS2SC, ATMEGA_UEIENX, ATMEGA_UENUM, ATMEGA_WRITE_1, usb_xfer_root::bus, usb_xfer::endpoint, usb_xfer::endpointno, error, usb_xfer::flags_int, atmegadci_softc::sc_bus, UE_ADDR, USB_BUS_LOCK_ASSERT, usb_xfer_flags_int::usb_mode, USB_MODE_DEVICE, usbd_transfer_done(), and usb_xfer::xroot.
Referenced by atmegadci_device_isoc_fs_close(), atmegadci_device_non_isoc_close(), atmegadci_standard_done(), atmegadci_timeout(), and atmegadci_xfer_stall().
|
static |
Definition at line 1414 of file atmegadci.c.
References atmegadci_device_done(), and USB_ERR_CANCELLED.
|
static |
Definition at line 1420 of file atmegadci.c.
References ATMEGA_BUS2SC, ATMEGA_FRAME_MASK, ATMEGA_READ_1, ATMEGA_UDFNUMH, ATMEGA_UDFNUML, atmegadci_setup_standard_chain(), usb_xfer_root::bus, usb_xfer::endpoint, usb_endpoint::isoc_next, usb_xfer::nframes, usbd_xfer_get_isochronous_start_frame(), and usb_xfer::xroot.
|
static |
Definition at line 1408 of file atmegadci.c.
|
static |
Definition at line 1443 of file atmegadci.c.
References atmegadci_start_standard_chain().
|
static |
Definition at line 1377 of file atmegadci.c.
References atmegadci_device_done(), and USB_ERR_CANCELLED.
|
static |
Definition at line 1383 of file atmegadci.c.
|
static |
Definition at line 1371 of file atmegadci.c.
|
static |
Definition at line 1389 of file atmegadci.c.
References atmegadci_setup_standard_chain(), and atmegadci_start_standard_chain().
|
static |
Definition at line 1356 of file atmegadci.c.
References ATMEGA_BUS2SC, atmegadci_interrupt_poll(), bus, atmegadci_softc::sc_bus, USB_BUS_LOCK, and USB_BUS_UNLOCK.
Referenced by atmegadci_init().
|
static |
Definition at line 2045 of file atmegadci.c.
References usb_device::address, ATMEGA_BUS2SC, atmegadci_device_isoc_fs_methods, atmegadci_device_non_isoc_methods, usb_endpoint_descriptor::bEndpointAddress, usb_endpoint_descriptor::bmAttributes, usb_device::bus, usb_device::device_index, usb_device::flags, usb_endpoint::methods, atmegadci_softc::sc_rt_addr, usb_device::speed, UE_ISOCHRONOUS, UE_XFERTYPE, usb_device_flags::usb_mode, and USB_SPEED_FULL.
|
static |
Definition at line 137 of file atmegadci.c.
References ATMEGA_EP_MAX, and atmegadci_ep_profile.
Referenced by atmegadci_xfer_setup().
usb_error_t atmegadci_init | ( | struct atmegadci_softc * | sc | ) |
Definition at line 1219 of file atmegadci.c.
References ATMEGA_EP_MAX, ATMEGA_READ_1, ATMEGA_UDCON, ATMEGA_UDCON_DETACH, ATMEGA_UDIEN, ATMEGA_UDINT_EORSTE, ATMEGA_UDINT_SUSPE, ATMEGA_UECONX, ATMEGA_UEIENX, ATMEGA_UENUM, ATMEGA_UERST, ATMEGA_UHWCON, ATMEGA_UHWCON_UIMOD, ATMEGA_UHWCON_UVREGE, ATMEGA_USBCON, ATMEGA_USBCON_FRZCLK, ATMEGA_USBCON_OTGPADE, ATMEGA_USBCON_USBE, ATMEGA_USBCON_VBUSTE, ATMEGA_USBSTA, ATMEGA_USBSTA_VBUS, ATMEGA_WRITE_1, atmegadci_bus_methods, atmegadci_clocks_off(), atmegadci_do_poll(), atmegadci_vbus_interrupt(), usb_bus::bus_mtx, DPRINTF, usb_bus::methods, n, atmegadci_softc::sc_bus, atmegadci_softc::sc_clocks_on, USB_BUS_LOCK, USB_BUS_UNLOCK, usb_pause_mtx(), USB_REV_1_1, and usb_bus::usbrev.
void atmegadci_interrupt | ( | struct atmegadci_softc * | sc | ) |
Definition at line 656 of file atmegadci.c.
References ATMEGA_READ_1, ATMEGA_UDIEN, ATMEGA_UDINT, ATMEGA_UDINT_EORSTE, ATMEGA_UDINT_EORSTI, ATMEGA_UDINT_SUSPE, ATMEGA_UDINT_SUSPI, ATMEGA_UDINT_WAKEUPE, ATMEGA_UDINT_WAKEUPI, ATMEGA_UEINT, ATMEGA_USBINT, ATMEGA_USBINT_VBUSTI, ATMEGA_USBSTA, ATMEGA_USBSTA_VBUS, ATMEGA_WRITE_1, atmegadci_interrupt_poll(), atmegadci_root_intr(), atmegadci_vbus_interrupt(), atmegadci_flags::change_connect, atmegadci_flags::change_suspend, atmegadci_softc::sc_bus, atmegadci_softc::sc_flags, status, atmegadci_flags::status_bus_reset, atmegadci_flags::status_suspend, USB_BUS_LOCK, and USB_BUS_UNLOCK.
|
static |
Definition at line 614 of file atmegadci.c.
References atmegadci_xfer_do_fifo(), usb_bus::intr_q, and atmegadci_softc::sc_bus.
Referenced by atmegadci_do_poll(), and atmegadci_interrupt().
|
static |
Definition at line 203 of file atmegadci.c.
References ATMEGA_UDCON, ATMEGA_UDCON_DETACH, ATMEGA_WRITE_1, atmegadci_flags::d_pulled_up, and atmegadci_softc::sc_flags.
Referenced by atmegadci_roothub_exec(), and atmegadci_uninit().
|
static |
Definition at line 191 of file atmegadci.c.
References ATMEGA_UDCON, ATMEGA_WRITE_1, atmegadci_flags::d_pulled_up, atmegadci_flags::port_powered, and atmegadci_softc::sc_flags.
Referenced by atmegadci_roothub_exec().
|
static |
Definition at line 1350 of file atmegadci.c.
Referenced by atmegadci_set_hw_power_sleep().
|
static |
Definition at line 953 of file atmegadci.c.
References atmegadci_softc::sc_bus, atmegadci_softc::sc_hub_idata, uhub_root_intr(), and USB_BUS_LOCK_ASSERT.
Referenced by atmegadci_interrupt(), and atmegadci_vbus_interrupt().
|
static |
Definition at line 1527 of file atmegadci.c.
References ATMEGA_BUS2SC, ATMEGA_READ_1, ATMEGA_UECFG0X, ATMEGA_UECFG0X_EPTYPE0, ATMEGA_UECFG1X, ATMEGA_UECFG1X_ALLOC, ATMEGA_UECFG1X_EPBK0, ATMEGA_UECFG1X_EPSIZE, ATMEGA_UECONX, ATMEGA_UECONX_EPEN, ATMEGA_UECONX_STALLRQ, ATMEGA_UENUM, ATMEGA_UERST, ATMEGA_UERST_MASK, ATMEGA_UESTA0X, ATMEGA_UESTA0X_CFGOK, ATMEGA_WRITE_1, atmegadci_clocks_off(), atmegadci_clocks_on(), atmegadci_confd, atmegadci_devd, atmegadci_hubd, atmegadci_pull_down(), atmegadci_pull_up(), atmegadci_wakeup_peer(), usb_bus::bdev, usb_device::bus, atmegadci_flags::change_connect, atmegadci_flags::change_suspend, index, len, atmegadci_flags::port_enabled, atmegadci_flags::port_powered, pptr, atmegadci_hub_temp::ps, req, atmegadci_softc::sc_bus, atmegadci_softc::sc_conf, atmegadci_softc::sc_flags, atmegadci_softc::sc_hub_temp, atmegadci_softc::sc_rt_addr, atmegadci_flags::status_bus_reset, atmegadci_flags::status_suspend, atmegadci_flags::status_vbus, UDESC_CONFIG, UDESC_DEVICE, UDESC_STRING, UDS_SELF_POWERED, UF_DEVICE_REMOTE_WAKEUP, UF_ENDPOINT_HALT, UGETW, UHF_C_PORT_CONNECTION, UHF_C_PORT_ENABLE, UHF_C_PORT_OVER_CURRENT, UHF_C_PORT_RESET, UHF_C_PORT_SUSPEND, UHF_PORT_ENABLE, UHF_PORT_INDICATOR, UHF_PORT_POWER, UHF_PORT_RESET, UHF_PORT_SUSPEND, UHF_PORT_TEST, UPS_C_CONNECT_STATUS, UPS_C_SUSPEND, UPS_CURRENT_CONNECT_STATUS, UPS_PORT_ENABLED, UPS_PORT_MODE_DEVICE, UPS_PORT_POWER, UPS_SUSPEND, UR_CLEAR_FEATURE, UR_CLEAR_TT_BUFFER, UR_GET_CONFIG, UR_GET_DESCRIPTOR, UR_GET_INTERFACE, UR_GET_STATUS, UR_GET_TT_STATE, UR_RESET_TT, UR_SET_ADDRESS, UR_SET_CONFIG, UR_SET_DESCRIPTOR, UR_SET_FEATURE, UR_SET_INTERFACE, UR_STOP_TT, UR_SYNCH_FRAME, USB_BUS_LOCK_ASSERT, USB_ERR_IOERROR, USB_ERR_STALLED, usb_string_lang_en, USETW, UT_READ_CLASS_DEVICE, UT_READ_CLASS_INTERFACE, UT_READ_CLASS_OTHER, UT_READ_DEVICE, UT_READ_ENDPOINT, UT_READ_INTERFACE, UT_READ_VENDOR_INTERFACE, UT_WRITE_CLASS_DEVICE, UT_WRITE_CLASS_INTERFACE, UT_WRITE_CLASS_OTHER, UT_WRITE_DEVICE, UT_WRITE_ENDPOINT, UT_WRITE_INTERFACE, UT_WRITE_VENDOR_INTERFACE, value, usb_port_status::wPortChange, usb_port_status::wPortStatus, and atmegadci_hub_temp::wValue.
|
static |
Definition at line 233 of file atmegadci.c.
References addr, ATMEGA_UDADDR, ATMEGA_UDADDR_ADDEN, and ATMEGA_WRITE_1.
Referenced by atmegadci_data_tx_sync().
|
static |
Definition at line 2068 of file atmegadci.c.
References ATMEGA_BUS2SC, atmegadci_resume(), atmegadci_suspend(), atmegadci_uninit(), bus, state, USB_HW_POWER_RESUME, USB_HW_POWER_SHUTDOWN, and USB_HW_POWER_SUSPEND.
|
static |
Definition at line 1109 of file atmegadci.c.
References ATMEGA_BUS2SC, ATMEGA_UECONX, ATMEGA_UECONX_EPEN, ATMEGA_UECONX_STALLRQ, ATMEGA_UENUM, ATMEGA_WRITE_1, usb_endpoint_descriptor::bEndpointAddress, usb_device::bus, usb_endpoint::edesc, UE_ADDR, and USB_BUS_LOCK_ASSERT.
|
static |
Definition at line 243 of file atmegadci.c.
References ATMEGA_PC2SC, ATMEGA_READ_1, ATMEGA_READ_MULTI_1, ATMEGA_UDADDR, ATMEGA_UEBCHX, ATMEGA_UEBCLX, ATMEGA_UECONX, ATMEGA_UECONX_EPEN, ATMEGA_UECONX_STALLRQ, ATMEGA_UEDATX, ATMEGA_UEIENX, ATMEGA_UEIENX_RXSTPE, ATMEGA_UEINTX, ATMEGA_UEINTX_RXSTPI, ATMEGA_UENUM, ATMEGA_WRITE_1, count, atmegadci_td::did_stall, atmegadci_td::ep_no, atmegadci_td::offset, atmegadci_td::pc, atmegadci_td::remainder, req, atmegadci_softc::sc_dv_addr, UR_SET_ADDRESS, usbd_copy_in(), and UT_WRITE_DEVICE.
|
static |
Definition at line 775 of file atmegadci.c.
References usb_xfer::address, ATMEGA_BUS2SC, atmegadci_data_rx, atmegadci_data_tx, atmegadci_data_tx_sync, atmegadci_setup_rx, atmegadci_setup_standard_chain_sub(), usb_xfer_root::bus, usb_xfer_flags_int::control_act, usb_xfer_flags_int::control_hdr, usb_xfer_flags_int::control_stall, usb_xfer_flags_int::control_xfr, atmegadci_std_temp::did_stall, usb_xfer::endpointno, atmegadci_td::ep_no, usb_xfer::flags, usb_xfer::flags_int, usb_xfer_flags::force_short_xfer, usb_xfer::frbuffers, usb_xfer::frlengths, atmegadci_std_temp::func, usb_xfer_flags_int::isochronous_xfr, atmegadci_std_temp::len, atmegadci_std_temp::max_frame_size, usb_xfer::max_frame_size, usb_xfer::nframes, atmegadci_std_temp::offset, atmegadci_std_temp::pc, atmegadci_std_temp::setup_alt_next, usb_xfer_flags_int::short_frames_ok, atmegadci_std_temp::short_pkt, usb_xfer::sumlen, atmegadci_std_temp::td, atmegadci_std_temp::td_next, usb_xfer::td_start, usb_xfer::td_transfer_cache, usb_xfer::td_transfer_first, usb_xfer::td_transfer_last, usb_xfer_root::udev, UE_ADDR, UE_DIR_IN, UE_GET_ADDR, usbd_get_speed(), and usb_xfer::xroot.
Referenced by atmegadci_device_isoc_fs_enter(), and atmegadci_device_non_isoc_start().
|
static |
Definition at line 752 of file atmegadci.c.
References atmegadci_td::alt_next, atmegadci_td::did_stall, atmegadci_std_temp::did_stall, atmegadci_td::error, atmegadci_td::func, atmegadci_std_temp::func, atmegadci_std_temp::len, atmegadci_td::obj_next, atmegadci_td::offset, atmegadci_std_temp::offset, atmegadci_td::pc, atmegadci_std_temp::pc, atmegadci_td::remainder, atmegadci_std_temp::setup_alt_next, atmegadci_td::short_pkt, atmegadci_std_temp::short_pkt, atmegadci_std_temp::td, and atmegadci_std_temp::td_next.
Referenced by atmegadci_setup_standard_chain().
|
static |
Definition at line 1032 of file atmegadci.c.
References usb_xfer::aframes, atmegadci_device_done(), atmegadci_standard_done_sub(), usb_xfer_flags_int::control_act, usb_xfer_flags_int::control_hdr, usb_xfer_flags_int::control_xfr, usb_xfer::endpoint, usb_xfer::flags_int, usb_xfer::nframes, usb_xfer::td_transfer_cache, and usb_xfer::td_transfer_first.
Referenced by atmegadci_xfer_do_fifo().
|
static |
Definition at line 967 of file atmegadci.c.
References usb_xfer::aframes, atmegadci_td::alt_next, atmegadci_td::error, error, usb_xfer::flags_int, usb_xfer::frlengths, usb_xfer_flags_int::isochronous_xfr, len, usb_xfer::nframes, atmegadci_td::obj_next, atmegadci_td::remainder, usb_xfer_flags_int::short_frames_ok, usb_xfer::td_transfer_cache, USB_ERR_NORMAL_COMPLETION, and USB_ERR_STALLED.
Referenced by atmegadci_standard_done().
|
static |
Definition at line 935 of file atmegadci.c.
References atmegadci_timeout(), atmegadci_xfer_do_fifo(), usb_xfer_root::bus, usb_bus::intr_q, usb_xfer::timeout, usbd_transfer_enqueue(), usbd_transfer_timeout_ms(), and usb_xfer::xroot.
Referenced by atmegadci_device_isoc_fs_start(), and atmegadci_device_non_isoc_start().
|
static |
Definition at line 1344 of file atmegadci.c.
Referenced by atmegadci_set_hw_power_sleep().
|
static |
Definition at line 922 of file atmegadci.c.
References atmegadci_device_done(), usb_xfer_root::bus, DPRINTF, USB_BUS_LOCK_ASSERT, USB_ERR_TIMEOUT, and usb_xfer::xroot.
Referenced by atmegadci_start_standard_chain().
void atmegadci_uninit | ( | struct atmegadci_softc * | sc | ) |
Definition at line 1310 of file atmegadci.c.
References ATMEGA_EP_MAX, ATMEGA_UDIEN, ATMEGA_UERST, ATMEGA_UHWCON, ATMEGA_WRITE_1, atmegadci_clocks_off(), atmegadci_pull_down(), atmegadci_flags::change_connect, atmegadci_flags::change_suspend, atmegadci_flags::port_powered, atmegadci_softc::sc_bus, atmegadci_softc::sc_clocks_on, atmegadci_softc::sc_flags, atmegadci_flags::status_bus_reset, atmegadci_flags::status_suspend, atmegadci_flags::status_vbus, USB_BUS_LOCK, and USB_BUS_UNLOCK.
Referenced by atmegadci_set_hw_power_sleep().
|
static |
Definition at line 628 of file atmegadci.c.
References atmegadci_root_intr(), atmegadci_flags::change_connect, atmegadci_flags::change_suspend, atmegadci_softc::sc_flags, atmegadci_flags::status_bus_reset, atmegadci_flags::status_suspend, and atmegadci_flags::status_vbus.
Referenced by atmegadci_init(), and atmegadci_interrupt().
|
static |
Definition at line 214 of file atmegadci.c.
References ATMEGA_READ_1, ATMEGA_UDCON, ATMEGA_UDCON_RMWKUP, ATMEGA_WRITE_1, usb_bus::bus_mtx, atmegadci_softc::sc_bus, atmegadci_softc::sc_flags, atmegadci_flags::status_suspend, and usb_pause_mtx().
Referenced by atmegadci_roothub_exec().
|
static |
Definition at line 571 of file atmegadci.c.
References atmegadci_standard_done(), atmegadci_td::func, usb_xfer::td_transfer_cache, and usb_xfer::td_transfer_last.
Referenced by atmegadci_interrupt_poll(), and atmegadci_start_standard_chain().
|
static |
Definition at line 1956 of file atmegadci.c.
References ATMEGA_BUS2SC, atmegadci_get_hw_ep_profile(), usb_endpoint_descriptor::bmAttributes, usb_setup_params::buf, usb_device::bus, usb_setup_params::curr_xfer, usb_endpoint::edesc, usb_xfer::endpoint, usb_xfer::endpointno, atmegadci_td::ep_no, usb_setup_params::err, usb_setup_params::hc_max_frame_size, usb_setup_params::hc_max_packet_count, usb_setup_params::hc_max_packet_size, atmegadci_td::max_packet_size, usb_xfer::max_packet_size, n, usb_xfer::nframes, atmegadci_td::obj_next, pf, usb_setup_params::size, atmegadci_td::support_multi_buffer, usb_xfer::td_start, usb_setup_params::udev, UE_ADDR, UE_CONTROL, UE_XFERTYPE, USB_ADD_BYTES, USB_ERR_INVAL, USB_HOST_ALIGN, and usbd_transfer_setup_sub().
|
static |
Definition at line 1103 of file atmegadci.c.
References atmegadci_device_done(), and USB_ERR_STALLED.
|
static |
Definition at line 2039 of file atmegadci.c.
USB_MAKE_STRING_DESC | ( | STRING_PRODUCT | , |
atmegadci_product | |||
) |
USB_MAKE_STRING_DESC | ( | STRING_VENDOR | , |
atmegadci_vendor | |||
) |
|
static |
Definition at line 100 of file atmegadci.c.
Referenced by atmegadci_init().
|
static |
Definition at line 1477 of file atmegadci.c.
Referenced by atmegadci_roothub_exec().
|
static |
Definition at line 105 of file atmegadci.c.
Referenced by atmegadci_setup_standard_chain().
|
static |
Definition at line 106 of file atmegadci.c.
Referenced by atmegadci_setup_standard_chain().
|
static |
Definition at line 107 of file atmegadci.c.
Referenced by atmegadci_setup_standard_chain().
|
static |
Definition at line 1463 of file atmegadci.c.
Referenced by atmegadci_roothub_exec().
|
static |
Definition at line 102 of file atmegadci.c.
Referenced by atmegadci_ep_init().
|
static |
Definition at line 101 of file atmegadci.c.
Referenced by atmegadci_ep_init().
|
static |
Definition at line 117 of file atmegadci.c.
Referenced by atmegadci_get_hw_ep_profile().
|
static |
Definition at line 1507 of file atmegadci.c.
Referenced by atmegadci_roothub_exec().
|
static |
Definition at line 104 of file atmegadci.c.
Referenced by atmegadci_setup_standard_chain().