Lines Matching defs:pwrk

633 	pmcwork_t *pwrk;
683 pwrk = pmcs_tag2wp(pwp, sp->cmd_tag, B_FALSE);
684 if (pwrk && pwrk->arg == sp) {
685 tag = pwrk->htag;
686 pptr = pwrk->phy;
687 pwrk->timer = 0; /* we don't time this here */
688 ASSERT(pwrk->state == PMCS_WORK_STATE_ONCHIP);
689 mutex_exit(&pwrk->lock);
717 if (pwrk) {
718 mutex_exit(&pwrk->lock);
1013 struct pmcwork *pwrk;
1073 pwrk = pmcs_gwork(pwp, PMCS_TAG_TYPE_WAIT, pptr);
1074 if (pwrk == NULL) {
1083 pwrk->arg = msg;
1084 pwrk->dtype = EXPANDER;
1088 pmcs_pwork(pwp, pwrk);
1098 msg[1] = LE_32(pwrk->htag);
1115 pwrk->state = PMCS_WORK_STATE_ONCHIP;
1116 htag = pwrk->htag;
1119 WAIT_FOR(pwrk, smp_pkt->smp_pkt_timeout * 1000, result);
1120 pmcs_pwork(pwp, pwrk);
1550 pmcwork_t *pwrk;
1616 pwrk = pmcs_gwork(pwp, PMCS_TAG_TYPE_CBACK, phyp);
1617 if (pwrk == NULL) {
1632 pwrk->xp = xp;
1633 pwrk->arg = sp;
1634 pwrk->timer = 0;
1635 sp->cmd_tag = pwrk->htag;
1637 pwrk->dtype = xp->dtype;
1640 pwrk->ptr = (void *) pmcs_SAS_done;
1641 if ((rval = pmcs_SAS_run(sp, pwrk)) != 0) {
1646 pmcs_pwork(pwp, pwrk);
1656 pwrk->ptr = (void *) pmcs_SATA_done;
1657 if ((rval = pmcs_SATA_run(sp, pwrk)) != 0) {
1660 pmcs_pwork(pwp, pwrk);
1774 mutex_enter(&ioccb->pwrk->lock);
1776 callback = (pmcs_cb_t)ioccb->pwrk->ptr;
1777 (*callback)(pwp, ioccb->pwrk,
1839 * Run a SAS command. Called with pwrk->lock held, returns unlocked.
1842 pmcs_SAS_run(pmcs_cmd_t *sp, pmcwork_t *pwrk)
1846 pmcs_xscsi_t *xp = pwrk->xp;
1864 GET_IO_IQ_ENTRY(pwp, ptr, pwrk->phy->device_id, iq);
1884 ptr[1] = LE_32(pwrk->htag);
1885 ptr[2] = LE_32(pwrk->phy->device_id);
1927 pmcs_prt(pwp, PMCS_PRT_DEBUG2, pwrk->phy, xp, "%s: max depth "
1928 "now %u", pwrk->phy->path, xp->maxdepth);
1962 pwrk->state = PMCS_WORK_STATE_ONCHIP;
1963 lhtag = pwrk->htag;
1964 mutex_exit(&pwrk->lock);
1967 (void *)pkt, pwrk->htag);
1976 mutex_enter(&pwrk->lock);
1977 if (lhtag == pwrk->htag) {
1978 pwrk->timer = US2WT(sp_pkt_time * 1000000);
1979 if (pwrk->timer == 0) {
1980 pwrk->timer = US2WT(1000000);
1983 mutex_exit(&pwrk->lock);
2001 * Called with pwrk lock held.
2002 * The free of pwrk releases the lock.
2006 pmcs_SAS_done(pmcs_hw_t *pwp, pmcwork_t *pwrk, uint32_t *msg)
2008 pmcs_cmd_t *sp = pwrk->arg;
2009 pmcs_phy_t *pptr = pwrk->phy;
2010 pmcs_xscsi_t *xp = pwrk->xp;
2022 (pkt->pkt_dma_flags & DDI_DMA_READ) != 0, hrtime_t, pwrk->start,
2025 dead = pwrk->dead;
2035 "0x%x for %s", __func__, pwrk->htag, pptr->path);
2043 if (pwrk->state == PMCS_WORK_STATE_TIMED_OUT) {
2046 __func__, (void *)sp, pwrk->htag, pptr->path);
2090 pmcs_ioerror(pwp, SAS, pwrk, msg, sts);
2209 if (pwrk->state == PMCS_WORK_STATE_ABORTED) {
2212 __func__, (void *)pkt, pptr->path, (void *)pwrk);
2226 pwrk->phy = NULL;
2235 if (pwrk->htag != PMCS_TAG_FREE) {
2236 pmcs_pwork(pwp, pwrk);
2353 * Called with pwrk lock held, returns unlocked.
2357 pmcs_SATA_run(pmcs_cmd_t *sp, pmcwork_t *pwrk)
2369 xp = pwrk->xp;
2384 pmcs_pwork(pwp, pwrk);
2436 pwrk->phy->path);
2437 pmcs_pwork(pwp, pwrk);
2453 pwrk->phy->path);
2454 pmcs_pwork(pwp, pwrk);
2511 ptr[1] = LE_32(pwrk->htag);
2512 ptr[2] = LE_32(pwrk->phy->device_id);
2578 pwrk->state = PMCS_WORK_STATE_ONCHIP;
2579 lhtag = pwrk->htag;
2580 mutex_exit(&pwrk->lock);
2585 pmcs_prt(pwp, PMCS_PRT_DEBUG2, pwrk->phy, xp,
2586 "%s: max depth now %u", pwrk->phy->path, xp->maxdepth);
2599 mutex_enter(&pwrk->lock);
2600 if (lhtag == pwrk->htag) {
2601 pwrk->timer = US2WT(sp_pkt_time * 1000000);
2602 if (pwrk->timer == 0) {
2603 pwrk->timer = US2WT(1000000);
2606 mutex_exit(&pwrk->lock);
2612 * Complete a SATA command. Called with pwrk lock held.
2615 pmcs_SATA_done(pmcs_hw_t *pwp, pmcwork_t *pwrk, uint32_t *msg)
2617 pmcs_cmd_t *sp = pwrk->arg;
2619 pmcs_phy_t *pptr = pwrk->phy;
2625 xp = pwrk->xp;
2629 (pkt->pkt_dma_flags & DDI_DMA_READ) != 0, hrtime_t, pwrk->start,
2632 dead = pwrk->dead;
2642 "0x%x for %s", __func__, pwrk->htag, pptr->path);
2645 if ((pwrk->state == PMCS_WORK_STATE_TIMED_OUT) &&
2649 __func__, (void *)sp, pwrk->htag, pptr->path);
2681 mutex_exit(&pwrk->lock);
2698 mutex_enter(&pwrk->lock);
2700 pmcs_ioerror(pwp, SATA, pwrk, msg, sts);
2703 pwrk->phy->path);
2713 if (pwrk->state == PMCS_WORK_STATE_ABORTED) {
2716 __func__, (void *)pkt, pptr->path, (void *)pwrk);
2731 pwrk->phy = NULL;
2740 if (pwrk->htag != PMCS_TAG_FREE) {
2741 pmcs_pwork(pwp, pwrk);
2893 * Called with pwrk lock held.
2896 pmcs_ioerror(pmcs_hw_t *pwp, pmcs_dtype_t t, pmcwork_t *pwrk, uint32_t *w,
2907 pmcs_cmd_t *sp = pwrk->arg;
2908 pmcs_phy_t *phyp = pwrk->phy;
2924 phyp->path, pwrk->htag, msg,
2959 } else if (pwrk->ssp_event != 0) {
2962 } else if (pwrk->state == PMCS_WORK_STATE_TIMED_OUT) {
2978 pwrk->state = PMCS_WORK_STATE_ABORTED;
3011 mutex_exit(&pwrk->lock);
3012 pmcs_lock_phy(pwrk->phy);
3013 pmcs_kill_changed(pwp, pwrk->phy, 0);
3014 pmcs_unlock_phy(pwrk->phy);
3015 mutex_enter(&pwrk->lock);