tw_cl_init.c (208969) | tw_cl_init.c (212008) |
---|---|
1/* 2 * Copyright (c) 2004-07 Applied Micro Circuits Corporation. 3 * Copyright (c) 2004-05 Vinod Kashyap 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 10 unchanged lines hidden (view full) --- 19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 * | 1/* 2 * Copyright (c) 2004-07 Applied Micro Circuits Corporation. 3 * Copyright (c) 2004-05 Vinod Kashyap 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 10 unchanged lines hidden (view full) --- 19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 * |
27 * $FreeBSD: head/sys/dev/twa/tw_cl_init.c 208969 2010-06-09 21:40:38Z delphij $ | 27 * $FreeBSD: head/sys/dev/twa/tw_cl_init.c 212008 2010-08-30 19:15:04Z delphij $ |
28 */ 29 30/* 31 * AMCC'S 3ware driver for 9000 series storage controllers. 32 * 33 * Author: Vinod Kashyap 34 * Modifications by: Adam Radford 35 * Modifications by: Manjunath Ranganathaiah --- 274 unchanged lines hidden (view full) --- 310 ctlr->max_simult_reqs = max_simult_reqs; 311 ctlr->max_aens_supported = max_aens; 312 313 /* Initialize queues of CL internal request context packets. */ 314 tw_cli_req_q_init(ctlr, TW_CLI_FREE_Q); 315 tw_cli_req_q_init(ctlr, TW_CLI_BUSY_Q); 316 tw_cli_req_q_init(ctlr, TW_CLI_PENDING_Q); 317 tw_cli_req_q_init(ctlr, TW_CLI_COMPLETE_Q); | 28 */ 29 30/* 31 * AMCC'S 3ware driver for 9000 series storage controllers. 32 * 33 * Author: Vinod Kashyap 34 * Modifications by: Adam Radford 35 * Modifications by: Manjunath Ranganathaiah --- 274 unchanged lines hidden (view full) --- 310 ctlr->max_simult_reqs = max_simult_reqs; 311 ctlr->max_aens_supported = max_aens; 312 313 /* Initialize queues of CL internal request context packets. */ 314 tw_cli_req_q_init(ctlr, TW_CLI_FREE_Q); 315 tw_cli_req_q_init(ctlr, TW_CLI_BUSY_Q); 316 tw_cli_req_q_init(ctlr, TW_CLI_PENDING_Q); 317 tw_cli_req_q_init(ctlr, TW_CLI_COMPLETE_Q); |
318 tw_cli_req_q_init(ctlr, TW_CLI_RESET_Q); |
|
318 319 /* Initialize all locks used by CL. */ 320 ctlr->gen_lock = &(ctlr->gen_lock_handle); 321 tw_osl_init_lock(ctlr_handle, "tw_cl_gen_lock", ctlr->gen_lock); 322 ctlr->io_lock = &(ctlr->io_lock_handle); 323 tw_osl_init_lock(ctlr_handle, "tw_cl_io_lock", ctlr->io_lock); 324 325 /* Initialize CL internal request context packets. */ --- 344 unchanged lines hidden (view full) --- 670 init_connect->fw_branch = TW_CL_SWAP16(current_fw_branch); 671 init_connect->fw_build = TW_CL_SWAP16(current_fw_build); 672 } else 673 init_connect->size = 3; 674 675 /* Submit the command, and wait for it to complete. */ 676 error = tw_cli_submit_and_poll_request(req, 677 TW_CLI_REQUEST_TIMEOUT_PERIOD); | 319 320 /* Initialize all locks used by CL. */ 321 ctlr->gen_lock = &(ctlr->gen_lock_handle); 322 tw_osl_init_lock(ctlr_handle, "tw_cl_gen_lock", ctlr->gen_lock); 323 ctlr->io_lock = &(ctlr->io_lock_handle); 324 tw_osl_init_lock(ctlr_handle, "tw_cl_io_lock", ctlr->io_lock); 325 326 /* Initialize CL internal request context packets. */ --- 344 unchanged lines hidden (view full) --- 671 init_connect->fw_branch = TW_CL_SWAP16(current_fw_branch); 672 init_connect->fw_build = TW_CL_SWAP16(current_fw_build); 673 } else 674 init_connect->size = 3; 675 676 /* Submit the command, and wait for it to complete. */ 677 error = tw_cli_submit_and_poll_request(req, 678 TW_CLI_REQUEST_TIMEOUT_PERIOD); |
678 if (error == TW_OSL_ETIMEDOUT) 679 /* Clean-up done by tw_cli_submit_and_poll_request. */ 680 return(error); | |
681 if (error) 682 goto out; 683 if ((error = init_connect->status)) { | 679 if (error) 680 goto out; 681 if ((error = init_connect->status)) { |
682#if 0 |
|
684 tw_cli_create_ctlr_event(ctlr, 685 TW_CL_MESSAGE_SOURCE_CONTROLLER_ERROR, 686 &(req->cmd_pkt->cmd_hdr)); | 683 tw_cli_create_ctlr_event(ctlr, 684 TW_CL_MESSAGE_SOURCE_CONTROLLER_ERROR, 685 &(req->cmd_pkt->cmd_hdr)); |
686#endif // 0 |
|
687 goto out; 688 } 689 if (set_features & TWA_EXTENDED_INIT_CONNECT) { 690 *fw_on_ctlr_srl = TW_CL_SWAP16(init_connect->fw_srl); 691 *fw_on_ctlr_arch_id = TW_CL_SWAP16(init_connect->fw_arch_id); 692 *fw_on_ctlr_branch = TW_CL_SWAP16(init_connect->fw_branch); 693 *fw_on_ctlr_build = TW_CL_SWAP16(init_connect->fw_build); 694 *init_connect_result = TW_CL_SWAP32(init_connect->result); --- 16 unchanged lines hidden --- | 687 goto out; 688 } 689 if (set_features & TWA_EXTENDED_INIT_CONNECT) { 690 *fw_on_ctlr_srl = TW_CL_SWAP16(init_connect->fw_srl); 691 *fw_on_ctlr_arch_id = TW_CL_SWAP16(init_connect->fw_arch_id); 692 *fw_on_ctlr_branch = TW_CL_SWAP16(init_connect->fw_branch); 693 *fw_on_ctlr_build = TW_CL_SWAP16(init_connect->fw_build); 694 *init_connect_result = TW_CL_SWAP32(init_connect->result); --- 16 unchanged lines hidden --- |