Lines Matching +full:break +full:- +full:control
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
9 * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
22 * Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
28 * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
83 // Maximum arbitration wait time in micro-seconds
115 this_phy->transport_layer_registers = transport_layer_registers; in scic_sds_phy_transport_layer_initialization()
156 this_phy->link_layer_registers = link_layer_registers; in scic_sds_phy_link_layer_initialization()
172 SCU_SAS_TIDNL_WRITE(this_phy, this_phy->phy_index); in scic_sds_phy_link_layer_initialization()
177 this_phy->owning_port->owning_controller->oem_parameters.sds1.phys[ in scic_sds_phy_link_layer_initialization()
178 this_phy->phy_index].sas_address.sci_format.high in scic_sds_phy_link_layer_initialization()
182 this_phy->owning_port->owning_controller->oem_parameters.sds1.phys[ in scic_sds_phy_link_layer_initialization()
183 this_phy->phy_index].sas_address.sci_format.low in scic_sds_phy_link_layer_initialization()
188 SCU_SAS_TIPID_WRITE(this_phy, SCU_SAS_TIPID_GEN_VALUE(ID, this_phy->phy_index)); in scic_sds_phy_link_layer_initialization()
212 header_version = this_phy->owning_port->owning_controller-> in scic_sds_phy_link_layer_initialization()
216 … this_phy->owning_port->owning_controller->oem_parameters.sds1.controller.ssc_sata_tx_spread_level; in scic_sds_phy_link_layer_initialization()
218 … this_phy->owning_port->owning_controller->oem_parameters.sds1.controller.ssc_sas_tx_spread_level; in scic_sds_phy_link_layer_initialization()
220 this_phy->owning_port->owning_controller->oem_parameters.sds1.controller.ssc_sas_tx_type; in scic_sds_phy_link_layer_initialization()
232 sata_spread = 0x2; // +0 to -1419 PPM in scic_sds_phy_link_layer_initialization()
233 sas_spread = 0x2; // +0 to -1419 PPM in scic_sds_phy_link_layer_initialization()
254 this_phy->owning_port->owning_controller, in scic_sds_phy_link_layer_initialization()
255 scu_afe_xcvr[this_phy->phy_index]. in scic_sds_phy_link_layer_initialization()
259 this_phy->owning_port->owning_controller, in scic_sds_phy_link_layer_initialization()
260 scu_afe_xcvr[this_phy->phy_index].afe_xcvr_control0, in scic_sds_phy_link_layer_initialization()
264 this_phy->owning_port->owning_controller, in scic_sds_phy_link_layer_initialization()
265 scu_afe_xcvr[this_phy->phy_index]. in scic_sds_phy_link_layer_initialization()
269 this_phy->owning_port->owning_controller, in scic_sds_phy_link_layer_initialization()
270 scu_afe_xcvr[this_phy->phy_index].afe_tx_ssc_control, in scic_sds_phy_link_layer_initialization()
280 this_phy->owning_port->owning_controller, in scic_sds_phy_link_layer_initialization()
281 scu_afe_xcvr[this_phy->phy_index]. in scic_sds_phy_link_layer_initialization()
285 this_phy->owning_port->owning_controller, in scic_sds_phy_link_layer_initialization()
286 scu_afe_xcvr[this_phy->phy_index].afe_tx_ssc_control, in scic_sds_phy_link_layer_initialization()
322 this_phy->owning_port->owning_controller->user_parameters.sds1. in scic_sds_phy_link_layer_initialization()
323 phys[this_phy->phy_index].notify_enable_spin_up_insertion_frequency in scic_sds_phy_link_layer_initialization()
330 this_phy->owning_port->owning_controller->user_parameters.sds1. in scic_sds_phy_link_layer_initialization()
331 phys[this_phy->phy_index].in_connection_align_insertion_frequency in scic_sds_phy_link_layer_initialization()
336 this_phy->owning_port->owning_controller->user_parameters.sds1. in scic_sds_phy_link_layer_initialization()
337 phys[this_phy->phy_index].align_insertion_frequency in scic_sds_phy_link_layer_initialization()
348 (this_phy->owning_port->owning_controller->pci_revision == SCIC_SDS_PCI_REVISION_C0) in scic_sds_phy_link_layer_initialization()
349 || (this_phy->owning_port->owning_controller->pci_revision == SCIC_SDS_PCI_REVISION_C1) in scic_sds_phy_link_layer_initialization()
366 (U8) this_phy->owning_port->owning_controller-> in scic_sds_phy_link_layer_initialization()
378 if (this_phy->owning_port->owning_controller->user_parameters.sds1. in scic_sds_phy_link_layer_initialization()
379 phys[this_phy->phy_index].max_speed_generation == SCIC_SDS_PARM_GEN3_SPEED) in scic_sds_phy_link_layer_initialization()
385 else if (this_phy->owning_port->owning_controller->user_parameters.sds1. in scic_sds_phy_link_layer_initialization()
386 phys[this_phy->phy_index].max_speed_generation == SCIC_SDS_PARM_GEN2_SPEED) in scic_sds_phy_link_layer_initialization()
425 // Program the max ARB time for the PHY to 700us so we inter-operate with in scic_sds_phy_link_layer_initialization()
428 // generate the break. in scic_sds_phy_link_layer_initialization()
523 &this_phy->parent.state_machine_logger, in scic_sds_phy_initialize_state_logging()
524 &this_phy->parent.state_machine, in scic_sds_phy_initialize_state_logging()
525 &this_phy->parent.parent, in scic_sds_phy_initialize_state_logging()
532 &this_phy->starting_substate_machine_logger, in scic_sds_phy_initialize_state_logging()
533 &this_phy->starting_substate_machine, in scic_sds_phy_initialize_state_logging()
534 &this_phy->parent.parent, in scic_sds_phy_initialize_state_logging()
562 this_phy = (SCIC_SDS_PHY_T *)the_state_machine->state_machine_owner; in scic_sds_phy_observe_state_change()
564 if (the_state_machine == &this_phy->parent.state_machine) in scic_sds_phy_observe_state_change()
568 else if (the_state_machine == &this_phy->starting_substate_machine) in scic_sds_phy_observe_state_change()
578 sci_base_state_machine_get_state(&this_phy->parent.state_machine); in scic_sds_phy_observe_state_change()
580 sci_base_state_machine_get_state(&this_phy->starting_substate_machine); in scic_sds_phy_observe_state_change()
582 this_phy->state_record.state_transition_table[ in scic_sds_phy_observe_state_change()
583 this_phy->state_record.index++] = ( (transition_requestor << 24) in scic_sds_phy_observe_state_change()
587 this_phy->state_record.index = in scic_sds_phy_observe_state_change()
588 this_phy->state_record.index & (MAX_STATE_TRANSITION_RECORD - 1); in scic_sds_phy_observe_state_change()
607 this_phy->state_record.index = 0; in scic_sds_phy_initialize_state_recording()
610 &this_phy->state_record.base_state_observer, in scic_sds_phy_initialize_state_recording()
612 &this_phy->parent.state_machine.parent in scic_sds_phy_initialize_state_recording()
616 &this_phy->state_record.starting_state_observer, in scic_sds_phy_initialize_state_recording()
618 &this_phy->starting_substate_machine.parent in scic_sds_phy_initialize_state_recording()
641 &this_phy->parent, in scic_sds_phy_construct()
647 this_phy->owning_port = owning_port; in scic_sds_phy_construct()
648 this_phy->phy_index = phy_index; in scic_sds_phy_construct()
649 this_phy->bcn_received_while_port_unassigned = FALSE; in scic_sds_phy_construct()
650 this_phy->protocol = SCIC_SDS_PHY_PROTOCOL_UNKNOWN; in scic_sds_phy_construct()
651 this_phy->link_layer_registers = NULL; in scic_sds_phy_construct()
652 this_phy->max_negotiated_speed = SCI_SAS_NO_LINK_RATE; in scic_sds_phy_construct()
653 this_phy->sata_timeout_timer = NULL; in scic_sds_phy_construct()
656 memset(&this_phy->phy_type, 0, sizeof(this_phy->phy_type)); in scic_sds_phy_construct()
659 memset(this_phy->error_counter, 0, sizeof(this_phy->error_counter)); in scic_sds_phy_construct()
663 &this_phy->starting_substate_machine, in scic_sds_phy_construct()
664 &this_phy->parent.parent, in scic_sds_phy_construct()
704 if (scic_sds_port_get_index(this_phy->owning_port) == SCIC_SDS_DUMMY_PORT) in scic_sds_phy_get_port()
707 return this_phy->owning_port; in scic_sds_phy_get_port()
722 this_phy->owning_port = the_port; in scic_sds_phy_set_port()
724 if (this_phy->bcn_received_while_port_unassigned) in scic_sds_phy_set_port()
726 this_phy->bcn_received_while_port_unassigned = FALSE; in scic_sds_phy_set_port()
727 scic_sds_port_broadcast_change_received(this_phy->owning_port, this_phy); in scic_sds_phy_set_port()
859 sas_address->high = SCU_SAS_TISSAH_READ(this_phy); in scic_sds_phy_get_sas_address()
860 sas_address->low = SCU_SAS_TISSAL_READ(this_phy); in scic_sds_phy_get_sas_address()
864 * @brief This method returns the remote end-point (i.e. attached)
868 * to retrieve the remote end-point SAS address.
870 * which to copy the remote end-point SAS address.
886 sas_address->high in scic_sds_phy_get_attached_sas_address()
887 = this_phy->phy_type.sas.identify_address_frame_buffer.sas_address.high; in scic_sds_phy_get_attached_sas_address()
888 sas_address->low in scic_sds_phy_get_attached_sas_address()
889 = this_phy->phy_type.sas.identify_address_frame_buffer.sas_address.low; in scic_sds_phy_get_attached_sas_address()
909 protocols->u.bits.smp_target = 1; in scic_sds_phy_get_protocols()
912 protocols->u.bits.stp_target = 1; in scic_sds_phy_get_protocols()
915 protocols->u.bits.ssp_target = 1; in scic_sds_phy_get_protocols()
918 protocols->u.bits.smp_initiator = 1; in scic_sds_phy_get_protocols()
921 protocols->u.bits.stp_initiator = 1; in scic_sds_phy_get_protocols()
924 protocols->u.bits.ssp_initiator = 1; in scic_sds_phy_get_protocols()
930 this_phy, protocols->u.all in scic_sds_phy_get_protocols()
956 this_phy, protocols, protocols->u.all in scic_sds_phy_get_attached_phy_protocols()
959 protocols->u.all = 0; in scic_sds_phy_get_attached_phy_protocols()
961 if (this_phy->protocol == SCIC_SDS_PHY_PROTOCOL_SAS) in scic_sds_phy_get_attached_phy_protocols()
963 protocols->u.all = in scic_sds_phy_get_attached_phy_protocols()
964 this_phy->phy_type.sas.identify_address_frame_buffer.protocols.u.all; in scic_sds_phy_get_attached_phy_protocols()
966 else if (this_phy->protocol == SCIC_SDS_PHY_PROTOCOL_SATA) in scic_sds_phy_get_attached_phy_protocols()
968 protocols->u.bits.stp_target = 1; in scic_sds_phy_get_attached_phy_protocols()
994 if (this_phy->sata_timeout_timer != NULL) in scic_sds_phy_release_resource()
996 scic_cb_timer_destroy(controller, this_phy->sata_timeout_timer); in scic_sds_phy_release_resource()
997 this_phy->sata_timeout_timer = NULL; in scic_sds_phy_release_resource()
1026 return this_phy->state_handlers->parent.reset_handler( in scic_sds_phy_reset()
1027 &this_phy->parent in scic_sds_phy_reset()
1051 return this_phy->state_handlers->event_handler(this_phy, event_code); in scic_sds_phy_event_handler()
1074 return this_phy->state_handlers->frame_handler(this_phy, frame_index); in scic_sds_phy_frame_handler()
1095 return this_phy->state_handlers->consume_power_handler(this_phy); in scic_sds_phy_consume_power_handler()
1128 this_phy->owning_port->owning_controller->user_parameters.sds1. in scic_phy_get_properties()
1129 phys[this_phy->phy_index].max_speed_generation; in scic_phy_get_properties()
1131 properties->negotiated_link_rate = this_phy->max_negotiated_speed; in scic_phy_get_properties()
1134 properties->max_link_rate = SCI_SAS_600_GB; in scic_phy_get_properties()
1136 properties->max_link_rate = SCI_SAS_300_GB; in scic_phy_get_properties()
1138 properties->max_link_rate = SCI_SAS_150_GB; in scic_phy_get_properties()
1140 properties->index = this_phy->phy_index; in scic_phy_get_properties()
1141 properties->owning_port = scic_sds_phy_get_port(this_phy); in scic_phy_get_properties()
1143 scic_sds_phy_get_protocols(this_phy, &properties->transmit_iaf.protocols); in scic_phy_get_properties()
1145 properties->transmit_iaf.sas_address.high = in scic_phy_get_properties()
1146 this_phy->owning_port->owning_controller->oem_parameters.sds1. in scic_phy_get_properties()
1147 phys[this_phy->phy_index].sas_address.sci_format.high; in scic_phy_get_properties()
1149 properties->transmit_iaf.sas_address.low = in scic_phy_get_properties()
1150 this_phy->owning_port->owning_controller->oem_parameters.sds1. in scic_phy_get_properties()
1151 phys[this_phy->phy_index].sas_address.sci_format.low; in scic_phy_get_properties()
1156 // ---------------------------------------------------------------------------
1173 if (this_phy->protocol == SCIC_SDS_PHY_PROTOCOL_SAS) in scic_sas_phy_get_properties()
1176 &properties->received_iaf, in scic_sas_phy_get_properties()
1177 &this_phy->phy_type.sas.identify_address_frame_buffer, in scic_sas_phy_get_properties()
1181 properties->received_capabilities.u.all in scic_sas_phy_get_properties()
1190 // ---------------------------------------------------------------------------
1207 if (this_phy->protocol == SCIC_SDS_PHY_PROTOCOL_SATA) in scic_sata_phy_get_properties()
1210 &properties->signature_fis, in scic_sata_phy_get_properties()
1211 &this_phy->phy_type.sata.signature_fis_buffer, in scic_sata_phy_get_properties()
1216 properties->is_port_selector_present = FALSE; in scic_sata_phy_get_properties()
1224 // ---------------------------------------------------------------------------
1249 // ---------------------------------------------------------------------------
1273 U32 control = SCU_SAS_ECENCR_READ(this_phy); in scic_phy_enable_counter() local
1274 control |= (1 << SCU_ERR_CNT_RX_DONE_ACK_NAK_TIMEOUT_INDEX); in scic_phy_enable_counter()
1275 SCU_SAS_ECENCR_WRITE(this_phy, control); in scic_phy_enable_counter()
1277 break; in scic_phy_enable_counter()
1280 U32 control = SCU_SAS_ECENCR_READ(this_phy); in scic_phy_enable_counter() local
1281 control |= (1 << SCU_ERR_CNT_TX_DONE_ACK_NAK_TIMEOUT_INDEX); in scic_phy_enable_counter()
1282 SCU_SAS_ECENCR_WRITE(this_phy, control); in scic_phy_enable_counter()
1284 break; in scic_phy_enable_counter()
1287 U32 control = SCU_SAS_ECENCR_READ(this_phy); in scic_phy_enable_counter() local
1288 control |= (1 << SCU_ERR_CNT_INACTIVITY_TIMER_EXPIRED_INDEX); in scic_phy_enable_counter()
1289 SCU_SAS_ECENCR_WRITE(this_phy, control); in scic_phy_enable_counter()
1291 break; in scic_phy_enable_counter()
1294 U32 control = SCU_SAS_ECENCR_READ(this_phy); in scic_phy_enable_counter() local
1295 control |= (1 << SCU_ERR_CNT_RX_DONE_CREDIT_TIMEOUT_INDEX); in scic_phy_enable_counter()
1296 SCU_SAS_ECENCR_WRITE(this_phy, control); in scic_phy_enable_counter()
1298 break; in scic_phy_enable_counter()
1301 U32 control = SCU_SAS_ECENCR_READ(this_phy); in scic_phy_enable_counter() local
1302 control |= (1 << SCU_ERR_CNT_TX_DONE_CREDIT_TIMEOUT_INDEX); in scic_phy_enable_counter()
1303 SCU_SAS_ECENCR_WRITE(this_phy, control); in scic_phy_enable_counter()
1305 break; in scic_phy_enable_counter()
1308 U32 control = SCU_SAS_ECENCR_READ(this_phy); in scic_phy_enable_counter() local
1309 control |= (1 << SCU_ERR_CNT_RX_CREDIT_BLOCKED_RECEIVED_INDEX); in scic_phy_enable_counter()
1310 SCU_SAS_ECENCR_WRITE(this_phy, control); in scic_phy_enable_counter()
1312 break; in scic_phy_enable_counter()
1317 // a no-op. in scic_phy_enable_counter()
1329 break; in scic_phy_enable_counter()
1333 break; in scic_phy_enable_counter()
1338 // ---------------------------------------------------------------------------
1361 U32 control = SCU_SAS_ECENCR_READ(this_phy); in scic_phy_disable_counter() local
1362 control &= ~(1 << SCU_ERR_CNT_RX_DONE_ACK_NAK_TIMEOUT_INDEX); in scic_phy_disable_counter()
1363 SCU_SAS_ECENCR_WRITE(this_phy, control); in scic_phy_disable_counter()
1365 break; in scic_phy_disable_counter()
1368 U32 control = SCU_SAS_ECENCR_READ(this_phy); in scic_phy_disable_counter() local
1369 control &= ~(1 << SCU_ERR_CNT_TX_DONE_ACK_NAK_TIMEOUT_INDEX); in scic_phy_disable_counter()
1370 SCU_SAS_ECENCR_WRITE(this_phy, control); in scic_phy_disable_counter()
1372 break; in scic_phy_disable_counter()
1375 U32 control = SCU_SAS_ECENCR_READ(this_phy); in scic_phy_disable_counter() local
1376 control &= ~(1 << SCU_ERR_CNT_INACTIVITY_TIMER_EXPIRED_INDEX); in scic_phy_disable_counter()
1377 SCU_SAS_ECENCR_WRITE(this_phy, control); in scic_phy_disable_counter()
1379 break; in scic_phy_disable_counter()
1382 U32 control = SCU_SAS_ECENCR_READ(this_phy); in scic_phy_disable_counter() local
1383 control &= ~(1 << SCU_ERR_CNT_RX_DONE_CREDIT_TIMEOUT_INDEX); in scic_phy_disable_counter()
1384 SCU_SAS_ECENCR_WRITE(this_phy, control); in scic_phy_disable_counter()
1386 break; in scic_phy_disable_counter()
1389 U32 control = SCU_SAS_ECENCR_READ(this_phy); in scic_phy_disable_counter() local
1390 control &= ~(1 << SCU_ERR_CNT_TX_DONE_CREDIT_TIMEOUT_INDEX); in scic_phy_disable_counter()
1391 SCU_SAS_ECENCR_WRITE(this_phy, control); in scic_phy_disable_counter()
1393 break; in scic_phy_disable_counter()
1396 U32 control = SCU_SAS_ECENCR_READ(this_phy); in scic_phy_disable_counter() local
1397 control &= ~(1 << SCU_ERR_CNT_RX_CREDIT_BLOCKED_RECEIVED_INDEX); in scic_phy_disable_counter()
1398 SCU_SAS_ECENCR_WRITE(this_phy, control); in scic_phy_disable_counter()
1400 break; in scic_phy_disable_counter()
1416 break; in scic_phy_disable_counter()
1421 // ---------------------------------------------------------------------------
1444 break; in scic_phy_get_counter()
1447 break; in scic_phy_get_counter()
1450 break; in scic_phy_get_counter()
1453 break; in scic_phy_get_counter()
1456 break; in scic_phy_get_counter()
1459 break; in scic_phy_get_counter()
1462 break; in scic_phy_get_counter()
1464 *data = this_phy->error_counter[SCU_ERR_CNT_RX_DONE_ACK_NAK_TIMEOUT_INDEX]; in scic_phy_get_counter()
1465 break; in scic_phy_get_counter()
1467 *data = this_phy->error_counter[SCU_ERR_CNT_TX_DONE_ACK_NAK_TIMEOUT_INDEX]; in scic_phy_get_counter()
1468 break; in scic_phy_get_counter()
1470 *data = this_phy->error_counter[SCU_ERR_CNT_INACTIVITY_TIMER_EXPIRED_INDEX]; in scic_phy_get_counter()
1471 break; in scic_phy_get_counter()
1473 *data = this_phy->error_counter[SCU_ERR_CNT_RX_DONE_CREDIT_TIMEOUT_INDEX]; in scic_phy_get_counter()
1474 break; in scic_phy_get_counter()
1476 *data = this_phy->error_counter[SCU_ERR_CNT_TX_DONE_CREDIT_TIMEOUT_INDEX]; in scic_phy_get_counter()
1477 break; in scic_phy_get_counter()
1479 *data = this_phy->error_counter[SCU_ERR_CNT_RX_CREDIT_BLOCKED_RECEIVED_INDEX]; in scic_phy_get_counter()
1480 break; in scic_phy_get_counter()
1483 break; in scic_phy_get_counter()
1486 break; in scic_phy_get_counter()
1489 break; in scic_phy_get_counter()
1492 break; in scic_phy_get_counter()
1495 break; in scic_phy_get_counter()
1501 // ---------------------------------------------------------------------------
1523 break; in scic_phy_clear_counter()
1526 break; in scic_phy_clear_counter()
1529 break; in scic_phy_clear_counter()
1532 break; in scic_phy_clear_counter()
1535 break; in scic_phy_clear_counter()
1538 break; in scic_phy_clear_counter()
1541 break; in scic_phy_clear_counter()
1543 this_phy->error_counter[SCU_ERR_CNT_RX_DONE_ACK_NAK_TIMEOUT_INDEX] = 0; in scic_phy_clear_counter()
1544 break; in scic_phy_clear_counter()
1546 this_phy->error_counter[SCU_ERR_CNT_TX_DONE_ACK_NAK_TIMEOUT_INDEX] = 0; in scic_phy_clear_counter()
1547 break; in scic_phy_clear_counter()
1549 this_phy->error_counter[SCU_ERR_CNT_INACTIVITY_TIMER_EXPIRED_INDEX] = 0; in scic_phy_clear_counter()
1550 break; in scic_phy_clear_counter()
1552 this_phy->error_counter[SCU_ERR_CNT_RX_DONE_CREDIT_TIMEOUT_INDEX] = 0; in scic_phy_clear_counter()
1553 break; in scic_phy_clear_counter()
1555 this_phy->error_counter[SCU_ERR_CNT_TX_DONE_CREDIT_TIMEOUT_INDEX] = 0; in scic_phy_clear_counter()
1556 break; in scic_phy_clear_counter()
1558 this_phy->error_counter[SCU_ERR_CNT_RX_CREDIT_BLOCKED_RECEIVED_INDEX] = 0; in scic_phy_clear_counter()
1559 break; in scic_phy_clear_counter()
1562 break; in scic_phy_clear_counter()
1565 break; in scic_phy_clear_counter()
1568 break; in scic_phy_clear_counter()
1571 break; in scic_phy_clear_counter()
1595 return this_phy->state_handlers->parent.stop_handler(&this_phy->parent); in scic_phy_stop()
1612 return this_phy->state_handlers->parent.start_handler(&this_phy->parent); in scic_phy_start()
1645 sci_base_state_machine_get_state(&this_phy->parent.state_machine) in scic_sds_phy_default_start_handler()
1674 sci_base_state_machine_get_state(&this_phy->parent.state_machine) in scic_sds_phy_default_stop_handler()
1702 sci_base_state_machine_get_state(&this_phy->parent.state_machine) in scic_sds_phy_default_reset_handler()
1731 sci_base_state_machine_get_state(&this_phy->parent.state_machine) in scic_sds_phy_default_destroy_handler()
1759 sci_base_state_machine_get_state(&this_phy->parent.state_machine) in scic_sds_phy_default_frame_handler()
1790 sci_base_state_machine_get_state(&this_phy->parent.state_machine) in scic_sds_phy_default_event_handler()
1815 sci_base_state_machine_get_state(&this_phy->parent.state_machine) in scic_sds_phy_default_consume_power_handler()
1828 * - The phy state machine is transitioned to the
1848 this_phy->sata_timeout_timer = scic_cb_timer_create( in scic_sds_phy_stopped_state_start_handler()
1854 if (this_phy->sata_timeout_timer != NULL) in scic_sds_phy_stopped_state_start_handler()
1867 * - This function takes no action.
1894 // All of these state handlers are mapped to the starting sub-state machine
1903 * - The phy state machine is transitioned to the SCI_BASE_PHY_STATE_STOPPED.
1936 * - The phy state machine is transitioned to the SCI_BASE_PHY_STATE_STARTING.
1964 * - decoded event is a link failure
1965 * - transition the SCIC_SDS_PHY back to the SCI_BASE_PHY_STATE_STARTING
1967 * - any other event received will report a warning message
1994 break; in scic_sds_phy_ready_state_event_handler()
1999 scic_sds_port_broadcast_change_received(this_phy->owning_port, this_phy); in scic_sds_phy_ready_state_event_handler()
2001 this_phy->bcn_received_while_port_unassigned = TRUE; in scic_sds_phy_ready_state_event_handler()
2002 break; in scic_sds_phy_ready_state_event_handler()
2014 this_phy->error_counter[error_counter_index]++; in scic_sds_phy_ready_state_event_handler()
2017 break; in scic_sds_phy_ready_state_event_handler()
2027 break; in scic_sds_phy_ready_state_event_handler()
2033 // ---------------------------------------------------------------------------
2063 break; in scic_sds_phy_resetting_state_event_handler()
2074 break; in scic_sds_phy_resetting_state_event_handler()
2080 // ---------------------------------------------------------------------------
2209 /* Reset OOB sequence - start */ in scu_link_layer_start_oob()
2215 /* Reset OOB sequence - end */ in scu_link_layer_start_oob()
2217 /* Start OOB sequence - start */ in scu_link_layer_start_oob()
2222 /* Start OOB sequence - end */ in scu_link_layer_start_oob()
2260 * - This function sets the state handlers for the phy object base state
2282 * - This function sets the state handlers for the phy object base state
2284 * - The SCU hardware is requested to stop the protocol engine.
2302 if (this_phy->sata_timeout_timer != NULL) in scic_sds_phy_stopped_state_enter()
2306 this_phy->sata_timeout_timer in scic_sds_phy_stopped_state_enter()
2309 this_phy->sata_timeout_timer = NULL; in scic_sds_phy_stopped_state_enter()
2318 * - This function sets the state handlers for the phy object base state
2320 * - The SCU hardware is requested to start OOB/SN on this protocol engine.
2321 * - The phy starting substate machine is started.
2322 * - If the previous state was the ready state then the
2344 this_phy->protocol = SCIC_SDS_PHY_PROTOCOL_UNKNOWN; in scic_sds_phy_starting_state_enter()
2345 this_phy->bcn_received_while_port_unassigned = FALSE; in scic_sds_phy_starting_state_enter()
2348 sci_base_state_machine_start(&this_phy->starting_substate_machine); in scic_sds_phy_starting_state_enter()
2350 if (this_phy->parent.state_machine.previous_state_id in scic_sds_phy_starting_state_enter()
2364 * - This function sets the state handlers for the phy object base state
2366 * - The SCU hardware protocol engine is resumed.
2367 * - The SCIC_SDS_CONTROLLER is informed that the phy object has gone link
2416 * - This function sets the state handlers for the phy object base state
2437 scic_sds_port_deactivate_phy(this_phy->owning_port, this_phy, FALSE); in scic_sds_phy_resetting_state_enter()
2439 if (this_phy->protocol == SCIC_SDS_PHY_PROTOCOL_SAS) in scic_sds_phy_resetting_state_enter()
2448 &this_phy->parent.state_machine, in scic_sds_phy_resetting_state_enter()
2457 * - This function sets the state handlers for the phy object base state
2478 // ---------------------------------------------------------------------------
2515 //* PHY STARTING SUB-STATE MACHINE
2544 &this_phy->starting_substate_machine, in scic_sds_phy_start_sas_link_training()
2548 this_phy->protocol = SCIC_SDS_PHY_PROTOCOL_SAS; in scic_sds_phy_start_sas_link_training()
2567 &this_phy->starting_substate_machine, in scic_sds_phy_start_sata_link_training()
2571 this_phy->protocol = SCIC_SDS_PHY_PROTOCOL_SATA; in scic_sds_phy_start_sata_link_training()
2583 * phy's starting sub-state machine.
2594 this_phy->max_negotiated_speed = max_link_rate; in scic_sds_phy_complete_link_training()
2618 // Re-enter the base state machine starting state in scic_sds_phy_restart_starting_state()
2639 &this_phy->starting_substate_machine in scic_sds_phy_starting_substate_general_stop_handler()
2643 &phy->state_machine, in scic_sds_phy_starting_substate_general_stop_handler()
2657 * - decode the event
2658 * - sas phy detected causes a state transition to the wait for speed
2660 * - any other events log a warning message and set a failure status
2682 this_phy->is_in_link_training = TRUE; in scic_sds_phy_starting_substate_await_ossp_event_handler()
2683 break; in scic_sds_phy_starting_substate_await_ossp_event_handler()
2687 this_phy->is_in_link_training = TRUE; in scic_sds_phy_starting_substate_await_ossp_event_handler()
2688 break; in scic_sds_phy_starting_substate_await_ossp_event_handler()
2699 break; in scic_sds_phy_starting_substate_await_ossp_event_handler()
2708 * - decode the event
2709 * - sas phy detected returns us back to this state.
2710 * - speed event detected causes a state transition to the wait for iaf.
2711 * - identify timeout is an un-expected event and the state machine is
2713 * - link failure events restart the starting state machine
2714 * - any other events log a warning message and set a failure status
2736 // We would re-enter this state so just stay here in scic_sds_phy_starting_substate_await_sas_phy_speed_event_handler()
2737 break; in scic_sds_phy_starting_substate_await_sas_phy_speed_event_handler()
2744 break; in scic_sds_phy_starting_substate_await_sas_phy_speed_event_handler()
2751 break; in scic_sds_phy_starting_substate_await_sas_phy_speed_event_handler()
2758 break; in scic_sds_phy_starting_substate_await_sas_phy_speed_event_handler()
2764 break; in scic_sds_phy_starting_substate_await_sas_phy_speed_event_handler()
2769 break; in scic_sds_phy_starting_substate_await_sas_phy_speed_event_handler()
2780 break; in scic_sds_phy_starting_substate_await_sas_phy_speed_event_handler()
2789 * - decode the event
2790 * - sas phy detected event backs up the state machine to the await
2792 * - identify timeout is an un-expected event and the state machine is
2794 * - link failure events restart the starting state machine
2795 * - any other events log a warning message and set a failure status
2818 break; in scic_sds_phy_starting_substate_await_iaf_uf_event_handler()
2824 break; in scic_sds_phy_starting_substate_await_iaf_uf_event_handler()
2831 break; in scic_sds_phy_starting_substate_await_iaf_uf_event_handler()
2842 break; in scic_sds_phy_starting_substate_await_iaf_uf_event_handler()
2851 * - decode the event
2852 * - link failure events restart the starting state machine
2853 * - any other events log a warning message and set a failure status
2876 break; in scic_sds_phy_starting_substate_await_sas_power_event_handler()
2887 break; in scic_sds_phy_starting_substate_await_sas_power_event_handler()
2896 * - decode the event
2897 * - link failure events restart the starting state machine
2898 * - sata spinup hold events are ignored since they are expected
2899 * - any other events log a warning message and set a failure status
2922 break; in scic_sds_phy_starting_substate_await_sata_power_event_handler()
2926 break; in scic_sds_phy_starting_substate_await_sata_power_event_handler()
2932 break; in scic_sds_phy_starting_substate_await_sata_power_event_handler()
2943 break; in scic_sds_phy_starting_substate_await_sata_power_event_handler()
2952 * - decode the event
2953 * - link failure events restart the starting state machine
2954 * - sata spinup hold events are ignored since they are expected
2955 * - sata phy detected event change to the wait speed event
2956 * - any other events log a warning message and set a failure status
2979 break; in scic_sds_phy_starting_substate_await_sata_phy_event_handler()
2984 break; in scic_sds_phy_starting_substate_await_sata_phy_event_handler()
2987 this_phy->protocol = SCIC_SDS_PHY_PROTOCOL_SATA; in scic_sds_phy_starting_substate_await_sata_phy_event_handler()
2994 break; in scic_sds_phy_starting_substate_await_sata_phy_event_handler()
3000 break; in scic_sds_phy_starting_substate_await_sata_phy_event_handler()
3011 break; in scic_sds_phy_starting_substate_await_sata_phy_event_handler()
3021 * - decode the event
3022 * - sata phy detected returns us back to this state.
3023 * - speed event detected causes a state transition to the wait for
3025 * - link failure events restart the starting state machine
3026 * - any other events log a warning message and set a failure status
3049 break; in scic_sds_phy_starting_substate_await_sata_speed_event_handler()
3058 break; in scic_sds_phy_starting_substate_await_sata_speed_event_handler()
3067 break; in scic_sds_phy_starting_substate_await_sata_speed_event_handler()
3076 break; in scic_sds_phy_starting_substate_await_sata_speed_event_handler()
3081 break; in scic_sds_phy_starting_substate_await_sata_speed_event_handler()
3087 break; in scic_sds_phy_starting_substate_await_sata_speed_event_handler()
3098 break; in scic_sds_phy_starting_substate_await_sata_speed_event_handler()
3107 * - decode the event
3108 * - sas phy detected event backs up the state machine to the await
3110 * - identify timeout is an un-expected event and the state machine is
3112 * - link failure events restart the starting state machine
3113 * - any other events log a warning message and set a failure status
3139 break; in scic_sds_phy_starting_substate_await_sig_fis_event_handler()
3144 break; in scic_sds_phy_starting_substate_await_sig_fis_event_handler()
3155 break; in scic_sds_phy_starting_substate_await_sig_fis_event_handler()
3169 * - Get the UF Header
3170 * - If the UF is an IAF
3171 * - Copy IAF data to local phy object IAF data buffer.
3172 * - Change starting substate to wait power.
3173 * - else
3174 * - log warning message of unexpected unsolicted frame
3175 * - release frame buffer
3196 &(scic_sds_phy_get_controller(this_phy)->uf_control), in scic_sds_phy_starting_substate_await_iaf_uf_frame_handler()
3208 if (identify_frame->address_frame_type == 0) in scic_sds_phy_starting_substate_await_iaf_uf_frame_handler()
3219 &this_phy->phy_type.sas.identify_address_frame_buffer, in scic_sds_phy_starting_substate_await_iaf_uf_frame_handler()
3224 if (identify_frame->protocols.u.bits.smp_target) in scic_sds_phy_starting_substate_await_iaf_uf_frame_handler()
3265 * - Get the UF Header
3266 * - If the UF is an SIGNATURE FIS
3267 * - Copy IAF data to local phy object SIGNATURE FIS data buffer.
3268 * - else
3269 * - log warning message of unexpected unsolicted frame
3270 * - release frame buffer
3294 &(scic_sds_phy_get_controller(this_phy)->uf_control), in scic_sds_phy_starting_substate_await_sig_fis_frame_handler()
3306 (fis_frame_header->fis_type == SATA_FIS_TYPE_REGD2H) in scic_sds_phy_starting_substate_await_sig_fis_frame_handler()
3307 && !(fis_frame_header->status & ATA_STATUS_REG_BSY_BIT) in scic_sds_phy_starting_substate_await_sig_fis_frame_handler()
3311 &(scic_sds_phy_get_controller(this_phy)->uf_control), in scic_sds_phy_starting_substate_await_sig_fis_frame_handler()
3317 &this_phy->phy_type.sata.signature_fis_buffer, in scic_sds_phy_starting_substate_await_sig_fis_frame_handler()
3355 * - The notify enable spinups are turned on for this phy object
3356 * - The phy state machine is transitioned to the
3388 * - The phy state machine is transitioned to the
3425 // ---------------------------------------------------------------------------
3568 * - The initial state handlers are put in place for the SCIC_SDS_PHY
3570 * - The state is changed to the wait phy type event notification.
3598 * - Set the SCIC_SDS_PHY object state handlers for this state.
3621 * - Set the SCIC_SDS_PHY object state handlers for this state.
3644 * - Set the SCIC_SDS_PHY object state handlers for this state.
3667 * - Set the SCIC_SDS_PHY object state handlers for this state.
3668 * - Add this phy object to the power control queue
3696 * - Remove the SCIC_SDS_PHY object from the power control queue.
3719 * - Set the SCIC_SDS_PHY object state handlers for this state.
3720 * - Add this phy object to the power control queue
3748 * - Remove the SCIC_SDS_PHY object from the power control queue.
3772 * - Set the SCIC_SDS_PHY object state handlers for this state.
3793 this_phy->sata_timeout_timer, in scic_sds_phy_starting_await_sata_phy_substate_enter()
3801 * - stop the timer that was started on entry to await sata phy
3819 this_phy->sata_timeout_timer in scic_sds_phy_starting_await_sata_phy_substate_exit()
3826 * - Set the SCIC_SDS_PHY object state handlers for this state.
3847 this_phy->sata_timeout_timer, in scic_sds_phy_starting_await_sata_speed_substate_enter()
3855 * - stop the timer that was started on entry to await sata phy
3873 this_phy->sata_timeout_timer in scic_sds_phy_starting_await_sata_speed_substate_exit()
3880 * - Set the SCIC_SDS_PHY object state handlers for this state.
3881 * - Start the SIGNATURE FIS timeout timer
3903 this_phy->owning_port, in scic_sds_phy_starting_await_sig_fis_uf_substate_enter()
3916 this_phy->sata_timeout_timer, in scic_sds_phy_starting_await_sig_fis_uf_substate_enter()
3922 this_phy->is_in_link_training = FALSE; in scic_sds_phy_starting_await_sig_fis_uf_substate_enter()
3929 * - Stop the SIGNATURE FIS timeout timer.
3946 this_phy->sata_timeout_timer in scic_sds_phy_starting_await_sig_fis_uf_substate_exit()
3953 * - Set the SCIC_SDS_PHY object state handlers for this state.
3954 * - Change base state machine to the ready state.
3980 // ---------------------------------------------------------------------------