aboutsummaryrefslogtreecommitdiffstats
path: root/Demos/Host/LowLevel/StillImageHost
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2009-09-01 13:35:30 +0000
committerDean Camera <dean@fourwalledcubicle.com>2009-09-01 13:35:30 +0000
commit5908e28e8d301ab5688966311bc769247ba98363 (patch)
tree570754562965cf412f860c8ccfff67bb53b0ee34 /Demos/Host/LowLevel/StillImageHost
parentbda4bd45016714e892252fc7aaee88f6d20af231 (diff)
downloadlufa-5908e28e8d301ab5688966311bc769247ba98363.tar.gz
lufa-5908e28e8d301ab5688966311bc769247ba98363.tar.bz2
lufa-5908e28e8d301ab5688966311bc769247ba98363.zip
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.
Diffstat (limited to 'Demos/Host/LowLevel/StillImageHost')
-rw-r--r--Demos/Host/LowLevel/StillImageHost/Lib/StillImageCommands.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/Demos/Host/LowLevel/StillImageHost/Lib/StillImageCommands.c b/Demos/Host/LowLevel/StillImageHost/Lib/StillImageCommands.c
index 970df4f87..fbff2f48c 100644
--- a/Demos/Host/LowLevel/StillImageHost/Lib/StillImageCommands.c
+++ b/Demos/Host/LowLevel/StillImageHost/Lib/StillImageCommands.c
@@ -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));