X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/aaa0bed556d0fa424b831418a7ce2531653a8b03..d26a9ed5fd6fc60a0dfa61d04f5ae2bd7163a85d:/Projects/Incomplete/StandaloneProgrammer/DiskHost.c diff --git a/Projects/Incomplete/StandaloneProgrammer/DiskHost.c b/Projects/Incomplete/StandaloneProgrammer/DiskHost.c index c55414179..e50fc30af 100644 --- a/Projects/Incomplete/StandaloneProgrammer/DiskHost.c +++ b/Projects/Incomplete/StandaloneProgrammer/DiskHost.c @@ -1,21 +1,21 @@ /* LUFA Library - Copyright (C) Dean Camera, 2009. + Copyright (C) Dean Camera, 2010. dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ /* - Copyright 2009 Dean Camera (dean [at] fourwalledcubicle [dot] com) + Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - Permission to use, copy, modify, and distribute this software - and its documentation for any purpose and without fee is hereby - granted, provided that the above copyright notice appear in all - copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this @@ -59,16 +59,14 @@ void DiskHost_USBTask(void) if (USB_Host_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, ConfigDescriptorData, sizeof(ConfigDescriptorData)) != HOST_GETCONFIG_Successful) { - printf("ERROR - GetConfig\r\n"); LEDs_SetAllLEDs(LEDMASK_USB_ERROR); USB_HostState = HOST_STATE_WaitForDeviceRemoval; return; } if (MS_Host_ConfigurePipes(&DiskHost_MS_Interface, - ConfigDescriptorSize, ConfigDescriptorData) != MS_ENUMERROR_NoError) + ConfigDescriptorSize, ConfigDescriptorData) != MS_ENUMERROR_NoError) { - printf("ERROR - Pipes\r\n"); LEDs_SetAllLEDs(LEDMASK_USB_ERROR); USB_HostState = HOST_STATE_WaitForDeviceRemoval; return; @@ -76,16 +74,14 @@ void DiskHost_USBTask(void) if (USB_Host_SetDeviceConfiguration(1) != HOST_SENDCONTROL_Successful) { - printf("ERROR - SetConfig\r\n"); LEDs_SetAllLEDs(LEDMASK_USB_ERROR); USB_HostState = HOST_STATE_WaitForDeviceRemoval; return; } - + uint8_t MaxLUNIndex; if (MS_Host_GetMaxLUN(&DiskHost_MS_Interface, &MaxLUNIndex)) { - printf("ERROR - MaxLUN\r\n"); LEDs_SetAllLEDs(LEDMASK_USB_ERROR); USB_HostState = HOST_STATE_WaitForDeviceRemoval; return; @@ -93,16 +89,18 @@ void DiskHost_USBTask(void) if (MS_Host_ResetMSInterface(&DiskHost_MS_Interface)) { - printf("ERROR - ResetMS\r\n"); LEDs_SetAllLEDs(LEDMASK_USB_ERROR); USB_HostState = HOST_STATE_WaitForDeviceRemoval; return; } + USB_HostState = HOST_STATE_Configured; + + /* Note: For the RequestSense call to work, the host state machine must be in the + * Configured state, or the call will be aborted */ SCSI_Request_Sense_Response_t SenseData; if (MS_Host_RequestSense(&DiskHost_MS_Interface, 0, &SenseData) != 0) { - printf("ERROR - Sense\r\n"); LEDs_SetAllLEDs(LEDMASK_USB_ERROR); USB_HostState = HOST_STATE_WaitForDeviceRemoval; return; @@ -111,7 +109,6 @@ void DiskHost_USBTask(void) pf_mount(&DiskFATState); LEDs_SetAllLEDs(LEDMASK_USB_READY); - USB_HostState = HOST_STATE_Configured; } MS_Host_USBTask(&DiskHost_MS_Interface);