Lines Matching refs:pCmd
108 static void HPTLIBAPI fOsCommandDone(_VBUS_ARG PCommand pCmd);
115 static void handleEdmaError(_VBUS_ARG PCommand pCmd);
125 static int HPTLIBAPI fOsBuildSgl(_VBUS_ARG PCommand pCmd, FPSCAT_GATH pSg,
201 handleEdmaError(_VBUS_ARG PCommand pCmd) in handleEdmaError() argument
203 PDevice pDevice = &pCmd->pVDevice->u.disk; in handleEdmaError()
208 pCmd->Result = RETURN_BAD_DEVICE; in handleEdmaError()
209 CallAfterReturn(_VBUS_P (DPC_PROC)pCmd->pfnCompletion, pCmd); in handleEdmaError()
213 if (pCmd->RetryCount++>5) { in handleEdmaError()
216 failDevice(pCmd->pVDevice); in handleEdmaError()
217 pCmd->Result = RETURN_IDE_ERROR; in handleEdmaError()
218 CallAfterReturn(_VBUS_P (DPC_PROC)pCmd->pfnCompletion, pCmd); in handleEdmaError()
229 fDeviceSendCommand(_VBUS_P pCmd); in handleEdmaError()
1650 PCommand pCmd = (PCommand) commandId; in CommandCompletionCB() local
1651 _VBUS_INST(pCmd->pVDevice->pVBus) in CommandCompletionCB()
1653 if (pCmd->uScratch.sata_param.prdAddr) in CommandCompletionCB()
1654 FreePRDTable(pMvSataAdapter->IALData,pCmd->uScratch.sata_param.prdAddr); in CommandCompletionCB()
1659 pCmd->Result = RETURN_SUCCESS; in CommandCompletionCB()
1662 pCmd->Result = RETURN_BUS_RESET; in CommandCompletionCB()
1681 pCmd->uScratch.sata_param.responseFlags = responseFlags; in CommandCompletionCB()
1682 pCmd->uScratch.sata_param.bIdeStatus = registerStruct->statusRegister; in CommandCompletionCB()
1683 pCmd->uScratch.sata_param.errorRegister = registerStruct->errorRegister; in CommandCompletionCB()
1684 pCmd->pVDevice->u.disk.QueueLength--; in CommandCompletionCB()
1685 CallAfterReturn(_VBUS_P (DPC_PROC)handleEdmaError,pCmd); in CommandCompletionCB()
1693 if (pCmd->uCmd.Ide.Command == IDE_COMMAND_VERIFY && pCmd->uScratch.sata_param.cmd_priv > 1) { in CommandCompletionCB()
1694 pCmd->uScratch.sata_param.cmd_priv --; in CommandCompletionCB()
1697 pCmd->pVDevice->u.disk.QueueLength--; in CommandCompletionCB()
1698 CallAfterReturn(_VBUS_P (DPC_PROC)pCmd->pfnCompletion, pCmd); in CommandCompletionCB()
1703 fDeviceSendCommand(_VBUS_ARG PCommand pCmd) in fDeviceSendCommand() argument
1708 PVDevice pVDevice = pCmd->pVDevice; in fDeviceSendCommand()
1710 LBA_T Lba = pCmd->uCmd.Ide.Lba; in fDeviceSendCommand()
1711 USHORT nSector = pCmd->uCmd.Ide.nSectors; in fDeviceSendCommand()
1726 pCmd->Result = RETURN_BAD_DEVICE; in fDeviceSendCommand()
1727 CallAfterReturn(_VBUS_P (DPC_PROC)pCmd->pfnCompletion, pCmd); in fDeviceSendCommand()
1731 pDevice->HeadPosition = pCmd->uCmd.Ide.Lba + pCmd->uCmd.Ide.nSectors; in fDeviceSendCommand()
1740 pCmd->Result = RETURN_INVALID_REQUEST; in fDeviceSendCommand()
1741 CallAfterReturn(_VBUS_P (DPC_PROC)pCmd->pfnCompletion, pCmd); in fDeviceSendCommand()
1752 switch (pCmd->uCmd.Ide.Command) in fDeviceSendCommand()
1765 pUdmaParams->commandId = (MV_VOID_PTR )pCmd; in fDeviceSendCommand()
1766 if(pCmd->uCmd.Ide.Command == IDE_COMMAND_READ) in fDeviceSendCommand()
1771 if (pCmd->pSgTable && pCmd->cf_physical_sg) { in fDeviceSendCommand()
1772 FPSCAT_GATH sg1=tmpSg, sg2=pCmd->pSgTable; in fDeviceSendCommand()
1776 if (!pCmd->pfnBuildSgl || !pCmd->pfnBuildSgl(_VBUS_P pCmd, tmpSg, 0)) { in fDeviceSendCommand()
1781 if (pCmd->pSgTable && pCmd->cf_physical_sg==0) { in fDeviceSendCommand()
1782 FPSCAT_GATH sg1=tmpSg, sg2=pCmd->pSgTable; in fDeviceSendCommand()
1786 if (!pCmd->pfnBuildSgl || !pCmd->pfnBuildSgl(_VBUS_P pCmd, tmpSg, 1)) { in fDeviceSendCommand()
1787 pCmd->Result = RETURN_NEED_LOGICAL_SG; in fDeviceSendCommand()
1796 pCmd->Result = RETURN_INVALID_REQUEST; in fDeviceSendCommand()
1800 (pCmd->cf_data_out)?MV_NON_UDMA_PROTOCOL_PIO_DATA_OUT:MV_NON_UDMA_PROTOCOL_PIO_DATA_IN, in fDeviceSendCommand()
1810 …(MV_U8)(is48bit ? (pCmd->cf_data_in?IDE_COMMAND_READ_EXT:IDE_COMMAND_WRITE_EXT):pCmd->uCmd.Ide.Com… in fDeviceSendCommand()
1813 pCmd->Result = RETURN_IDE_ERROR; in fDeviceSendCommand()
1820 pCmd->Result = RETURN_SUCCESS; in fDeviceSendCommand()
1823 CallAfterReturn(_VBUS_P (DPC_PROC)pCmd->pfnCompletion, pCmd); in fDeviceSendCommand()
1831 pCmd->Result = RETURN_DEVICE_BUSY; in fDeviceSendCommand()
1832 CallAfterReturn(_VBUS_P (DPC_PROC)pCmd->pfnCompletion, pCmd); in fDeviceSendCommand()
1851 pCmd->uScratch.sata_param.prdAddr = (PVOID)pPRDTable; in fDeviceSendCommand()
1863 pCmd->Result = RETURN_IDE_ERROR; in fDeviceSendCommand()
1870 pCmd->Result = RETURN_IDE_ERROR; in fDeviceSendCommand()
1876 pCmd->Result = RETURN_DEVICE_BUSY; in fDeviceSendCommand()
1882 pCmd->Result = RETURN_IDE_ERROR; in fDeviceSendCommand()
1887 pCmd->Result = RETURN_IDE_ERROR; in fDeviceSendCommand()
1891 CallAfterReturn(_VBUS_P (DPC_PROC)pCmd->pfnCompletion, pCmd); in fDeviceSendCommand()
1900 pNoUdmaParams->commandId = (MV_VOID_PTR)pCmd; in fDeviceSendCommand()
1905 pCmd->uScratch.sata_param.cmd_priv = 1; in fDeviceSendCommand()
1939 pCmd->Result = RETURN_INVALID_REQUEST; in fDeviceSendCommand()
1940 CallAfterReturn(_VBUS_P (DPC_PROC)pCmd->pfnCompletion, pCmd); in fDeviceSendCommand()
2501 int HPTLIBAPI fOsBuildSgl(_VBUS_ARG PCommand pCmd, FPSCAT_GATH pSg, int logical) in fOsBuildSgl() argument
2503 union ccb *ccb = (union ccb *)pCmd->pOrgCommand; in fOsBuildSgl()
2612 PCommand pCmd = (PCommand)arg; in hpt_io_dmamap_callback() local
2613 union ccb *ccb = pCmd->pOrgCommand; in hpt_io_dmamap_callback()
2618 FPSCAT_GATH psg = pCmd->pSgTable; in hpt_io_dmamap_callback()
2622 HPT_ASSERT(pCmd->cf_physical_sg); in hpt_io_dmamap_callback()
2638 if (pCmd->cf_data_in) { in hpt_io_dmamap_callback()
2642 else if (pCmd->cf_data_out) { in hpt_io_dmamap_callback()
2649 pVDev->pfnSendCommand(_VBUS_P pCmd); in hpt_io_dmamap_callback()
2753 PCommand pCmd = AllocateCommand(_VBUS_P0); in OsSendCommand()
2755 HPT_ASSERT(pCmd); in OsSendCommand()
2776 pCmd->pOrgCommand = ccb; in OsSendCommand()
2777 pCmd->pVDevice = pVDev; in OsSendCommand()
2778 pCmd->pfnCompletion = fOsCommandDone; in OsSendCommand()
2779 pCmd->pfnBuildSgl = fOsBuildSgl; in OsSendCommand()
2780 pCmd->pSgTable = pmap->psg; in OsSendCommand()
2787 pCmd->uCmd.Ide.Lba = ((ULONG)Cdb[1] << 16) | ((ULONG)Cdb[2] << 8) | (ULONG)Cdb[3]; in OsSendCommand()
2788 pCmd->uCmd.Ide.nSectors = (USHORT) Cdb[4]; in OsSendCommand()
2793 pCmd->uCmd.Ide.Lba = in OsSendCommand()
2802 pCmd->uCmd.Ide.nSectors = (USHORT)Cdb[12] << 8 | (USHORT)Cdb[13]; in OsSendCommand()
2806 …pCmd->uCmd.Ide.Lba = (ULONG)Cdb[5] | ((ULONG)Cdb[4] << 8) | ((ULONG)Cdb[3] << 16) | ((ULONG)Cdb[2]… in OsSendCommand()
2807 pCmd->uCmd.Ide.nSectors = (USHORT) Cdb[8] | ((USHORT)Cdb[7]<<8); in OsSendCommand()
2816 pCmd->uCmd.Ide.Command = IDE_COMMAND_READ; in OsSendCommand()
2817 pCmd->cf_data_in = 1; in OsSendCommand()
2823 pCmd->uCmd.Ide.Command = IDE_COMMAND_WRITE; in OsSendCommand()
2824 pCmd->cf_data_out = 1; in OsSendCommand()
2828 pCmd->uCmd.Ide.Command = IDE_COMMAND_VERIFY; in OsSendCommand()
2832 pCmd->cf_physical_sg = 1; in OsSendCommand()
2837 pCmd, BUS_DMA_WAITOK in OsSendCommand()
2842 FreeCommand(_VBUS_P pCmd); in OsSendCommand()
2864 fOsCommandDone(_VBUS_ARG PCommand pCmd) in fOsCommandDone() argument
2866 union ccb *ccb = pCmd->pOrgCommand; in fOsCommandDone()
2870 KdPrint(("fOsCommandDone(pcmd=%p, result=%d)\n", pCmd, pCmd->Result)); in fOsCommandDone()
2874 switch(pCmd->Result) { in fOsCommandDone()
2898 if (pCmd->cf_data_in) { in fOsCommandDone()
2901 else if (pCmd->cf_data_out) { in fOsCommandDone()
2907 FreeCommand(_VBUS_P pCmd); in fOsCommandDone()