Lines Matching refs:ihost

76 static void isci_task_refuse(struct isci_host *ihost, struct sas_task *task,  in isci_task_refuse()  argument
84 dev_dbg(&ihost->pdev->dev, "%s: task = %p, response=%d, status=%d\n", in isci_task_refuse()
126 struct isci_host *ihost = dev_to_ihost(task->dev); in isci_task_execute_task() local
133 spin_lock_irqsave(&ihost->scic_lock, flags); in isci_task_execute_task()
136 tag = isci_alloc_tag(ihost); in isci_task_execute_task()
137 spin_unlock_irqrestore(&ihost->scic_lock, flags); in isci_task_execute_task()
139 dev_dbg(&ihost->pdev->dev, in isci_task_execute_task()
145 isci_task_refuse(ihost, task, SAS_TASK_UNDELIVERED, in isci_task_execute_task()
151 isci_task_refuse(ihost, task, SAS_TASK_COMPLETE, in isci_task_execute_task()
161 isci_task_refuse(ihost, task, in isci_task_execute_task()
169 status = isci_request_execute(ihost, idev, task, tag); in isci_task_execute_task()
181 isci_task_refuse(ihost, task, in isci_task_execute_task()
193 isci_task_refuse(ihost, task, in isci_task_execute_task()
202 spin_lock_irqsave(&ihost->scic_lock, flags); in isci_task_execute_task()
206 isci_tci_free(ihost, ISCI_TAG_TCI(tag)); in isci_task_execute_task()
207 spin_unlock_irqrestore(&ihost->scic_lock, flags); in isci_task_execute_task()
214 static struct isci_request *isci_task_request_build(struct isci_host *ihost, in isci_task_request_build() argument
222 dev_dbg(&ihost->pdev->dev, in isci_task_request_build()
228 ireq = isci_tmf_request_from_tag(ihost, isci_tmf, tag); in isci_task_request_build()
233 status = sci_task_request_construct(ihost, idev, tag, in isci_task_request_build()
237 dev_warn(&ihost->pdev->dev, in isci_task_request_build()
256 static int isci_task_execute_tmf(struct isci_host *ihost, in isci_task_execute_tmf() argument
268 spin_lock_irqsave(&ihost->scic_lock, flags); in isci_task_execute_tmf()
269 tag = isci_alloc_tag(ihost); in isci_task_execute_tmf()
270 spin_unlock_irqrestore(&ihost->scic_lock, flags); in isci_task_execute_tmf()
281 dev_dbg(&ihost->pdev->dev, in isci_task_execute_tmf()
287 dev_dbg(&ihost->pdev->dev, in isci_task_execute_tmf()
295 ireq = isci_task_request_build(ihost, idev, tag, tmf); in isci_task_execute_tmf()
299 spin_lock_irqsave(&ihost->scic_lock, flags); in isci_task_execute_tmf()
302 status = sci_controller_start_task(ihost, idev, ireq); in isci_task_execute_tmf()
305 dev_dbg(&ihost->pdev->dev, in isci_task_execute_tmf()
310 spin_unlock_irqrestore(&ihost->scic_lock, flags); in isci_task_execute_tmf()
313 spin_unlock_irqrestore(&ihost->scic_lock, flags); in isci_task_execute_tmf()
316 isci_remote_device_resume_from_abort(ihost, idev); in isci_task_execute_tmf()
326 isci_remote_device_suspend_terminate(ihost, idev, ireq); in isci_task_execute_tmf()
329 isci_print_tmf(ihost, tmf); in isci_task_execute_tmf()
334 dev_dbg(&ihost->pdev->dev, in isci_task_execute_tmf()
342 dev_dbg(&ihost->pdev->dev, in isci_task_execute_tmf()
350 spin_lock_irqsave(&ihost->scic_lock, flags); in isci_task_execute_tmf()
351 isci_tci_free(ihost, ISCI_TAG_TCI(tag)); in isci_task_execute_tmf()
352 spin_unlock_irqrestore(&ihost->scic_lock, flags); in isci_task_execute_tmf()
414 struct isci_host *ihost = dev_to_ihost(dev); in isci_task_lu_reset() local
419 spin_lock_irqsave(&ihost->scic_lock, flags); in isci_task_lu_reset()
421 spin_unlock_irqrestore(&ihost->scic_lock, flags); in isci_task_lu_reset()
423 dev_dbg(&ihost->pdev->dev, in isci_task_lu_reset()
425 __func__, dev, ihost, idev); in isci_task_lu_reset()
429 dev_dbg(&ihost->pdev->dev, "%s: No dev\n", __func__); in isci_task_lu_reset()
436 if (isci_remote_device_suspend_terminate(ihost, idev, NULL) in isci_task_lu_reset()
448 ret = isci_task_send_lu_reset_sas(ihost, idev, lun); in isci_task_lu_reset()
480 struct isci_host *ihost = dev_to_ihost(task->dev); in isci_task_abort_task() local
494 spin_lock_irqsave(&ihost->scic_lock, flags); in isci_task_abort_task()
508 spin_unlock_irqrestore(&ihost->scic_lock, flags); in isci_task_abort_task()
510 dev_warn(&ihost->pdev->dev, in isci_task_abort_task()
541 dev_warn(&ihost->pdev->dev, in isci_task_abort_task()
547 if (isci_remote_device_suspend_terminate(ihost, idev, old_request) in isci_task_abort_task()
549 dev_warn(&ihost->pdev->dev, in isci_task_abort_task()
556 spin_lock_irqsave(&ihost->scic_lock, flags); in isci_task_abort_task()
563 spin_unlock_irqrestore(&ihost->scic_lock, flags); in isci_task_abort_task()
566 isci_remote_device_resume_from_abort(ihost, idev); in isci_task_abort_task()
568 dev_warn(&ihost->pdev->dev, in isci_task_abort_task()
595 spin_unlock_irqrestore(&ihost->scic_lock, flags); in isci_task_abort_task()
599 ret = isci_task_execute_tmf(ihost, idev, &tmf, in isci_task_abort_task()
603 dev_warn(&ihost->pdev->dev, in isci_task_abort_task()
696 isci_task_request_complete(struct isci_host *ihost, in isci_task_request_complete() argument
703 dev_dbg(&ihost->pdev->dev, in isci_task_request_complete()
724 sci_controller_complete_io(ihost, ireq->target_device, ireq); in isci_task_request_complete()
731 wake_up_all(&ihost->eventq); in isci_task_request_complete()
734 isci_free_tag(ihost, ireq->io_tag); in isci_task_request_complete()
741 static int isci_reset_device(struct isci_host *ihost, in isci_reset_device() argument
749 dev_dbg(&ihost->pdev->dev, "%s: idev %p\n", __func__, idev); in isci_reset_device()
752 if (isci_remote_device_suspend_terminate(ihost, idev, NULL) in isci_reset_device()
765 struct isci_phy *iphy = &ihost->phys[phy->number]; in isci_reset_device()
767 reset_stat = isci_port_perform_hard_reset(ihost, iport, in isci_reset_device()
773 isci_remote_device_resume_from_abort(ihost, idev); in isci_reset_device()
775 dev_dbg(&ihost->pdev->dev, "%s: idev %p complete, reset_stat=%d.\n", in isci_reset_device()
784 struct isci_host *ihost = dev_to_ihost(dev); in isci_task_I_T_nexus_reset() local
789 spin_lock_irqsave(&ihost->scic_lock, flags); in isci_task_I_T_nexus_reset()
791 spin_unlock_irqrestore(&ihost->scic_lock, flags); in isci_task_I_T_nexus_reset()
801 ret = isci_reset_device(ihost, dev, idev); in isci_task_I_T_nexus_reset()