isci_port
struct isci_port *iport = &ihost->ports[index];
struct isci_port *iport = &ihost->ports[i];
struct isci_port *iport = &ihost->ports[index];
struct isci_port *iport = &ihost->ports[i];
void sci_controller_link_up(struct isci_host *ihost, struct isci_port *iport,
void sci_controller_link_down(struct isci_host *ihost, struct isci_port *iport,
struct isci_port *, struct isci_phy *);
struct isci_port ports[SCI_MAX_PORTS + 1]; /* includes dummy port */
if (!idev || !idev->isci_port || !idev->isci_port->isci_host)
return &idev->isci_port->isci_host->pdev->dev;
void sci_controller_link_up(struct isci_host *ihost, struct isci_port *iport,
void sci_controller_link_down(struct isci_host *ihost, struct isci_port *iport,
struct isci_port *iport = &ihost->ports[i];
struct isci_port *iport = iphy->owning_port;
struct isci_port *iport = iphy->owning_port;
struct isci_port *iport = iphy->owning_port;
struct isci_port *iport, u8 phy_index)
struct isci_port *phy_get_non_dummy_port(struct isci_phy *iphy)
struct isci_port *iport = iphy->owning_port;
struct isci_port *iport)
struct isci_port *iport;
struct isci_port *iport,
struct isci_port *phy_get_non_dummy_port(struct isci_phy *iphy);
struct isci_port *iport);
struct isci_port *owning_port;
static u32 sci_port_get_phys(struct isci_port *iport)
struct isci_port *iport = container_of(sm, typeof(*iport), sm);
struct isci_port *iport = container_of(sm, typeof(*iport), sm);
enum sci_status sci_port_start(struct isci_port *iport)
enum sci_status sci_port_stop(struct isci_port *iport)
static enum sci_status sci_port_hard_reset(struct isci_port *iport, u32 timeout)
enum sci_status sci_port_add_phy(struct isci_port *iport,
enum sci_status sci_port_remove_phy(struct isci_port *iport,
enum sci_status sci_port_get_properties(struct isci_port *iport,
enum sci_status sci_port_link_up(struct isci_port *iport,
enum sci_status sci_port_link_down(struct isci_port *iport,
enum sci_status sci_port_start_io(struct isci_port *iport,
enum sci_status sci_port_complete_io(struct isci_port *iport,
static void sci_port_bcn_enable(struct isci_port *iport)
static void sci_port_enable_port_task_scheduler(struct isci_port *iport)
static void sci_port_disable_port_task_scheduler(struct isci_port *iport)
static void sci_port_post_dummy_remote_node(struct isci_port *iport)
struct isci_port *iport = container_of(sm, typeof(*iport), sm);
struct isci_port *iport = container_of(sm, typeof(*iport), sm);
struct isci_port *iport = container_of(sm, typeof(*iport), sm);
struct isci_port *iport = container_of(sm, typeof(*iport), sm);
struct isci_port *iport = container_of(sm, typeof(*iport), sm);
struct isci_port *iport = container_of(sm, typeof(*iport), sm);
void sci_port_set_hang_detection_timeout(struct isci_port *iport, u32 timeout)
struct isci_port *iport,
void sci_port_construct(struct isci_port *iport, u8 index,
void sci_port_broadcast_change_received(struct isci_port *iport, struct isci_phy *iphy)
static void wait_port_reset(struct isci_host *ihost, struct isci_port *iport)
int isci_port_perform_hard_reset(struct isci_host *ihost, struct isci_port *iport,
struct isci_port *iport = dev->port->lldd_port;
struct isci_port *iport = phy->port->lldd_port;
struct isci_port *iport,
struct isci_port *iport = NULL;
struct isci_port *isci_port)
"%s: isci_port = %p\n", __func__, isci_port);
if (isci_port) {
&isci_port->remote_dev_list,
"%s: isci_port = %p - Done\n", __func__, isci_port);
static void port_state_machine_change(struct isci_port *iport,
static void isci_port_hard_reset_complete(struct isci_port *isci_port,
struct isci_host *ihost = isci_port->owning_controller;
__func__, isci_port, completion_status);
isci_port->hard_reset_status = completion_status;
if (isci_port->active_phy_mask == 0) {
int phy_idx = isci_port->last_active_phy;
isci_port_link_down(ihost, iphy, isci_port);
port_state_machine_change(isci_port, SCI_PORT_SUB_WAITING);
clear_bit(IPORT_RESET_PENDING, &isci_port->state);
bool sci_port_is_valid_phy_assignment(struct isci_port *iport, u32 phy_index)
struct isci_port *iport,
static struct isci_phy *sci_port_get_a_connected_phy(struct isci_port *iport)
static enum sci_status sci_port_set_phy(struct isci_port *iport, struct isci_phy *iphy)
static enum sci_status sci_port_clear_phy(struct isci_port *iport, struct isci_phy *iphy)
void sci_port_get_sas_address(struct isci_port *iport, struct sci_sas_address *sas)
void sci_port_get_attached_sas_address(struct isci_port *iport, struct sci_sas_address *sas)
static void sci_port_construct_dummy_rnc(struct isci_port *iport, u16 rni)
static void sci_port_construct_dummy_task(struct isci_port *iport, u16 tag)
static void sci_port_destroy_dummy_resources(struct isci_port *iport)
void sci_port_setup_transports(struct isci_port *iport, u32 device_id)
static void sci_port_resume_phy(struct isci_port *iport, struct isci_phy *iphy)
static void sci_port_activate_phy(struct isci_port *iport,
void sci_port_deactivate_phy(struct isci_port *iport, struct isci_phy *iphy,
static void sci_port_invalid_link_up(struct isci_port *iport, struct isci_phy *iphy)
static void sci_port_general_link_up_handler(struct isci_port *iport,
static bool sci_port_is_wide(struct isci_port *iport)
static struct device *sciport_to_dev(struct isci_port *iport)
bool sci_port_link_detected(struct isci_port *iport, struct isci_phy *iphy)
struct isci_port *table;
struct isci_port *dst_port = &(ihost->ports[iphy->phy_index]);
struct isci_port *iport = container_of(tmr, typeof(*iport), timer);
static void sci_port_update_viit_entry(struct isci_port *iport)
enum sas_linkrate sci_port_get_max_allowed_speed(struct isci_port *iport)
static void sci_port_suspend_port_task_scheduler(struct isci_port *iport)
static void sci_port_get_protocols(struct isci_port *iport, struct sci_phy_proto *proto)
static void sci_port_post_dummy_request(struct isci_port *iport)
static void sci_port_abort_dummy_request(struct isci_port *iport)
sci_port_resume_port_task_scheduler(struct isci_port *iport)
struct isci_port *iport = container_of(sm, typeof(*iport), sm);
struct isci_port *iport = container_of(sm, typeof(*iport), sm);
struct isci_port *iport = container_of(sm, typeof(*iport), sm);
static void sci_port_invalidate_dummy_remote_node(struct isci_port *iport)
static inline void sci_port_decrement_request_count(struct isci_port *iport)
struct isci_port *iport,
enum sci_status sci_port_start(struct isci_port *iport);
enum sci_status sci_port_stop(struct isci_port *iport);
struct isci_port *iport,
struct isci_port *iport,
struct isci_port *iport,
void isci_port_bcn_enable(struct isci_host *, struct isci_port *);
struct isci_port *iport,
struct isci_port *iport,
struct isci_port *iport,
enum sci_status sci_port_link_up(struct isci_port *iport,
enum sci_status sci_port_link_down(struct isci_port *iport,
struct isci_port *iport,
struct isci_port *iport,
struct isci_port *iport);
struct isci_port *iport,
struct isci_port *iport,
struct isci_port *iport,
struct isci_port *iport,
struct isci_port *isci_port,
int isci_port_perform_hard_reset(struct isci_host *ihost, struct isci_port *iport,
static struct isci_port *sci_port_configuration_agent_find_port(
struct isci_port *iport = &ihost->ports[i];
struct isci_port *iport,
struct isci_port *iport,
struct isci_port *iport;
struct isci_port *iport,
struct isci_port *iport,
static void sci_remote_device_construct(struct isci_port *iport,
static enum sci_status sci_remote_device_da_construct(struct isci_port *iport,
static enum sci_status sci_remote_device_ea_construct(struct isci_port *iport,
static enum sci_status isci_remote_device_construct(struct isci_port *iport,
isci_remote_device_alloc(struct isci_host *ihost, struct isci_port *iport)
struct isci_host *ihost = idev->isci_port->isci_host;
idev->isci_port = NULL;
__func__, dev, idev, idev->isci_port);
struct isci_port *isci_port = dev->port->lldd_port;
if (!isci_port)
isci_device = isci_remote_device_alloc(isci_host, isci_port);
isci_device->isci_port = isci_port;
list_add_tail(&isci_device->node, &isci_port->remote_dev_list);
status = isci_remote_device_construct(isci_port, isci_device);
struct isci_port *iport = idev->owning_port;
struct isci_port *iport = idev->owning_port;
static enum sci_status common_complete_io(struct isci_port *iport,
struct isci_port *iport = idev->owning_port;
struct isci_port *iport = idev->owning_port;
struct isci_port *iport = idev->owning_port;
struct isci_port *isci_port;
struct isci_port *owning_port;
struct isci_port *iport;
struct isci_port *iport;
struct isci_port *iport;
struct isci_port *iport = dev->port->lldd_port;