Lines Matching refs:sas_ha
120 int sas_register_ha(struct sas_ha_struct *sas_ha) in sas_register_ha() argument
124 mutex_init(&sas_ha->disco_mutex); in sas_register_ha()
125 spin_lock_init(&sas_ha->phy_port_lock); in sas_register_ha()
126 sas_hash_addr(sas_ha->hashed_sas_addr, sas_ha->sas_addr); in sas_register_ha()
128 set_bit(SAS_HA_REGISTERED, &sas_ha->state); in sas_register_ha()
129 spin_lock_init(&sas_ha->lock); in sas_register_ha()
130 mutex_init(&sas_ha->drain_mutex); in sas_register_ha()
131 init_waitqueue_head(&sas_ha->eh_wait_q); in sas_register_ha()
132 INIT_LIST_HEAD(&sas_ha->defer_q); in sas_register_ha()
133 INIT_LIST_HEAD(&sas_ha->eh_dev_q); in sas_register_ha()
135 error = sas_register_phys(sas_ha); in sas_register_ha()
141 error = sas_register_ports(sas_ha); in sas_register_ha()
147 error = sas_init_events(sas_ha); in sas_register_ha()
153 INIT_LIST_HEAD(&sas_ha->eh_done_q); in sas_register_ha()
154 INIT_LIST_HEAD(&sas_ha->eh_ata_q); in sas_register_ha()
159 sas_unregister_ports(sas_ha); in sas_register_ha()
165 static void sas_disable_events(struct sas_ha_struct *sas_ha) in sas_disable_events() argument
170 mutex_lock(&sas_ha->drain_mutex); in sas_disable_events()
171 spin_lock_irq(&sas_ha->lock); in sas_disable_events()
172 clear_bit(SAS_HA_REGISTERED, &sas_ha->state); in sas_disable_events()
173 spin_unlock_irq(&sas_ha->lock); in sas_disable_events()
174 __sas_drain_work(sas_ha); in sas_disable_events()
175 mutex_unlock(&sas_ha->drain_mutex); in sas_disable_events()
178 int sas_unregister_ha(struct sas_ha_struct *sas_ha) in sas_unregister_ha() argument
180 sas_disable_events(sas_ha); in sas_unregister_ha()
181 sas_unregister_ports(sas_ha); in sas_unregister_ha()
184 mutex_lock(&sas_ha->drain_mutex); in sas_unregister_ha()
185 __sas_drain_work(sas_ha); in sas_unregister_ha()
186 mutex_unlock(&sas_ha->drain_mutex); in sas_unregister_ha()
195 struct sas_ha_struct *sas_ha = SHOST_TO_SAS_HA(shost); in sas_get_linkerrors() local
196 struct asd_sas_phy *asd_phy = sas_ha->sas_phy[phy->number]; in sas_get_linkerrors()
198 to_sas_internal(sas_ha->core.shost->transportt); in sas_get_linkerrors()
244 struct sas_ha_struct *sas_ha = SHOST_TO_SAS_HA(shost); in transport_sas_phy_reset() local
245 struct asd_sas_phy *asd_phy = sas_ha->sas_phy[phy->number]; in transport_sas_phy_reset()
247 to_sas_internal(sas_ha->core.shost->transportt); in transport_sas_phy_reset()
278 struct sas_ha_struct *sas_ha = SHOST_TO_SAS_HA(shost); in sas_phy_enable() local
279 struct asd_sas_phy *asd_phy = sas_ha->sas_phy[phy->number]; in sas_phy_enable()
281 to_sas_internal(sas_ha->core.shost->transportt); in sas_phy_enable()
314 struct sas_ha_struct *sas_ha = SHOST_TO_SAS_HA(shost); in sas_phy_reset() local
315 struct asd_sas_phy *asd_phy = sas_ha->sas_phy[phy->number]; in sas_phy_reset()
317 to_sas_internal(sas_ha->core.shost->transportt); in sas_phy_reset()
349 struct sas_ha_struct *sas_ha = SHOST_TO_SAS_HA(shost); in sas_set_phy_speed() local
350 struct asd_sas_phy *asd_phy = sas_ha->sas_phy[phy->number]; in sas_set_phy_speed()
352 to_sas_internal(sas_ha->core.shost->transportt); in sas_set_phy_speed()