diff options
author | Andrew Vasquez <andrew.vasquez@qlogic.com> | 2005-08-26 22:08:10 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.(none)> | 2005-09-04 20:53:04 -0400 |
commit | ad3e0edaceb9771be7ffbd7aa24fb444a7ed85bf (patch) | |
tree | 0815f12f6e026ea220c03605f1b7e122b265c143 /drivers/scsi/qla2xxx/qla_mbx.c | |
parent | 7524f9b9e72cd36f0a70defcd424eba81c180f42 (diff) |
[SCSI] qla2xxx: Export class-of-service (COS) information.
Export COS information for the fc_host and fc_remote_port
objects added by the driver.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_mbx.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_mbx.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 409ea0ac4032..774309a77c05 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include "qla_def.h" | 19 | #include "qla_def.h" |
20 | 20 | ||
21 | #include <linux/delay.h> | 21 | #include <linux/delay.h> |
22 | #include <scsi/scsi_transport_fc.h> | ||
22 | 23 | ||
23 | static void | 24 | static void |
24 | qla2x00_mbx_sem_timeout(unsigned long data) | 25 | qla2x00_mbx_sem_timeout(unsigned long data) |
@@ -1326,6 +1327,10 @@ qla2x00_get_port_database(scsi_qla_host_t *ha, fc_port_t *fcport, uint8_t opt) | |||
1326 | fcport->port_type = FCT_INITIATOR; | 1327 | fcport->port_type = FCT_INITIATOR; |
1327 | else | 1328 | else |
1328 | fcport->port_type = FCT_TARGET; | 1329 | fcport->port_type = FCT_TARGET; |
1330 | |||
1331 | /* Passback COS information. */ | ||
1332 | fcport->supported_classes = (pd->options & BIT_4) ? | ||
1333 | FC_COS_CLASS2: FC_COS_CLASS3; | ||
1329 | } | 1334 | } |
1330 | 1335 | ||
1331 | gpd_error_out: | 1336 | gpd_error_out: |
@@ -1661,6 +1666,13 @@ qla24xx_login_fabric(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain, | |||
1661 | mb[1] |= BIT_1; | 1666 | mb[1] |= BIT_1; |
1662 | } else | 1667 | } else |
1663 | mb[1] = BIT_0; | 1668 | mb[1] = BIT_0; |
1669 | |||
1670 | /* Passback COS information. */ | ||
1671 | mb[10] = 0; | ||
1672 | if (lg->io_parameter[7] || lg->io_parameter[8]) | ||
1673 | mb[10] |= BIT_0; /* Class 2. */ | ||
1674 | if (lg->io_parameter[9] || lg->io_parameter[10]) | ||
1675 | mb[10] |= BIT_1; /* Class 3. */ | ||
1664 | } | 1676 | } |
1665 | 1677 | ||
1666 | dma_pool_free(ha->s_dma_pool, lg, lg_dma); | 1678 | dma_pool_free(ha->s_dma_pool, lg, lg_dma); |
@@ -1723,6 +1735,8 @@ qla2x00_login_fabric(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain, | |||
1723 | mb[2] = mcp->mb[2]; | 1735 | mb[2] = mcp->mb[2]; |
1724 | mb[6] = mcp->mb[6]; | 1736 | mb[6] = mcp->mb[6]; |
1725 | mb[7] = mcp->mb[7]; | 1737 | mb[7] = mcp->mb[7]; |
1738 | /* COS retrieved from Get-Port-Database mailbox command. */ | ||
1739 | mb[10] = 0; | ||
1726 | } | 1740 | } |
1727 | 1741 | ||
1728 | if (rval != QLA_SUCCESS) { | 1742 | if (rval != QLA_SUCCESS) { |