aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_os.c
diff options
context:
space:
mode:
authorandrew.vasquez@qlogic.com <andrew.vasquez@qlogic.com>2006-01-31 19:05:07 -0500
committer <jejb@mulgrave.il.steeleye.com>2006-02-04 17:11:57 -0500
commitf6df144cca19cc60dda6dcce65d236b70cc46494 (patch)
tree2cd4ae47df5808e46e0387c44ff436879b0e0111 /drivers/scsi/qla2xxx/qla_os.c
parent392e2f651c8a83484116a407a9f121e534c22b5a (diff)
[SCSI] qla2xxx: Add beacon support via class-device attribute.
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_os.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 6e133edb2016..57179dabcccf 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -1365,6 +1365,9 @@ int qla2x00_probe_one(struct pci_dev *pdev, struct qla_board_info *brd_info)
1365 ha->isp_ops.intr_handler = qla2300_intr_handler; 1365 ha->isp_ops.intr_handler = qla2300_intr_handler;
1366 ha->isp_ops.fw_dump = qla2300_fw_dump; 1366 ha->isp_ops.fw_dump = qla2300_fw_dump;
1367 ha->isp_ops.ascii_fw_dump = qla2300_ascii_fw_dump; 1367 ha->isp_ops.ascii_fw_dump = qla2300_ascii_fw_dump;
1368 ha->isp_ops.beacon_on = qla2x00_beacon_on;
1369 ha->isp_ops.beacon_off = qla2x00_beacon_off;
1370 ha->isp_ops.beacon_blink = qla2x00_beacon_blink;
1368 ha->gid_list_info_size = 6; 1371 ha->gid_list_info_size = 6;
1369 } else if (IS_QLA24XX(ha) || IS_QLA25XX(ha)) { 1372 } else if (IS_QLA24XX(ha) || IS_QLA25XX(ha)) {
1370 host->max_id = MAX_TARGETS_2200; 1373 host->max_id = MAX_TARGETS_2200;
@@ -1401,6 +1404,9 @@ int qla2x00_probe_one(struct pci_dev *pdev, struct qla_board_info *brd_info)
1401 ha->isp_ops.write_nvram = qla24xx_write_nvram_data; 1404 ha->isp_ops.write_nvram = qla24xx_write_nvram_data;
1402 ha->isp_ops.fw_dump = qla24xx_fw_dump; 1405 ha->isp_ops.fw_dump = qla24xx_fw_dump;
1403 ha->isp_ops.ascii_fw_dump = qla24xx_ascii_fw_dump; 1406 ha->isp_ops.ascii_fw_dump = qla24xx_ascii_fw_dump;
1407 ha->isp_ops.beacon_on = qla24xx_beacon_on;
1408 ha->isp_ops.beacon_off = qla24xx_beacon_off;
1409 ha->isp_ops.beacon_blink = qla24xx_beacon_blink;
1404 ha->gid_list_info_size = 8; 1410 ha->gid_list_info_size = 8;
1405 } 1411 }
1406 host->can_queue = ha->request_q_length + 128; 1412 host->can_queue = ha->request_q_length + 128;
@@ -2315,6 +2321,9 @@ qla2x00_do_dpc(void *data)
2315 if (!ha->interrupts_on) 2321 if (!ha->interrupts_on)
2316 ha->isp_ops.enable_intrs(ha); 2322 ha->isp_ops.enable_intrs(ha);
2317 2323
2324 if (test_and_clear_bit(BEACON_BLINK_NEEDED, &ha->dpc_flags))
2325 ha->isp_ops.beacon_blink(ha);
2326
2318 ha->dpc_active = 0; 2327 ha->dpc_active = 0;
2319 } /* End of while(1) */ 2328 } /* End of while(1) */
2320 2329
@@ -2492,6 +2501,12 @@ qla2x00_timer(scsi_qla_host_t *ha)
2492 atomic_read(&ha->loop_down_timer))); 2501 atomic_read(&ha->loop_down_timer)));
2493 } 2502 }
2494 2503
2504 /* Check if beacon LED needs to be blinked */
2505 if (ha->beacon_blink_led == 1) {
2506 set_bit(BEACON_BLINK_NEEDED, &ha->dpc_flags);
2507 start_dpc++;
2508 }
2509
2495 /* Schedule the DPC routine if needed */ 2510 /* Schedule the DPC routine if needed */
2496 if ((test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) || 2511 if ((test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) ||
2497 test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags) || 2512 test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags) ||
@@ -2500,6 +2515,7 @@ qla2x00_timer(scsi_qla_host_t *ha)
2500 start_dpc || 2515 start_dpc ||
2501 test_bit(LOGIN_RETRY_NEEDED, &ha->dpc_flags) || 2516 test_bit(LOGIN_RETRY_NEEDED, &ha->dpc_flags) ||
2502 test_bit(RESET_MARKER_NEEDED, &ha->dpc_flags) || 2517 test_bit(RESET_MARKER_NEEDED, &ha->dpc_flags) ||
2518 test_bit(BEACON_BLINK_NEEDED, &ha->dpc_flags) ||
2503 test_bit(RELOGIN_NEEDED, &ha->dpc_flags)) && 2519 test_bit(RELOGIN_NEEDED, &ha->dpc_flags)) &&
2504 ha->dpc_wait && !ha->dpc_active) { 2520 ha->dpc_wait && !ha->dpc_active) {
2505 2521