diff options
Diffstat (limited to 'drivers/scsi/isci/core')
-rw-r--r-- | drivers/scsi/isci/core/scic_sds_controller.c | 24 | ||||
-rw-r--r-- | drivers/scsi/isci/core/scic_sds_phy.c | 14 | ||||
-rw-r--r-- | drivers/scsi/isci/core/scic_sds_port.c | 37 | ||||
-rw-r--r-- | drivers/scsi/isci/core/scic_sds_port_configuration_agent.c | 10 | ||||
-rw-r--r-- | drivers/scsi/isci/core/scic_sds_remote_device.c | 10 | ||||
-rw-r--r-- | drivers/scsi/isci/core/scic_sds_request.c | 4 | ||||
-rw-r--r-- | drivers/scsi/isci/core/scic_sds_smp_remote_device.c | 4 | ||||
-rw-r--r-- | drivers/scsi/isci/core/scic_sds_stp_remote_device.c | 6 | ||||
-rw-r--r-- | drivers/scsi/isci/core/scic_user_callback.h | 315 |
9 files changed, 57 insertions, 367 deletions
diff --git a/drivers/scsi/isci/core/scic_sds_controller.c b/drivers/scsi/isci/core/scic_sds_controller.c index e8d09fd..b0f9221d 100644 --- a/drivers/scsi/isci/core/scic_sds_controller.c +++ b/drivers/scsi/isci/core/scic_sds_controller.c @@ -256,7 +256,7 @@ static void scic_sds_controller_phy_startup_timeout_handler( void scic_sds_controller_initialize_phy_startup( struct scic_sds_controller *this_controller) { - this_controller->phy_startup_timer = scic_cb_timer_create( + this_controller->phy_startup_timer = isci_event_timer_create( this_controller, scic_sds_controller_phy_startup_timeout_handler, this_controller @@ -275,7 +275,7 @@ void scic_sds_controller_initialize_phy_startup( void scic_sds_controller_initialize_power_control( struct scic_sds_controller *this_controller) { - this_controller->power_control.timer = scic_cb_timer_create( + this_controller->power_control.timer = isci_event_timer_create( this_controller, scic_sds_controller_power_control_timer_handler, this_controller @@ -734,7 +734,7 @@ static void scic_sds_controller_transition_to_ready( SCI_BASE_CONTROLLER_STATE_READY ); - scic_cb_controller_start_complete(this_controller, status); + isci_event_controller_start_complete(this_controller, status); } } @@ -757,7 +757,7 @@ void scic_sds_controller_timeout_handler( sci_base_state_machine_change_state( scic_sds_controller_get_base_state_machine(scic), SCI_BASE_CONTROLLER_STATE_FAILED); - scic_cb_controller_stop_complete(scic, SCI_FAILURE_TIMEOUT); + isci_event_controller_stop_complete(scic, SCI_FAILURE_TIMEOUT); } else /* / @todo Now what do we want to do in this case? */ dev_err(scic_to_dev(scic), "%s: Controller timer fired when controller was not " @@ -823,7 +823,7 @@ enum sci_status scic_sds_controller_stop_ports(struct scic_sds_controller *scic) static void scic_sds_controller_phy_timer_start( struct scic_sds_controller *this_controller) { - scic_cb_timer_start( + isci_event_timer_start( this_controller, this_controller->phy_startup_timer, SCIC_SDS_CONTROLLER_PHY_START_TIMEOUT @@ -840,7 +840,7 @@ static void scic_sds_controller_phy_timer_start( void scic_sds_controller_phy_timer_stop( struct scic_sds_controller *this_controller) { - scic_cb_timer_stop( + isci_event_timer_stop( this_controller, this_controller->phy_startup_timer ); @@ -1041,7 +1041,7 @@ enum sci_status scic_sds_controller_stop_devices( static void scic_sds_controller_power_control_timer_start( struct scic_sds_controller *this_controller) { - scic_cb_timer_start( + isci_event_timer_start( this_controller, this_controller->power_control.timer, SCIC_SDS_CONTROLLER_POWER_CONTROL_INTERVAL ); @@ -2809,7 +2809,7 @@ static enum sci_status scic_sds_controller_reset_state_initialize_handler( SCI_BASE_CONTROLLER_STATE_INITIALIZING ); - this_controller->timeout_timer = scic_cb_timer_create( + this_controller->timeout_timer = isci_event_timer_create( this_controller, (void (*)(void *))scic_sds_controller_timeout_handler, (void (*)(void *))controller); @@ -3040,7 +3040,7 @@ static enum sci_status scic_sds_controller_initialized_state_start_handler( if (SCI_SUCCESS == result) { scic_sds_controller_start_next_phy(this_controller); - scic_cb_timer_start(this_controller, + isci_event_timer_start(this_controller, this_controller->timeout_timer, timeout); @@ -3130,7 +3130,7 @@ static enum sci_status scic_sds_controller_ready_state_stop_handler( this_controller = (struct scic_sds_controller *)controller; - scic_cb_timer_start(this_controller, + isci_event_timer_start(this_controller, this_controller->timeout_timer, timeout); @@ -3578,7 +3578,7 @@ static void scic_sds_controller_starting_state_exit( { struct scic_sds_controller *scic = (struct scic_sds_controller *)object; - scic_cb_timer_stop(scic, scic->timeout_timer); + isci_event_timer_stop(scic, scic->timeout_timer); } /** @@ -3660,7 +3660,7 @@ static void scic_sds_controller_stopping_state_exit( this_controller = (struct scic_sds_controller *)object; - scic_cb_timer_stop(this_controller, this_controller->timeout_timer); + isci_event_timer_stop(this_controller, this_controller->timeout_timer); } /** diff --git a/drivers/scsi/isci/core/scic_sds_phy.c b/drivers/scsi/isci/core/scic_sds_phy.c index e8d5be7..92a5d29 100644 --- a/drivers/scsi/isci/core/scic_sds_phy.c +++ b/drivers/scsi/isci/core/scic_sds_phy.c @@ -370,7 +370,7 @@ enum sci_status scic_sds_phy_initialize( struct scu_link_layer_registers __iomem *link_layer_registers) { /* Create the SIGNATURE FIS Timeout timer for this phy */ - sci_phy->sata_timeout_timer = scic_cb_timer_create( + sci_phy->sata_timeout_timer = isci_event_timer_create( scic_sds_phy_get_controller(sci_phy), scic_sds_phy_sata_timeout, sci_phy @@ -1746,7 +1746,7 @@ static void scic_sds_phy_starting_await_sata_phy_substate_enter( this_phy, SCIC_SDS_PHY_STARTING_SUBSTATE_AWAIT_SATA_PHY_EN ); - scic_cb_timer_start( + isci_event_timer_start( scic_sds_phy_get_controller(this_phy), this_phy->sata_timeout_timer, SCIC_SDS_SATA_LINK_TRAINING_TIMEOUT @@ -1768,7 +1768,7 @@ static void scic_sds_phy_starting_await_sata_phy_substate_exit( this_phy = (struct scic_sds_phy *)object; - scic_cb_timer_stop( + isci_event_timer_stop( scic_sds_phy_get_controller(this_phy), this_phy->sata_timeout_timer ); @@ -1793,7 +1793,7 @@ static void scic_sds_phy_starting_await_sata_speed_substate_enter( this_phy, SCIC_SDS_PHY_STARTING_SUBSTATE_AWAIT_SATA_SPEED_EN ); - scic_cb_timer_start( + isci_event_timer_start( scic_sds_phy_get_controller(this_phy), this_phy->sata_timeout_timer, SCIC_SDS_SATA_LINK_TRAINING_TIMEOUT @@ -1815,7 +1815,7 @@ static void scic_sds_phy_starting_await_sata_speed_substate_exit( this_phy = (struct scic_sds_phy *)object; - scic_cb_timer_stop( + isci_event_timer_stop( scic_sds_phy_get_controller(this_phy), this_phy->sata_timeout_timer ); @@ -1854,7 +1854,7 @@ static void scic_sds_phy_starting_await_sig_fis_uf_substate_enter( * condition is cleared. */ scic_sds_phy_resume(this_phy); - scic_cb_timer_start( + isci_event_timer_start( scic_sds_phy_get_controller(this_phy), this_phy->sata_timeout_timer, SCIC_SDS_SIGNATURE_FIS_TIMEOUT @@ -1879,7 +1879,7 @@ static void scic_sds_phy_starting_await_sig_fis_uf_substate_exit( this_phy = (struct scic_sds_phy *)object; - scic_cb_timer_stop( + isci_event_timer_stop( scic_sds_phy_get_controller(this_phy), this_phy->sata_timeout_timer ); diff --git a/drivers/scsi/isci/core/scic_sds_port.c b/drivers/scsi/isci/core/scic_sds_port.c index b8acc23..f31e6dc 100644 --- a/drivers/scsi/isci/core/scic_sds_port.c +++ b/drivers/scsi/isci/core/scic_sds_port.c @@ -565,7 +565,7 @@ enum sci_status scic_sds_port_initialize( * the timer and start the state machine */ if (this_port->physical_port_index != SCI_MAX_PORTS) { /* / @todo should we create the timer at create time? */ - this_port->timer_handle = scic_cb_timer_create( + this_port->timer_handle = isci_event_timer_create( scic_sds_port_get_controller(this_port), scic_sds_port_timeout_handler, this_port @@ -727,7 +727,9 @@ void scic_sds_port_activate_phy( scic_sds_controller_clear_invalid_phy(controller, the_phy); if (do_notify_user == true) - scic_cb_port_link_up(this_port->owning_controller, this_port, the_phy); + isci_event_port_link_up(this_port->owning_controller, + this_port, + the_phy); } /** @@ -735,7 +737,8 @@ void scic_sds_port_activate_phy( * @this_port: This is the port on which the phy should be deactivated. * @the_phy: This is the specific phy that is no longer active in the port. * @do_notify_user: This parameter specifies whether to inform the user (via - * scic_cb_port_link_down()) as to the fact that a new phy as become ready. + * isci_event_port_link_down()) as to the fact that a new phy as become + * ready. * * This method will deactivate the supplied phy in the port. none */ @@ -752,7 +755,9 @@ void scic_sds_port_deactivate_phy( SCU_PCSPExCR_WRITE(this_port, the_phy->phy_index, the_phy->phy_index); if (do_notify_user == true) - scic_cb_port_link_down(this_port->owning_controller, this_port, the_phy); + isci_event_port_link_down(this_port->owning_controller, + this_port, + the_phy); } /** @@ -775,7 +780,7 @@ static void scic_sds_port_invalid_link_up( if ((controller->invalid_phy_mask & (1 << the_phy->phy_index)) == 0) { scic_sds_controller_set_invalid_phy(controller, the_phy); - scic_cb_port_invalid_link_up(controller, this_port, the_phy); + isci_event_port_invalid_link_up(controller, this_port, the_phy); } } @@ -933,7 +938,7 @@ static void scic_sds_port_timeout_handler(void *port) this_port); } else if (current_state == SCI_BASE_PORT_STATE_STOPPING) { /* if the port is still stopping then the stop has not completed */ - scic_cb_port_stop_complete( + isci_event_port_stop_complete( scic_sds_port_get_controller(this_port), port, SCI_FAILURE_TIMEOUT @@ -1030,7 +1035,7 @@ void scic_sds_port_broadcast_change_received( struct scic_sds_phy *this_phy) { /* notify the user. */ - scic_cb_port_bc_change_primitive_received( + isci_event_port_bc_change_primitive_received( this_port->owning_controller, this_port, this_phy ); } @@ -1259,7 +1264,7 @@ static enum sci_status scic_sds_port_ready_operational_substate_reset_handler( status = scic_sds_phy_reset(selected_phy); if (status == SCI_SUCCESS) { - scic_cb_timer_start( + isci_event_timer_start( scic_sds_port_get_controller(this_port), this_port->timer_handle, timeout @@ -1610,7 +1615,7 @@ static void scic_sds_port_ready_substate_operational_enter( this_port, SCIC_SDS_PORT_READY_SUBSTATE_OPERATIONAL ); - scic_cb_port_ready( + isci_event_port_ready( scic_sds_port_get_controller(this_port), this_port ); @@ -1640,7 +1645,7 @@ static void scic_sds_port_ready_substate_operational_exit( { struct scic_sds_port *this_port = (struct scic_sds_port *)object; - scic_cb_port_not_ready( + isci_event_port_not_ready( scic_sds_port_get_controller(this_port), this_port, this_port->not_ready_reason @@ -1670,7 +1675,7 @@ static void scic_sds_port_ready_substate_configuring_enter( ); if (this_port->active_phy_mask == 0) { - scic_cb_port_not_ready( + isci_event_port_not_ready( scic_sds_port_get_controller(this_port), this_port, SCIC_PORT_NOT_READY_NO_ACTIVE_PHYS @@ -2544,14 +2549,14 @@ static void scic_sds_port_ready_state_enter( SCI_BASE_PORT_STATE_RESETTING == this_port->parent.state_machine.previous_state_id ) { - scic_cb_port_hard_reset_complete( + isci_event_port_hard_reset_complete( scic_sds_port_get_controller(this_port), this_port, SCI_SUCCESS ); } else { /* Notify the caller that the port is not yet ready */ - scic_cb_port_not_ready( + isci_event_port_not_ready( scic_sds_port_get_controller(this_port), this_port, SCIC_PORT_NOT_READY_NO_ACTIVE_PHYS @@ -2615,7 +2620,7 @@ static void scic_sds_port_resetting_state_exit( this_port = (struct scic_sds_port *)object; - scic_cb_timer_stop( + isci_event_timer_stop( scic_sds_port_get_controller(this_port), this_port->timer_handle ); @@ -2655,7 +2660,7 @@ static void scic_sds_port_stopping_state_exit( this_port = (struct scic_sds_port *)object; - scic_cb_timer_stop( + isci_event_timer_stop( scic_sds_port_get_controller(this_port), this_port->timer_handle ); @@ -2681,7 +2686,7 @@ static void scic_sds_port_failed_state_enter( SCI_BASE_PORT_STATE_FAILED ); - scic_cb_port_hard_reset_complete( + isci_event_port_hard_reset_complete( scic_sds_port_get_controller(this_port), this_port, SCI_FAILURE_TIMEOUT diff --git a/drivers/scsi/isci/core/scic_sds_port_configuration_agent.c b/drivers/scsi/isci/core/scic_sds_port_configuration_agent.c index 001472e..e26a4e6 100644 --- a/drivers/scsi/isci/core/scic_sds_port_configuration_agent.c +++ b/drivers/scsi/isci/core/scic_sds_port_configuration_agent.c @@ -463,7 +463,7 @@ static void scic_sds_mpc_agent_link_down( ) { port_agent->timer_pending = true; - scic_cb_timer_start( + isci_event_timer_start( controller, port_agent->timer, SCIC_SDS_MPC_RECONFIGURATION_TIMEOUT @@ -542,12 +542,12 @@ static void scic_sds_apc_agent_start_timer( u32 timeout) { if (port_agent->timer_pending) { - scic_cb_timer_stop(controller, port_agent->timer); + isci_event_timer_stop(controller, port_agent->timer); } port_agent->timer_pending = true; - scic_cb_timer_start(controller, port_agent->timer, timeout); + isci_event_timer_start(controller, port_agent->timer, timeout); } /** @@ -830,7 +830,7 @@ enum sci_status scic_sds_port_configuration_agent_initialize( port_agent->link_up_handler = scic_sds_mpc_agent_link_up; port_agent->link_down_handler = scic_sds_mpc_agent_link_down; - port_agent->timer = scic_cb_timer_create( + port_agent->timer = isci_event_timer_create( controller, scic_sds_mpc_agent_timeout_handler, controller @@ -841,7 +841,7 @@ enum sci_status scic_sds_port_configuration_agent_initialize( port_agent->link_up_handler = scic_sds_apc_agent_link_up; port_agent->link_down_handler = scic_sds_apc_agent_link_down; - port_agent->timer = scic_cb_timer_create( + port_agent->timer = isci_event_timer_create( controller, scic_sds_apc_agent_timeout_handler, controller diff --git a/drivers/scsi/isci/core/scic_sds_remote_device.c b/drivers/scsi/isci/core/scic_sds_remote_device.c index cb1cf39..3a8d563 100644 --- a/drivers/scsi/isci/core/scic_sds_remote_device.c +++ b/drivers/scsi/isci/core/scic_sds_remote_device.c @@ -1817,7 +1817,7 @@ static void scic_sds_remote_device_stopped_state_enter( * the stop operation has completed. */ if (this_device->parent.state_machine.previous_state_id == SCI_BASE_REMOTE_DEVICE_STATE_STOPPING) { - scic_cb_remote_device_stop_complete( + isci_event_remote_device_stop_complete( scic_sds_remote_device_get_controller(this_device), this_device, SCI_SUCCESS @@ -1848,7 +1848,7 @@ static void scic_sds_remote_device_starting_state_enter( SCI_BASE_REMOTE_DEVICE_STATE_STARTING ); - scic_cb_remote_device_not_ready( + isci_event_remote_device_not_ready( the_controller, this_device, SCIC_REMOTE_DEVICE_NOT_READY_START_REQUESTED @@ -1871,7 +1871,7 @@ static void scic_sds_remote_device_starting_state_exit( /* * / @todo Check the device object for the proper return code for this * / callback */ - scic_cb_remote_device_start_complete( + isci_event_remote_device_start_complete( scic_sds_remote_device_get_controller(this_device), this_device, SCI_SUCCESS @@ -1905,7 +1905,7 @@ static void scic_sds_remote_device_ready_state_enter( if (this_device->has_ready_substate_machine) { sci_base_state_machine_start(&this_device->ready_substate_machine); } else { - scic_cb_remote_device_ready(the_controller, this_device); + isci_event_remote_device_ready(the_controller, this_device); } } @@ -1928,7 +1928,7 @@ static void scic_sds_remote_device_ready_state_exit( if (this_device->has_ready_substate_machine) { sci_base_state_machine_stop(&this_device->ready_substate_machine); } else { - scic_cb_remote_device_not_ready( + isci_event_remote_device_not_ready( the_controller, this_device, SCIC_REMOTE_DEVICE_NOT_READY_STOP_REQUESTED diff --git a/drivers/scsi/isci/core/scic_sds_request.c b/drivers/scsi/isci/core/scic_sds_request.c index 3bad0bc..909361f 100644 --- a/drivers/scsi/isci/core/scic_sds_request.c +++ b/drivers/scsi/isci/core/scic_sds_request.c @@ -2078,14 +2078,14 @@ static void scic_sds_request_completed_state_enter( /* Tell the SCI_USER that the IO request is complete */ if (this_request->is_task_management_request == false) { - scic_cb_io_request_complete( + isci_event_io_request_complete( scic_sds_request_get_controller(this_request), scic_sds_request_get_device(this_request), this_request, this_request->sci_status ); } else { - scic_cb_task_request_complete( + isci_event_task_request_complete( scic_sds_request_get_controller(this_request), scic_sds_request_get_device(this_request), this_request, diff --git a/drivers/scsi/isci/core/scic_sds_smp_remote_device.c b/drivers/scsi/isci/core/scic_sds_smp_remote_device.c index ea608c1..e90d46e 100644 --- a/drivers/scsi/isci/core/scic_sds_smp_remote_device.c +++ b/drivers/scsi/isci/core/scic_sds_smp_remote_device.c @@ -265,7 +265,7 @@ static void scic_sds_smp_remote_device_ready_idle_substate_enter( SCIC_SDS_SMP_REMOTE_DEVICE_READY_SUBSTATE_IDLE ); - scic_cb_remote_device_ready( + isci_event_remote_device_ready( scic_sds_remote_device_get_controller(this_device), this_device); } @@ -291,7 +291,7 @@ static void scic_sds_smp_remote_device_ready_cmd_substate_enter( SCIC_SDS_SMP_REMOTE_DEVICE_READY_SUBSTATE_CMD ); - scic_cb_remote_device_not_ready( + isci_event_remote_device_not_ready( scic_sds_remote_device_get_controller(this_device), this_device, SCIC_REMOTE_DEVICE_NOT_READY_SMP_REQUEST_STARTED diff --git a/drivers/scsi/isci/core/scic_sds_stp_remote_device.c b/drivers/scsi/isci/core/scic_sds_stp_remote_device.c index 880e0e5..ce2cb7b 100644 --- a/drivers/scsi/isci/core/scic_sds_stp_remote_device.c +++ b/drivers/scsi/isci/core/scic_sds_stp_remote_device.c @@ -667,7 +667,7 @@ static void scic_sds_stp_remote_device_ready_idle_substate_resume_complete_handl * the ready notification. */ if (this_device->ready_substate_machine.previous_state_id != SCIC_SDS_STP_REMOTE_DEVICE_READY_SUBSTATE_NCQ) { - scic_cb_remote_device_ready( + isci_event_remote_device_ready( scic_sds_remote_device_get_controller(this_device), this_device ); } @@ -741,7 +741,7 @@ static void scic_sds_stp_remote_device_ready_cmd_substate_enter( SCIC_SDS_STP_REMOTE_DEVICE_READY_SUBSTATE_CMD ); - scic_cb_remote_device_not_ready( + isci_event_remote_device_not_ready( scic_sds_remote_device_get_controller(this_device), this_device, SCIC_REMOTE_DEVICE_NOT_READY_SATA_REQUEST_STARTED @@ -799,7 +799,7 @@ static void scic_sds_stp_remote_device_ready_ncq_error_substate_enter( if (this_device->not_ready_reason == SCIC_REMOTE_DEVICE_NOT_READY_SATA_SDB_ERROR_FIS_RECEIVED) { - scic_cb_remote_device_not_ready( + isci_event_remote_device_not_ready( scic_sds_remote_device_get_controller(this_device), this_device, this_device->not_ready_reason diff --git a/drivers/scsi/isci/core/scic_user_callback.h b/drivers/scsi/isci/core/scic_user_callback.h index d1a3cb8..c097711 100644 --- a/drivers/scsi/isci/core/scic_user_callback.h +++ b/drivers/scsi/isci/core/scic_user_callback.h @@ -74,62 +74,6 @@ struct scic_sds_remote_device; struct scic_sds_controller; /** - * scic_cb_timer_create() - This callback method asks the user to create a - * timer and provide a handle for this timer for use in further timer - * interactions. - * @controller: This parameter specifies the controller with which this timer - * is to be associated. - * @timer_callback: This parameter specifies the callback method to be invoked - * whenever the timer expires. - * @cookie: This parameter specifies a piece of information that the user must - * retain. This cookie is to be supplied by the user anytime a timeout - * occurs for the created timer. - * - * The "timer_callback" method should be executed in a mutually exlusive manner - * from the controller completion handler handler. This method returns a handle - * to a timer object created by the user. The handle will be utilized for all - * further interactions relating to this timer. - */ -void *scic_cb_timer_create( - struct scic_sds_controller *controller, - void (*timer_callback)(void *), - void *cookie); - - -/** - * scic_cb_timer_start() - This callback method asks the user to start the - * supplied timer. - * @controller: This parameter specifies the controller with which this timer - * is to associated. - * @timer: This parameter specifies the timer to be started. - * @milliseconds: This parameter specifies the number of milliseconds for which - * to stall. The operating system driver is allowed to round this value up - * where necessary. - * - * All timers in the system started by the SCI Core are one shot timers. - * Therefore, the SCI user should make sure that it removes the timer from it's - * list when a timer actually fires. Additionally, SCI Core user's should be - * able to handle calls from the SCI Core to stop a timer that may already be - * stopped. none - */ -void scic_cb_timer_start( - struct scic_sds_controller *controller, - void *timer, - u32 milliseconds); - -/** - * scic_cb_timer_stop() - This callback method asks the user to stop the - * supplied timer. - * @controller: This parameter specifies the controller with which this timer - * is to associated. - * @timer: This parameter specifies the timer to be stopped. - * - */ -void scic_cb_timer_stop( - struct scic_sds_controller *controller, - void *timer); - -/** * scic_cb_stall_execution() - This method is called when the core requires the * OS driver to stall execution. This method is utilized during * initialization or non-performance paths only. @@ -142,67 +86,6 @@ void scic_cb_timer_stop( void scic_cb_stall_execution( u32 microseconds); -/** - * scic_cb_controller_start_complete() - This user callback will inform the - * user that the controller has finished the start process. - * @controller: This parameter specifies the controller that was started. - * @completion_status: This parameter specifies the results of the start - * operation. SCI_SUCCESS indicates successful completion. - * - */ -void scic_cb_controller_start_complete( - struct scic_sds_controller *controller, - enum sci_status completion_status); - -/** - * scic_cb_controller_stop_complete() - This user callback will inform the user - * that the controller has finished the stop process. - * @controller: This parameter specifies the controller that was stopped. - * @completion_status: This parameter specifies the results of the stop - * operation. SCI_SUCCESS indicates successful completion. - * - */ -void scic_cb_controller_stop_complete( - struct scic_sds_controller *controller, - enum sci_status completion_status); - -/** - * scic_cb_io_request_complete() - This user callback will inform the user that - * an IO request has completed. - * @controller: This parameter specifies the controller on which the IO is - * completing. - * @remote_device: This parameter specifies the remote device on which this IO - * request is completing. - * @io_request: This parameter specifies the IO request that has completed. - * @completion_status: This parameter specifies the results of the IO request - * operation. SCI_SUCCESS indicates successful completion. - * - */ -void scic_cb_io_request_complete( - struct scic_sds_controller *controller, - struct scic_sds_remote_device *remote_device, - struct scic_sds_request *io_request, - enum sci_io_status completion_status); - -/** - * scic_cb_task_request_complete() - This user callback will inform the user - * that a task management request completed. - * @controller: This parameter specifies the controller on which the task - * management request is completing. - * @remote_device: This parameter specifies the remote device on which this - * task management request is completing. - * @task_request: This parameter specifies the task management request that has - * completed. - * @completion_status: This parameter specifies the results of the IO request - * operation. SCI_SUCCESS indicates successful completion. - * - */ -void scic_cb_task_request_complete( - struct scic_sds_controller *controller, - struct scic_sds_remote_device *remote_device, - struct scic_sds_request *task_request, - enum sci_task_status completion_status); - #ifndef SCI_GET_PHYSICAL_ADDRESS_OPTIMIZATION_ENABLED /** * scic_cb_io_request_get_physical_address() - This callback method asks the @@ -508,204 +391,6 @@ void *scic_cb_get_virtual_address( struct scic_sds_controller *controller, dma_addr_t physical_address); -/** - * scic_cb_port_stop_complete() - This method informs the user when a stop - * operation on the port has completed. - * @controller: This parameter represents the controller which contains the - * port. - * @port: This parameter specifies the SCI port object for which the callback - * is being invoked. - * @completion_status: This parameter specifies the status for the operation - * being completed. - * - */ -void scic_cb_port_stop_complete( - struct scic_sds_controller *controller, - struct scic_sds_port *port, - enum sci_status completion_status); - -/** - * scic_cb_port_hard_reset_complete() - This method informs the user when a - * hard reset on the port has completed. This hard reset could have been - * initiated by the user or by the remote port. - * @controller: This parameter represents the controller which contains the - * port. - * @port: This parameter specifies the SCI port object for which the callback - * is being invoked. - * @completion_status: This parameter specifies the status for the operation - * being completed. - * - */ -void scic_cb_port_hard_reset_complete( - struct scic_sds_controller *controller, - struct scic_sds_port *port, - enum sci_status completion_status); - -/** - * scic_cb_port_ready() - This method informs the user that the port is now in - * a ready state and can be utilized to issue IOs. - * @controller: This parameter represents the controller which contains the - * port. - * @port: This parameter specifies the SCI port object for which the callback - * is being invoked. - * - */ -void scic_cb_port_ready( - struct scic_sds_controller *controller, - struct scic_sds_port *port); - -/** - * scic_cb_port_not_ready() - This method informs the user that the port is now - * not in a ready (i.e. busy) state and can't be utilized to issue IOs. - * @controller: This parameter represents the controller which contains the - * port. - * @port: This parameter specifies the SCI port object for which the callback - * is being invoked. - * @reason_code: This parameter specifies the reason for the port not ready - * callback. - * - */ -void scic_cb_port_not_ready( - struct scic_sds_controller *controller, - struct scic_sds_port *port, - u32 reason_code); - -/** - * scic_cb_port_invalid_link_up() - This method informs the SCI Core user that - * a phy/link became ready, but the phy is not allowed in the port. In some - * situations the underlying hardware only allows for certain phy to port - * mappings. If these mappings are violated, then this API is invoked. - * @controller: This parameter represents the controller which contains the - * port. - * @port: This parameter specifies the SCI port object for which the callback - * is being invoked. - * @phy: This parameter specifies the phy that came ready, but the phy can't be - * a valid member of the port. - * - */ -void scic_cb_port_invalid_link_up( - struct scic_sds_controller *controller, - struct scic_sds_port *port, - struct scic_sds_phy *phy); - -/** - * scic_cb_port_bc_change_primitive_received() - This callback method informs - * the user that a broadcast change primitive was received. - * @controller: This parameter represents the controller which contains the - * port. - * @port: This parameter specifies the SCI port object for which the callback - * is being invoked. For instances where the phy on which the primitive was - * received is not part of a port, this parameter will be - * NULL. - * @phy: This parameter specifies the phy on which the primitive was received. - * - */ -void scic_cb_port_bc_change_primitive_received( - struct scic_sds_controller *controller, - struct scic_sds_port *port, - struct scic_sds_phy *phy); - - - - -/** - * scic_cb_port_link_up() - This callback method informs the user that a phy - * has become operational and is capable of communicating with the remote - * end point. - * @controller: This parameter represents the controller associated with the - * phy. - * @port: This parameter specifies the port object for which the user callback - * is being invoked. There may be conditions where this parameter can be - * NULL - * @phy: This parameter specifies the phy object for which the user callback is - * being invoked. - * - */ -void scic_cb_port_link_up( - struct scic_sds_controller *controller, - struct scic_sds_port *port, - struct scic_sds_phy *phy); - -/** - * scic_cb_port_link_down() - This callback method informs the user that a phy - * is no longer operational and is not capable of communicating with the - * remote end point. - * @controller: This parameter represents the controller associated with the - * phy. - * @port: This parameter specifies the port object for which the user callback - * is being invoked. There may be conditions where this parameter can be - * NULL - * @phy: This parameter specifies the phy object for which the user callback is - * being invoked. - * - */ -void scic_cb_port_link_down( - struct scic_sds_controller *controller, - struct scic_sds_port *port, - struct scic_sds_phy *phy); - -/** - * scic_cb_remote_device_start_complete() - This user callback method will - * inform the user that a start operation has completed. - * @controller: This parameter specifies the core controller associated with - * the completion callback. - * @remote_device: This parameter specifies the remote device associated with - * the completion callback. - * @completion_status: This parameter specifies the completion status for the - * operation. - * - */ -void scic_cb_remote_device_start_complete( - struct scic_sds_controller *controller, - struct scic_sds_remote_device *remote_device, - enum sci_status completion_status); - -/** - * scic_cb_remote_device_stop_complete() - This user callback method will - * inform the user that a stop operation has completed. - * @controller: This parameter specifies the core controller associated with - * the completion callback. - * @remote_device: This parameter specifies the remote device associated with - * the completion callback. - * @completion_status: This parameter specifies the completion status for the - * operation. - * - */ -void scic_cb_remote_device_stop_complete( - struct scic_sds_controller *controller, - struct scic_sds_remote_device *remote_device, - enum sci_status completion_status); - -/** - * scic_cb_remote_device_ready() - This user callback method will inform the - * user that a remote device is now capable of handling IO requests. - * @controller: This parameter specifies the core controller associated with - * the completion callback. - * @remote_device: This parameter specifies the remote device associated with - * the callback. - * - */ -void scic_cb_remote_device_ready( - struct scic_sds_controller *controller, - struct scic_sds_remote_device *remote_device); - -/** - * scic_cb_remote_device_not_ready() - This user callback method will inform - * the user that a remote device is no longer capable of handling IO - * requests (until a ready callback is invoked). - * @controller: This parameter specifies the core controller associated with - * the completion callback. - * @remote_device: This parameter specifies the remote device associated with - * the callback. - * @reason_code: This paramete specifies the reason the remote device is not - * ready. - * - */ -void scic_cb_remote_device_not_ready( - struct scic_sds_controller *controller, - struct scic_sds_remote_device *remote_device, - u32 reason_code); - #if !defined(DISABLE_ATAPI) /** * scic_cb_stp_packet_io_request_get_cdb_address() - This user callback gets |