aboutsummaryrefslogtreecommitdiff
path: root/pkgs/patches-linux-5.15/775-v5.16-1-net-phy-add-phy_interface_t-bitmap-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/patches-linux-5.15/775-v5.16-1-net-phy-add-phy_interface_t-bitmap-support.patch')
-rw-r--r--pkgs/patches-linux-5.15/775-v5.16-1-net-phy-add-phy_interface_t-bitmap-support.patch66
1 files changed, 66 insertions, 0 deletions
diff --git a/pkgs/patches-linux-5.15/775-v5.16-1-net-phy-add-phy_interface_t-bitmap-support.patch b/pkgs/patches-linux-5.15/775-v5.16-1-net-phy-add-phy_interface_t-bitmap-support.patch
new file mode 100644
index 0000000..69f6a5d
--- /dev/null
+++ b/pkgs/patches-linux-5.15/775-v5.16-1-net-phy-add-phy_interface_t-bitmap-support.patch
@@ -0,0 +1,66 @@
+From 8e20f591f204f8db7f1182918f8e2285d3f589e0 Mon Sep 17 00:00:00 2001
+From: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>
+Date: Tue, 26 Oct 2021 11:06:01 +0100
+Subject: [PATCH 1/3] net: phy: add phy_interface_t bitmap support
+
+Add support for a bitmap for phy interface modes, which includes:
+- a macro to declare the interface bitmap
+- an inline helper to zero the interface bitmap
+- an inline helper to detect an empty interface bitmap
+- inline helpers to do a bitwise AND and OR operations on two interface
+ bitmaps
+
+Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ include/linux/phy.h | 34 ++++++++++++++++++++++++++++++++++
+ 1 file changed, 34 insertions(+)
+
+diff --git a/include/linux/phy.h b/include/linux/phy.h
+index 04e90423fa88..96e43fbb2dd8 100644
+--- a/include/linux/phy.h
++++ b/include/linux/phy.h
+@@ -155,6 +155,40 @@ typedef enum {
+ PHY_INTERFACE_MODE_MAX,
+ } phy_interface_t;
+
++/* PHY interface mode bitmap handling */
++#define DECLARE_PHY_INTERFACE_MASK(name) \
++ DECLARE_BITMAP(name, PHY_INTERFACE_MODE_MAX)
++
++static inline void phy_interface_zero(unsigned long *intf)
++{
++ bitmap_zero(intf, PHY_INTERFACE_MODE_MAX);
++}
++
++static inline bool phy_interface_empty(const unsigned long *intf)
++{
++ return bitmap_empty(intf, PHY_INTERFACE_MODE_MAX);
++}
++
++static inline void phy_interface_and(unsigned long *dst, const unsigned long *a,
++ const unsigned long *b)
++{
++ bitmap_and(dst, a, b, PHY_INTERFACE_MODE_MAX);
++}
++
++static inline void phy_interface_or(unsigned long *dst, const unsigned long *a,
++ const unsigned long *b)
++{
++ bitmap_or(dst, a, b, PHY_INTERFACE_MODE_MAX);
++}
++
++static inline void phy_interface_set_rgmii(unsigned long *intf)
++{
++ __set_bit(PHY_INTERFACE_MODE_RGMII, intf);
++ __set_bit(PHY_INTERFACE_MODE_RGMII_ID, intf);
++ __set_bit(PHY_INTERFACE_MODE_RGMII_RXID, intf);
++ __set_bit(PHY_INTERFACE_MODE_RGMII_TXID, intf);
++}
++
+ /*
+ * phy_supported_speeds - return all speeds currently supported by a PHY device
+ */
+--
+2.35.1
+