aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/enic/vnic_dev.h
diff options
context:
space:
mode:
authorVasanthy Kolluri <vkolluri@cisco.com>2011-06-17 03:56:48 -0400
committerDavid S. Miller <davem@davemloft.net>2011-06-30 23:43:38 -0400
commitea7ea65a3b37bf207d5c352ac6254506b3dc3901 (patch)
tree5eed17f071404155e7a76f8f3415bf031a4d656a /drivers/net/enic/vnic_dev.h
parent3fa2a1df909482cc234524906e4bd30dee3514df (diff)
enic: Add support to configure hardware interrupt coalesce timers in a platform independent way
enic driver and the underlying hardware use different units for representing the interrupt coalesce timer. Driver converts the interrupt coalesce timer in usec to hardware cycles while setting the relevant hardware registers. The conversion factor can be different for each of the adapter hardware types. So it is dynamically learnt from the adapter firmware using the devcmd CMD_INTR_COAL_CONVERT. This allows the driver to configure the hardware interrupt coalesce timers in a platform independent way. Signed-off-by: Danny Guo <dannguo@cisco.com> Signed-off-by: Vasanthy Kolluri <vkolluri@cisco.com> Signed-off-by: Roopa Prabhu <roprabhu@cisco.com> Signed-off-by: David Wang <dwang2@cisco.com> Signed-off-by: David S. Miller <davem@conan.davemloft.net>
Diffstat (limited to 'drivers/net/enic/vnic_dev.h')
-rw-r--r--drivers/net/enic/vnic_dev.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/enic/vnic_dev.h b/drivers/net/enic/vnic_dev.h
index cf482a2c9dd9..852b698fbe7d 100644
--- a/drivers/net/enic/vnic_dev.h
+++ b/drivers/net/enic/vnic_dev.h
@@ -109,11 +109,16 @@ int vnic_dev_open(struct vnic_dev *vdev, int arg);
109int vnic_dev_open_done(struct vnic_dev *vdev, int *done); 109int vnic_dev_open_done(struct vnic_dev *vdev, int *done);
110int vnic_dev_init(struct vnic_dev *vdev, int arg); 110int vnic_dev_init(struct vnic_dev *vdev, int arg);
111int vnic_dev_deinit(struct vnic_dev *vdev); 111int vnic_dev_deinit(struct vnic_dev *vdev);
112void vnic_dev_intr_coal_timer_info_default(struct vnic_dev *vdev);
113int vnic_dev_intr_coal_timer_info(struct vnic_dev *vdev);
112int vnic_dev_hang_reset(struct vnic_dev *vdev, int arg); 114int vnic_dev_hang_reset(struct vnic_dev *vdev, int arg);
113int vnic_dev_hang_reset_done(struct vnic_dev *vdev, int *done); 115int vnic_dev_hang_reset_done(struct vnic_dev *vdev, int *done);
114void vnic_dev_set_intr_mode(struct vnic_dev *vdev, 116void vnic_dev_set_intr_mode(struct vnic_dev *vdev,
115 enum vnic_dev_intr_mode intr_mode); 117 enum vnic_dev_intr_mode intr_mode);
116enum vnic_dev_intr_mode vnic_dev_get_intr_mode(struct vnic_dev *vdev); 118enum vnic_dev_intr_mode vnic_dev_get_intr_mode(struct vnic_dev *vdev);
119u32 vnic_dev_intr_coal_timer_usec_to_hw(struct vnic_dev *vdev, u32 usec);
120u32 vnic_dev_intr_coal_timer_hw_to_usec(struct vnic_dev *vdev, u32 hw_cycles);
121u32 vnic_dev_get_intr_coal_timer_max(struct vnic_dev *vdev);
117void vnic_dev_unregister(struct vnic_dev *vdev); 122void vnic_dev_unregister(struct vnic_dev *vdev);
118int vnic_dev_set_ig_vlan_rewrite_mode(struct vnic_dev *vdev, 123int vnic_dev_set_ig_vlan_rewrite_mode(struct vnic_dev *vdev,
119 u8 ig_vlan_rewrite_mode); 124 u8 ig_vlan_rewrite_mode);