diff options
author | Ryan Stone <rstone@FreeBSD.org> | 2014-09-29 17:51:39 +0000 |
---|---|---|
committer | Ryan Stone <rstone@FreeBSD.org> | 2014-09-29 17:51:39 +0000 |
commit | cf3c0c32d21adb95971a1cc1b5e2ca5ef4ff268f (patch) | |
tree | 72f673fb8dc1647376f865091834dbbf50bc97b0 /sys/dev/ixl/i40e_osdep.h | |
parent | 9daa89f3bbfcf37a09e68590a736ae15328586dc (diff) | |
download | src-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-x | sys/dev/ixl/i40e_osdep.h | 13 |
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_ */ |