sas_port
struct sas_port *port;
struct sas_port *port;
struct sas_port *port;
struct sas_port *port;
static inline struct sas_port *
mptsas_set_port(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info, struct sas_port *port)
struct sas_port *port; /* transport layer port object */
asd_ha->sas_ha.sas_port= sas_ports;
kfree(asd_ha->sas_ha.sas_port);
struct asd_sas_port sas_port;
extern struct hisi_sas_port *to_hisi_sas_port(struct asd_sas_port *sas_port);
struct asd_sas_port *sas_port = sas_phy->port;
if (!sas_port)
port = to_hisi_sas_port(sas_port);
sas_port->lldd_port = port;
struct asd_sas_port *sas_port;
sas_port = device->port;
port = to_hisi_sas_port(sas_port);
spin_lock(&sas_port->phy_list_lock);
list_for_each_entry(sas_phy, &sas_port->phy_list, port_phy_el)
spin_unlock(&sas_port->phy_list_lock);
struct asd_sas_port *sas_port = sas_phy->port;
bool do_port_check = _sas_port != sas_port;
if (do_port_check && sas_port && sas_port->port_dev) {
struct domain_device *dev = sas_port->port_dev;
_sas_port = sas_port;
struct asd_sas_port *sas_port,
if (!(sas_port->phy_mask & BIT(i)))
struct asd_sas_port *sas_port = &port->sas_port;
struct domain_device *port_dev = sas_port->port_dev;
list_for_each_entry(device, &sas_port->dev_list,
sas_port,
struct hisi_sas_port *to_hisi_sas_port(struct asd_sas_port *sas_port)
return container_of(sas_port, struct hisi_sas_port, sas_port);
sha->sas_port = arr_port;
sha->sas_port[i] = &hisi_hba->port[i].sas_port;
struct asd_sas_port *sas_port = device->port;
if (!sas_port) {
port = to_hisi_sas_port(sas_port);
port = to_hisi_sas_port(sas_port);
struct asd_sas_port *sas_port = sas_phy->port;
sas_port && port && (port->id != phy->port_id)) {
port_dev = sas_port->port_dev;
slot->port->sas_port.id);
struct asd_sas_port *sas_port = device->port;
struct hisi_sas_port *port = to_hisi_sas_port(sas_port);
slot->port->sas_port.id);
struct asd_sas_port *sas_port = device->port;
struct hisi_sas_port *port = to_hisi_sas_port(sas_port);
asd_sas_port = &port->sas_port;
struct asd_sas_port *sas_port = device->port;
struct hisi_sas_port *port = to_hisi_sas_port(sas_port);
struct asd_sas_port *sas_port = device->port;
struct hisi_sas_port *port = to_hisi_sas_port(sas_port);
slot->port->sas_port.id);
sha->sas_port = arr_port;
sha->sas_port[i] = &hisi_hba->port[i].sas_port;
struct asd_sas_port *sas_port = device->port;
struct hisi_sas_port *port = to_hisi_sas_port(sas_port);
struct sas_port *port;
if (!device->sas_port)
if (device->sas_port->rphy == rphy)
device->sas_port = hpsa_sas_port;
device->sas_port = NULL;
if (device->sas_port) {
hpsa_free_sas_port(device->sas_port);
device->sas_port = NULL;
struct hpsa_sas_port *sas_port;
struct sas_port *port;
sas_ha->sas_port = sas_ports;
struct asd_sas_port *port = sas_ha->sas_port[i];
struct sas_port *sas_port, *p;
list_for_each_entry_safe(sas_port, p, &port->sas_port_del_list, del_list) {
list_del_init(&sas_port->del_list);
sas_port_delete(sas_port);
void sas_device_set_phy(struct domain_device *dev, struct sas_port *port)
struct asd_sas_port *port = ha->sas_port[i];
static void sas_port_add_ex_phy(struct sas_port *port, struct ex_phy *ex_phy)
struct sas_port *port;
struct asd_sas_port *port = ha->sas_port[i];
struct asd_sas_port *port = ha->sas_port[i];
void sas_device_set_phy(struct domain_device *dev, struct sas_port *port);
port = sas_ha->sas_port[i];
port = sas_ha->sas_port[i];
struct asd_sas_port *port = sas_ha->sas_port[i];
struct asd_sas_port *port = ha->sas_port[i];
struct sas_port *port;
struct sas_port *port;
struct sas_port *port;
struct sas_port *port;
sha->sas_port = arr_port;
sha->sas_port[j * chip_info->n_phy + i] =
&mvi->port[i].sas_port;
kfree(sha->sas_port);
&sha->sas_port[i]->phy_list, port_phy_el) {
struct asd_sas_port *sas_port = sas_phy->port;
if (!sas_port)
sas_port->lldd_port = port;
port->wide_port_phymap = sas_port->phy_mask;
mv_printk("set wide port phy map %x\n", sas_port->phy_mask);
spin_unlock(&sha->sas_port[i]->phy_list_lock);
"%016llX.\n", slot->port->sas_port.id, slot_idx,
mv_dprintk("port %d has removed.\n", slot->port->sas_port.id);
struct asd_sas_port *sas_port = dev->port;
buf_oaf[1] = min(sas_port->linkrate, dev->linkrate) & 0xf;
struct asd_sas_port *sas_port = dev->port;
((sas_port->phy_mask & TXQ_PHY_MASK) << TXQ_PHY_SHIFT) |
buf_oaf[1] = min(sas_port->linkrate, dev->linkrate) & 0xf;
MVS_CHIP_DISP->dma_fix(mvi, sas_port->phy_mask,
struct asd_sas_port *sas_port = dev->port;
sas_port->phy_mask) & TXQ_PHY_MASK;
buf_oaf[1] = min(sas_port->linkrate, dev->linkrate) & 0xf;
while (sha->sas_port[i]) {
if (sha->sas_port[i] == dev->port) {
spin_lock(&sha->sas_port[i]->phy_list_lock);
phy = container_of(sha->sas_port[i]->phy_list.next,
spin_unlock(&sha->sas_port[i]->phy_list_lock);
while (sha->sas_port[i]) {
if (sha->sas_port[i] == dev->port) {
spin_lock(&sha->sas_port[i]->phy_list_lock);
struct asd_sas_port sas_port;
kfree(sha->sas_port);
sha->sas_port = arr_port;
sha->sas_port[i] = &pm8001_ha->port[i].sas_port;
struct asd_sas_port *sas_port = sas_phy->port;
if (!sas_port) {
sas_port->lldd_port = port;
struct asd_sas_port sas_port;
void sas_port_free(struct sas_port *port)
void sas_port_delete(struct sas_port *port)
struct sas_phy *sas_port_get_phy(struct sas_port *port)
void sas_port_add_phy(struct sas_port *port, struct sas_phy *phy)
void sas_port_delete_phy(struct sas_port *port, struct sas_phy *phy)
void sas_port_mark_backlink(struct sas_port *port)
struct sas_rphy *sas_end_device_alloc(struct sas_port *parent)
struct sas_rphy *sas_expander_alloc(struct sas_port *parent,
struct sas_port *parent = dev_to_sas_port(rphy->dev.parent);
struct sas_port *parent = dev_to_sas_port(rphy->dev.parent);
struct sas_port *port = transport_class_to_sas_port(dev); \
struct sas_port *port = dev_to_sas_port(dev);
static void sas_port_create_link(struct sas_port *port,
static void sas_port_delete_link(struct sas_port *port,
struct sas_port *sas_port_alloc(struct device *parent, int port_id)
struct sas_port *port;
struct sas_port *sas_port_alloc_num(struct device *parent)
int sas_port_add(struct sas_port *port)
struct pqi_sas_port *sas_port;
struct sas_port *port;
return device->sas_port != NULL;
struct sas_port *port;
if (!device->sas_port)
if (device->sas_port->rphy == rphy)
device->sas_port = pqi_sas_port;
device->sas_port = NULL;
if (device->sas_port) {
pqi_free_sas_port(device->sas_port);
device->sas_port = NULL;
struct sas_port *port;
struct sas_port *parent_port;
struct sas_port *port;
struct asd_sas_port **sas_port; /* array of valid pointers, must be set */
container_of((d), struct sas_port, dev)
extern struct sas_rphy *sas_end_device_alloc(struct sas_port *);
extern struct sas_rphy *sas_expander_alloc(struct sas_port *, enum sas_device_type);
struct sas_port *sas_port_alloc(struct device *, int);
struct sas_port *sas_port_alloc_num(struct device *);
int sas_port_add(struct sas_port *);
void sas_port_free(struct sas_port *);
void sas_port_delete(struct sas_port *);
void sas_port_add_phy(struct sas_port *, struct sas_phy *);
void sas_port_delete_phy(struct sas_port *, struct sas_phy *);
void sas_port_mark_backlink(struct sas_port *);
struct sas_phy *sas_port_get_phy(struct sas_port *port);