Linux Kernel
3.7.1
|
#include <scsi/sas_ata.h>
#include "remote_device.h"
#include "phy.h"
#include "isci.h"
#include "remote_node_table.h"
#include "registers.h"
#include "unsolicited_frame_control.h"
#include "probe_roms.h"
Go to the source code of this file.
Data Structures | |
struct | sci_power_control |
struct | sci_port_configuration_agent |
struct | isci_host |
struct | isci_pci_info |
Macros | |
#define | IHOST_START_PENDING 0 |
#define | IHOST_STOP_PENDING 1 |
#define | IHOST_IRQ_ENABLED 2 |
#define | SCI_MAX_MSIX_INT (SCI_NUM_MSI_X_INT*SCI_MAX_CONTROLLERS) |
#define | for_each_isci_host(id, ihost, pdev) |
#define | ISCI_PEG 0 |
#define | ISCI_TAG(seq, tci) (((u16) (seq)) << 12 | tci) |
#define | ISCI_TAG_SEQ(tag) (((tag) >> 12) & (SCI_MAX_SEQ-1)) |
#define | ISCI_TAG_TCI(tag) ((tag) & (SCI_MAX_IO_REQUESTS-1)) |
#define | ISCI_COALESCE_BASE 9 |
#define | sci_controller_clear_invalid_phy(controller, phy) ((controller)->invalid_phy_mask &= ~(1 << (phy)->phy_index)) |
#define | CABLE_OVERRIDE_DISABLED (0x10000) |
#define | SGPIO_HW_CONTROL 0x00000443 |
Typedefs | |
typedef void(* | port_config_fn )(struct isci_host *, struct sci_port_configuration_agent *, struct isci_port *, struct isci_phy *) |
Enumerations | |
enum | sci_controller_states { SCIC_INITIAL = 0, SCIC_RESET, SCIC_INITIALIZING, SCIC_INITIALIZED, SCIC_STARTING, SCIC_READY, SCIC_RESETTING, SCIC_STOPPING, SCIC_FAILED } |
enum | cable_selections { short_cable = 0, long_cable = 1, medium_cable = 2, undefined_cable = 3 } |
#define ISCI_TAG_SEQ | ( | tag | ) | (((tag) >> 12) & (SCI_MAX_SEQ-1)) |
#define ISCI_TAG_TCI | ( | tag | ) | ((tag) & (SCI_MAX_IO_REQUESTS-1)) |
#define sci_controller_clear_invalid_phy | ( | controller, | |
phy | |||
) | ((controller)->invalid_phy_mask &= ~(1 << (phy)->phy_index)) |
sci_controller_clear_invalid_phy() -
This macro will clear the bit in the invalid phy mask for this controller object. This is used to control messages reported for invalid link up notifications.
#define SCI_MAX_MSIX_INT (SCI_NUM_MSI_X_INT*SCI_MAX_CONTROLLERS) |
enum cable_selections |
enum sci_controller_states - This enumeration depicts all the states for the common controller state machine.
SCIC_INITIAL |
Simply the initial state for the base controller state machine. |
SCIC_RESET |
This state indicates that the controller is reset. The memory for the controller is in it's initial state, but the controller requires initialization. This state is entered from the INITIAL state. This state is entered from the RESETTING state. |
SCIC_INITIALIZING |
This state is typically an action state that indicates the controller is in the process of initialization. In this state no new IO operations are permitted. This state is entered from the RESET state. |
SCIC_INITIALIZED |
This state indicates that the controller has been successfully initialized. In this state no new IO operations are permitted. This state is entered from the INITIALIZING state. |
SCIC_STARTING |
This state indicates the the controller is in the process of becoming ready (i.e. starting). In this state no new IO operations are permitted. This state is entered from the INITIALIZED state. |
SCIC_READY |
This state indicates the controller is now ready. Thus, the user is able to perform IO operations on the controller. This state is entered from the STARTING state. |
SCIC_RESETTING |
This state is typically an action state that indicates the controller is in the process of resetting. Thus, the user is unable to perform IO operations on the controller. A reset is considered destructive in most cases. This state is entered from the READY state. This state is entered from the FAILED state. This state is entered from the STOPPED state. |
SCIC_STOPPING |
This state indicates that the controller is in the process of stopping. In this state no new IO operations are permitted, but existing IO operations are allowed to complete. This state is entered from the READY state. |
SCIC_FAILED |
This state indicates that the controller could not successfully be initialized. In this state no new IO operations are permitted. This state is entered from the INITIALIZING state. This state is entered from the STARTING state. This state is entered from the STOPPING state. This state is entered from the RESETTING state. |
enum cable_selections decode_cable_selection | ( | struct isci_host * | ihost, |
int | phy | ||
) |
Definition at line 734 of file port_config.c.
enum sci_status isci_free_tag | ( | struct isci_host * | ihost, |
u16 | io_tag | ||
) |
isci_host_completion_routine() - This function is the delayed service routine that calls the sci core library's completion handler. It's scheduled as a tasklet from the interrupt service routine when interrupts in use, or set as the timeout function in polled mode. : This parameter specifies the ISCI host object
isci_host_deinit - shutdown frame reception and dma : host to take down
This is called in either the driver shutdown or the suspend path. In the shutdown case libsas went through port teardown and normal device removal (i.e. physical links stayed up to service scsi_device removal commands). In the suspend case we disable the hardware without notifying libsas of the link down events since we want libsas to remember the domain across the suspend/resume cycle
isci_host_init - (re-)initialize hardware and internal (private) state : host to init
Any public facing objects (like asd_sas_port, and asd_sas_phys), or one-time initialization objects like locks and waitqueues, are not touched (they are initialized in isci_host_alloc)
enum sci_status sci_controller_allocate_remote_node_context | ( | struct isci_host * | ihost, |
struct isci_remote_device * | idev, | ||
u16 * | node_id | ||
) |
This method allocates remote node index and the reserves the remote node context space for use. This method can fail if there are no more remote node index available. : This is the controller object which contains the set of free remote node ids : This is the device object which is requesting the a remote node id : This is the remote node id that is assinged to the device if one is available
enum sci_status SCI_FAILURE_OUT_OF_RESOURCES if there are no available remote node index available.
enum sci_status sci_controller_complete_io | ( | struct isci_host * | ihost, |
struct isci_remote_device * | idev, | ||
struct isci_request * | ireq | ||
) |
sci_controller_complete_io() - This method will perform core specific completion operations for an IO request. After this method is invoked, the user should consider the IO request as invalid until it is properly reused (i.e. re-constructed). : The handle to the controller object for which to complete the IO request. : The handle to the remote device object for which to complete the IO request. : the handle to the io request object to complete.
enum sci_status sci_controller_continue_io | ( | struct isci_request * | ireq | ) |
void sci_controller_remote_device_stopped | ( | struct isci_host * | ihost, |
struct isci_remote_device * | idev | ||
) |
enum sci_status sci_controller_start_io | ( | struct isci_host * | ihost, |
struct isci_remote_device * | idev, | ||
struct isci_request * | ireq | ||
) |
enum sci_task_status sci_controller_start_task | ( | struct isci_host * | ihost, |
struct isci_remote_device * | idev, | ||
struct isci_request * | ireq | ||
) |
sci_controller_start_task() - This method is called by the SCIC user to send/start a framework task management request. : the handle to the controller object for which to start the task management request. : the handle to the remote device object for which to start the task management request. : the handle to the task request object to start.
enum sci_status sci_controller_terminate_request | ( | struct isci_host * | ihost, |
struct isci_remote_device * | idev, | ||
struct isci_request * | ireq | ||
) |
void sci_controller_transition_to_ready | ( | struct isci_host * | ihost, |
enum sci_status | status | ||
) |
void sci_port_configuration_agent_construct | ( | struct sci_port_configuration_agent * | port_agent | ) |
This method will construct the port configuration agent for operation. This call is universal for both manual port configuration and automatic port configuration modes.
Definition at line 715 of file port_config.c.
enum sci_status sci_port_configuration_agent_initialize | ( | struct isci_host * | ihost, |
struct sci_port_configuration_agent * | port_agent | ||
) |
Definition at line 739 of file port_config.c.
|
read |