net/ice/base: move and add some help function and macros
authorQi Zhang <qi.z.zhang@intel.com>
Thu, 29 Aug 2019 02:36:34 +0000 (10:36 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 7 Oct 2019 13:00:53 +0000 (15:00 +0200)
The patch move ice_ilog2 and ice_is_pow2 to ice_type.h, also add help
macro ROUND_UP and IS_ETHER_ADDR_EQUAL.

Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
drivers/net/ice/base/ice_flow.c
drivers/net/ice/base/ice_switch.c
drivers/net/ice/base/ice_type.h

index 9e93a10..477cf5d 100644 (file)
@@ -360,15 +360,6 @@ struct ice_flow_prof_params {
        ice_declare_bitmap(ptypes, ICE_FLOW_PTYPE_MAX);
 };
 
-/**
- * ice_is_pow2 - check if integer value is a power of 2
- * @val: unsigned integer to be validated
- */
-static bool ice_is_pow2(u64 val)
-{
-       return (val && !(val & (val - 1)));
-}
-
 #define ICE_FLOW_SEG_HDRS_L2_MASK      \
        (ICE_FLOW_SEG_HDR_ETH | ICE_FLOW_SEG_HDR_VLAN)
 #define ICE_FLOW_SEG_HDRS_L3_MASK      \
index b4f50e0..ef3a919 100644 (file)
@@ -1848,21 +1848,6 @@ static void ice_fill_sw_info(struct ice_hw *hw, struct ice_fltr_info *fi)
        }
 }
 
-/**
- * ice_ilog2 - Calculates integer log base 2 of a number
- * @n: number on which to perform operation
- */
-static int ice_ilog2(u64 n)
-{
-       int i;
-
-       for (i = 63; i >= 0; i--)
-               if (((u64)1 << i) & n)
-                       return i;
-
-       return -1;
-}
-
 /**
  * ice_fill_sw_rule - Helper function to fill switch rule structure
  * @hw: pointer to the hardware structure
index 541e298..403fb76 100644 (file)
 #define ICE_BYTES_PER_DWORD    4
 #define ICE_MAX_TRAFFIC_CLASS  8
 
+/**
+ * ROUND_UP - round up to next arbitrary multiple (not a power of 2)
+ * @a: value to round up
+ * @b: arbitrary multiple
+ *
+ * Round up to the next multiple of the arbitrary b.
+ * Note, when b is a power of 2 use ICE_ALIGN() instead.
+ */
+#define ROUND_UP(a, b) ((b) * DIVIDE_AND_ROUND_UP((a), (b)))
+
 #define MIN_T(_t, _a, _b)      min((_t)(_a), (_t)(_b))
 
 #define IS_ASCII(_ch)  ((_ch) < 0x80)
 #include "ice_flex_type.h"
 #include "ice_protocol_type.h"
 
+/**
+ * ice_is_pow2 - check if integer value is a power of 2
+ * @val: unsigned integer to be validated
+ */
+static inline bool ice_is_pow2(u64 val)
+{
+       return (val && !(val & (val - 1)));
+}
+
+/**
+ * ice_ilog2 - Calculates integer log base 2 of a number
+ * @n: number on which to perform operation
+ */
+static inline int ice_ilog2(u64 n)
+{
+       int i;
+
+       for (i = 63; i >= 0; i--)
+               if (((u64)1 << i) & n)
+                       return i;
+
+       return -1;
+}
+
 static inline bool ice_is_tc_ena(ice_bitmap_t bitmap, u8 tc)
 {
        return ice_is_bit_set(&bitmap, tc);
@@ -104,6 +138,11 @@ static inline u32 ice_round_to_num(u32 N, u32 R)
 
 
 
+#define IS_ETHER_ADDR_EQUAL(addr1, addr2) \
+       (((bool)((((u16 *)(addr1))[0] == ((u16 *)(addr2))[0]))) && \
+        ((bool)((((u16 *)(addr1))[1] == ((u16 *)(addr2))[1]))) && \
+        ((bool)((((u16 *)(addr1))[2] == ((u16 *)(addr2))[2]))))
+
 enum ice_aq_res_ids {
        ICE_NVM_RES_ID = 1,
        ICE_SPD_RES_ID,