aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ixl/i40e_osdep.h
diff options
context:
space:
mode:
authorRyan Stone <rstone@FreeBSD.org>2014-09-29 17:51:39 +0000
committerRyan Stone <rstone@FreeBSD.org>2014-09-29 17:51:39 +0000
commitcf3c0c32d21adb95971a1cc1b5e2ca5ef4ff268f (patch)
tree72f673fb8dc1647376f865091834dbbf50bc97b0 /sys/dev/ixl/i40e_osdep.h
parent9daa89f3bbfcf37a09e68590a736ae15328586dc (diff)
downloadsrc-cf3c0c32d21adb95971a1cc1b5e2ca5ef4ff268f.tar.gz
src-cf3c0c32d21adb95971a1cc1b5e2ca5ef4ff268f.zip
Ensure that ixl_flush() uses a defined register on VFs
In some code that is shared between the ixl(4) and ixlv(4) drivers, a macro hard-coded a register offset that was not valid on ixlv devices. Fix this by having each driver define a variable that contains the correct offset. Reviewed by: Eric Joyner <ricera10 AT gmail.com> MFC after: 3 days Sponsored by: Sandvine Inc
Notes
Notes: svn path=/head/; revision=272285
Diffstat (limited to 'sys/dev/ixl/i40e_osdep.h')
-rwxr-xr-xsys/dev/ixl/i40e_osdep.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/sys/dev/ixl/i40e_osdep.h b/sys/dev/ixl/i40e_osdep.h
index 97908bacaf94..895bf83cd686 100755
--- a/sys/dev/ixl/i40e_osdep.h
+++ b/sys/dev/ixl/i40e_osdep.h
@@ -152,6 +152,7 @@ struct i40e_osdep
bus_space_tag_t mem_bus_space_tag;
bus_space_handle_t mem_bus_space_handle;
bus_size_t mem_bus_space_size;
+ uint32_t flush_reg;
struct device *dev;
};
@@ -208,6 +209,13 @@ wr32_osdep(struct i40e_osdep *osdep, uint32_t reg, uint32_t value)
osdep->mem_bus_space_handle, reg, value);
}
+static __inline void
+ixl_flush_osdep(struct i40e_osdep *osdep)
+{
+
+ rd32_osdep(osdep, osdep->flush_reg);
+}
+
#define rd32(a, reg) rd32_osdep((a)->back, (reg))
#define wr32(a, reg, value) wr32_osdep((a)->back, (reg), (value))
@@ -221,9 +229,6 @@ wr32_osdep(struct i40e_osdep *osdep, uint32_t reg, uint32_t value)
((struct i40e_osdep *)(a)->back)->mem_bus_space_handle, \
reg, value))
-#define ixl_flush(a) (\
- bus_space_read_4( ((struct i40e_osdep *)(a)->back)->mem_bus_space_tag, \
- ((struct i40e_osdep *)(a)->back)->mem_bus_space_handle, \
- I40E_GLGEN_STAT))
+#define ixl_flush(a) ixl_flush_osdep((a)->back)
#endif /* _I40E_OSDEP_H_ */