aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Demos/Host/ClassDriver/JoystickHostWithParser/JoystickHostWithParser.c3
-rw-r--r--Demos/Host/ClassDriver/KeyboardHost/KeyboardHost.c1
-rw-r--r--Demos/Host/ClassDriver/KeyboardHostWithParser/KeyboardHostWithParser.c3
-rw-r--r--Demos/Host/ClassDriver/MIDIHost/MIDIHost.c1
-rw-r--r--Demos/Host/ClassDriver/MassStorageHost/MassStorageHost.c1
-rw-r--r--Demos/Host/ClassDriver/MouseHost/MouseHost.c1
-rw-r--r--Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c3
-rw-r--r--Demos/Host/ClassDriver/PrinterHost/PrinterHost.c1
-rw-r--r--Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.c1
-rw-r--r--Demos/Host/ClassDriver/StillImageHost/StillImageHost.c3
-rw-r--r--Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.c1
-rw-r--r--Demos/Host/LowLevel/StillImageHost/StillImageHost.c1
-rw-r--r--LUFA/Drivers/USB/Class/Common/MIDI.h2
-rw-r--r--LUFA/Drivers/USB/Class/Common/StillImage.h12
-rw-r--r--LUFA/Drivers/USB/Class/Host/StillImage.c12
-rw-r--r--LUFA/ManPages/ChangeLog.txt3
-rw-r--r--LUFA/ManPages/LUFAPoweredProjects.txt1
-rw-r--r--Projects/RelayBoard/Descriptors.c2
-rw-r--r--Projects/RelayBoard/Descriptors.h1
-rw-r--r--Projects/RelayBoard/RelayBoard.c1
-rw-r--r--Projects/RelayBoard/RelayBoard.h1
21 files changed, 34 insertions, 21 deletions
diff --git a/Demos/Host/ClassDriver/JoystickHostWithParser/JoystickHostWithParser.c b/Demos/Host/ClassDriver/JoystickHostWithParser/JoystickHostWithParser.c
index 24701087b..0e7e57982 100644
--- a/Demos/Host/ClassDriver/JoystickHostWithParser/JoystickHostWithParser.c
+++ b/Demos/Host/ClassDriver/JoystickHostWithParser/JoystickHostWithParser.c
@@ -115,9 +115,8 @@ int main(void)
break;
}
- LEDs_SetAllLEDs(LEDS_NO_LEDS);
-
printf("Joystick Enumerated.\r\n");
+ LEDs_SetAllLEDs(LEDMASK_USB_READY);
USB_HostState = HOST_STATE_Configured;
break;
case HOST_STATE_Configured:
diff --git a/Demos/Host/ClassDriver/KeyboardHost/KeyboardHost.c b/Demos/Host/ClassDriver/KeyboardHost/KeyboardHost.c
index 88ba426f1..15b93199e 100644
--- a/Demos/Host/ClassDriver/KeyboardHost/KeyboardHost.c
+++ b/Demos/Host/ClassDriver/KeyboardHost/KeyboardHost.c
@@ -111,6 +111,7 @@ int main(void)
}
printf("Keyboard Enumerated.\r\n");
+ LEDs_SetAllLEDs(LEDMASK_USB_READY);
USB_HostState = HOST_STATE_Configured;
break;
case HOST_STATE_Configured:
diff --git a/Demos/Host/ClassDriver/KeyboardHostWithParser/KeyboardHostWithParser.c b/Demos/Host/ClassDriver/KeyboardHostWithParser/KeyboardHostWithParser.c
index 78ec56aa3..14b650120 100644
--- a/Demos/Host/ClassDriver/KeyboardHostWithParser/KeyboardHostWithParser.c
+++ b/Demos/Host/ClassDriver/KeyboardHostWithParser/KeyboardHostWithParser.c
@@ -115,9 +115,8 @@ int main(void)
break;
}
- LEDs_SetAllLEDs(LEDS_NO_LEDS);
-
printf("Keyboard Enumerated.\r\n");
+ LEDs_SetAllLEDs(LEDMASK_USB_READY);
USB_HostState = HOST_STATE_Configured;
break;
case HOST_STATE_Configured:
diff --git a/Demos/Host/ClassDriver/MIDIHost/MIDIHost.c b/Demos/Host/ClassDriver/MIDIHost/MIDIHost.c
index f467d16bc..064c22dd6 100644
--- a/Demos/Host/ClassDriver/MIDIHost/MIDIHost.c
+++ b/Demos/Host/ClassDriver/MIDIHost/MIDIHost.c
@@ -101,6 +101,7 @@ int main(void)
}
printf("MIDI Device Enumerated.\r\n");
+ LEDs_SetAllLEDs(LEDMASK_USB_READY);
USB_HostState = HOST_STATE_Configured;
break;
case HOST_STATE_Configured:
diff --git a/Demos/Host/ClassDriver/MassStorageHost/MassStorageHost.c b/Demos/Host/ClassDriver/MassStorageHost/MassStorageHost.c
index 4aa0c532b..6740d9cb7 100644
--- a/Demos/Host/ClassDriver/MassStorageHost/MassStorageHost.c
+++ b/Demos/Host/ClassDriver/MassStorageHost/MassStorageHost.c
@@ -101,6 +101,7 @@ int main(void)
}
printf("Mass Storage Device Enumerated.\r\n");
+ LEDs_SetAllLEDs(LEDMASK_USB_READY);
USB_HostState = HOST_STATE_Configured;
break;
case HOST_STATE_Configured:
diff --git a/Demos/Host/ClassDriver/MouseHost/MouseHost.c b/Demos/Host/ClassDriver/MouseHost/MouseHost.c
index 7d241afa3..4501a25dc 100644
--- a/Demos/Host/ClassDriver/MouseHost/MouseHost.c
+++ b/Demos/Host/ClassDriver/MouseHost/MouseHost.c
@@ -111,6 +111,7 @@ int main(void)
}
printf("Mouse Enumerated.\r\n");
+ LEDs_SetAllLEDs(LEDMASK_USB_READY);
USB_HostState = HOST_STATE_Configured;
break;
case HOST_STATE_Configured:
diff --git a/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c b/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c
index d0aca1e5d..c735b5c00 100644
--- a/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c
+++ b/Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.c
@@ -115,9 +115,8 @@ int main(void)
break;
}
- LEDs_SetAllLEDs(LEDS_NO_LEDS);
-
printf("Mouse Enumerated.\r\n");
+ LEDs_SetAllLEDs(LEDMASK_USB_READY);
USB_HostState = HOST_STATE_Configured;
break;
case HOST_STATE_Configured:
diff --git a/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c b/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c
index 3463855d3..2df657293 100644
--- a/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c
+++ b/Demos/Host/ClassDriver/PrinterHost/PrinterHost.c
@@ -108,6 +108,7 @@ int main(void)
}
printf("Printer Device Enumerated.\r\n");
+ LEDs_SetAllLEDs(LEDMASK_USB_READY);
USB_HostState = HOST_STATE_Configured;
break;
case HOST_STATE_Configured:
diff --git a/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.c b/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.c
index 5b2bfe133..e31f9a336 100644
--- a/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.c
+++ b/Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.c
@@ -143,6 +143,7 @@ int main(void)
printf("Device Vendor ID: 0x%08lX\r\n", VendorID);
printf("RNDIS Device Enumerated.\r\n");
+ LEDs_SetAllLEDs(LEDMASK_USB_READY);
USB_HostState = HOST_STATE_Configured;
break;
case HOST_STATE_Configured:
diff --git a/Demos/Host/ClassDriver/StillImageHost/StillImageHost.c b/Demos/Host/ClassDriver/StillImageHost/StillImageHost.c
index 22f74096f..ff33c457d 100644
--- a/Demos/Host/ClassDriver/StillImageHost/StillImageHost.c
+++ b/Demos/Host/ClassDriver/StillImageHost/StillImageHost.c
@@ -88,7 +88,7 @@ int main(void)
if (SImage_Host_ConfigurePipes(&DigitalCamera_SI_Interface,
ConfigDescriptorSize, ConfigDescriptorData) != SI_ENUMERROR_NoError)
{
- printf("Attached Device Not a Valid CDC Class Device.\r\n");
+ printf("Attached Device Not a Valid Still Image Class Device.\r\n");
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
USB_HostState = HOST_STATE_WaitForDeviceRemoval;
break;
@@ -103,6 +103,7 @@ int main(void)
}
printf("Still Image Device Enumerated.\r\n");
+ LEDs_SetAllLEDs(LEDMASK_USB_READY);
USB_HostState = HOST_STATE_Configured;
break;
case HOST_STATE_Configured:
diff --git a/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.c b/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.c
index ba56ae3a3..d5ec0417b 100644
--- a/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.c
+++ b/Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.c
@@ -103,6 +103,7 @@ int main(void)
}
printf("CDC Device Enumerated.\r\n");
+ LEDs_SetAllLEDs(LEDMASK_USB_READY);
USB_HostState = HOST_STATE_Configured;
break;
case HOST_STATE_Configured:
diff --git a/Demos/Host/LowLevel/StillImageHost/StillImageHost.c b/Demos/Host/LowLevel/StillImageHost/StillImageHost.c
index f89de225f..c923ca393 100644
--- a/Demos/Host/LowLevel/StillImageHost/StillImageHost.c
+++ b/Demos/Host/LowLevel/StillImageHost/StillImageHost.c
@@ -167,7 +167,6 @@ void StillImage_Task(void)
}
puts_P(PSTR("Still Image Device Enumerated.\r\n"));
-
USB_HostState = HOST_STATE_Configured;
break;
case HOST_STATE_Configured:
diff --git a/LUFA/Drivers/USB/Class/Common/MIDI.h b/LUFA/Drivers/USB/Class/Common/MIDI.h
index 8eed10198..755006a70 100644
--- a/LUFA/Drivers/USB/Class/Common/MIDI.h
+++ b/LUFA/Drivers/USB/Class/Common/MIDI.h
@@ -87,7 +87,7 @@
*
* \param[in] channel MIDI channel number to address
*/
- #define MIDI_CHANNEL(channel) (channel - 1)
+ #define MIDI_CHANNEL(channel) ((channel) - 1)
/* Type Defines: */
/** Type define for an Audio class specific MIDI streaming interface descriptor. This indicates to the host
diff --git a/LUFA/Drivers/USB/Class/Common/StillImage.h b/LUFA/Drivers/USB/Class/Common/StillImage.h
index 7b3df201a..e65b2dbfd 100644
--- a/LUFA/Drivers/USB/Class/Common/StillImage.h
+++ b/LUFA/Drivers/USB/Class/Common/StillImage.h
@@ -63,23 +63,23 @@
*
* \return Number of bytes of the given unicode string
*/
- #define UNICODE_STRING_LENGTH(chars) (chars << 1)
+ #define UNICODE_STRING_LENGTH(chars) ((chars) << 1)
/** Used in the DataLength field of a PIMA container, to give the total container size in bytes for
* a command container.
*
* \param[in] params Number of parameters which are to be sent in the Param field of the container
*/
- #define PIMA_COMMAND_SIZE(params) ((sizeof(SI_PIMA_Container_t) - sizeof(((SI_PIMA_Container_t*)NULL)->Params)) + \
- (params * sizeof(uint32_t)))
+ #define PIMA_COMMAND_SIZE(params) ((sizeof(SI_PIMA_Container_t) - 12) + \
+ ((params) * sizeof(uint32_t)))
/** Used in the DataLength field of a PIMA container, to give the total container size in bytes for
* a data container.
*
* \param[in] datalen Length in bytes of the data in the container
*/
- #define PIMA_DATA_SIZE(datalen) ((sizeof(SI_PIMA_Container_t) - sizeof(((SI_PIMA_Container_t*)NULL)->Params)) + \
- datalen)
+ #define PIMA_DATA_SIZE(datalen) ((sizeof(SI_PIMA_Container_t) - 12) + \
+ (datalen))
/* Enums: */
/** Enum for the possible PIMA contains types. */
@@ -122,7 +122,7 @@
uint16_t Type; /**< Container type, a value from the PIMA_Container_Types_t enum */
uint16_t Code; /**< Command, event or response code of the container */
uint32_t TransactionID; /**< Unique container ID to link blocks together */
- uint32_t Params[5]; /**< Block parameters to be issued along with the block code (command blocks only) */
+ uint32_t Params[3]; /**< Block parameters to be issued along with the block code (command blocks only) */
} SI_PIMA_Container_t;
/* Disable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/USB/Class/Host/StillImage.c b/LUFA/Drivers/USB/Class/Host/StillImage.c
index 577f619c8..d116ceb74 100644
--- a/LUFA/Drivers/USB/Class/Host/StillImage.c
+++ b/LUFA/Drivers/USB/Class/Host/StillImage.c
@@ -315,12 +315,15 @@ uint8_t SImage_Host_OpenSession(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo)
uint8_t ErrorCode;
+ SIInterfaceInfo->State.TransactionID = 0;
+ SIInterfaceInfo->State.IsSessionOpen = false;
+
SI_PIMA_Container_t PIMABlock = (SI_PIMA_Container_t)
{
- .DataLength = PIMA_COMMAND_SIZE(0),
+ .DataLength = PIMA_COMMAND_SIZE(1),
.Type = CType_CommandBlock,
.Code = 0x1002,
- .Params = {},
+ .Params = {1},
};
if ((ErrorCode = SImage_Host_SendBlockHeader(SIInterfaceInfo, &PIMABlock)) != PIPE_RWSTREAM_NoError)
@@ -332,7 +335,6 @@ uint8_t SImage_Host_OpenSession(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo)
if ((PIMABlock.Type != CType_ResponseBlock) || (PIMABlock.Code != 0x2001))
return SI_ERROR_LOGICAL_CMD_FAILED;
- SIInterfaceInfo->State.TransactionID = 0;
SIInterfaceInfo->State.IsSessionOpen = true;
return PIPE_RWSTREAM_NoError;
@@ -347,10 +349,10 @@ uint8_t SImage_Host_CloseSession(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo)
SI_PIMA_Container_t PIMABlock = (SI_PIMA_Container_t)
{
- .DataLength = PIMA_COMMAND_SIZE(0),
+ .DataLength = PIMA_COMMAND_SIZE(1),
.Type = CType_CommandBlock,
.Code = 0x1003,
- .Params = {},
+ .Params = {1},
};
if ((ErrorCode = SImage_Host_SendBlockHeader(SIInterfaceInfo, &PIMABlock)) != PIPE_RWSTREAM_NoError)
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 3be0bdc4f..1a0fd0d79 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -23,6 +23,7 @@
* - Double bank CDC endpoints in the XPLAIN Bridge project, re-enable JTAG once the mode selection pin has been sampled.
* - Standardized the naming scheme given to configuration descriptor sub-elements in the Device mode demos, bootloaders
* and projects
+ * - All Class Driver Host mode demos now correctly set the board LEDs to READY once the enumeration process has completed
*
* <b>Fixed:</b>
* - Fixed software PDI/TPI programming mode in the AVRISP project not correctly toggling just the clock pin
@@ -34,6 +35,8 @@
* - Fixed LowLevel MassStorage demo broken on the U2 AVRs due to double-banked endpoints
* - Fixed compilation error in the AudioInput demos when MICROPHONE_BIASED_TO_HALF_RAIL is defined (thanks to C. Scott Ananian)
* - Fixed incorrect definition of HID_ALIGN_DATA() causing incorrect HID report item data alignment
+ * - Fixed Still Image Host class driver not resetting the transaction ID when a new session is opened, fixed driver not sending
+ * a valid session ID to the device
*
* \section Sec_ChangeLog100219 Version 100219
*
diff --git a/LUFA/ManPages/LUFAPoweredProjects.txt b/LUFA/ManPages/LUFAPoweredProjects.txt
index 2d6feac35..0c8eca39c 100644
--- a/LUFA/ManPages/LUFAPoweredProjects.txt
+++ b/LUFA/ManPages/LUFAPoweredProjects.txt
@@ -21,6 +21,7 @@
* - AT90USB162 Breadboard PCB (Russian): http://microsin.ru/content/view/685/44/
* - Benito #7, a no-frills USB board: http://www.dorkbotpdx.org/wiki/benito
* - Bumble-B, yet another AT90USB162 development board: http://fletchtronics.net/bumble-b
+ * - JM-DB-U2, an ATMEGA32U2 development board: http://u2.mattair.net/index.html
* - Micropendous, an open design/source set of AVR USB development boards: http://micropendous.org/
* - Nanduino, a do-it-yourself AT90USB162 board: http://www.makestuff.eu/wordpress/?page_id=569
* - Teensy and Teensy++, two other AVR USB development boards: http://www.pjrc.com/teensy/index.html
diff --git a/Projects/RelayBoard/Descriptors.c b/Projects/RelayBoard/Descriptors.c
index 1beb81139..d4857a557 100644
--- a/Projects/RelayBoard/Descriptors.c
+++ b/Projects/RelayBoard/Descriptors.c
@@ -7,6 +7,7 @@
*/
/*
+ Copyright 2010 OBinou (obconseil [at] gmail [dot] com)
Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
@@ -18,7 +19,6 @@
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
-
The author disclaim all warranties with regard to this
software, including all implied warranties of merchantability
and fitness. In no event shall the author be liable for any
diff --git a/Projects/RelayBoard/Descriptors.h b/Projects/RelayBoard/Descriptors.h
index 65644a899..6cd6feefc 100644
--- a/Projects/RelayBoard/Descriptors.h
+++ b/Projects/RelayBoard/Descriptors.h
@@ -7,6 +7,7 @@
*/
/*
+ Copyright 2010 OBinou (obconseil [at] gmail [dot] com)
Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
diff --git a/Projects/RelayBoard/RelayBoard.c b/Projects/RelayBoard/RelayBoard.c
index 0923a2301..c3034178f 100644
--- a/Projects/RelayBoard/RelayBoard.c
+++ b/Projects/RelayBoard/RelayBoard.c
@@ -7,6 +7,7 @@
*/
/*
+ Copyright 2010 OBinou (obconseil [at] gmail [dot] com)
Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
diff --git a/Projects/RelayBoard/RelayBoard.h b/Projects/RelayBoard/RelayBoard.h
index 686c9c046..2ffa59023 100644
--- a/Projects/RelayBoard/RelayBoard.h
+++ b/Projects/RelayBoard/RelayBoard.h
@@ -7,6 +7,7 @@
*/
/*
+ Copyright 2010 OBinou (obconseil [at] gmail [dot] com)
Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this