• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/sys/dev/hptmv/

Lines Matching refs:pCmd

112 static void HPTLIBAPI fOsCommandDone(_VBUS_ARG PCommand pCmd);
119 static void handleEdmaError(_VBUS_ARG PCommand pCmd);
129 static int HPTLIBAPI fOsBuildSgl(_VBUS_ARG PCommand pCmd, FPSCAT_GATH pSg,
205 handleEdmaError(_VBUS_ARG PCommand pCmd)
207 PDevice pDevice = &pCmd->pVDevice->u.disk;
212 pCmd->Result = RETURN_BAD_DEVICE;
213 CallAfterReturn(_VBUS_P (DPC_PROC)pCmd->pfnCompletion, pCmd);
217 if (pCmd->RetryCount++>5) {
220 failDevice(pCmd->pVDevice);
221 pCmd->Result = RETURN_IDE_ERROR;
222 CallAfterReturn(_VBUS_P (DPC_PROC)pCmd->pfnCompletion, pCmd);
233 fDeviceSendCommand(_VBUS_P pCmd);
1654 PCommand pCmd = (PCommand) commandId;
1655 _VBUS_INST(pCmd->pVDevice->pVBus)
1657 if (pCmd->uScratch.sata_param.prdAddr)
1658 FreePRDTable(pMvSataAdapter->IALData,pCmd->uScratch.sata_param.prdAddr);
1663 pCmd->Result = RETURN_SUCCESS;
1666 pCmd->Result = RETURN_BUS_RESET;
1685 pCmd->uScratch.sata_param.responseFlags = responseFlags;
1686 pCmd->uScratch.sata_param.bIdeStatus = registerStruct->statusRegister;
1687 pCmd->uScratch.sata_param.errorRegister = registerStruct->errorRegister;
1688 pCmd->pVDevice->u.disk.QueueLength--;
1689 CallAfterReturn(_VBUS_P (DPC_PROC)handleEdmaError,pCmd);
1697 if (pCmd->uCmd.Ide.Command == IDE_COMMAND_VERIFY && pCmd->uScratch.sata_param.cmd_priv > 1) {
1698 pCmd->uScratch.sata_param.cmd_priv --;
1701 pCmd->pVDevice->u.disk.QueueLength--;
1702 CallAfterReturn(_VBUS_P (DPC_PROC)pCmd->pfnCompletion, pCmd);
1707 fDeviceSendCommand(_VBUS_ARG PCommand pCmd)
1712 PVDevice pVDevice = pCmd->pVDevice;
1714 LBA_T Lba = pCmd->uCmd.Ide.Lba;
1715 USHORT nSector = pCmd->uCmd.Ide.nSectors;
1730 pCmd->Result = RETURN_BAD_DEVICE;
1731 CallAfterReturn(_VBUS_P (DPC_PROC)pCmd->pfnCompletion, pCmd);
1735 pDevice->HeadPosition = pCmd->uCmd.Ide.Lba + pCmd->uCmd.Ide.nSectors;
1744 pCmd->Result = RETURN_INVALID_REQUEST;
1745 CallAfterReturn(_VBUS_P (DPC_PROC)pCmd->pfnCompletion, pCmd);
1756 switch (pCmd->uCmd.Ide.Command)
1769 pUdmaParams->commandId = (MV_VOID_PTR )pCmd;
1770 if(pCmd->uCmd.Ide.Command == IDE_COMMAND_READ)
1775 if (pCmd->pSgTable && pCmd->cf_physical_sg) {
1776 FPSCAT_GATH sg1=tmpSg, sg2=pCmd->pSgTable;
1780 if (!pCmd->pfnBuildSgl || !pCmd->pfnBuildSgl(_VBUS_P pCmd, tmpSg, 0)) {
1785 if (pCmd->pSgTable && pCmd->cf_physical_sg==0) {
1786 FPSCAT_GATH sg1=tmpSg, sg2=pCmd->pSgTable;
1790 if (!pCmd->pfnBuildSgl || !pCmd->pfnBuildSgl(_VBUS_P pCmd, tmpSg, 1)) {
1791 pCmd->Result = RETURN_NEED_LOGICAL_SG;
1800 pCmd->Result = RETURN_INVALID_REQUEST;
1804 (pCmd->cf_data_out)?MV_NON_UDMA_PROTOCOL_PIO_DATA_OUT:MV_NON_UDMA_PROTOCOL_PIO_DATA_IN,
1814 (MV_U8)(is48bit ? (pCmd->cf_data_in?IDE_COMMAND_READ_EXT:IDE_COMMAND_WRITE_EXT):pCmd->uCmd.Ide.Command)
1817 pCmd->Result = RETURN_IDE_ERROR;
1824 pCmd->Result = RETURN_SUCCESS;
1827 CallAfterReturn(_VBUS_P (DPC_PROC)pCmd->pfnCompletion, pCmd);
1835 pCmd->Result = RETURN_DEVICE_BUSY;
1836 CallAfterReturn(_VBUS_P (DPC_PROC)pCmd->pfnCompletion, pCmd);
1855 pCmd->uScratch.sata_param.prdAddr = (PVOID)pPRDTable;
1867 pCmd->Result = RETURN_IDE_ERROR;
1874 pCmd->Result = RETURN_IDE_ERROR;
1880 pCmd->Result = RETURN_DEVICE_BUSY;
1886 pCmd->Result = RETURN_IDE_ERROR;
1891 pCmd->Result = RETURN_IDE_ERROR;
1895 CallAfterReturn(_VBUS_P (DPC_PROC)pCmd->pfnCompletion, pCmd);
1904 pNoUdmaParams->commandId = (MV_VOID_PTR)pCmd;
1909 pCmd->uScratch.sata_param.cmd_priv = 1;
1943 pCmd->Result = RETURN_INVALID_REQUEST;
1944 CallAfterReturn(_VBUS_P (DPC_PROC)pCmd->pfnCompletion, pCmd);
2515 int HPTLIBAPI fOsBuildSgl(_VBUS_ARG PCommand pCmd, FPSCAT_GATH pSg, int logical)
2517 union ccb *ccb = (union ccb *)pCmd->pOrgCommand;
2626 PCommand pCmd = (PCommand)arg;
2627 union ccb *ccb = pCmd->pOrgCommand;
2632 FPSCAT_GATH psg = pCmd->pSgTable;
2636 HPT_ASSERT(pCmd->cf_physical_sg);
2652 if (pCmd->cf_data_in) {
2656 else if (pCmd->cf_data_out) {
2663 pVDev->pfnSendCommand(_VBUS_P pCmd);
2767 PCommand pCmd = AllocateCommand(_VBUS_P0);
2769 HPT_ASSERT(pCmd);
2790 pCmd->pOrgCommand = ccb;
2791 pCmd->pVDevice = pVDev;
2792 pCmd->pfnCompletion = fOsCommandDone;
2793 pCmd->pfnBuildSgl = fOsBuildSgl;
2794 pCmd->pSgTable = pmap->psg;
2801 pCmd->uCmd.Ide.Lba = ((ULONG)Cdb[1] << 16) | ((ULONG)Cdb[2] << 8) | (ULONG)Cdb[3];
2802 pCmd->uCmd.Ide.nSectors = (USHORT) Cdb[4];
2807 pCmd->uCmd.Ide.Lba =
2816 pCmd->uCmd.Ide.nSectors = (USHORT)Cdb[12] << 8 | (USHORT)Cdb[13];
2820 pCmd->uCmd.Ide.Lba = (ULONG)Cdb[5] | ((ULONG)Cdb[4] << 8) | ((ULONG)Cdb[3] << 16) | ((ULONG)Cdb[2] << 24);
2821 pCmd->uCmd.Ide.nSectors = (USHORT) Cdb[8] | ((USHORT)Cdb[7]<<8);
2830 pCmd->uCmd.Ide.Command = IDE_COMMAND_READ;
2831 pCmd->cf_data_in = 1;
2837 pCmd->uCmd.Ide.Command = IDE_COMMAND_WRITE;
2838 pCmd->cf_data_out = 1;
2842 pCmd->uCmd.Ide.Command = IDE_COMMAND_VERIFY;
2846 pCmd->cf_physical_sg = 1;
2851 pCmd, BUS_DMA_WAITOK
2856 FreeCommand(_VBUS_P pCmd);
2878 fOsCommandDone(_VBUS_ARG PCommand pCmd)
2880 union ccb *ccb = pCmd->pOrgCommand;
2884 KdPrint(("fOsCommandDone(pcmd=%p, result=%d)\n", pCmd, pCmd->Result));
2888 switch(pCmd->Result) {
2912 if (pCmd->cf_data_in) {
2915 else if (pCmd->cf_data_out) {
2921 FreeCommand(_VBUS_P pCmd);