Fixed Remote Wakeup broken on the AVRs due to the mechanism only operating when the SUSPI bit is set (thanks to Holger Steinhaus).
Remove redundant setting of UIDE in the AVR8 and AVR32 USB controller drivers.
This commit is contained in:
		
							parent
							
								
									95a1aa4c01
								
							
						
					
					
						commit
						134e018b21
					
				
					 5 changed files with 7 additions and 11 deletions
				
			
		| 
						 | 
				
			
			@ -75,12 +75,13 @@ void USB_Init(
 | 
			
		|||
	#if defined(USB_CAN_BE_BOTH)
 | 
			
		||||
	if (Mode == USB_MODE_UID)
 | 
			
		||||
	{
 | 
			
		||||
		UHWCON |= (1 << UIDE);
 | 
			
		||||
		UHWCON |=  (1 << UIDE);
 | 
			
		||||
		USB_INT_Enable(USB_INT_IDTI);
 | 
			
		||||
		USB_CurrentMode = USB_GetUSBModeFromUID();
 | 
			
		||||
	}
 | 
			
		||||
	else
 | 
			
		||||
	{
 | 
			
		||||
		UHWCON &= ~(1 << UIDE);
 | 
			
		||||
		USB_CurrentMode = Mode;
 | 
			
		||||
	}
 | 
			
		||||
	#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -112,8 +112,6 @@ ISR(USB_GEN_vect, ISR_BLOCK)
 | 
			
		|||
 | 
			
		||||
	if (USB_INT_HasOccurred(USB_INT_SUSPI) && USB_INT_IsEnabled(USB_INT_SUSPI))
 | 
			
		||||
	{
 | 
			
		||||
		USB_INT_Clear(USB_INT_SUSPI);
 | 
			
		||||
 | 
			
		||||
		USB_INT_Disable(USB_INT_SUSPI);
 | 
			
		||||
		USB_INT_Enable(USB_INT_WAKEUPI);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -117,10 +117,7 @@ void USB_ResetInterface(void)
 | 
			
		|||
 | 
			
		||||
	#if defined(USB_CAN_BE_BOTH)
 | 
			
		||||
	if (UIDModeSelectEnabled)
 | 
			
		||||
	{
 | 
			
		||||
		AVR32_USBB.USBCON.uide = true;
 | 
			
		||||
		USB_INT_Enable(USB_INT_IDTI);
 | 
			
		||||
	}
 | 
			
		||||
	  USB_INT_Enable(USB_INT_IDTI);
 | 
			
		||||
	#endif
 | 
			
		||||
 | 
			
		||||
	USB_CLK_Unfreeze();
 | 
			
		||||
| 
						 | 
				
			
			@ -129,6 +126,7 @@ void USB_ResetInterface(void)
 | 
			
		|||
	{
 | 
			
		||||
		#if defined(USB_CAN_BE_DEVICE)
 | 
			
		||||
		AVR32_USBB.USBCON.uimod = true;
 | 
			
		||||
 | 
			
		||||
		USB_Init_Device();
 | 
			
		||||
		#endif
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -136,6 +134,7 @@ void USB_ResetInterface(void)
 | 
			
		|||
	{
 | 
			
		||||
		#if defined(USB_CAN_BE_HOST)
 | 
			
		||||
		AVR32_USBB.USBCON.uimod = false;
 | 
			
		||||
 | 
			
		||||
		USB_Init_Host();
 | 
			
		||||
		#endif
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -180,7 +179,6 @@ static void USB_Init_Device(void)
 | 
			
		|||
	USB_INT_Enable(USB_INT_EORSTI);
 | 
			
		||||
 | 
			
		||||
	USB_Attach();
 | 
			
		||||
	USB_Device_SetDeviceAddress(0);
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -79,8 +79,6 @@ ISR(USB_GEN_vect)
 | 
			
		|||
 | 
			
		||||
	if (USB_INT_HasOccurred(USB_INT_SUSPI) && USB_INT_IsEnabled(USB_INT_SUSPI))
 | 
			
		||||
	{
 | 
			
		||||
		USB_INT_Clear(USB_INT_SUSPI);
 | 
			
		||||
 | 
			
		||||
		USB_INT_Disable(USB_INT_SUSPI);
 | 
			
		||||
		USB_INT_Enable(USB_INT_WAKEUPI);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue