Fixed StillImageHost not correctly freezing and unfreezing data pipes while waiting for a response block header.
Added basic PIMA commands to the StillImage Host Class driver - need to extend to PIMA specific command functions.
This commit is contained in:
parent
bda4bd4501
commit
5908e28e8d
6 changed files with 177 additions and 18 deletions
|
@ -127,7 +127,9 @@ uint8_t SImage_RecieveBlockHeader(void)
|
|||
}
|
||||
}
|
||||
|
||||
Pipe_Freeze();
|
||||
Pipe_SelectPipe(SIMAGE_DATA_OUT_PIPE);
|
||||
Pipe_Unfreeze();
|
||||
|
||||
/* Check if pipe stalled (command failed by device) */
|
||||
if (Pipe_IsStalled())
|
||||
|
@ -139,7 +141,9 @@ uint8_t SImage_RecieveBlockHeader(void)
|
|||
return PIPE_RWSTREAM_PipeStalled;
|
||||
}
|
||||
|
||||
Pipe_Freeze();
|
||||
Pipe_SelectPipe(SIMAGE_DATA_IN_PIPE);
|
||||
Pipe_Unfreeze();
|
||||
|
||||
/* Check if pipe stalled (command failed by device) */
|
||||
if (Pipe_IsStalled())
|
||||
|
@ -155,14 +159,7 @@ uint8_t SImage_RecieveBlockHeader(void)
|
|||
if (USB_HostState == HOST_STATE_Unattached)
|
||||
return PIPE_RWSTREAM_DeviceDisconnected;
|
||||
}
|
||||
|
||||
/* Freeze OUT pipe after use */
|
||||
Pipe_SelectPipe(SIMAGE_DATA_OUT_PIPE);
|
||||
Pipe_Freeze();
|
||||
|
||||
/* Select the IN data pipe for data reception */
|
||||
Pipe_SelectPipe(SIMAGE_DATA_IN_PIPE);
|
||||
|
||||
|
||||
/* Load in the response from the attached device */
|
||||
Pipe_Read_Stream_LE(&PIMA_ReceivedBlock, PIMA_COMMAND_SIZE(0));
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue