diff --git a/repos/dde_linux/lib/mk/spec/x86/usb.inc b/repos/dde_linux/lib/mk/spec/x86/usb.inc index bd7f3a9b8..3f609d78c 100644 --- a/repos/dde_linux/lib/mk/spec/x86/usb.inc +++ b/repos/dde_linux/lib/mk/spec/x86/usb.inc @@ -4,7 +4,7 @@ SRC_C += usb/core/hcd-pci.c # # USB netwpork support # -SRC_C += $(addprefix net/usb/, usbnet.c ax88179_178a.c) +SRC_C += $(addprefix net/usb/, usbnet.c ax88179_178a.c cdc_ether.c) # XHCI SRC_C += usb/host/xhci-pci.c diff --git a/repos/dde_linux/lib/mk/usb.inc b/repos/dde_linux/lib/mk/usb.inc index c6a65f3dc..98a6069f1 100644 --- a/repos/dde_linux/lib/mk/usb.inc +++ b/repos/dde_linux/lib/mk/usb.inc @@ -20,12 +20,13 @@ INC_DIR += $(LX_CONTRIB_DIR)/include $(LX_CONTRIB_DIR)/include/uapi $(LX_CONTRIB CC_OPT += -U__linux__ -D__KERNEL__ CC_OPT += -DCONFIG_USB_DEVICEFS -DCONFIG_HOTPLUG -DDEBUG -DCONFIG_USB_PHY=1 \ -DCONFIG_GENERIC_PHY=0 -DCONFIG_USB_OTG_WHITELIST=0 \ - -DCONFIG_USB_OTG=0 + -DCONFIG_USB_OTG=0 -DCONFIG_USB_NET_RNDIS_HOST=1 CC_WARN = -Wall -Wno-unused-variable -Wno-uninitialized \ -Wno-unused-function -Wno-overflow CC_C_OPT += -std=gnu89 -Wno-unused-but-set-variable -Wno-pointer-sign -Wno-unused-label +CC_C_OPT += -include $(LIB_INC_DIR)/lx_emul.h CC_CXX_OPT = -fpermissive @@ -39,6 +40,7 @@ CC_OPT += -DMOD_SUFFIX=$(MOD_SUFFIX) SRC_CC += printf.cc work.cc timer.cc scheduler.cc irq.cc malloc.cc env.cc # common lib +SRC_C += lib/ctype.c SRC_C += lib/int_sqrt.c # USB core @@ -86,6 +88,7 @@ vpath %.cc $(LIB_DIR)/nic vpath %.cc $(LIB_DIR)/raw vpath %.c $(LIB_DIR)/raw vpath lib/int_sqrt.c $(LX_CONTRIB_DIR) +vpath lib/ctype.c $(LX_CONTRIB_DIR) vpath %.cc $(REP_DIR)/src/lx_kit # vi: set ft=make : diff --git a/repos/dde_linux/ports/dde_linux.hash b/repos/dde_linux/ports/dde_linux.hash index 3ce2f1feb..b19da56bd 100644 --- a/repos/dde_linux/ports/dde_linux.hash +++ b/repos/dde_linux/ports/dde_linux.hash @@ -1 +1 @@ -71088fe54dc4e32413dac2c7a124f4e3e6783342 +570bd3cf50c3ae2307931ae9eb6bb706423167ef diff --git a/repos/dde_linux/src/lib/usb/lx_emul.cc b/repos/dde_linux/src/lib/usb/lx_emul.cc index 98ccc9e14..5c63920f1 100644 --- a/repos/dde_linux/src/lib/usb/lx_emul.cc +++ b/repos/dde_linux/src/lib/usb/lx_emul.cc @@ -1036,3 +1036,47 @@ struct workqueue_struct *alloc_workqueue(const char *fmt, unsigned int flags, #include +/******************* + ** lib/hexdump.c ** + *******************/ + +#include + +/** + * hex_to_bin - convert a hex digit to its real value + * @ch: ascii character represents hex digit + * + * hex_to_bin() converts one hex digit to its actual value or -1 in case of bad + * input. + */ +int hex_to_bin(char ch) +{ + if ((ch >= '0') && (ch <= '9')) + return ch - '0'; + ch = tolower(ch); + if ((ch >= 'a') && (ch <= 'f')) + return ch - 'a' + 10; + return -1; +} + +/** + * hex2bin - convert an ascii hexadecimal string to its binary representation + * @dst: binary result + * @src: ascii hexadecimal string + * @count: result length + * + * Return 0 on success, -1 in case of bad input. + */ +int hex2bin(u8 *dst, const char *src, size_t count) +{ + while (count--) { + int hi = hex_to_bin(*src++); + int lo = hex_to_bin(*src++); + + if ((hi < 0) || (lo < 0)) + return -1; + + *dst++ = (hi << 4) | lo; + } + return 0; +} diff --git a/repos/dde_linux/src/lib/usb/spec/x86/platform.cc b/repos/dde_linux/src/lib/usb/spec/x86/platform.cc index ac623a78b..1b0a5f31b 100644 --- a/repos/dde_linux/src/lib/usb/spec/x86/platform.cc +++ b/repos/dde_linux/src/lib/usb/spec/x86/platform.cc @@ -15,6 +15,7 @@ extern "C" void module_ax88179_178a_driver_init(); +extern "C" void module_cdc_driver_init(); extern "C" void module_usbnet_init(); extern "C" void module_ehci_hcd_init(); extern "C" void module_ehci_pci_init(); @@ -29,6 +30,7 @@ void platform_hcd_init(Services *s) if (s->nic) { module_usbnet_init(); module_ax88179_178a_driver_init(); + module_cdc_driver_init(); } if (s->xhci) { diff --git a/repos/dde_linux/usb.list b/repos/dde_linux/usb.list index 53cb4c152..e4be26383 100644 --- a/repos/dde_linux/usb.list +++ b/repos/dde_linux/usb.list @@ -21,6 +21,7 @@ linux-x.x.x/drivers/net/usb/asix_devices.c linux-x.x.x/drivers/net/usb/asix.h linux-x.x.x/drivers/net/usb/ax88172a.c linux-x.x.x/drivers/net/usb/ax88179_178a.c +linux-x.x.x/drivers/net/usb/cdc_ether.c linux-x.x.x/drivers/net/usb/smsc95xx.h linux-x.x.x/drivers/net/usb/smsc95xx.c linux-x.x.x/drivers/net/usb/usbnet.c @@ -130,6 +131,7 @@ linux-x.x.x/include/asm-generic/bitops/__fls.h linux-x.x.x/include/asm-generic/bitops/fls64.h linux-x.x.x/include/asm-generic/bitops/non-atomic.h linux-x.x.x/include/asm-generic/ioctl.h +linux-x.x.x/include/linux/ctype.h linux-x.x.x/include/linux/hiddev.h linux-x.x.x/include/linux/hid.h linux-x.x.x/include/linux/input.h @@ -171,4 +173,5 @@ linux-x.x.x/include/uapi/linux/swab.h linux-x.x.x/include/uapi/linux/usb/ch11.h linux-x.x.x/include/uapi/linux/usb/ch9.h linux-x.x.x/include/uapi/linux/usb/cdc.h +linux-x.x.x/lib/ctype.c linux-x.x.x/lib/int_sqrt.c