diff options
author | Krishna Gudipati <kgudipat@brocade.com> | 2011-06-24 23:23:38 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-06-29 17:59:59 -0400 |
commit | 10a07379247078448c076690657a076076bf89aa (patch) | |
tree | 9d1a18ccf937203a0e9f0bb24ed601391c80b1e8 /drivers/scsi/bfa/bfa_ioc.h | |
parent | a714134a857d3984250ee52fda7850b61bf8a94e (diff) |
[SCSI] bfa: Brocade-1860 Fabric Adapter PLL init fixes.
- If flash controller is halted unconditionally, this results in
illegal write access to flash controller register domain. Since
flash controller registers are only accessible once s_clk is started
- added logic to check for WGN status and halt flash controller only
if it is already running.
- Added check to wait for flash controller halt to be completed before
proceeding with s_clk/l_clk initializations.
- Removed unnecessary reset logic for PMM 1T memory and moved memory
initialization after flash access enable.
- Disable Brocade-1860 asic MBOX interrupt before PLL initialization.
- Remove reset enable for S_CLK/L_CLK after both PLL initializations
are complete.
Signed-off-by: Krishna Gudipati <kgudipat@brocade.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/bfa/bfa_ioc.h')
-rw-r--r-- | drivers/scsi/bfa/bfa_ioc.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/scsi/bfa/bfa_ioc.h b/drivers/scsi/bfa/bfa_ioc.h index 78e9606217ea..1055ca9f6043 100644 --- a/drivers/scsi/bfa/bfa_ioc.h +++ b/drivers/scsi/bfa/bfa_ioc.h | |||
@@ -362,6 +362,7 @@ bfa_status_t bfa_ioc_ct2_pll_init(void __iomem *rb, enum bfi_asic_mode mode); | |||
362 | } while (0) | 362 | } while (0) |
363 | #define bfa_ioc_ownership_reset(__ioc) \ | 363 | #define bfa_ioc_ownership_reset(__ioc) \ |
364 | ((__ioc)->ioc_hwif->ioc_ownership_reset(__ioc)) | 364 | ((__ioc)->ioc_hwif->ioc_ownership_reset(__ioc)) |
365 | #define bfa_ioc_get_fcmode(__ioc) ((__ioc)->fcmode) | ||
365 | #define bfa_ioc_lpu_read_stat(__ioc) do { \ | 366 | #define bfa_ioc_lpu_read_stat(__ioc) do { \ |
366 | if ((__ioc)->ioc_hwif->ioc_lpu_read_stat) \ | 367 | if ((__ioc)->ioc_hwif->ioc_lpu_read_stat) \ |
367 | ((__ioc)->ioc_hwif->ioc_lpu_read_stat(__ioc)); \ | 368 | ((__ioc)->ioc_hwif->ioc_lpu_read_stat(__ioc)); \ |
@@ -414,8 +415,6 @@ bfa_status_t bfa_ioc_debug_fwtrc(struct bfa_ioc_s *ioc, void *trcdata, | |||
414 | int *trclen); | 415 | int *trclen); |
415 | bfa_status_t bfa_ioc_debug_fwcore(struct bfa_ioc_s *ioc, void *buf, | 416 | bfa_status_t bfa_ioc_debug_fwcore(struct bfa_ioc_s *ioc, void *buf, |
416 | u32 *offset, int *buflen); | 417 | u32 *offset, int *buflen); |
417 | void bfa_ioc_set_fcmode(struct bfa_ioc_s *ioc); | ||
418 | bfa_boolean_t bfa_ioc_get_fcmode(struct bfa_ioc_s *ioc); | ||
419 | bfa_boolean_t bfa_ioc_sem_get(void __iomem *sem_reg); | 418 | bfa_boolean_t bfa_ioc_sem_get(void __iomem *sem_reg); |
420 | void bfa_ioc_fwver_get(struct bfa_ioc_s *ioc, | 419 | void bfa_ioc_fwver_get(struct bfa_ioc_s *ioc, |
421 | struct bfi_ioc_image_hdr_s *fwhdr); | 420 | struct bfi_ioc_image_hdr_s *fwhdr); |