Commit d3757c3a authored by Maciej Patelczyk's avatar Maciej Patelczyk Committed by Dan Williams

isci: Removed sci_base_object from scic_sds_controller.

The 'struct sci_base_object' was removed from the struct
scic_sds_controller and was replaced by a pointer to
struct isci_host.
Signed-off-by: default avatarMaciej Patelczyk <maciej.patelczyk@intel.com>
Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
parent 9a0fff7b
...@@ -213,7 +213,7 @@ static void scic_sds_controller_power_control_timer_handler( ...@@ -213,7 +213,7 @@ static void scic_sds_controller_power_control_timer_handler(
static void scic_sds_controller_initialize_power_control(struct scic_sds_controller *scic) static void scic_sds_controller_initialize_power_control(struct scic_sds_controller *scic)
{ {
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
scic->power_control.timer = isci_timer_create(ihost, scic->power_control.timer = isci_timer_create(ihost,
scic, scic,
scic_sds_controller_power_control_timer_handler); scic_sds_controller_power_control_timer_handler);
...@@ -584,7 +584,7 @@ static void scic_sds_controller_transition_to_ready( ...@@ -584,7 +584,7 @@ static void scic_sds_controller_transition_to_ready(
struct scic_sds_controller *scic, struct scic_sds_controller *scic,
enum sci_status status) enum sci_status status)
{ {
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
if (scic->state_machine.current_state_id == if (scic->state_machine.current_state_id ==
SCI_BASE_CONTROLLER_STATE_STARTING) { SCI_BASE_CONTROLLER_STATE_STARTING) {
...@@ -602,7 +602,7 @@ static void scic_sds_controller_transition_to_ready( ...@@ -602,7 +602,7 @@ static void scic_sds_controller_transition_to_ready(
static void scic_sds_controller_timeout_handler(void *_scic) static void scic_sds_controller_timeout_handler(void *_scic)
{ {
struct scic_sds_controller *scic = _scic; struct scic_sds_controller *scic = _scic;
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
struct sci_base_state_machine *sm = &scic->state_machine; struct sci_base_state_machine *sm = &scic->state_machine;
if (sm->current_state_id == SCI_BASE_CONTROLLER_STATE_STARTING) if (sm->current_state_id == SCI_BASE_CONTROLLER_STATE_STARTING)
...@@ -770,7 +770,7 @@ static void scic_sds_controller_phy_startup_timeout_handler(void *_scic) ...@@ -770,7 +770,7 @@ static void scic_sds_controller_phy_startup_timeout_handler(void *_scic)
static enum sci_status scic_sds_controller_initialize_phy_startup(struct scic_sds_controller *scic) static enum sci_status scic_sds_controller_initialize_phy_startup(struct scic_sds_controller *scic)
{ {
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
scic->phy_startup_timer = isci_timer_create(ihost, scic->phy_startup_timer = isci_timer_create(ihost,
scic, scic,
...@@ -1796,7 +1796,7 @@ void scic_sds_controller_release_frame( ...@@ -1796,7 +1796,7 @@ void scic_sds_controller_release_frame(
*/ */
static void scic_sds_controller_set_default_config_parameters(struct scic_sds_controller *scic) static void scic_sds_controller_set_default_config_parameters(struct scic_sds_controller *scic)
{ {
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
u16 index; u16 index;
/* Default to APC mode. */ /* Default to APC mode. */
...@@ -2662,7 +2662,7 @@ enum sci_status scic_controller_initialize( ...@@ -2662,7 +2662,7 @@ enum sci_status scic_controller_initialize(
} }
ihost = sci_object_get_association(scic); ihost = scic->ihost;
sci_base_state_machine_change_state(sm, SCI_BASE_CONTROLLER_STATE_INITIALIZING); sci_base_state_machine_change_state(sm, SCI_BASE_CONTROLLER_STATE_INITIALIZING);
...@@ -2854,7 +2854,7 @@ enum sci_status scic_controller_start(struct scic_sds_controller *scic, ...@@ -2854,7 +2854,7 @@ enum sci_status scic_controller_start(struct scic_sds_controller *scic,
/* Assign all the task entries to scic physical function */ /* Assign all the task entries to scic physical function */
scic_sds_controller_assign_task_entries(scic); scic_sds_controller_assign_task_entries(scic);
/* Now initialze the completion queue */ /* Now initialize the completion queue */
scic_sds_controller_initialize_completion_queue(scic); scic_sds_controller_initialize_completion_queue(scic);
/* Initialize the unsolicited frame queue for use */ /* Initialize the unsolicited frame queue for use */
...@@ -2887,14 +2887,12 @@ enum sci_status scic_controller_start(struct scic_sds_controller *scic, ...@@ -2887,14 +2887,12 @@ enum sci_status scic_controller_start(struct scic_sds_controller *scic,
* *
* This method implements the actions taken by the struct scic_sds_controller on entry * This method implements the actions taken by the struct scic_sds_controller on entry
* to the SCI_BASE_CONTROLLER_STATE_INITIAL. - Set the state handlers to the * to the SCI_BASE_CONTROLLER_STATE_INITIAL. - Set the state handlers to the
* controllers initial state. none This function should initialze the * controllers initial state. none This function should initialize the
* controller object. * controller object.
*/ */
static void scic_sds_controller_initial_state_enter(void *object) static void scic_sds_controller_initial_state_enter(void *object)
{ {
struct scic_sds_controller *scic; struct scic_sds_controller *scic = object;
scic = (struct scic_sds_controller *)object;
sci_base_state_machine_change_state(&scic->state_machine, sci_base_state_machine_change_state(&scic->state_machine,
SCI_BASE_CONTROLLER_STATE_RESET); SCI_BASE_CONTROLLER_STATE_RESET);
...@@ -2911,7 +2909,7 @@ static void scic_sds_controller_initial_state_enter(void *object) ...@@ -2911,7 +2909,7 @@ static void scic_sds_controller_initial_state_enter(void *object)
*/ */
static inline void scic_sds_controller_starting_state_exit(void *object) static inline void scic_sds_controller_starting_state_exit(void *object)
{ {
struct scic_sds_controller *scic = (struct scic_sds_controller *)object; struct scic_sds_controller *scic = object;
isci_timer_stop(scic->timeout_timer); isci_timer_stop(scic->timeout_timer);
} }
...@@ -2927,9 +2925,7 @@ static inline void scic_sds_controller_starting_state_exit(void *object) ...@@ -2927,9 +2925,7 @@ static inline void scic_sds_controller_starting_state_exit(void *object)
*/ */
static void scic_sds_controller_ready_state_enter(void *object) static void scic_sds_controller_ready_state_enter(void *object)
{ {
struct scic_sds_controller *scic; struct scic_sds_controller *scic = object;
scic = (struct scic_sds_controller *)object;
/* set the default interrupt coalescence number and timeout value. */ /* set the default interrupt coalescence number and timeout value. */
scic_controller_set_interrupt_coalescence( scic_controller_set_interrupt_coalescence(
...@@ -2946,9 +2942,7 @@ static void scic_sds_controller_ready_state_enter(void *object) ...@@ -2946,9 +2942,7 @@ static void scic_sds_controller_ready_state_enter(void *object)
*/ */
static void scic_sds_controller_ready_state_exit(void *object) static void scic_sds_controller_ready_state_exit(void *object)
{ {
struct scic_sds_controller *scic; struct scic_sds_controller *scic = object;
scic = (struct scic_sds_controller *)object;
/* disable interrupt coalescence. */ /* disable interrupt coalescence. */
scic_controller_set_interrupt_coalescence(scic, 0, 0); scic_controller_set_interrupt_coalescence(scic, 0, 0);
...@@ -2966,9 +2960,7 @@ static void scic_sds_controller_ready_state_exit(void *object) ...@@ -2966,9 +2960,7 @@ static void scic_sds_controller_ready_state_exit(void *object)
*/ */
static void scic_sds_controller_stopping_state_enter(void *object) static void scic_sds_controller_stopping_state_enter(void *object)
{ {
struct scic_sds_controller *scic; struct scic_sds_controller *scic = object;
scic = (struct scic_sds_controller *)object;
/* Stop all of the components for this controller */ /* Stop all of the components for this controller */
scic_sds_controller_stop_phys(scic); scic_sds_controller_stop_phys(scic);
...@@ -2981,23 +2973,21 @@ static void scic_sds_controller_stopping_state_enter(void *object) ...@@ -2981,23 +2973,21 @@ static void scic_sds_controller_stopping_state_enter(void *object)
* @object: This is the object which is cast to a struct * @object: This is the object which is cast to a struct
* scic_sds_controller object. * scic_sds_controller object.
* *
* This funciton implements the actions taken by the struct scic_sds_controller * This function implements the actions taken by the struct scic_sds_controller
* on exit from the SCI_BASE_CONTROLLER_STATE_STOPPING. - * on exit from the SCI_BASE_CONTROLLER_STATE_STOPPING. -
* This function stops the controller stopping timeout timer. * This function stops the controller stopping timeout timer.
*/ */
static inline void scic_sds_controller_stopping_state_exit(void *object) static inline void scic_sds_controller_stopping_state_exit(void *object)
{ {
struct scic_sds_controller *scic = struct scic_sds_controller *scic = object;
(struct scic_sds_controller *)object;
isci_timer_stop(scic->timeout_timer); isci_timer_stop(scic->timeout_timer);
} }
static void scic_sds_controller_resetting_state_enter(void *object) static void scic_sds_controller_resetting_state_enter(void *object)
{ {
struct scic_sds_controller *scic; struct scic_sds_controller *scic = object;
scic = container_of(object, typeof(*scic), parent);
scic_sds_controller_reset_hardware(scic); scic_sds_controller_reset_hardware(scic);
sci_base_state_machine_change_state(&scic->state_machine, sci_base_state_machine_change_state(&scic->state_machine,
SCI_BASE_CONTROLLER_STATE_RESET); SCI_BASE_CONTROLLER_STATE_RESET);
...@@ -3051,7 +3041,7 @@ enum sci_status scic_controller_construct(struct scic_sds_controller *scic, ...@@ -3051,7 +3041,7 @@ enum sci_status scic_controller_construct(struct scic_sds_controller *scic,
u8 i; u8 i;
sci_base_state_machine_construct(&scic->state_machine, sci_base_state_machine_construct(&scic->state_machine,
&scic->parent, scic_sds_controller_state_table, scic, scic_sds_controller_state_table,
SCI_BASE_CONTROLLER_STATE_INITIAL); SCI_BASE_CONTROLLER_STATE_INITIAL);
sci_base_state_machine_start(&scic->state_machine); sci_base_state_machine_start(&scic->state_machine);
......
...@@ -125,17 +125,17 @@ struct scic_power_control { ...@@ -125,17 +125,17 @@ struct scic_power_control {
}; };
struct isci_host;
/** /**
* struct scic_sds_controller - * struct scic_sds_controller -
* *
* This structure represents the SCU contoller object. * This structure represents the SCU controller object.
*/ */
struct scic_sds_controller { struct scic_sds_controller {
/** /**
* The field specifies that the parent object for the base controller * The field specifies that the peer object for the controller.
* is the base object itself.
*/ */
struct sci_base_object parent; struct isci_host *ihost;
/** /**
* This field contains the information for the base controller state * This field contains the information for the base controller state
......
...@@ -336,7 +336,7 @@ enum sci_status scic_sds_phy_initialize( ...@@ -336,7 +336,7 @@ enum sci_status scic_sds_phy_initialize(
struct scu_link_layer_registers __iomem *link_layer_registers) struct scu_link_layer_registers __iomem *link_layer_registers)
{ {
struct scic_sds_controller *scic = scic_sds_phy_get_controller(sci_phy); struct scic_sds_controller *scic = scic_sds_phy_get_controller(sci_phy);
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
/* Create the SIGNATURE FIS Timeout timer for this phy */ /* Create the SIGNATURE FIS Timeout timer for this phy */
sci_phy->sata_timeout_timer = sci_phy->sata_timeout_timer =
...@@ -1932,7 +1932,7 @@ scic_sds_phy_stopped_state_start_handler(struct scic_sds_phy *sci_phy) ...@@ -1932,7 +1932,7 @@ scic_sds_phy_stopped_state_start_handler(struct scic_sds_phy *sci_phy)
struct scic_sds_controller *scic; struct scic_sds_controller *scic;
scic = scic_sds_phy_get_controller(sci_phy), scic = scic_sds_phy_get_controller(sci_phy),
ihost = sci_object_get_association(scic); ihost = scic->ihost;
/* Create the SIGNATURE FIS Timeout timer for this phy */ /* Create the SIGNATURE FIS Timeout timer for this phy */
sci_phy->sata_timeout_timer = isci_timer_create(ihost, sci_phy, sci_phy->sata_timeout_timer = isci_timer_create(ihost, sci_phy,
...@@ -2220,7 +2220,7 @@ static void scic_sds_phy_stopped_state_enter(void *object) ...@@ -2220,7 +2220,7 @@ static void scic_sds_phy_stopped_state_enter(void *object)
{ {
struct scic_sds_phy *sci_phy = (struct scic_sds_phy *)object; struct scic_sds_phy *sci_phy = (struct scic_sds_phy *)object;
struct scic_sds_controller *scic = scic_sds_phy_get_controller(sci_phy); struct scic_sds_controller *scic = scic_sds_phy_get_controller(sci_phy);
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
sci_phy = (struct scic_sds_phy *)object; sci_phy = (struct scic_sds_phy *)object;
......
...@@ -657,7 +657,7 @@ static void scic_sds_port_activate_phy(struct scic_sds_port *sci_port, ...@@ -657,7 +657,7 @@ static void scic_sds_port_activate_phy(struct scic_sds_port *sci_port,
{ {
struct scic_sds_controller *scic = scic_sds_port_get_controller(sci_port); struct scic_sds_controller *scic = scic_sds_port_get_controller(sci_port);
struct sci_sas_identify_address_frame_protocols protocols; struct sci_sas_identify_address_frame_protocols protocols;
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
scic_sds_phy_get_attached_phy_protocols(sci_phy, &protocols); scic_sds_phy_get_attached_phy_protocols(sci_phy, &protocols);
...@@ -679,7 +679,7 @@ void scic_sds_port_deactivate_phy(struct scic_sds_port *sci_port, ...@@ -679,7 +679,7 @@ void scic_sds_port_deactivate_phy(struct scic_sds_port *sci_port,
{ {
struct scic_sds_controller *scic = scic_sds_port_get_controller(sci_port); struct scic_sds_controller *scic = scic_sds_port_get_controller(sci_port);
struct isci_port *iport = sci_object_get_association(sci_port); struct isci_port *iport = sci_object_get_association(sci_port);
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
struct isci_phy *iphy = sci_object_get_association(sci_phy); struct isci_phy *iphy = sci_object_get_association(sci_phy);
sci_port->active_phy_mask &= ~(1 << sci_phy->phy_index); sci_port->active_phy_mask &= ~(1 << sci_phy->phy_index);
...@@ -1012,7 +1012,7 @@ void scic_sds_port_broadcast_change_received( ...@@ -1012,7 +1012,7 @@ void scic_sds_port_broadcast_change_received(
struct scic_sds_phy *sci_phy) struct scic_sds_phy *sci_phy)
{ {
struct scic_sds_controller *scic = sci_port->owning_controller; struct scic_sds_controller *scic = sci_port->owning_controller;
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
/* notify the user. */ /* notify the user. */
isci_port_bc_change_received(ihost, sci_port, sci_phy); isci_port_bc_change_received(ihost, sci_port, sci_phy);
...@@ -1666,7 +1666,7 @@ static void scic_sds_port_ready_substate_operational_enter(void *object) ...@@ -1666,7 +1666,7 @@ static void scic_sds_port_ready_substate_operational_enter(void *object)
struct scic_sds_port *sci_port = (struct scic_sds_port *)object; struct scic_sds_port *sci_port = (struct scic_sds_port *)object;
struct scic_sds_controller *scic = struct scic_sds_controller *scic =
scic_sds_port_get_controller(sci_port); scic_sds_port_get_controller(sci_port);
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
struct isci_port *iport = sci_object_get_association(sci_port); struct isci_port *iport = sci_object_get_association(sci_port);
scic_sds_port_set_ready_state_handlers( scic_sds_port_set_ready_state_handlers(
...@@ -1707,7 +1707,7 @@ static void scic_sds_port_ready_substate_operational_exit(void *object) ...@@ -1707,7 +1707,7 @@ static void scic_sds_port_ready_substate_operational_exit(void *object)
struct scic_sds_port *sci_port = (struct scic_sds_port *)object; struct scic_sds_port *sci_port = (struct scic_sds_port *)object;
struct scic_sds_controller *scic = struct scic_sds_controller *scic =
scic_sds_port_get_controller(sci_port); scic_sds_port_get_controller(sci_port);
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
struct isci_port *iport = sci_object_get_association(sci_port); struct isci_port *iport = sci_object_get_association(sci_port);
/* /*
...@@ -1738,7 +1738,7 @@ static void scic_sds_port_ready_substate_configuring_enter(void *object) ...@@ -1738,7 +1738,7 @@ static void scic_sds_port_ready_substate_configuring_enter(void *object)
struct scic_sds_port *sci_port = (struct scic_sds_port *)object; struct scic_sds_port *sci_port = (struct scic_sds_port *)object;
struct scic_sds_controller *scic = struct scic_sds_controller *scic =
scic_sds_port_get_controller(sci_port); scic_sds_port_get_controller(sci_port);
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
struct isci_port *iport = sci_object_get_association(sci_port); struct isci_port *iport = sci_object_get_association(sci_port);
scic_sds_port_set_ready_state_handlers( scic_sds_port_set_ready_state_handlers(
...@@ -1825,7 +1825,7 @@ static enum sci_status ...@@ -1825,7 +1825,7 @@ static enum sci_status
scic_sds_port_stopped_state_start_handler(struct scic_sds_port *sci_port) scic_sds_port_stopped_state_start_handler(struct scic_sds_port *sci_port)
{ {
struct scic_sds_controller *scic = sci_port->owning_controller; struct scic_sds_controller *scic = sci_port->owning_controller;
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
enum sci_status status = SCI_SUCCESS; enum sci_status status = SCI_SUCCESS;
u32 phy_mask; u32 phy_mask;
...@@ -2312,7 +2312,7 @@ static void scic_sds_port_ready_state_enter(void *object) ...@@ -2312,7 +2312,7 @@ static void scic_sds_port_ready_state_enter(void *object)
sci_port = container_of(object, typeof(*sci_port), parent); sci_port = container_of(object, typeof(*sci_port), parent);
scic = scic_sds_port_get_controller(sci_port); scic = scic_sds_port_get_controller(sci_port);
ihost = sci_object_get_association(scic); ihost = scic->ihost;
iport = sci_object_get_association(sci_port); iport = sci_object_get_association(sci_port);
/* Put the ready state handlers in place though they will not be there long */ /* Put the ready state handlers in place though they will not be there long */
......
...@@ -821,7 +821,7 @@ enum sci_status scic_sds_port_configuration_agent_initialize( ...@@ -821,7 +821,7 @@ enum sci_status scic_sds_port_configuration_agent_initialize(
{ {
enum sci_status status = SCI_SUCCESS; enum sci_status status = SCI_SUCCESS;
enum scic_port_configuration_mode mode; enum scic_port_configuration_mode mode;
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
mode = scic->oem_parameters.sds1.controller.mode_type; mode = scic->oem_parameters.sds1.controller.mode_type;
......
...@@ -1612,7 +1612,7 @@ static void scic_sds_request_completed_state_enter(void *object) ...@@ -1612,7 +1612,7 @@ static void scic_sds_request_completed_state_enter(void *object)
struct scic_sds_request *sci_req = (struct scic_sds_request *)object; struct scic_sds_request *sci_req = (struct scic_sds_request *)object;
struct scic_sds_controller *scic = struct scic_sds_controller *scic =
scic_sds_request_get_controller(sci_req); scic_sds_request_get_controller(sci_req);
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
struct isci_request *ireq = sci_object_get_association(sci_req); struct isci_request *ireq = sci_object_get_association(sci_req);
SET_STATE_HANDLER(sci_req, SET_STATE_HANDLER(sci_req,
......
...@@ -365,7 +365,7 @@ int isci_host_init(struct isci_host *isci_host) ...@@ -365,7 +365,7 @@ int isci_host_init(struct isci_host *isci_host)
} }
isci_host->core_controller = controller; isci_host->core_controller = controller;
sci_object_set_association(isci_host->core_controller, isci_host); controller->ihost = isci_host;
spin_lock_init(&isci_host->state_lock); spin_lock_init(&isci_host->state_lock);
spin_lock_init(&isci_host->scic_lock); spin_lock_init(&isci_host->scic_lock);
spin_lock_init(&isci_host->queue_lock); spin_lock_init(&isci_host->queue_lock);
......
...@@ -68,6 +68,7 @@ ...@@ -68,6 +68,7 @@
#include "scic_port.h" #include "scic_port.h"
#include "port.h" #include "port.h"
#include "request.h" #include "request.h"
#include "core/scic_sds_controller.h"
static void isci_port_change_state( static void isci_port_change_state(
struct isci_port *isci_port, struct isci_port *isci_port,
...@@ -472,7 +473,7 @@ void isci_port_invalid_link_up(struct scic_sds_controller *scic, ...@@ -472,7 +473,7 @@ void isci_port_invalid_link_up(struct scic_sds_controller *scic,
struct scic_sds_port *sci_port, struct scic_sds_port *sci_port,
struct scic_sds_phy *phy) struct scic_sds_phy *phy)
{ {
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
dev_warn(&ihost->pdev->dev, "Invalid link up!\n"); dev_warn(&ihost->pdev->dev, "Invalid link up!\n");
} }
...@@ -481,7 +482,7 @@ void isci_port_stop_complete(struct scic_sds_controller *scic, ...@@ -481,7 +482,7 @@ void isci_port_stop_complete(struct scic_sds_controller *scic,
struct scic_sds_port *sci_port, struct scic_sds_port *sci_port,
enum sci_status completion_status) enum sci_status completion_status)
{ {
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
dev_dbg(&ihost->pdev->dev, "Port stop complete\n"); dev_dbg(&ihost->pdev->dev, "Port stop complete\n");
} }
...@@ -1211,7 +1211,7 @@ static void scic_sds_remote_device_stopped_state_enter(void *object) ...@@ -1211,7 +1211,7 @@ static void scic_sds_remote_device_stopped_state_enter(void *object)
sci_dev = container_of(object, typeof(*sci_dev), parent); sci_dev = container_of(object, typeof(*sci_dev), parent);
scic = scic_sds_remote_device_get_controller(sci_dev); scic = scic_sds_remote_device_get_controller(sci_dev);
ihost = sci_object_get_association(scic); ihost = scic->ihost;
idev = sci_object_get_association(sci_dev); idev = sci_object_get_association(sci_dev);
SET_STATE_HANDLER(sci_dev, scic_sds_remote_device_state_handler_table, SET_STATE_HANDLER(sci_dev, scic_sds_remote_device_state_handler_table,
...@@ -1232,7 +1232,7 @@ static void scic_sds_remote_device_starting_state_enter(void *object) ...@@ -1232,7 +1232,7 @@ static void scic_sds_remote_device_starting_state_enter(void *object)
struct scic_sds_remote_device *sci_dev = container_of(object, typeof(*sci_dev), struct scic_sds_remote_device *sci_dev = container_of(object, typeof(*sci_dev),
parent); parent);
struct scic_sds_controller *scic = scic_sds_remote_device_get_controller(sci_dev); struct scic_sds_controller *scic = scic_sds_remote_device_get_controller(sci_dev);
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
struct isci_remote_device *idev = sci_object_get_association(sci_dev); struct isci_remote_device *idev = sci_object_get_association(sci_dev);
SET_STATE_HANDLER(sci_dev, scic_sds_remote_device_state_handler_table, SET_STATE_HANDLER(sci_dev, scic_sds_remote_device_state_handler_table,
...@@ -1247,7 +1247,7 @@ static void scic_sds_remote_device_ready_state_enter(void *object) ...@@ -1247,7 +1247,7 @@ static void scic_sds_remote_device_ready_state_enter(void *object)
struct scic_sds_remote_device *sci_dev = container_of(object, typeof(*sci_dev), struct scic_sds_remote_device *sci_dev = container_of(object, typeof(*sci_dev),
parent); parent);
struct scic_sds_controller *scic = scic_sds_remote_device_get_controller(sci_dev); struct scic_sds_controller *scic = scic_sds_remote_device_get_controller(sci_dev);
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
struct isci_remote_device *idev = sci_object_get_association(sci_dev); struct isci_remote_device *idev = sci_object_get_association(sci_dev);
SET_STATE_HANDLER(sci_dev, SET_STATE_HANDLER(sci_dev,
...@@ -1270,7 +1270,7 @@ static void scic_sds_remote_device_ready_state_exit(void *object) ...@@ -1270,7 +1270,7 @@ static void scic_sds_remote_device_ready_state_exit(void *object)
sci_base_state_machine_stop(&sci_dev->ready_substate_machine); sci_base_state_machine_stop(&sci_dev->ready_substate_machine);
else { else {
struct scic_sds_controller *scic = scic_sds_remote_device_get_controller(sci_dev); struct scic_sds_controller *scic = scic_sds_remote_device_get_controller(sci_dev);
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
struct isci_remote_device *idev = sci_object_get_association(sci_dev); struct isci_remote_device *idev = sci_object_get_association(sci_dev);
isci_remote_device_not_ready(ihost, idev, isci_remote_device_not_ready(ihost, idev,
......
...@@ -57,6 +57,7 @@ ...@@ -57,6 +57,7 @@
#define _SCI_ENVIRONMENT_H_ #define _SCI_ENVIRONMENT_H_
#include "isci.h" #include "isci.h"
#include "core/scic_sds_controller.h"
struct scic_sds_controller; struct scic_sds_controller;
struct scic_sds_phy; struct scic_sds_phy;
...@@ -65,7 +66,7 @@ struct scic_sds_remote_device; ...@@ -65,7 +66,7 @@ struct scic_sds_remote_device;
static inline struct device *scic_to_dev(struct scic_sds_controller *scic) static inline struct device *scic_to_dev(struct scic_sds_controller *scic)
{ {
struct isci_host *isci_host = sci_object_get_association(scic); struct isci_host *isci_host = scic->ihost;
return &isci_host->pdev->dev; return &isci_host->pdev->dev;
} }
......
...@@ -249,7 +249,7 @@ static void scic_sds_smp_remote_device_ready_idle_substate_enter(void *object) ...@@ -249,7 +249,7 @@ static void scic_sds_smp_remote_device_ready_idle_substate_enter(void *object)
struct scic_sds_remote_device *sci_dev = container_of(object, typeof(*sci_dev), struct scic_sds_remote_device *sci_dev = container_of(object, typeof(*sci_dev),
parent); parent);
struct scic_sds_controller *scic = scic_sds_remote_device_get_controller(sci_dev); struct scic_sds_controller *scic = scic_sds_remote_device_get_controller(sci_dev);
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
struct isci_remote_device *idev = sci_object_get_association(sci_dev); struct isci_remote_device *idev = sci_object_get_association(sci_dev);
SET_STATE_HANDLER(sci_dev, SET_STATE_HANDLER(sci_dev,
...@@ -273,7 +273,7 @@ static void scic_sds_smp_remote_device_ready_cmd_substate_enter(void *object) ...@@ -273,7 +273,7 @@ static void scic_sds_smp_remote_device_ready_cmd_substate_enter(void *object)
struct scic_sds_remote_device *sci_dev = container_of(object, typeof(*sci_dev), struct scic_sds_remote_device *sci_dev = container_of(object, typeof(*sci_dev),
parent); parent);
struct scic_sds_controller *scic = scic_sds_remote_device_get_controller(sci_dev); struct scic_sds_controller *scic = scic_sds_remote_device_get_controller(sci_dev);
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
struct isci_remote_device *idev = sci_object_get_association(sci_dev); struct isci_remote_device *idev = sci_object_get_association(sci_dev);
BUG_ON(sci_dev->working_request == NULL); BUG_ON(sci_dev->working_request == NULL);
......
...@@ -582,7 +582,7 @@ scic_sds_stp_remote_device_ready_idle_substate_resume_complete_handler(void *use ...@@ -582,7 +582,7 @@ scic_sds_stp_remote_device_ready_idle_substate_resume_complete_handler(void *use
struct scic_sds_remote_device *sci_dev = user_cookie; struct scic_sds_remote_device *sci_dev = user_cookie;
struct isci_remote_device *idev = sci_object_get_association(sci_dev); struct isci_remote_device *idev = sci_object_get_association(sci_dev);
struct scic_sds_controller *scic = scic_sds_remote_device_get_controller(sci_dev); struct scic_sds_controller *scic = scic_sds_remote_device_get_controller(sci_dev);
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
/* /*
* For NCQ operation we do not issue a * For NCQ operation we do not issue a
...@@ -639,7 +639,7 @@ static void scic_sds_stp_remote_device_ready_cmd_substate_enter(void *object) ...@@ -639,7 +639,7 @@ static void scic_sds_stp_remote_device_ready_cmd_substate_enter(void *object)
struct scic_sds_remote_device *sci_dev = container_of(object, typeof(*sci_dev), struct scic_sds_remote_device *sci_dev = container_of(object, typeof(*sci_dev),
parent); parent);
struct scic_sds_controller *scic = scic_sds_remote_device_get_controller(sci_dev); struct scic_sds_controller *scic = scic_sds_remote_device_get_controller(sci_dev);
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
struct isci_remote_device *idev = sci_object_get_association(sci_dev); struct isci_remote_device *idev = sci_object_get_association(sci_dev);
BUG_ON(sci_dev->working_request == NULL); BUG_ON(sci_dev->working_request == NULL);
...@@ -667,7 +667,7 @@ static void scic_sds_stp_remote_device_ready_ncq_error_substate_enter( ...@@ -667,7 +667,7 @@ static void scic_sds_stp_remote_device_ready_ncq_error_substate_enter(
struct scic_sds_remote_device *sci_dev = container_of(object, typeof(*sci_dev), struct scic_sds_remote_device *sci_dev = container_of(object, typeof(*sci_dev),
parent); parent);
struct scic_sds_controller *scic = scic_sds_remote_device_get_controller(sci_dev); struct scic_sds_controller *scic = scic_sds_remote_device_get_controller(sci_dev);
struct isci_host *ihost = sci_object_get_association(scic); struct isci_host *ihost = scic->ihost;
struct isci_remote_device *idev = sci_object_get_association(sci_dev); struct isci_remote_device *idev = sci_object_get_association(sci_dev);
SET_STATE_HANDLER(sci_dev, SET_STATE_HANDLER(sci_dev,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment