freebsd-dev/sys/dev/usb
Pyun YongHyeon cdc2a5ec78 Implement TX/RX checksum offloading support for ASIX AX88772B
controller.

AX88772B data sheet does not show detailed information about
checksum offloading related things. It seems the controller has
lots of options to support checksum offloading but I failed to
understand why this feature requires so much complex controller
configuration and status bits.
One of major difference between AX88772B and its predecessor is
AX88772B uses a new RX header format when RX checksum offloading is
enabled.  It also requires the received length of a frame should be
multiple of 4.  Controller will pad necessary bytes to make the
length of received frame to be multiple of 4.  It is driver's
responsibility to offset this pad bytes.
Note, AX88772B could be configured to get partial checksum value in
in RX header. This mode uses different RX header format and
currently we don't use that fature.

This change makes axe(4) use driver specific MII attach handler to
override uether(9)'s default MII attach and announce flow-control
capability for AX88178/AX88772A/AX88772B to PHY drivers.  It seems
original AX88772 also supports flow-control but I didn't enable it
due to lack of test/access to the controller.  The flow-control
threshold parameter is loaded from EEPROM and there is no way to
override this value without reprogramming EEPROM. For AX88772B,
TX/RX IP/TCP/UDP checksum offloading is announced to network stack.
IPv6 and PPPoE checksum offloading is also supported by controller
but we have no way to take advantage of these features.
Driver already knows PHY address so make PHY driver know that
information and remove unnecessary PHY address check used in
miibus_readreg/miibus_writereg callbacks.  Also announce AX88178,
AX88772A and AX88772B support VLAN over-sized frame.

While I'm here clean up headers and remove axe_start() in
axe_init() because the link wouldn't be available right after media
change.
2011-10-25 18:36:18 +00:00
..
controller Renamed PCI_INTERFACE_XHCI to PCIP_SERIALBUS_USB_XHCI and moved it 2011-05-17 11:23:43 +00:00
input MFprojects/hid: 2011-09-28 14:52:25 +00:00
misc - Export more USB device ID's. 2011-06-24 19:32:29 +00:00
net Implement TX/RX checksum offloading support for ASIX AX88772B 2011-10-25 18:36:18 +00:00
quirk Add USB mass storage quirk for device that emits errors after the automatic 2011-10-10 16:26:06 +00:00
serial Bugfix: The ucom detach function is sometimes called on zeroed structures. 2011-10-10 15:54:44 +00:00
storage Add descriptor sense support to CAM, and honor sense residuals properly in 2011-10-03 20:32:55 +00:00
template - Add some comments about the origin of some USB descriptors. 2011-06-23 10:35:45 +00:00
wlan Add new USB IDs to RUN driver. Update usb.conf. 2011-10-19 10:09:01 +00:00
ufm_ioctl.h
usb_bus.h Removes all duplicated code with BPF that it's greatly simplified and 2010-11-24 19:11:32 +00:00
usb_busdma.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
usb_busdma.h
usb_cdc.h USB network (NCM driver): 2010-10-13 22:04:55 +00:00
usb_compat_linux.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
usb_compat_linux.h
usb_controller.h Removes a unused function `usb_bus_find'. 2010-11-25 22:56:26 +00:00
usb_core.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
usb_core.h
usb_debug.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
usb_debug.h
usb_dev.c In order to maximize the re-usability of kernel code in user space this 2011-09-16 13:58:51 +00:00
usb_dev.h
usb_device.c Refactor auto-quirk solution so that we break as few external 2011-09-10 15:55:36 +00:00
usb_device.h This patch adds automatic detection of USB mass storage devices 2011-09-02 18:50:44 +00:00
usb_dynamic.c Refactor auto-quirk solution so that we break as few external 2011-09-10 15:55:36 +00:00
usb_dynamic.h Refactor auto-quirk solution so that we break as few external 2011-09-10 15:55:36 +00:00
usb_endian.h
usb_error.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
usb_freebsd.h This patch adds automatic detection of USB mass storage devices 2011-09-02 18:50:44 +00:00
usb_generic.c Improve enumeration of Low- and Full-speed devices connected through a 2011-06-06 21:45:09 +00:00
usb_generic.h
usb_handle_request.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
usb_hid.c Make the USB keyboard driver more HID compliant. 2011-07-04 07:37:28 +00:00
usb_hub.c - Add additional information to the PnP info of USB HUBs children which 2011-06-24 04:16:06 +00:00
usb_hub.h This commit adds full support for USB 3.0 devices in host and device 2010-10-04 23:18:05 +00:00
usb_if.m
usb_ioctl.h - Add more USB templates for various USB device classes 2011-06-23 07:54:03 +00:00
usb_lookup.c - Export the USB device ID format to userspace tools. 2011-06-25 15:51:44 +00:00
usb_mbuf.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
usb_mbuf.h
usb_msctest.c Reduce USB memory usage during enumeration. 2011-09-14 15:16:53 +00:00
usb_msctest.h This patch adds automatic detection of USB mass storage devices 2011-09-02 18:50:44 +00:00
usb_parse.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
usb_pci.h
usb_pf.c - Improvements to USB PF solution 2011-04-03 20:03:45 +00:00
usb_pf.h - Improvements to USB PF solution 2011-04-03 20:03:45 +00:00
usb_process.c Add support for new USB serial driver. 2011-06-01 17:58:27 +00:00
usb_process.h Use software interrupt priorities for USB kthreads instead of hardware 2011-01-13 14:15:36 +00:00
usb_request.c Add sysctl to not reset the device on clear stall failures, to 2011-08-19 09:01:34 +00:00
usb_request.h Improve enumeration of Low- and Full-speed devices connected through a 2011-06-06 21:45:09 +00:00
usb_transfer.c Avoid starting the USB transfer if an error is already pending. 2011-09-20 14:17:58 +00:00
usb_transfer.h This commit adds full support for USB 3.0 devices in host and device 2010-10-04 23:18:05 +00:00
usb_util.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
usb_util.h
usb.h Add missing USB 3.0 definitions. Correct some wrong ones. 2010-10-04 21:38:10 +00:00
usbdevs Add new USB IDs to RUN driver. Update usb.conf. 2011-10-19 10:09:01 +00:00
usbdi_util.h This commit adds full support for USB 3.0 devices in host and device 2010-10-04 23:18:05 +00:00
usbdi.h Refactor auto-quirk solution so that we break as few external 2011-09-10 15:55:36 +00:00
usbhid.h Make the USB keyboard driver more HID compliant. 2011-07-04 07:37:28 +00:00