};
 
 static inline unsigned int
-__mlxsw_item_offset(struct mlxsw_item *item, unsigned short index,
+__mlxsw_item_offset(const struct mlxsw_item *item, unsigned short index,
                    size_t typesize)
 {
        BUG_ON(index && !item->step);
                typesize);
 }
 
-static inline u16 __mlxsw_item_get16(char *buf, struct mlxsw_item *item,
+static inline u16 __mlxsw_item_get16(char *buf, const struct mlxsw_item *item,
                                     unsigned short index)
 {
        unsigned int offset = __mlxsw_item_offset(item, index, sizeof(u16));
        return tmp;
 }
 
-static inline void __mlxsw_item_set16(char *buf, struct mlxsw_item *item,
+static inline void __mlxsw_item_set16(char *buf, const struct mlxsw_item *item,
                                      unsigned short index, u16 val)
 {
        unsigned int offset = __mlxsw_item_offset(item, index,
        b[offset] = cpu_to_be16(tmp);
 }
 
-static inline u32 __mlxsw_item_get32(char *buf, struct mlxsw_item *item,
+static inline u32 __mlxsw_item_get32(char *buf, const struct mlxsw_item *item,
                                     unsigned short index)
 {
        unsigned int offset = __mlxsw_item_offset(item, index, sizeof(u32));
        return tmp;
 }
 
-static inline void __mlxsw_item_set32(char *buf, struct mlxsw_item *item,
+static inline void __mlxsw_item_set32(char *buf, const struct mlxsw_item *item,
                                      unsigned short index, u32 val)
 {
        unsigned int offset = __mlxsw_item_offset(item, index,
        b[offset] = cpu_to_be32(tmp);
 }
 
-static inline u64 __mlxsw_item_get64(char *buf, struct mlxsw_item *item,
+static inline u64 __mlxsw_item_get64(char *buf, const struct mlxsw_item *item,
                                     unsigned short index)
 {
        unsigned int offset = __mlxsw_item_offset(item, index, sizeof(u64));
        return tmp;
 }
 
-static inline void __mlxsw_item_set64(char *buf, struct mlxsw_item *item,
+static inline void __mlxsw_item_set64(char *buf, const struct mlxsw_item *item,
                                      unsigned short index, u64 val)
 {
        unsigned int offset = __mlxsw_item_offset(item, index, sizeof(u64));
 }
 
 static inline void __mlxsw_item_memcpy_from(char *buf, char *dst,
-                                           struct mlxsw_item *item,
+                                           const struct mlxsw_item *item,
                                            unsigned short index)
 {
        unsigned int offset = __mlxsw_item_offset(item, index, sizeof(char));
 }
 
 static inline void __mlxsw_item_memcpy_to(char *buf, const char *src,
-                                         struct mlxsw_item *item,
+                                         const struct mlxsw_item *item,
                                          unsigned short index)
 {
        unsigned int offset = __mlxsw_item_offset(item, index, sizeof(char));
 }
 
 static inline u16
-__mlxsw_item_bit_array_offset(struct mlxsw_item *item, u16 index, u8 *shift)
+__mlxsw_item_bit_array_offset(const struct mlxsw_item *item,
+                             u16 index, u8 *shift)
 {
        u16 max_index, be_index;
        u16 offset;             /* byte offset inside the array */
        return item->offset + offset;
 }
 
-static inline u8 __mlxsw_item_bit_array_get(char *buf, struct mlxsw_item *item,
+static inline u8 __mlxsw_item_bit_array_get(char *buf,
+                                           const struct mlxsw_item *item,
                                            u16 index)
 {
        u8 shift, tmp;
        return tmp;
 }
 
-static inline void __mlxsw_item_bit_array_set(char *buf, struct mlxsw_item *item,
+static inline void __mlxsw_item_bit_array_set(char *buf,
+                                             const struct mlxsw_item *item,
                                              u16 index, u8 val)
 {
        u8 shift, tmp;