Lines Matching refs:ha

357 void sas_prep_resume_ha(struct sas_ha_struct *ha)
361 set_bit(SAS_HA_REGISTERED, &ha->state);
362 set_bit(SAS_HA_RESUMING, &ha->state);
365 for (i = 0; i < ha->num_phys; i++) {
366 struct asd_sas_phy *phy = ha->sas_phy[i];
374 static int phys_suspended(struct sas_ha_struct *ha)
378 for (i = 0; i < ha->num_phys; i++) {
379 struct asd_sas_phy *phy = ha->sas_phy[i];
388 static void sas_resume_insert_broadcast_ha(struct sas_ha_struct *ha)
392 for (i = 0; i < ha->num_phys; i++) {
393 struct asd_sas_port *port = ha->sas_port[i];
412 static void _sas_resume_ha(struct sas_ha_struct *ha, bool drain)
423 i = phys_suspended(ha);
425 dev_info(ha->dev, "waiting up to 25 seconds for %d phy%s to resume\n",
427 wait_event_timeout(ha->eh_wait_q, phys_suspended(ha) == 0, tmo);
428 for (i = 0; i < ha->num_phys; i++) {
429 struct asd_sas_phy *phy = ha->sas_phy[i];
441 scsi_unblock_requests(ha->shost);
443 sas_drain_work(ha);
444 clear_bit(SAS_HA_RESUMING, &ha->state);
446 sas_queue_deferred_work(ha);
450 sas_resume_insert_broadcast_ha(ha);
453 void sas_resume_ha(struct sas_ha_struct *ha)
455 _sas_resume_ha(ha, true);
460 void sas_resume_ha_no_sync(struct sas_ha_struct *ha)
462 _sas_resume_ha(ha, false);
466 void sas_suspend_ha(struct sas_ha_struct *ha)
470 sas_disable_events(ha);
471 scsi_block_requests(ha->shost);
472 for (i = 0; i < ha->num_phys; i++) {
473 struct asd_sas_port *port = ha->sas_port[i];
479 mutex_lock(&ha->drain_mutex);
480 __sas_drain_work(ha);
481 mutex_unlock(&ha->drain_mutex);
524 struct sas_ha_struct *ha = SHOST_TO_SAS_HA(shost);
531 pm_runtime_get_sync(ha->dev);
537 spin_lock_irq(&ha->lock);
538 sas_queue_work(ha, &d->reset_work);
539 spin_unlock_irq(&ha->lock);
541 rc = sas_drain_work(ha);
545 pm_runtime_put_sync(ha->dev);
553 struct sas_ha_struct *ha = SHOST_TO_SAS_HA(shost);
560 pm_runtime_get_sync(ha->dev);
566 spin_lock_irq(&ha->lock);
567 sas_queue_work(ha, &d->enable_work);
568 spin_unlock_irq(&ha->lock);
570 rc = sas_drain_work(ha);
574 pm_runtime_put_sync(ha->dev);
642 struct sas_ha_struct *sas_ha = phy->ha;
652 if (atomic_read(&phy->event_nr) > phy->ha->event_thres) {