aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/0603-net-phy-Move-linkmode-helpers-to-somewhere-public.patch
diff options
context:
space:
mode:
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.patch159
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
+