diff --git a/LUFA/Drivers/USB/Class/Device/Audio.h b/LUFA/Drivers/USB/Class/Device/Audio.h
index 7e7dad88d8..4026f9092d 100644
--- a/LUFA/Drivers/USB/Class/Device/Audio.h
+++ b/LUFA/Drivers/USB/Class/Device/Audio.h
@@ -114,10 +114,6 @@
* \ref EVENT_USB_Device_ConfigurationChanged() event so that the endpoints are configured when the configuration containing the
* given Audio interface is selected.
*
- * \note The endpoint index numbers as given in the interface's configuration structure must not overlap with any other
- * interface, or endpoint bank corruption will occur. Gaps in the allocated endpoint numbers or non-sequential indexes
- * within a single interface is allowed, but no two interfaces of any type have have interleaved endpoint indexes.
- *
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state.
*
* \return Boolean \c true if the endpoints were successfully configured, \c false otherwise.
diff --git a/LUFA/Drivers/USB/Class/Device/CDC.h b/LUFA/Drivers/USB/Class/Device/CDC.h
index 7dc565c823..6e188ad637 100644
--- a/LUFA/Drivers/USB/Class/Device/CDC.h
+++ b/LUFA/Drivers/USB/Class/Device/CDC.h
@@ -141,10 +141,6 @@
* \ref EVENT_USB_Device_ConfigurationChanged() event so that the endpoints are configured when the configuration containing
* the given CDC interface is selected.
*
- * \note The endpoint index numbers as given in the interface's configuration structure must not overlap with any other
- * interface, or endpoint bank corruption will occur. Gaps in the allocated endpoint numbers or non-sequential indexes
- * within a single interface is allowed, but no two interfaces of any type have have interleaved endpoint indexes.
- *
* \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
*
* \return Boolean \c true if the endpoints were successfully configured, \c false otherwise.
diff --git a/LUFA/Drivers/USB/Class/Device/HID.h b/LUFA/Drivers/USB/Class/Device/HID.h
index 133e4f5d8b..52bff7ec9b 100644
--- a/LUFA/Drivers/USB/Class/Device/HID.h
+++ b/LUFA/Drivers/USB/Class/Device/HID.h
@@ -126,10 +126,6 @@
* \ref EVENT_USB_Device_ConfigurationChanged() event so that the endpoints are configured when the configuration
* containing the given HID interface is selected.
*
- * \note The endpoint index numbers as given in the interface's configuration structure must not overlap with any other
- * interface, or endpoint bank corruption will occur. Gaps in the allocated endpoint numbers or non-sequential indexes
- * within a single interface is allowed, but no two interfaces of any type have have interleaved endpoint indexes.
- *
* \param[in,out] HIDInterfaceInfo Pointer to a structure containing a HID Class configuration and state.
*
* \return Boolean \c true if the endpoints were successfully configured, \c false otherwise.
diff --git a/LUFA/Drivers/USB/Class/Device/MIDI.h b/LUFA/Drivers/USB/Class/Device/MIDI.h
index e0fa502598..45a7561578 100644
--- a/LUFA/Drivers/USB/Class/Device/MIDI.h
+++ b/LUFA/Drivers/USB/Class/Device/MIDI.h
@@ -105,10 +105,6 @@
* \ref EVENT_USB_Device_ConfigurationChanged() event so that the endpoints are configured when the configuration
* containing the given MIDI interface is selected.
*
- * \note The endpoint index numbers as given in the interface's configuration structure must not overlap with any other
- * interface, or endpoint bank corruption will occur. Gaps in the allocated endpoint numbers or non-sequential indexes
- * within a single interface is allowed, but no two interfaces of any type have have interleaved endpoint indexes.
- *
* \param[in,out] MIDIInterfaceInfo Pointer to a structure containing a MIDI Class configuration and state.
*
* \return Boolean \c true if the endpoints were successfully configured, \c false otherwise.
diff --git a/LUFA/Drivers/USB/Class/Device/MassStorage.h b/LUFA/Drivers/USB/Class/Device/MassStorage.h
index 3ad259d86c..6f0539e540 100644
--- a/LUFA/Drivers/USB/Class/Device/MassStorage.h
+++ b/LUFA/Drivers/USB/Class/Device/MassStorage.h
@@ -114,10 +114,6 @@
* \ref EVENT_USB_Device_ConfigurationChanged() event so that the endpoints are configured when the configuration
* containing the given Mass Storage interface is selected.
*
- * \note The endpoint index numbers as given in the interface's configuration structure must not overlap with any other
- * interface, or endpoint bank corruption will occur. Gaps in the allocated endpoint numbers or non-sequential indexes
- * within a single interface is allowed, but no two interfaces of any type have have interleaved endpoint indexes.
- *
* \param[in,out] MSInterfaceInfo Pointer to a structure containing a Mass Storage Class configuration and state.
*
* \return Boolean \c true if the endpoints were successfully configured, \c false otherwise.
diff --git a/LUFA/Drivers/USB/Class/Device/RNDIS.h b/LUFA/Drivers/USB/Class/Device/RNDIS.h
index 66b85b15eb..a3b45cbc5f 100644
--- a/LUFA/Drivers/USB/Class/Device/RNDIS.h
+++ b/LUFA/Drivers/USB/Class/Device/RNDIS.h
@@ -116,10 +116,6 @@
* \ref EVENT_USB_Device_ConfigurationChanged() event so that the endpoints are configured when the configuration
* containing the given RNDIS interface is selected.
*
- * \note The endpoint index numbers as given in the interface's configuration structure must not overlap with any other
- * interface, or endpoint bank corruption will occur. Gaps in the allocated endpoint numbers or non-sequential indexes
- * within a single interface is allowed, but no two interfaces of any type have have interleaved endpoint indexes.
- *
* \param[in,out] RNDISInterfaceInfo Pointer to a structure containing a RNDIS Class configuration and state.
*
* \return Boolean \c true if the endpoints were successfully configured, \c false otherwise.
diff --git a/LUFA/Drivers/USB/Class/Host/Audio.h b/LUFA/Drivers/USB/Class/Host/Audio.h
index 23523144b4..0ceaf885bf 100644
--- a/LUFA/Drivers/USB/Class/Host/Audio.h
+++ b/LUFA/Drivers/USB/Class/Host/Audio.h
@@ -120,11 +120,6 @@
* device. This should be called once after the stack has enumerated the attached device, while the host state
* machine is in the Addressed state.
*
- * \note The pipe index numbers as given in the interface's configuration structure must not overlap with any other
- * interface, or pipe bank corruption will occur. Gaps in the allocated pipe numbers or non-sequential indexes
- * within a single interface is allowed, but no two interfaces of any type have have interleaved pipe indexes.
- * \n\n
- *
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class host configuration and state.
* \param[in] ConfigDescriptorSize Length of the attached device's Configuration Descriptor.
* \param[in] DeviceConfigDescriptor Pointer to a buffer containing the attached device's Configuration Descriptor.
diff --git a/LUFA/Drivers/USB/Class/Host/CDC.h b/LUFA/Drivers/USB/Class/Host/CDC.h
index 455e2f9efd..9be60947f9 100644
--- a/LUFA/Drivers/USB/Class/Host/CDC.h
+++ b/LUFA/Drivers/USB/Class/Host/CDC.h
@@ -151,10 +151,6 @@
* This should be called once after the stack has enumerated the attached device, while the host state machine is in
* the Addressed state.
*
- * \note The pipe index numbers as given in the interface's configuration structure must not overlap with any other
- * interface, or pipe bank corruption will occur. Gaps in the allocated pipe numbers or non-sequential indexes
- * within a single interface is allowed, but no two interfaces of any type have have interleaved pipe indexes.
- *
* \param[in,out] CDCInterfaceInfo Pointer to a structure containing an CDC Class host configuration and state.
* \param[in] ConfigDescriptorSize Length of the attached device's Configuration Descriptor.
* \param[in] DeviceConfigDescriptor Pointer to a buffer containing the attached device's Configuration Descriptor.
diff --git a/LUFA/Drivers/USB/Class/Host/HID.h b/LUFA/Drivers/USB/Class/Host/HID.h
index bd67f8f186..878a0990b3 100644
--- a/LUFA/Drivers/USB/Class/Host/HID.h
+++ b/LUFA/Drivers/USB/Class/Host/HID.h
@@ -148,11 +148,6 @@
* device. This should be called once after the stack has enumerated the attached device, while the host state
* machine is in the Addressed state.
*
- * \note The pipe index numbers as given in the interface's configuration structure must not overlap with any other
- * interface, or pipe bank corruption will occur. Gaps in the allocated pipe numbers or non-sequential indexes
- * within a single interface is allowed, but no two interfaces of any type have have interleaved pipe indexes.
- * \n\n
- *
* \note Once the device pipes are configured, the HID device's reporting protocol must be set via a call
* to either the \ref HID_Host_SetBootProtocol() or \ref HID_Host_SetReportProtocol() function.
*
diff --git a/LUFA/Drivers/USB/Class/Host/MIDI.h b/LUFA/Drivers/USB/Class/Host/MIDI.h
index fc31d401d8..28bdbfd3eb 100644
--- a/LUFA/Drivers/USB/Class/Host/MIDI.h
+++ b/LUFA/Drivers/USB/Class/Host/MIDI.h
@@ -120,10 +120,6 @@
* This should be called once after the stack has enumerated the attached device, while the host state machine is in
* the Addressed state.
*
- * \note The pipe index numbers as given in the interface's configuration structure must not overlap with any other
- * interface, or pipe bank corruption will occur. Gaps in the allocated pipe numbers or non-sequential indexes
- * within a single interface is allowed, but no two interfaces of any type have have interleaved pipe indexes.
- *
* \param[in,out] MIDIInterfaceInfo Pointer to a structure containing an MIDI Class host configuration and state.
* \param[in] ConfigDescriptorSize Length of the attached device's Configuration Descriptor.
* \param[in] DeviceConfigDescriptor Pointer to a buffer containing the attached device's Configuration Descriptor.
diff --git a/LUFA/Drivers/USB/Class/Host/MassStorage.h b/LUFA/Drivers/USB/Class/Host/MassStorage.h
index cd2ea45315..3476e4fa2d 100644
--- a/LUFA/Drivers/USB/Class/Host/MassStorage.h
+++ b/LUFA/Drivers/USB/Class/Host/MassStorage.h
@@ -137,10 +137,6 @@
* is found within the device. This should be called once after the stack has enumerated the attached device, while
* the host state machine is in the Addressed state.
*
- * \note The pipe index numbers as given in the interface's configuration structure must not overlap with any other
- * interface, or pipe bank corruption will occur. Gaps in the allocated pipe numbers or non-sequential indexes
- * within a single interface is allowed, but no two interfaces of any type have have interleaved pipe indexes.
- *
* \param[in,out] MSInterfaceInfo Pointer to a structure containing an MS Class host configuration and state.
* \param[in] ConfigDescriptorSize Length of the attached device's Configuration Descriptor.
* \param[in] ConfigDescriptorData Pointer to a buffer containing the attached device's Configuration Descriptor.
diff --git a/LUFA/Drivers/USB/Class/Host/Printer.h b/LUFA/Drivers/USB/Class/Host/Printer.h
index 096cc592c8..585142d888 100644
--- a/LUFA/Drivers/USB/Class/Host/Printer.h
+++ b/LUFA/Drivers/USB/Class/Host/Printer.h
@@ -114,24 +114,12 @@
};
/* Function Prototypes: */
- /** General management task for a given Printer host class interface, required for the correct operation of
- * the interface. This should be called frequently in the main program loop, before the master USB management task
- * \ref USB_USBTask().
- *
- * \param[in,out] PRNTInterfaceInfo Pointer to a structure containing a Printer Class host configuration and state.
- */
- void PRNT_Host_USBTask(USB_ClassInfo_PRNT_Host_t* const PRNTInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
-
/** Host interface configuration routine, to configure a given Printer host interface instance using the
* Configuration Descriptor read from an attached USB device. This function automatically updates the given Printer
* instance's state values and configures the pipes required to communicate with the interface if it is found within
* the device. This should be called once after the stack has enumerated the attached device, while the host state
* machine is in the Addressed state.
*
- * \note The pipe index numbers as given in the interface's configuration structure must not overlap with any other
- * interface, or pipe bank corruption will occur. Gaps in the allocated pipe numbers or non-sequential indexes
- * within a single interface is allowed, but no two interfaces of any type have have interleaved pipe indexes.
- *
* \param[in,out] PRNTInterfaceInfo Pointer to a structure containing a Printer Class host configuration and state.
* \param[in] ConfigDescriptorSize Length of the attached device's Configuration Descriptor.
* \param[in] DeviceConfigDescriptor Pointer to a buffer containing the attached device's Configuration Descriptor.
@@ -142,6 +130,14 @@
uint16_t ConfigDescriptorSize,
void* DeviceConfigDescriptor) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(3);
+ /** General management task for a given Printer host class interface, required for the correct operation of
+ * the interface. This should be called frequently in the main program loop, before the master USB management task
+ * \ref USB_USBTask().
+ *
+ * \param[in,out] PRNTInterfaceInfo Pointer to a structure containing a Printer Class host configuration and state.
+ */
+ void PRNT_Host_USBTask(USB_ClassInfo_PRNT_Host_t* const PRNTInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
+
/** Configures the printer to enable Bidirectional mode, if it is not already in this mode. This should be called
* once the connected device's configuration has been set, to ensure the printer is ready to accept commands.
*
diff --git a/LUFA/Drivers/USB/Class/Host/RNDIS.h b/LUFA/Drivers/USB/Class/Host/RNDIS.h
index 1d238bd8b9..97c8a5b8db 100644
--- a/LUFA/Drivers/USB/Class/Host/RNDIS.h
+++ b/LUFA/Drivers/USB/Class/Host/RNDIS.h
@@ -131,10 +131,6 @@
* This should be called once after the stack has enumerated the attached device, while the host state machine is in
* the Addressed state.
*
- * \note The pipe index numbers as given in the interface's configuration structure must not overlap with any other
- * interface, or pipe bank corruption will occur. Gaps in the allocated pipe numbers or non-sequential indexes
- * within a single interface is allowed, but no two interfaces of any type have have interleaved pipe indexes.
- *
* \param[in,out] RNDISInterfaceInfo Pointer to a structure containing an RNDIS Class host configuration and state.
* \param[in] ConfigDescriptorSize Length of the attached device's Configuration Descriptor.
* \param[in] DeviceConfigDescriptor Pointer to a buffer containing the attached device's Configuration Descriptor.
diff --git a/LUFA/Drivers/USB/Class/Host/StillImage.h b/LUFA/Drivers/USB/Class/Host/StillImage.h
index b79b81747f..66266ef476 100644
--- a/LUFA/Drivers/USB/Class/Host/StillImage.h
+++ b/LUFA/Drivers/USB/Class/Host/StillImage.h
@@ -133,10 +133,6 @@
* found within the device. This should be called once after the stack has enumerated the attached device, while
* the host state machine is in the Addressed state.
*
- * \note The pipe index numbers as given in the interface's configuration structure must not overlap with any other
- * interface, or pipe bank corruption will occur. Gaps in the allocated pipe numbers or non-sequential indexes
- * within a single interface is allowed, but no two interfaces of any type have have interleaved pipe indexes.
- *
* \param[in,out] SIInterfaceInfo Pointer to a structure containing a Still Image Class host configuration and state.
* \param[in] ConfigDescriptorSize Length of the attached device's Configuration Descriptor.
* \param[in] ConfigDescriptorData Pointer to a buffer containing the attached device's Configuration Descriptor.
diff --git a/LUFA/ManPages/CompileTimeTokens.txt b/LUFA/ManPages/CompileTimeTokens.txt
index 5e9e0990ee..2d067ba631 100644
--- a/LUFA/ManPages/CompileTimeTokens.txt
+++ b/LUFA/ManPages/CompileTimeTokens.txt
@@ -84,7 +84,9 @@
* ORDERED_EP_CONFIG - (\ref Group_EndpointManagement , \ref Group_PipeManagement) - AVR8 Only \n
* The USB AVRs do not allow for Endpoints and Pipes to be configured out of order; they must be configured in an ascending order to
* prevent data corruption issues. However, by default LUFA employs a workaround to allow for unordered Endpoint/Pipe initialization. This compile
- * time token may be used to restrict the initialization order to ascending indexes only in exchange for a smaller compiled binary size.
+ * time token may be used to restrict the initialization order to ascending indexes only in exchange for a smaller compiled binary size. Use
+ * caution when applied to applications using the library USB Class drivers; the user application must ensure that all endpoints and pipes are
+ * allocated sequentially.
*
* USE_STATIC_OPTIONS=x - (\ref Group_USBManagement) - All Architectures \n
* By default, the USB_Init() function accepts dynamic options at runtime to alter the library behaviour, including whether the USB pad