Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
mpt2sas_transport.c File Reference
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/workqueue.h>
#include <linux/delay.h>
#include <linux/pci.h>
#include <linux/slab.h>
#include <scsi/scsi.h>
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_device.h>
#include <scsi/scsi_host.h>
#include <scsi/scsi_transport_sas.h>
#include <scsi/scsi_dbg.h>
#include "mpt2sas_base.h"

Go to the source code of this file.

Data Structures

struct  rep_manu_request
 
struct  rep_manu_reply
 
struct  phy_error_log_request
 
struct  phy_error_log_reply
 
struct  phy_control_request
 
struct  phy_control_reply
 

Macros

#define SMP_PHY_CONTROL_LINK_RESET   (0x01)
 
#define SMP_PHY_CONTROL_HARD_RESET   (0x02)
 
#define SMP_PHY_CONTROL_DISABLE   (0x03)
 

Functions

u8 mpt2sas_transport_done (struct MPT2SAS_ADAPTER *ioc, u16 smid, u8 msix_index, u32 reply)
 
struct _sas_portmpt2sas_transport_port_add (struct MPT2SAS_ADAPTER *ioc, u16 handle, u64 sas_address)
 
void mpt2sas_transport_port_remove (struct MPT2SAS_ADAPTER *ioc, u64 sas_address, u64 sas_address_parent)
 
int mpt2sas_transport_add_host_phy (struct MPT2SAS_ADAPTER *ioc, struct _sas_phy *mpt2sas_phy, Mpi2SasPhyPage0_t phy_pg0, struct device *parent_dev)
 
int mpt2sas_transport_add_expander_phy (struct MPT2SAS_ADAPTER *ioc, struct _sas_phy *mpt2sas_phy, Mpi2ExpanderPage1_t expander_pg1, struct device *parent_dev)
 
void mpt2sas_transport_update_links (struct MPT2SAS_ADAPTER *ioc, u64 sas_address, u16 handle, u8 phy_number, u8 link_rate)
 

Variables

struct sas_function_template mpt2sas_transport_functions
 
struct scsi_transport_templatempt2sas_transport_template
 

Macro Definition Documentation

#define SMP_PHY_CONTROL_DISABLE   (0x03)

Definition at line 1390 of file mpt2sas_transport.c.

#define SMP_PHY_CONTROL_HARD_RESET   (0x02)

Definition at line 1389 of file mpt2sas_transport.c.

#define SMP_PHY_CONTROL_LINK_RESET   (0x01)

Definition at line 1388 of file mpt2sas_transport.c.

Function Documentation

int mpt2sas_transport_add_expander_phy ( struct MPT2SAS_ADAPTER ioc,
struct _sas_phy mpt2sas_phy,
Mpi2ExpanderPage1_t  expander_pg1,
struct device parent_dev 
)

mpt2sas_transport_add_expander_phy - report expander phy to transport : per adapter object : mpt2sas per phy object : expander page 1 : parent device class object

Returns 0 for success, non-zero for failure.

Definition at line 916 of file mpt2sas_transport.c.

int mpt2sas_transport_add_host_phy ( struct MPT2SAS_ADAPTER ioc,
struct _sas_phy mpt2sas_phy,
Mpi2SasPhyPage0_t  phy_pg0,
struct device parent_dev 
)

mpt2sas_transport_add_host_phy - report sas_host phy to transport : per adapter object : mpt2sas per phy object : sas phy page 0 : parent device class object

Returns 0 for success, non-zero for failure.

Definition at line 849 of file mpt2sas_transport.c.

u8 mpt2sas_transport_done ( struct MPT2SAS_ADAPTER ioc,
u16  smid,
u8  msix_index,
u32  reply 
)

mpt2sas_transport_done - internal transport layer callback handler. : per adapter object : system request message index : MSIX table index supplied by the OS : reply message frame(lower 32bit addr)

Callback handler when sending internal generated transport cmds. The callback index passed is ioc->transport_cb_idx

Return 1 meaning mf should be freed from _base_interrupt 0 means the mf is freed from this function.

Definition at line 228 of file mpt2sas_transport.c.

struct _sas_port* mpt2sas_transport_port_add ( struct MPT2SAS_ADAPTER ioc,
u16  handle,
u64  sas_address 
)
read

mpt2sas_transport_port_add - insert port to the list : per adapter object : handle of attached device : sas address of parent expander or sas host Context: This function will acquire ioc->sas_node_lock.

Adding new port object to the sas_node->sas_port_list.

Returns mpt2sas_port.

Definition at line 649 of file mpt2sas_transport.c.

void mpt2sas_transport_port_remove ( struct MPT2SAS_ADAPTER ioc,
u64  sas_address,
u64  sas_address_parent 
)

mpt2sas_transport_port_remove - remove port from the list : per adapter object : sas address of attached device : sas address of parent expander or sas host Context: This function will acquire ioc->sas_node_lock.

Removing object and freeing associated memory from the ioc->sas_port_list.

Return nothing.

Definition at line 785 of file mpt2sas_transport.c.

void mpt2sas_transport_update_links ( struct MPT2SAS_ADAPTER ioc,
u64  sas_address,
u16  handle,
u8  phy_number,
u8  link_rate 
)

mpt2sas_transport_update_links - refreshing phy link changes : per adapter object : sas address of parent expander or sas host : attached device handle : phy number : new link rate

Returns nothing.

Definition at line 984 of file mpt2sas_transport.c.

Variable Documentation

struct sas_function_template mpt2sas_transport_functions
Initial value:
= {
.get_linkerrors = _transport_get_linkerrors,
.get_enclosure_identifier = _transport_get_enclosure_identifier,
.get_bay_identifier = _transport_get_bay_identifier,
.phy_reset = _transport_phy_reset,
.phy_enable = _transport_phy_enable,
.set_phy_speed = _transport_phy_speed,
.smp_handler = _transport_smp_handler,
}

Definition at line 2157 of file mpt2sas_transport.c.

struct scsi_transport_template* mpt2sas_transport_template

Definition at line 2167 of file mpt2sas_transport.c.