diff options
author | Krishna Gudipati <kgudipat@brocade.com> | 2011-07-20 20:00:45 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-07-27 06:44:48 -0400 |
commit | ca6e0ea71cd0f442875b05357dd51774bd84b418 (patch) | |
tree | d57fc05d9bd1141d1c8a340347bdb28ea20b8e45 /drivers/scsi/bfa/bfa.h | |
parent | 9afbcfab74d26051702862b57c0115f71477a3cc (diff) |
[SCSI] bfa: Update RME interrupt handling.
- Made changes to always acknowledge RME interrupt and update
consumer index (CI) when RME interrupt is generated.
- Made changes to have ASIC specific hw_rspq_ack() handler.
Signed-off-by: Krishna Gudipati <kgudipat@brocade.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/bfa/bfa.h')
-rw-r--r-- | drivers/scsi/bfa/bfa.h | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/scsi/bfa/bfa.h b/drivers/scsi/bfa/bfa.h index 3b0af1102bf4..6e3869a41cb9 100644 --- a/drivers/scsi/bfa/bfa.h +++ b/drivers/scsi/bfa/bfa.h | |||
@@ -177,7 +177,7 @@ struct bfa_msix_s { | |||
177 | struct bfa_hwif_s { | 177 | struct bfa_hwif_s { |
178 | void (*hw_reginit)(struct bfa_s *bfa); | 178 | void (*hw_reginit)(struct bfa_s *bfa); |
179 | void (*hw_reqq_ack)(struct bfa_s *bfa, int reqq); | 179 | void (*hw_reqq_ack)(struct bfa_s *bfa, int reqq); |
180 | void (*hw_rspq_ack)(struct bfa_s *bfa, int rspq); | 180 | void (*hw_rspq_ack)(struct bfa_s *bfa, int rspq, u32 ci); |
181 | void (*hw_msix_init)(struct bfa_s *bfa, int nvecs); | 181 | void (*hw_msix_init)(struct bfa_s *bfa, int nvecs); |
182 | void (*hw_msix_ctrl_install)(struct bfa_s *bfa); | 182 | void (*hw_msix_ctrl_install)(struct bfa_s *bfa); |
183 | void (*hw_msix_queue_install)(struct bfa_s *bfa); | 183 | void (*hw_msix_queue_install)(struct bfa_s *bfa); |
@@ -268,10 +268,8 @@ struct bfa_iocfc_s { | |||
268 | ((__bfa)->iocfc.hwif.hw_msix_queue_install(__bfa)) | 268 | ((__bfa)->iocfc.hwif.hw_msix_queue_install(__bfa)) |
269 | #define bfa_msix_uninstall(__bfa) \ | 269 | #define bfa_msix_uninstall(__bfa) \ |
270 | ((__bfa)->iocfc.hwif.hw_msix_uninstall(__bfa)) | 270 | ((__bfa)->iocfc.hwif.hw_msix_uninstall(__bfa)) |
271 | #define bfa_isr_rspq_ack(__bfa, __queue) do { \ | 271 | #define bfa_isr_rspq_ack(__bfa, __queue, __ci) \ |
272 | if ((__bfa)->iocfc.hwif.hw_rspq_ack) \ | 272 | ((__bfa)->iocfc.hwif.hw_rspq_ack(__bfa, __queue, __ci)) |
273 | (__bfa)->iocfc.hwif.hw_rspq_ack(__bfa, __queue); \ | ||
274 | } while (0) | ||
275 | #define bfa_isr_reqq_ack(__bfa, __queue) do { \ | 273 | #define bfa_isr_reqq_ack(__bfa, __queue) do { \ |
276 | if ((__bfa)->iocfc.hwif.hw_reqq_ack) \ | 274 | if ((__bfa)->iocfc.hwif.hw_reqq_ack) \ |
277 | (__bfa)->iocfc.hwif.hw_reqq_ack(__bfa, __queue); \ | 275 | (__bfa)->iocfc.hwif.hw_reqq_ack(__bfa, __queue); \ |
@@ -311,7 +309,7 @@ void bfa_msix_rspq(struct bfa_s *bfa, int vec); | |||
311 | void bfa_msix_lpu_err(struct bfa_s *bfa, int vec); | 309 | void bfa_msix_lpu_err(struct bfa_s *bfa, int vec); |
312 | 310 | ||
313 | void bfa_hwcb_reginit(struct bfa_s *bfa); | 311 | void bfa_hwcb_reginit(struct bfa_s *bfa); |
314 | void bfa_hwcb_rspq_ack(struct bfa_s *bfa, int rspq); | 312 | void bfa_hwcb_rspq_ack(struct bfa_s *bfa, int rspq, u32 ci); |
315 | void bfa_hwcb_msix_init(struct bfa_s *bfa, int nvecs); | 313 | void bfa_hwcb_msix_init(struct bfa_s *bfa, int nvecs); |
316 | void bfa_hwcb_msix_ctrl_install(struct bfa_s *bfa); | 314 | void bfa_hwcb_msix_ctrl_install(struct bfa_s *bfa); |
317 | void bfa_hwcb_msix_queue_install(struct bfa_s *bfa); | 315 | void bfa_hwcb_msix_queue_install(struct bfa_s *bfa); |
@@ -324,7 +322,8 @@ void bfa_hwcb_msix_get_rme_range(struct bfa_s *bfa, u32 *start, | |||
324 | void bfa_hwct_reginit(struct bfa_s *bfa); | 322 | void bfa_hwct_reginit(struct bfa_s *bfa); |
325 | void bfa_hwct2_reginit(struct bfa_s *bfa); | 323 | void bfa_hwct2_reginit(struct bfa_s *bfa); |
326 | void bfa_hwct_reqq_ack(struct bfa_s *bfa, int rspq); | 324 | void bfa_hwct_reqq_ack(struct bfa_s *bfa, int rspq); |
327 | void bfa_hwct_rspq_ack(struct bfa_s *bfa, int rspq); | 325 | void bfa_hwct_rspq_ack(struct bfa_s *bfa, int rspq, u32 ci); |
326 | void bfa_hwct2_rspq_ack(struct bfa_s *bfa, int rspq, u32 ci); | ||
328 | void bfa_hwct_msix_init(struct bfa_s *bfa, int nvecs); | 327 | void bfa_hwct_msix_init(struct bfa_s *bfa, int nvecs); |
329 | void bfa_hwct_msix_ctrl_install(struct bfa_s *bfa); | 328 | void bfa_hwct_msix_ctrl_install(struct bfa_s *bfa); |
330 | void bfa_hwct_msix_queue_install(struct bfa_s *bfa); | 329 | void bfa_hwct_msix_queue_install(struct bfa_s *bfa); |