ehci: Fix interrupt endpoints no longer working
One of the recent changes (likely the addition of queuing support) has broken interrupt endpoints, this patch fixes this. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
		
							parent
							
								
									287fd3f1dd
								
							
						
					
					
						commit
						adf478342b
					
				@ -1987,10 +1987,19 @@ static int ehci_state_fetchqtd(EHCIQueue *q)
 | 
				
			|||||||
        ehci_set_state(q->ehci, q->async, EST_HORIZONTALQH);
 | 
					        ehci_set_state(q->ehci, q->async, EST_HORIZONTALQH);
 | 
				
			||||||
        again = 1;
 | 
					        again = 1;
 | 
				
			||||||
    } else if (p != NULL) {
 | 
					    } else if (p != NULL) {
 | 
				
			||||||
        if (p->async == EHCI_ASYNC_INFLIGHT) {
 | 
					        switch (p->async) {
 | 
				
			||||||
 | 
					        case EHCI_ASYNC_NONE:
 | 
				
			||||||
 | 
					            /* Previously nacked packet (likely interrupt ep) */
 | 
				
			||||||
 | 
					           ehci_set_state(q->ehci, q->async, EST_EXECUTE);
 | 
				
			||||||
 | 
					           break;
 | 
				
			||||||
 | 
					        case EHCI_ASYNC_INFLIGHT:
 | 
				
			||||||
 | 
					            /* Unfinyshed async handled packet, go horizontal */
 | 
				
			||||||
            ehci_set_state(q->ehci, q->async, EST_HORIZONTALQH);
 | 
					            ehci_set_state(q->ehci, q->async, EST_HORIZONTALQH);
 | 
				
			||||||
        } else {
 | 
					            break;
 | 
				
			||||||
 | 
					        case EHCI_ASYNC_FINISHED:
 | 
				
			||||||
 | 
					            /* Should never happen, as this case is caught by fetchqh */
 | 
				
			||||||
            ehci_set_state(q->ehci, q->async, EST_EXECUTING);
 | 
					            ehci_set_state(q->ehci, q->async, EST_EXECUTING);
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        again = 1;
 | 
					        again = 1;
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user