• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/dev/pms/freebsd/driver/ini/src/

Lines Matching defs:pmcsc

164 #define AG_GET_DONE_PCCB(pccb, pmcsc)            \
166 AG_LOCAL_LOCK(&pmcsc->doneLock); \
167 pccb = pmcsc->ccbDoneHead; \
170 pmcsc->ccbDoneHead = NULL; \
171 pmcsc->ccbDoneTail = NULL; \
172 AG_LOCAL_UNLOCK(&pmcsc->doneLock); \
173 agtiapi_Done(pmcsc, pccb); \
176 AG_LOCAL_UNLOCK(&pmcsc->doneLock); \
179 #define AG_GET_DONE_SMP_PCCB(pccb, pmcsc) \
181 AG_LOCAL_LOCK(&pmcsc->doneSMPLock); \
182 pccb = pmcsc->smpDoneHead; \
185 pmcsc->smpDoneHead = NULL; \
186 pmcsc->smpDoneTail = NULL; \
187 AG_LOCAL_UNLOCK(&pmcsc->doneSMPLock); \
188 agtiapi_SMPDone(pmcsc, pccb); \
191 AG_LOCAL_UNLOCK(&pmcsc->doneSMPLock); \
1618 int agtiapi_alloc_requests( struct agtiapi_softc *pmcsc )
1643 &pmcsc->pCardInfo->pmIOLock, // lockarg
1644 &pmcsc->buffer_dmat ) ) {
1667 &pmcsc->tisgl_dmat ) ) {
1672 if( bus_dmamem_alloc( pmcsc->tisgl_dmat,
1673 (void **)&pmcsc->tisgl_mem,
1675 &pmcsc->tisgl_map ) ) {
1680 bzero( pmcsc->tisgl_mem, rsize );
1681 bus_dmamap_load( pmcsc->tisgl_dmat,
1682 pmcsc->tisgl_map,
1683 pmcsc->tisgl_mem,
1686 &pmcsc->tisgl_busaddr,
1689 mtx_init( &pmcsc->OS_timer_lock, "OS timer lock", NULL, MTX_DEF );
1690 mtx_init( &pmcsc->IO_timer_lock, "IO timer lock", NULL, MTX_DEF );
1691 mtx_init( &pmcsc->devRmTimerLock, "targ rm timer lock", NULL, MTX_DEF );
1692 callout_init_mtx( &pmcsc->OS_timer, &pmcsc->OS_timer_lock, 0 );
1693 callout_init_mtx( &pmcsc->IO_timer, &pmcsc->IO_timer_lock, 0 );
1694 callout_init_mtx( &pmcsc->devRmTimer,
1695 &pmcsc->devRmTimerLock, 0);
1697 next_tick = pmcsc->pCardInfo->tiRscInfo.tiLoLevelResource.
1701 callout_reset( &pmcsc->OS_timer, next_tick, agtiapi_TITimer, pmcsc );
1711 struct agtiapi_softc *pmcsc (IN) Pointer to the HBA data structure
1718 int agtiapi_alloc_ostimem( struct agtiapi_softc *pmcsc ) {
1738 &pmcsc->osti_dmat ) ) {
1744 if( bus_dmamem_alloc( pmcsc->osti_dmat,
1745 &pmcsc->osti_mem,
1747 &pmcsc->osti_mapp ) ) {
1754 bus_dmamap_load( pmcsc->osti_dmat,
1755 pmcsc->osti_mapp,
1756 pmcsc->osti_mem,
1759 &pmcsc->osti_busaddr,
1765 ag_card_info_t *pCardInfo = pmcsc->pCardInfo;
1770 pMem->nocache_busaddr = pmcsc->osti_busaddr + ( idx * nomsize );
1771 pMem->nocache_mem = (void*)((U64)pmcsc->osti_mem + ( idx * nomsize ));
1794 struct agtiapi_softc *pmcsc;
1802 pmcsc = cam_sim_softc( sim );
1803 AGTIAPI_IO( "agtiapi_cam_action: start pmcs %p\n", pmcsc );
1805 if (pmcsc == agNULL)
1810 mtx_assert( &(pmcsc->pCardInfo->pmIOLock), MA_OWNED );
1812 AGTIAPI_IO( "agtiapi_cam_action: cardNO %d func_code 0x%x\n", pmcsc->cardNo, ccb->ccb_h.func_code );
1859 if ( pmcsc->flags & AGTIAPI_SHUT_DOWN )
1876 if (pmcsc != NULL && targetID >= 0 && targetID < maxTargets)
1878 if (pmcsc->pWWNList != NULL)
1880 TID = INDEX(pmcsc, targetID);
1883 pDevHandle = pmcsc->pDevList[TID].pDevHandle;
1889 tiINIGetDeviceInfo( &pmcsc->tiRoot, pDevHandle, &devInfo );
1912 lRetVal = agtiapi_eh_HostReset( pmcsc, ccb ); // usually works first time
1937 agtiapi_QueueSMP( pmcsc, ccb );
1943 if(pmcsc->dev_scan == agFALSE)
1948 if (pmcsc->flags & AGTIAPI_SHUT_DOWN)
1959 agtiapi_QueueCmnd_( pmcsc, ccb );
1991 struct agtiapi_softc *pmcsc (IN) Pointer to HBA structure
1996 STATIC pccb_t agtiapi_GetCCB( struct agtiapi_softc *pmcsc )
2002 AG_LOCAL_LOCK( &pmcsc->ccbLock );
2005 if ((pccb = (pccb_t)pmcsc->ccbFreeList) != NULL)
2007 pmcsc->ccbFreeList = (caddr_t *)pccb->pccbNext;
2011 pmcsc->activeCCB++;
2019 AG_LOCAL_UNLOCK( &pmcsc->ccbLock );
2036 int agtiapi_QueueCmnd_(struct agtiapi_softc *pmcsc, union ccb * ccb)
2068 if ((pccb = agtiapi_GetCCB(pmcsc)) == NULL)
2071 if (pmcsc != NULL)
2074 TID = INDEX(pmcsc, TID);
2075 targ = &pmcsc->pDevList[TID];
2084 pccb->pmcsc = pmcsc;
2098 status = agtiapi_PrepareSGList(pmcsc, pccb);
2102 agtiapi_FreeCCB(pmcsc, pccb);
2183 *data (IN) point to pmcsc (struct agtiapi_softc *)
2187 int agtiapi_DoSoftReset (struct agtiapi_softc *pmcsc)
2192 pmcsc->flags |= AGTIAPI_SOFT_RESET;
2194 ret = agtiapi_ResetCard( pmcsc, &flags );
2217 struct agtiapi_softc *pmcsc;
2220 pmcsc = (struct agtiapi_softc *)data;
2224 //AGTIAPI_PRINTK("agtiapi_CheckIOTimeout: Active CCB %d\n", pmcsc->activeCCB);
2226 pccb = (pccb_t)pmcsc->ccbChainList;
2229 if ((pccb == NULL) || (pmcsc->activeCCB == 0))
2236 if (pmcsc->flags & AGTIAPI_SHUT_DOWN)
2260 status = agtiapi_StartTM(pmcsc, pccb_curr);
2276 agtiapi_DoSoftReset (pmcsc);
2284 callout_reset(&pmcsc->IO_timer, 1*hz, agtiapi_CheckIOTimeout, pmcsc);
2358 pTMccb->pmcsc = pCard;
2442 static int agtiapi_PrepareSGList(struct agtiapi_softc *pmcsc, ccb_t *pccb)
2461 // AG_LOCAL_LOCK(&(pmcsc->pCardInfo->pmIOLock));
2463 error = bus_dmamap_load( pmcsc->buffer_dmat,
2470 // AG_LOCAL_UNLOCK( &(pmcsc->pCardInfo->pmIOLock) );
2476 xpt_freeze_simq(pmcsc->sim, 1);
2477 pmcsc->SimQFrozen = agTRUE;
2518 static int agtiapi_PrepareSGList(struct agtiapi_softc *pmcsc, ccb_t *pccb)
2536 // AG_LOCAL_LOCK(&(pmcsc->pCardInfo->pmIOLock));
2538 error = bus_dmamap_load( pmcsc->buffer_dmat,
2545 // AG_LOCAL_UNLOCK( &(pmcsc->pCardInfo->pmIOLock) );
2551 xpt_freeze_simq(pmcsc->sim, 1);
2552 pmcsc->SimQFrozen = agTRUE;
2607 struct agtiapi_softc *pmcsc;
2620 pmcsc = pccb->pmcsc;
2631 bus_dmamap_unload(pmcsc->buffer_dmat, pccb->CCB_dmamap);
2632 agtiapi_FreeCCB(pmcsc, pccb);
2647 bus_dmamap_unload(pmcsc->buffer_dmat, pccb->CCB_dmamap);
2648 agtiapi_FreeCCB(pmcsc, pccb);
2816 agtiapi_FreeCCB(pmcsc, pccb);
2822 if (INDEX(pmcsc, pccb->targetId) >= maxTargets)
2826 agtiapi_FreeCCB(pmcsc, pccb);
2832 pDev = &pmcsc->pDevList[INDEX(pmcsc, pccb->targetId)];
2835 if ((pmcsc->flags & EDC_DATA) &&
3019 bus_dmamap_sync(pmcsc->buffer_dmat, pccb->CCB_dmamap, op);
3030 agtiapi_FreeCCB(pmcsc, pccb);
3036 TID = INDEX(pmcsc, pccb->targetId);
3037 if ((TID >= pmcsc->devDiscover) ||
3038 !(pccb->devHandle = pmcsc->pDevList[TID].pDevHandle))
3044 pmcsc->devDiscover, pmcsc, pccb );
3048 agtiapi_FreeCCB(pmcsc, pccb);
3055 "pccb->targetId %d TID %d pmcsc->devDiscover %d card %p\n",
3056 pccb->devHandle, pccb->targetId, TID, pmcsc->devDiscover,
3057 pmcsc );
3059 if(pmcsc->encrypt && io_is_encryptable) {
3060 agtiapi_SetupEncryptedIO(pmcsc, pccb, start_lba);
3067 agtiapi_QueueCCB( pmcsc, &pmcsc->ccbSendHead, &pmcsc->ccbSendTail
3068 AG_CARD_LOCAL_LOCK(&pmcsc->sendLock), pccb );
3069 agtiapi_StartIO(pmcsc);
3079 (struct agtiapi_softc *pmcsc (IN) Pointer to HBA data structure
3083 STATIC void agtiapi_StartIO( struct agtiapi_softc *pmcsc )
3091 AG_LOCAL_LOCK( &pmcsc->sendLock );
3092 pccb = pmcsc->ccbSendHead;
3095 if ((pccb == NULL) || pmcsc->flags & AGTIAPI_RESET)
3097 AG_LOCAL_UNLOCK( &pmcsc->sendLock );
3103 if (pmcsc != NULL && pccb->targetId >= 0 && pccb->targetId < maxTargets)
3105 TID = INDEX(pmcsc, pccb->targetId);
3106 targ = &pmcsc->pDevList[TID];
3111 pmcsc->ccbSendHead = NULL;
3112 pmcsc->ccbSendTail = NULL;
3113 AG_LOCAL_UNLOCK( &pmcsc->sendLock );
3160 agtiapi_Done( pmcsc, pccb );
3167 status = agtiapi_FastIOTest( pmcsc, pccb );
3169 status = tiINISuperIOStart( &pmcsc->tiRoot,
3195 agtiapi_LogEvent( pmcsc,
3204 agtiapi_Done(pmcsc, pccb);
3211 agtiapi_LogEvent( pmcsc,
3221 agtiapi_Done(pmcsc, pccb);
3228 agtiapi_LogEvent( pmcsc,
3240 agtiapi_Done(pmcsc, pccb);
3243 agtiapi_QueueCCB(pmcsc, &pmcsc->ccbSendHead, &pmcsc->ccbSendTail
3244 AG_CARD_LOCAL_LOCK(&pmcsc->sendLock), pccb);
3251 agtiapi_LogEvent(pmcsc,
3260 agtiapi_Done(pmcsc, pccb);
3266 agtiapi_LogEvent(pmcsc,
3275 agtiapi_Done(pmcsc, pccb);
3282 AG_GET_DONE_PCCB(pccb, pmcsc);
3292 (struct agtiapi_softc *pmcsc (IN) Pointer to HBA data structure
3296 STATIC void agtiapi_StartSMP(struct agtiapi_softc *pmcsc)
3302 AG_LOCAL_LOCK(&pmcsc->sendSMPLock);
3303 pccb = pmcsc->smpSendHead;
3306 if ((pccb == NULL) || pmcsc->flags & AGTIAPI_RESET)
3308 AG_LOCAL_UNLOCK(&pmcsc->sendSMPLock);
3314 pmcsc->smpSendHead = NULL;
3315 pmcsc->smpSendTail = NULL;
3316 AG_LOCAL_UNLOCK(&pmcsc->sendSMPLock);
3343 status = tiINISMPStart( &pmcsc->tiRoot,
3358 agtiapi_QueueCCB(pmcsc, &pmcsc->smpSendHead, &pmcsc->smpSendTail
3359 AG_CARD_LOCAL_LOCK(&pmcsc->sendSMPLock), pccb);
3365 agtiapi_SMPDone(pmcsc, pccb);
3371 agtiapi_SMPDone(pmcsc, pccb);
3378 AG_GET_DONE_SMP_PCCB(pccb, pmcsc);
3398 static int agtiapi_PrepareSMPSGList( struct agtiapi_softc *pmcsc, ccb_t *pccb )
3436 //AG_LOCAL_LOCK(&(pmcsc->pCardInfo->pmIOLock));
3438 error = bus_dmamap_load( pmcsc->buffer_dmat,
3446 //AG_LOCAL_UNLOCK(&(pmcsc->pCardInfo->pmIOLock));
3457 xpt_freeze_simq( pmcsc->sim, 1 );
3458 pmcsc->SimQFrozen = agTRUE;
3469 //AG_LOCAL_LOCK( &(pmcsc->pCardInfo->pmIOLock) );
3471 error = bus_dmamap_load( pmcsc->buffer_dmat,
3479 //AG_LOCAL_UNLOCK( &(pmcsc->pCardInfo->pmIOLock) );
3490 xpt_freeze_simq( pmcsc->sim, 1 );
3491 pmcsc->SimQFrozen = agTRUE;
3530 static int agtiapi_PrepareSMPSGList( struct agtiapi_softc *pmcsc, ccb_t *pccb )
3570 //AG_LOCAL_LOCK(&(pmcsc->pCardInfo->pmIOLock));
3572 error = bus_dmamap_load( pmcsc->buffer_dmat,
3580 //AG_LOCAL_UNLOCK(&(pmcsc->pCardInfo->pmIOLock));
3591 xpt_freeze_simq( pmcsc->sim, 1 );
3592 pmcsc->SimQFrozen = agTRUE;
3603 //AG_LOCAL_LOCK( &(pmcsc->pCardInfo->pmIOLock) );
3605 error = bus_dmamap_load( pmcsc->buffer_dmat,
3613 //AG_LOCAL_UNLOCK( &(pmcsc->pCardInfo->pmIOLock) );
3624 xpt_freeze_simq( pmcsc->sim, 1 );
3625 pmcsc->SimQFrozen = agTRUE;
3671 struct agtiapi_softc *pmcsc;
3680 pmcsc = pccb->pmcsc;
3692 bus_dmamap_unload( pmcsc->buffer_dmat, pccb->CCB_dmamap );
3693 agtiapi_FreeCCB( pmcsc, pccb );
3708 bus_dmamap_unload( pmcsc->buffer_dmat, pccb->CCB_dmamap );
3709 agtiapi_FreeCCB( pmcsc, pccb );
3722 agtiapi_FreeCCB( pmcsc, pccb );
3728 TID = INDEX( pmcsc, pccb->targetId );
3729 if ( (TID >= pmcsc->devDiscover) ||
3730 !(pccb->devHandle = pmcsc->pDevList[TID].pDevHandle) )
3738 pmcsc->devDiscover,
3739 pmcsc,
3741 agtiapi_FreeCCB( pmcsc, pccb );
3751 "pccb->targetId %d TID %d pmcsc->devDiscover %d card %p\n",
3754 pmcsc->devDiscover,
3755 pmcsc );
3757 tiExpPortalInfo = pmcsc->pDevList[TID].pPortalInfo;
3760 status = tiINIGetExpander( &pmcsc->tiRoot,
3769 agtiapi_FreeCCB( pmcsc, pccb );
3779 agtiapi_QueueCCB( pmcsc, &pmcsc->smpSendHead, &pmcsc->smpSendTail
3780 AG_CARD_LOCAL_LOCK(&pmcsc->sendSMPLock), pccb );
3782 agtiapi_StartSMP( pmcsc );
3794 struct agtiapi_softc *pmcsc (IN) Pointer to HBA data structure
3799 STATIC void agtiapi_Done(struct agtiapi_softc *pmcsc, ccb_t *pccb)
3813 if (agtiapi_CheckError(pmcsc, pccb_curr) != 0)
3825 CMND_DMA_UNMAP(pmcsc, ccb);
3829 agtiapi_FreeCCB(pmcsc, pccb_curr);
3843 struct agtiapi_softc *pmcsc (IN) Ponter to HBA data structure
3849 STATIC void agtiapi_SMPDone(struct agtiapi_softc *pmcsc, ccb_t *pccb)
3863 if (agtiapi_CheckSMPError(pmcsc, pccb_curr) != 0)
3865 CMND_DMA_UNMAP(pmcsc, ccb);
3869 agtiapi_FreeSMPCCB(pmcsc, pccb_curr);
3934 STATIC U32 agtiapi_CheckError(struct agtiapi_softc *pmcsc, ccb_t *pccb)
3950 agtiapi_FreeCCB(pmcsc, pccb);
3956 if (pmcsc != NULL && pccb->targetId >= 0 && pccb->targetId < maxTargets)
3958 if (pmcsc->pWWNList != NULL)
3960 TID = INDEX(pmcsc, pccb->targetId);
3963 pDevice = &pmcsc->pDevList[TID];
3974 agtiapi_FreeCCB(pmcsc, pccb);
3984 AG_LOCAL_LOCK(&pmcsc->freezeLock);
3985 if(pmcsc->freezeSim == agTRUE)
3987 pmcsc->freezeSim = agFALSE;
3988 xpt_release_simq(pmcsc->sim, 1);
3990 AG_LOCAL_UNLOCK(&pmcsc->freezeLock);
4047 AG_LOCAL_LOCK(&pmcsc->freezeLock);
4048 if(pmcsc->freezeSim == agFALSE)
4050 pmcsc->freezeSim = agTRUE;
4051 xpt_freeze_simq(pmcsc->sim, 1);
4053 AG_LOCAL_UNLOCK(&pmcsc->freezeLock);
4163 STATIC U32 agtiapi_CheckSMPError( struct agtiapi_softc *pmcsc, ccb_t *pccb )
4174 agtiapi_FreeSMPCCB(pmcsc, pccb);
4229 struct agtiapi_softc *pmcsc (IN) Pointer to the HBA structure
4235 STATIC void agtiapi_Retry(struct agtiapi_softc *pmcsc, ccb_t *pccb)
4247 agtiapi_QueueCCB(pmcsc, &pmcsc->ccbSendHead, &pmcsc->ccbSendTail
4248 AG_CARD_LOCAL_LOCK(&pmcsc->sendLock), pccb);
4320 int agtiapi_eh_HostReset( struct agtiapi_softc *pmcsc, union ccb *cmnd )
4332 agtiapi_LogEvent( pmcsc,
4340 return agtiapi_DoSoftReset( pmcsc );
4350 struct agtiapi_softc *pmcsc (IN) Pointer to HBA data structure
4358 STATIC void agtiapi_QueueCCB( struct agtiapi_softc *pmcsc,
4403 static int agtiapi_QueueSMP(struct agtiapi_softc *pmcsc, union ccb * ccb)
4412 if ((pccb = agtiapi_GetCCB(pmcsc)) == NULL)
4419 pccb->pmcsc = pmcsc;
4425 status = agtiapi_PrepareSMPSGList(pmcsc, pccb);
4430 agtiapi_FreeCCB(pmcsc, pccb);
4492 struct agtiapi_softc *pmcsc (IN) Pointer to HBA data structure
4498 STATIC void agtiapi_FreeCCB(struct agtiapi_softc *pmcsc, pccb_t pccb)
4503 AG_LOCAL_LOCK(&pmcsc->ccbLock);
4540 bus_dmamap_sync(pmcsc->buffer_dmat, pccb->CCB_dmamap, op);
4541 bus_dmamap_unload(pmcsc->buffer_dmat, pccb->CCB_dmamap);
4547 bus_dmamap_sync(pmcsc->buffer_dmat, pccb->CCB_dmamap, op);
4548 bus_dmamap_unload(pmcsc->buffer_dmat, pccb->CCB_dmamap);
4574 pci_free_consistent( pmcsc->pCardInfo->pPCIDev,
4593 if (pmcsc->encrypt)
4594 agtiapi_CleanupEncryptedIO(pmcsc, pccb);
4600 pccb->pccbNext = (pccb_t)pmcsc->ccbFreeList;
4601 pmcsc->ccbFreeList = (caddr_t *)pccb;
4603 pmcsc->activeCCB--;
4605 AG_LOCAL_UNLOCK(&pmcsc->ccbLock);
4670 struct agtiapi_softc *pmcsc (IN) Pointer to HBA data structure
4676 STATIC void agtiapi_FreeSMPCCB(struct agtiapi_softc *pmcsc, pccb_t pccb)
4681 AG_LOCAL_LOCK(&pmcsc->ccbLock);
4703 bus_dmamap_sync(pmcsc->buffer_dmat, pccb->CCB_dmamap, op);
4704 bus_dmamap_unload(pmcsc->buffer_dmat, pccb->CCB_dmamap);
4710 bus_dmamap_sync(pmcsc->buffer_dmat, pccb->CCB_dmamap, op);
4711 bus_dmamap_unload(pmcsc->buffer_dmat, pccb->CCB_dmamap);
4726 pccb->pccbNext = (pccb_t)pmcsc->ccbFreeList;
4727 pmcsc->ccbFreeList = (caddr_t *)pccb;
4729 pmcsc->activeCCB--;
4731 AG_LOCAL_UNLOCK(&pmcsc->ccbLock);
4742 struct agtiapi_softc *pmcsc (IN) Pointer to HBA data structure
4748 STATIC void agtiapi_FreeTMCCB(struct agtiapi_softc *pmcsc, pccb_t pccb)
4750 AG_LOCAL_LOCK(&pmcsc->ccbLock);
4764 pccb->pccbNext = (pccb_t)pmcsc->ccbFreeList;
4765 pmcsc->ccbFreeList = (caddr_t *)pccb;
4766 pmcsc->activeCCB--;
4767 AG_LOCAL_UNLOCK(&pmcsc->ccbLock);
5645 static void agtiapi_scan(struct agtiapi_softc *pmcsc)
5650 AGTIAPI_PRINTK("agtiapi_scan: start cardNO %d \n", pmcsc->cardNo);
5652 bus = cam_sim_path(pmcsc->sim);
5657 mtx_lock(&(pmcsc->pCardInfo->pmIOLock));
5661 mtx_unlock(&(pmcsc->pCardInfo->pmIOLock));
5667 mtx_unlock(&(pmcsc->pCardInfo->pmIOLock));
5672 mtx_unlock(&(pmcsc->pCardInfo->pmIOLock));
5673 pmcsc->dev_scan = agTRUE;