diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0603-net-phy-Move-linkmode-helpers-to-somewhere-public.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/0603-net-phy-Move-linkmode-helpers-to-somewhere-public.patch | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0603-net-phy-Move-linkmode-helpers-to-somewhere-public.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0603-net-phy-Move-linkmode-helpers-to-somewhere-public.patch new file mode 100644 index 00000000..d32412fd --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0603-net-phy-Move-linkmode-helpers-to-somewhere-public.patch @@ -0,0 +1,159 @@ +From 16e7f02d47e945d13a2d7a98d8b333ec936938ce Mon Sep 17 00:00:00 2001 +From: Andrew Lunn <andrew@lunn.ch> +Date: Sat, 29 Sep 2018 23:04:09 +0200 +Subject: [PATCH 0603/2940] net: phy: Move linkmode helpers to somewhere public + +phylink has some useful helpers to working with linkmode bitmaps. +Move them to there own header so other code can use them. + +Signed-off-by: Andrew Lunn <andrew@lunn.ch> +Acked-by: Florian Fainelli <f.fainelli@gmail.com> +Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com> +Signed-off-by: David S. Miller <davem@davemloft.net> +Signed-off-by: Sudheesh Mavila <sudheesh.mavila@amd.com> +--- + drivers/net/phy/phylink.c | 27 ---------------- + include/linux/linkmode.h | 67 +++++++++++++++++++++++++++++++++++++++ + include/linux/mii.h | 1 + + include/linux/phy.h | 1 + + 4 files changed, 69 insertions(+), 27 deletions(-) + create mode 100644 include/linux/linkmode.h + +diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c +index 70f3f90c2ed6..9b8dd0d0ee42 100644 +--- a/drivers/net/phy/phylink.c ++++ b/drivers/net/phy/phylink.c +@@ -68,33 +68,6 @@ struct phylink { + struct sfp_bus *sfp_bus; + }; + +-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); +-} +- + /** + * phylink_set_port_modes() - set the port type modes in the ethtool mask + * @mask: ethtool link mode mask +diff --git a/include/linux/linkmode.h b/include/linux/linkmode.h +new file mode 100644 +index 000000000000..014fb86c7114 +--- /dev/null ++++ b/include/linux/linkmode.h +@@ -0,0 +1,67 @@ ++#ifndef __LINKMODE_H ++#define __LINKMODE_H ++ ++#include <linux/bitmap.h> ++#include <linux/ethtool.h> ++#include <uapi/linux/ethtool.h> ++ ++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_clear_bit(int nr, volatile unsigned long *addr) ++{ ++ __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); ++} ++ ++#endif /* __LINKMODE_H */ +diff --git a/include/linux/mii.h b/include/linux/mii.h +index 63cd58798e0f..f49737c02504 100755 +--- a/include/linux/mii.h ++++ b/include/linux/mii.h +@@ -10,6 +10,7 @@ + + + #include <linux/if.h> ++#include <linux/linkmode.h> + #include <uapi/linux/mii.h> + + struct ethtool_cmd; +diff --git a/include/linux/phy.h b/include/linux/phy.h +index cd6f637cbbfb..81532a61e995 100644 +--- a/include/linux/phy.h ++++ b/include/linux/phy.h +@@ -19,6 +19,7 @@ + #include <linux/compiler.h> + #include <linux/spinlock.h> + #include <linux/ethtool.h> ++#include <linux/linkmode.h> + #include <linux/mdio.h> + #include <linux/mii.h> + #include <linux/module.h> +-- +2.17.1 + |