diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_mbox.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_mbox.c | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/drivers/scsi/lpfc/lpfc_mbox.c b/drivers/scsi/lpfc/lpfc_mbox.c index e3bc8d3f7302..c585e2b2e589 100644 --- a/drivers/scsi/lpfc/lpfc_mbox.c +++ b/drivers/scsi/lpfc/lpfc_mbox.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************* | 1 | /******************************************************************* |
2 | * This file is part of the Emulex Linux Device Driver for * | 2 | * This file is part of the Emulex Linux Device Driver for * |
3 | * Fibre Channel Host Bus Adapters. * | 3 | * Fibre Channel Host Bus Adapters. * |
4 | * Copyright (C) 2004-2005 Emulex. All rights reserved. * | 4 | * Copyright (C) 2004-2006 Emulex. All rights reserved. * |
5 | * EMULEX and SLI are trademarks of Emulex. * | 5 | * EMULEX and SLI are trademarks of Emulex. * |
6 | * www.emulex.com * | 6 | * www.emulex.com * |
7 | * Portions Copyright (C) 2004-2005 Christoph Hellwig * | 7 | * Portions Copyright (C) 2004-2005 Christoph Hellwig * |
@@ -195,6 +195,9 @@ lpfc_init_link(struct lpfc_hba * phba, | |||
195 | mb->un.varInitLnk.link_flags = FLAGS_TOPOLOGY_MODE_PT_PT; | 195 | mb->un.varInitLnk.link_flags = FLAGS_TOPOLOGY_MODE_PT_PT; |
196 | mb->un.varInitLnk.link_flags |= FLAGS_TOPOLOGY_FAILOVER; | 196 | mb->un.varInitLnk.link_flags |= FLAGS_TOPOLOGY_FAILOVER; |
197 | break; | 197 | break; |
198 | case FLAGS_LOCAL_LB: | ||
199 | mb->un.varInitLnk.link_flags = FLAGS_LOCAL_LB; | ||
200 | break; | ||
198 | } | 201 | } |
199 | 202 | ||
200 | /* NEW_FEATURE | 203 | /* NEW_FEATURE |
@@ -336,6 +339,23 @@ lpfc_read_config(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) | |||
336 | return; | 339 | return; |
337 | } | 340 | } |
338 | 341 | ||
342 | /*************************************************/ | ||
343 | /* lpfc_read_lnk_stat Issue a READ LINK STATUS */ | ||
344 | /* mailbox command */ | ||
345 | /*************************************************/ | ||
346 | void | ||
347 | lpfc_read_lnk_stat(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) | ||
348 | { | ||
349 | MAILBOX_t *mb; | ||
350 | |||
351 | mb = &pmb->mb; | ||
352 | memset(pmb, 0, sizeof (LPFC_MBOXQ_t)); | ||
353 | |||
354 | mb->mbxCommand = MBX_READ_LNK_STAT; | ||
355 | mb->mbxOwner = OWN_HOST; | ||
356 | return; | ||
357 | } | ||
358 | |||
339 | /********************************************/ | 359 | /********************************************/ |
340 | /* lpfc_reg_login Issue a REG_LOGIN */ | 360 | /* lpfc_reg_login Issue a REG_LOGIN */ |
341 | /* mailbox command */ | 361 | /* mailbox command */ |
@@ -620,6 +640,17 @@ lpfc_config_port(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) | |||
620 | } | 640 | } |
621 | 641 | ||
622 | void | 642 | void |
643 | lpfc_kill_board(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) | ||
644 | { | ||
645 | MAILBOX_t *mb = &pmb->mb; | ||
646 | |||
647 | memset(pmb, 0, sizeof(LPFC_MBOXQ_t)); | ||
648 | mb->mbxCommand = MBX_KILL_BOARD; | ||
649 | mb->mbxOwner = OWN_HOST; | ||
650 | return; | ||
651 | } | ||
652 | |||
653 | void | ||
623 | lpfc_mbox_put(struct lpfc_hba * phba, LPFC_MBOXQ_t * mbq) | 654 | lpfc_mbox_put(struct lpfc_hba * phba, LPFC_MBOXQ_t * mbq) |
624 | { | 655 | { |
625 | struct lpfc_sli *psli; | 656 | struct lpfc_sli *psli; |