diff --git a/target/linux/generic/pending-4.14/760-net-usb-aqc111-Driver-skeleton-for-Aquantia-AQtionUSB-to-5GbE.patch b/target/linux/generic/pending-4.14/760-net-usb-aqc111-Driver-skeleton-for-Aquantia-AQtionUSB-to-5GbE.patch index 988b03049f..b20a129391 100644 --- a/target/linux/generic/pending-4.14/760-net-usb-aqc111-Driver-skeleton-for-Aquantia-AQtionUSB-to-5GbE.patch +++ b/target/linux/generic/pending-4.14/760-net-usb-aqc111-Driver-skeleton-for-Aquantia-AQtionUSB-to-5GbE.patch @@ -1751,6 +1751,100 @@ +}; + +#endif /* __LINUX_USBNET_AQC111_H */ +--- /dev/null ++++ b/include/linux/linkmode.h +@@ -0,0 +1,91 @@ ++#ifndef __LINKMODE_H ++#define __LINKMODE_H ++ ++#include ++#include ++#include ++ ++static inline void linkmode_zero(unsigned long *dst) ++{ ++ bitmap_zero(dst, __ETHTOOL_LINK_MODE_MASK_NBITS); ++} ++ ++static inline void linkmode_copy(unsigned long *dst, const unsigned long *src) ++{ ++ bitmap_copy(dst, src, __ETHTOOL_LINK_MODE_MASK_NBITS); ++} ++ ++static inline void linkmode_and(unsigned long *dst, const unsigned long *a, ++ const unsigned long *b) ++{ ++ bitmap_and(dst, a, b, __ETHTOOL_LINK_MODE_MASK_NBITS); ++} ++ ++static inline void linkmode_or(unsigned long *dst, const unsigned long *a, ++ const unsigned long *b) ++{ ++ bitmap_or(dst, a, b, __ETHTOOL_LINK_MODE_MASK_NBITS); ++} ++ ++static inline bool linkmode_empty(const unsigned long *src) ++{ ++ return bitmap_empty(src, __ETHTOOL_LINK_MODE_MASK_NBITS); ++} ++ ++static inline int linkmode_andnot(unsigned long *dst, const unsigned long *src1, ++ const unsigned long *src2) ++{ ++ return bitmap_andnot(dst, src1, src2, __ETHTOOL_LINK_MODE_MASK_NBITS); ++} ++ ++static inline void linkmode_set_bit(int nr, volatile unsigned long *addr) ++{ ++ __set_bit(nr, addr); ++} ++ ++static inline void linkmode_set_bit_array(const int *array, int array_size, ++ unsigned long *addr) ++{ ++ int i; ++ ++ for (i = 0; i < array_size; i++) ++ linkmode_set_bit(array[i], addr); ++} ++ ++static inline void linkmode_clear_bit(int nr, volatile unsigned long *addr) ++{ ++ __clear_bit(nr, addr); ++} ++ ++static inline void linkmode_mod_bit(int nr, volatile unsigned long *addr, ++ int set) ++{ ++ if (set) ++ linkmode_set_bit(nr, addr); ++ else ++ linkmode_clear_bit(nr, addr); ++} ++ ++static inline void linkmode_change_bit(int nr, volatile unsigned long *addr) ++{ ++ __change_bit(nr, addr); ++} ++ ++static inline int linkmode_test_bit(int nr, volatile unsigned long *addr) ++{ ++ return test_bit(nr, addr); ++} ++ ++static inline int linkmode_equal(const unsigned long *src1, ++ const unsigned long *src2) ++{ ++ return bitmap_equal(src1, src2, __ETHTOOL_LINK_MODE_MASK_NBITS); ++} ++ ++static inline int linkmode_subset(const unsigned long *src1, ++ const unsigned long *src2) ++{ ++ return bitmap_subset(src1, src2, __ETHTOOL_LINK_MODE_MASK_NBITS); ++} ++ ++#endif /* __LINKMODE_H */ --- a/drivers/net/usb/cdc_ether.c +++ b/drivers/net/usb/cdc_ether.c @@ -569,6 +569,8 @@ static const struct driver_info wwan_inf diff --git a/target/linux/generic/pending-4.19/760-net-usb-aqc111-Driver-skeleton-for-Aquantia-AQtionUSB-to-5GbE.patch b/target/linux/generic/pending-4.19/760-net-usb-aqc111-Driver-skeleton-for-Aquantia-AQtionUSB-to-5GbE.patch index 988b03049f..b20a129391 100644 --- a/target/linux/generic/pending-4.19/760-net-usb-aqc111-Driver-skeleton-for-Aquantia-AQtionUSB-to-5GbE.patch +++ b/target/linux/generic/pending-4.19/760-net-usb-aqc111-Driver-skeleton-for-Aquantia-AQtionUSB-to-5GbE.patch @@ -1751,6 +1751,100 @@ +}; + +#endif /* __LINUX_USBNET_AQC111_H */ +--- /dev/null ++++ b/include/linux/linkmode.h +@@ -0,0 +1,91 @@ ++#ifndef __LINKMODE_H ++#define __LINKMODE_H ++ ++#include ++#include ++#include ++ ++static inline void linkmode_zero(unsigned long *dst) ++{ ++ bitmap_zero(dst, __ETHTOOL_LINK_MODE_MASK_NBITS); ++} ++ ++static inline void linkmode_copy(unsigned long *dst, const unsigned long *src) ++{ ++ bitmap_copy(dst, src, __ETHTOOL_LINK_MODE_MASK_NBITS); ++} ++ ++static inline void linkmode_and(unsigned long *dst, const unsigned long *a, ++ const unsigned long *b) ++{ ++ bitmap_and(dst, a, b, __ETHTOOL_LINK_MODE_MASK_NBITS); ++} ++ ++static inline void linkmode_or(unsigned long *dst, const unsigned long *a, ++ const unsigned long *b) ++{ ++ bitmap_or(dst, a, b, __ETHTOOL_LINK_MODE_MASK_NBITS); ++} ++ ++static inline bool linkmode_empty(const unsigned long *src) ++{ ++ return bitmap_empty(src, __ETHTOOL_LINK_MODE_MASK_NBITS); ++} ++ ++static inline int linkmode_andnot(unsigned long *dst, const unsigned long *src1, ++ const unsigned long *src2) ++{ ++ return bitmap_andnot(dst, src1, src2, __ETHTOOL_LINK_MODE_MASK_NBITS); ++} ++ ++static inline void linkmode_set_bit(int nr, volatile unsigned long *addr) ++{ ++ __set_bit(nr, addr); ++} ++ ++static inline void linkmode_set_bit_array(const int *array, int array_size, ++ unsigned long *addr) ++{ ++ int i; ++ ++ for (i = 0; i < array_size; i++) ++ linkmode_set_bit(array[i], addr); ++} ++ ++static inline void linkmode_clear_bit(int nr, volatile unsigned long *addr) ++{ ++ __clear_bit(nr, addr); ++} ++ ++static inline void linkmode_mod_bit(int nr, volatile unsigned long *addr, ++ int set) ++{ ++ if (set) ++ linkmode_set_bit(nr, addr); ++ else ++ linkmode_clear_bit(nr, addr); ++} ++ ++static inline void linkmode_change_bit(int nr, volatile unsigned long *addr) ++{ ++ __change_bit(nr, addr); ++} ++ ++static inline int linkmode_test_bit(int nr, volatile unsigned long *addr) ++{ ++ return test_bit(nr, addr); ++} ++ ++static inline int linkmode_equal(const unsigned long *src1, ++ const unsigned long *src2) ++{ ++ return bitmap_equal(src1, src2, __ETHTOOL_LINK_MODE_MASK_NBITS); ++} ++ ++static inline int linkmode_subset(const unsigned long *src1, ++ const unsigned long *src2) ++{ ++ return bitmap_subset(src1, src2, __ETHTOOL_LINK_MODE_MASK_NBITS); ++} ++ ++#endif /* __LINKMODE_H */ --- a/drivers/net/usb/cdc_ether.c +++ b/drivers/net/usb/cdc_ether.c @@ -569,6 +569,8 @@ static const struct driver_info wwan_inf