projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Oops - with new changes to the way the device Configuration Descriptor is retrieved...
[pub/USBasp.git]
/
LUFA
/
Drivers
/
USB
/
Class
/
Host
/
MassStorage.c
diff --git
a/LUFA/Drivers/USB/Class/Host/MassStorage.c
b/LUFA/Drivers/USB/Class/Host/MassStorage.c
index
1f66aa8
..
6a8373a
100644
(file)
--- a/
LUFA/Drivers/USB/Class/Host/MassStorage.c
+++ b/
LUFA/Drivers/USB/Class/Host/MassStorage.c
@@
-45,7
+45,7
@@
uint8_t MS_Host_ConfigurePipes(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint16_
return MS_ENUMERROR_InvalidConfigDescriptor;
\r
\r
if (USB_GetNextDescriptorComp(&ConfigDescriptorLength, &DeviceConfigDescriptor,
\r
return MS_ENUMERROR_InvalidConfigDescriptor;
\r
\r
if (USB_GetNextDescriptorComp(&ConfigDescriptorLength, &DeviceConfigDescriptor,
\r
- DComp_NextM
assStorage
Interface) != DESCRIPTOR_SEARCH_COMP_Found)
\r
+ DComp_NextM
S
Interface) != DESCRIPTOR_SEARCH_COMP_Found)
\r
{
\r
return MS_ENUMERROR_NoMSInterfaceFound;
\r
}
\r
{
\r
return MS_ENUMERROR_NoMSInterfaceFound;
\r
}
\r
@@
-60,7
+60,7
@@
uint8_t MS_Host_ConfigurePipes(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint16_
while (FoundEndpoints != (MS_FOUND_DATAPIPE_IN | MS_FOUND_DATAPIPE_OUT))
\r
{
\r
if (USB_GetNextDescriptorComp(&ConfigDescriptorLength, &DeviceConfigDescriptor,
\r
while (FoundEndpoints != (MS_FOUND_DATAPIPE_IN | MS_FOUND_DATAPIPE_OUT))
\r
{
\r
if (USB_GetNextDescriptorComp(&ConfigDescriptorLength, &DeviceConfigDescriptor,
\r
- DComp_Next
InterfaceBulkData
Endpoint) != DESCRIPTOR_SEARCH_COMP_Found)
\r
+ DComp_Next
MSInterface
Endpoint) != DESCRIPTOR_SEARCH_COMP_Found)
\r
{
\r
return MS_ENUMERROR_EndpointsNotFound;
\r
}
\r
{
\r
return MS_ENUMERROR_EndpointsNotFound;
\r
}
\r
@@
-91,7
+91,7
@@
uint8_t MS_Host_ConfigurePipes(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint16_
return MS_ENUMERROR_NoError;
\r
}
\r
\r
return MS_ENUMERROR_NoError;
\r
}
\r
\r
-static uint8_t DComp_NextM
assStorage
Interface(void* CurrentDescriptor)
\r
+static uint8_t DComp_NextM
S
Interface(void* CurrentDescriptor)
\r
{
\r
if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Interface)
\r
{
\r
{
\r
if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Interface)
\r
{
\r
@@
-106,15
+106,20
@@
static uint8_t DComp_NextMassStorageInterface(void* CurrentDescriptor)
return DESCRIPTOR_SEARCH_NotFound;
\r
}
\r
\r
return DESCRIPTOR_SEARCH_NotFound;
\r
}
\r
\r
-static uint8_t DComp_Next
InterfaceBulkData
Endpoint(void* CurrentDescriptor)
\r
+static uint8_t DComp_Next
MSInterface
Endpoint(void* CurrentDescriptor)
\r
{
\r
if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Endpoint)
\r
{
\r
{
\r
if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Endpoint)
\r
{
\r
-
uint8_t EndpointType = (DESCRIPTOR_
CAST(CurrentDescriptor,
\r
-
USB_Descriptor_Endpoint_t).Attributes & EP_TYPE_MASK
);
\r
+
USB_Descriptor_Endpoint_t* CurrentEndpoint = DESCRIPTOR_P
CAST(CurrentDescriptor,
\r
+
USB_Descriptor_Endpoint_t
);
\r
\r
\r
- if (EndpointType == EP_TYPE_BULK)
\r
- return DESCRIPTOR_SEARCH_Found;
\r
+ uint8_t EndpointType = (CurrentEndpoint->Attributes & EP_TYPE_MASK);
\r
+
\r
+ if ((EndpointType == EP_TYPE_BULK) &&
\r
+ (!(Pipe_IsEndpointBound(CurrentEndpoint->EndpointAddress))))
\r
+ {
\r
+ return DESCRIPTOR_SEARCH_Found;
\r
+ }
\r
}
\r
else if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Interface)
\r
{
\r
}
\r
else if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Interface)
\r
{
\r
@@
-134,7
+139,7
@@
static uint8_t MS_Host_SendCommand(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, MS_
{
\r
uint8_t ErrorCode = PIPE_RWSTREAM_NoError;
\r
\r
{
\r
uint8_t ErrorCode = PIPE_RWSTREAM_NoError;
\r
\r
- SCSICommandBlock->Tag =
MSInterfaceInfo->State.TransactionTag++
;
\r
+ SCSICommandBlock->Tag =
++MSInterfaceInfo->State.TransactionTag
;
\r
\r
if (MSInterfaceInfo->State.TransactionTag == 0xFFFFFFFF)
\r
MSInterfaceInfo->State.TransactionTag = 1;
\r
\r
if (MSInterfaceInfo->State.TransactionTag == 0xFFFFFFFF)
\r
MSInterfaceInfo->State.TransactionTag = 1;
\r