projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added the --suppress-bootloader-mem option to the makefile dfu target, to ensure...
[pub/USBasp.git]
/
LUFA
/
Drivers
/
USB
/
LowLevel
/
USBInterrupt.c
diff --git
a/LUFA/Drivers/USB/LowLevel/USBInterrupt.c
b/LUFA/Drivers/USB/LowLevel/USBInterrupt.c
index
43df5f6
..
7844a87
100644
(file)
--- a/
LUFA/Drivers/USB/LowLevel/USBInterrupt.c
+++ b/
LUFA/Drivers/USB/LowLevel/USBInterrupt.c
@@
-39,9
+39,12
@@
void USB_INT_DisableAllInterrupts(void)
USBCON &= ~(1 << VBUSTE);
#endif
USBCON &= ~(1 << VBUSTE);
#endif
+ #if defined(USB_CAN_BE_BOTH)
+ OTGIEN = 0;
+ #endif
+
#if defined(USB_CAN_BE_HOST)
UHIEN = 0;
#if defined(USB_CAN_BE_HOST)
UHIEN = 0;
- OTGIEN = 0;
#endif
#if defined(USB_CAN_BE_DEVICE)
#endif
#if defined(USB_CAN_BE_DEVICE)
@@
-55,9
+58,12
@@
void USB_INT_ClearAllInterrupts(void)
USBINT = 0;
#endif
USBINT = 0;
#endif
+ #if defined(USB_CAN_BE_BOTH)
+ OTGINT = 0;
+ #endif
+
#if defined(USB_CAN_BE_HOST)
UHINT = 0;
#if defined(USB_CAN_BE_HOST)
UHINT = 0;
- OTGINT = 0;
#endif
#if defined(USB_CAN_BE_DEVICE)
#endif
#if defined(USB_CAN_BE_DEVICE)
@@
-86,12
+92,12
@@
ISR(USB_GEN_vect, ISR_BLOCK)
}
#endif
}
#endif
- if (USB_INT_HasOccurred(USB_INT_SUSP
END) && USB_INT_IsEnabled(USB_INT_SUSPEND
))
+ if (USB_INT_HasOccurred(USB_INT_SUSP
I) && USB_INT_IsEnabled(USB_INT_SUSPI
))
{
{
- USB_INT_Clear(USB_INT_SUSP
END
);
+ USB_INT_Clear(USB_INT_SUSP
I
);
- USB_INT_Disable(USB_INT_SUSP
END
);
- USB_INT_Enable(USB_INT_WAKEUP);
+ USB_INT_Disable(USB_INT_SUSP
I
);
+ USB_INT_Enable(USB_INT_WAKEUP
I
);
USB_CLK_Freeze();
USB_CLK_Freeze();
@@
-107,7
+113,7
@@
ISR(USB_GEN_vect, ISR_BLOCK)
#endif
}
#endif
}
- if (USB_INT_HasOccurred(USB_INT_WAKEUP
) && USB_INT_IsEnabled(USB_INT_WAKEUP
))
+ if (USB_INT_HasOccurred(USB_INT_WAKEUP
I) && USB_INT_IsEnabled(USB_INT_WAKEUPI
))
{
if (!(USB_Options & USB_OPT_MANUAL_PLL))
{
{
if (!(USB_Options & USB_OPT_MANUAL_PLL))
{
@@
-117,10
+123,10
@@
ISR(USB_GEN_vect, ISR_BLOCK)
USB_CLK_Unfreeze();
USB_CLK_Unfreeze();
- USB_INT_Clear(USB_INT_WAKEUP);
+ USB_INT_Clear(USB_INT_WAKEUP
I
);
- USB_INT_Disable(USB_INT_WAKEUP);
- USB_INT_Enable(USB_INT_SUSP
END
);
+ USB_INT_Disable(USB_INT_WAKEUP
I
);
+ USB_INT_Enable(USB_INT_SUSP
I
);
#if defined(USB_SERIES_2_AVR) && !defined(NO_LIMITED_CONTROLLER_CONNECT)
USB_DeviceState = (USB_ConfigurationNumber) ? DEVICE_STATE_Configured : DEVICE_STATE_Powered;
#if defined(USB_SERIES_2_AVR) && !defined(NO_LIMITED_CONTROLLER_CONNECT)
USB_DeviceState = (USB_ConfigurationNumber) ? DEVICE_STATE_Configured : DEVICE_STATE_Powered;
@@
-138,11
+144,9
@@
ISR(USB_GEN_vect, ISR_BLOCK)
USB_DeviceState = DEVICE_STATE_Default;
USB_ConfigurationNumber = 0;
USB_DeviceState = DEVICE_STATE_Default;
USB_ConfigurationNumber = 0;
- USB_INT_Clear(USB_INT_SUSPEND);
- USB_INT_Disable(USB_INT_SUSPEND);
- USB_INT_Enable(USB_INT_WAKEUP);
-
- Endpoint_ClearEndpoints();
+ USB_INT_Clear(USB_INT_SUSPI);
+ USB_INT_Disable(USB_INT_SUSPI);
+ USB_INT_Enable(USB_INT_WAKEUPI);
Endpoint_ConfigureEndpoint(ENDPOINT_CONTROLEP, EP_TYPE_CONTROL,
ENDPOINT_DIR_OUT, USB_ControlEndpointSize,
Endpoint_ConfigureEndpoint(ENDPOINT_CONTROLEP, EP_TYPE_CONTROL,
ENDPOINT_DIR_OUT, USB_ControlEndpointSize,
@@
-209,6
+213,13
@@
ISR(USB_GEN_vect, ISR_BLOCK)
USB_ResetInterface();
}
USB_ResetInterface();
}
+
+ if (USB_INT_HasOccurred(USB_INT_HSOFI) && USB_INT_IsEnabled(USB_INT_HSOFI))
+ {
+ USB_INT_Clear(USB_INT_HSOFI);
+
+ EVENT_USB_Host_StartOfFrame();
+ }
#endif
#if defined(USB_CAN_BE_BOTH)
#endif
#if defined(USB_CAN_BE_BOTH)
@@
-223,9
+234,9
@@
ISR(USB_GEN_vect, ISR_BLOCK)
EVENT_USB_Host_DeviceUnattached();
USB_CurrentMode = USB_GetUSBModeFromUID();
EVENT_USB_Host_DeviceUnattached();
USB_CurrentMode = USB_GetUSBModeFromUID();
- EVENT_USB_UIDChange();
-
USB_ResetInterface();
USB_ResetInterface();
+
+ EVENT_USB_UIDChange();
}
#endif
}
}
#endif
}
@@
-237,10
+248,13
@@
ISR(USB_COM_vect, ISR_BLOCK)
Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
USB_INT_Disable(USB_INT_RXSTPI);
Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
USB_INT_Disable(USB_INT_RXSTPI);
- sei();
- USB_USBTask();
+ NONATOMIC_BLOCK(NONATOMIC_FORCEOFF)
+ {
+ USB_Device_ProcessControlRequest();
+ }
+ Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
USB_INT_Enable(USB_INT_RXSTPI);
Endpoint_SelectEndpoint(PrevSelectedEndpoint);
}
USB_INT_Enable(USB_INT_RXSTPI);
Endpoint_SelectEndpoint(PrevSelectedEndpoint);
}