Lines Matching refs:ihost
70 * @ihost: host on which the the request was queued
76 static void isci_task_refuse(struct isci_host *ihost, struct sas_task *task,
84 dev_dbg(&ihost->pdev->dev, "%s: task = %p, response=%d, status=%d\n",
125 struct isci_host *ihost = dev_to_ihost(task->dev);
132 spin_lock_irqsave(&ihost->scic_lock, flags);
135 tag = isci_alloc_tag(ihost);
136 spin_unlock_irqrestore(&ihost->scic_lock, flags);
138 dev_dbg(&ihost->pdev->dev,
144 isci_task_refuse(ihost, task, SAS_TASK_UNDELIVERED,
150 isci_task_refuse(ihost, task, SAS_TASK_COMPLETE,
160 isci_task_refuse(ihost, task,
167 ireq = isci_io_request_from_tag(ihost, task, tag);
172 status = isci_request_execute(ihost, idev, task, ireq);
179 isci_task_refuse(ihost, task,
191 isci_task_refuse(ihost, task,
200 spin_lock_irqsave(&ihost->scic_lock, flags);
204 isci_tci_free(ihost, ISCI_TAG_TCI(tag));
205 spin_unlock_irqrestore(&ihost->scic_lock, flags);
212 static struct isci_request *isci_task_request_build(struct isci_host *ihost,
220 dev_dbg(&ihost->pdev->dev,
226 ireq = isci_tmf_request_from_tag(ihost, isci_tmf, tag);
231 status = sci_task_request_construct(ihost, idev, tag,
235 dev_warn(&ihost->pdev->dev,
254 static int isci_task_execute_tmf(struct isci_host *ihost,
266 spin_lock_irqsave(&ihost->scic_lock, flags);
267 tag = isci_alloc_tag(ihost);
268 spin_unlock_irqrestore(&ihost->scic_lock, flags);
279 dev_dbg(&ihost->pdev->dev,
285 dev_dbg(&ihost->pdev->dev,
293 ireq = isci_task_request_build(ihost, idev, tag, tmf);
297 spin_lock_irqsave(&ihost->scic_lock, flags);
300 status = sci_controller_start_task(ihost, idev, ireq);
303 dev_dbg(&ihost->pdev->dev,
308 spin_unlock_irqrestore(&ihost->scic_lock, flags);
311 spin_unlock_irqrestore(&ihost->scic_lock, flags);
314 isci_remote_device_resume_from_abort(ihost, idev);
324 isci_remote_device_suspend_terminate(ihost, idev, ireq);
327 isci_print_tmf(ihost, tmf);
332 dev_dbg(&ihost->pdev->dev,
340 dev_dbg(&ihost->pdev->dev,
348 spin_lock_irqsave(&ihost->scic_lock, flags);
349 isci_tci_free(ihost, ISCI_TAG_TCI(tag));
350 spin_unlock_irqrestore(&ihost->scic_lock, flags);
412 struct isci_host *ihost = dev_to_ihost(dev);
417 spin_lock_irqsave(&ihost->scic_lock, flags);
419 spin_unlock_irqrestore(&ihost->scic_lock, flags);
421 dev_dbg(&ihost->pdev->dev,
423 __func__, dev, ihost, idev);
427 dev_dbg(&ihost->pdev->dev, "%s: No dev\n", __func__);
434 if (isci_remote_device_suspend_terminate(ihost, idev, NULL)
446 ret = isci_task_send_lu_reset_sas(ihost, idev, lun);
478 struct isci_host *ihost = dev_to_ihost(task->dev);
492 spin_lock_irqsave(&ihost->scic_lock, flags);
505 spin_unlock_irqrestore(&ihost->scic_lock, flags);
507 dev_warn(&ihost->pdev->dev,
537 dev_warn(&ihost->pdev->dev,
543 if (isci_remote_device_suspend_terminate(ihost, idev, old_request)
545 dev_warn(&ihost->pdev->dev,
552 spin_lock_irqsave(&ihost->scic_lock, flags);
559 spin_unlock_irqrestore(&ihost->scic_lock, flags);
562 isci_remote_device_resume_from_abort(ihost, idev);
564 dev_warn(&ihost->pdev->dev,
590 spin_unlock_irqrestore(&ihost->scic_lock, flags);
594 ret = isci_task_execute_tmf(ihost, idev, &tmf,
598 dev_warn(&ihost->pdev->dev,
664 * @ihost: This parameter specifies the ISCI host object
672 isci_task_request_complete(struct isci_host *ihost,
679 dev_dbg(&ihost->pdev->dev,
700 sci_controller_complete_io(ihost, ireq->target_device, ireq);
707 wake_up_all(&ihost->eventq);
710 isci_free_tag(ihost, ireq->io_tag);
717 static int isci_reset_device(struct isci_host *ihost,
725 dev_dbg(&ihost->pdev->dev, "%s: idev %p\n", __func__, idev);
728 if (isci_remote_device_suspend_terminate(ihost, idev, NULL)
741 struct isci_phy *iphy = &ihost->phys[phy->number];
743 reset_stat = isci_port_perform_hard_reset(ihost, iport,
749 isci_remote_device_resume_from_abort(ihost, idev);
751 dev_dbg(&ihost->pdev->dev, "%s: idev %p complete, reset_stat=%d.\n",
760 struct isci_host *ihost = dev_to_ihost(dev);
765 spin_lock_irqsave(&ihost->scic_lock, flags);
767 spin_unlock_irqrestore(&ihost->scic_lock, flags);
777 ret = isci_reset_device(ihost, dev, idev);