fdc: most control commands do not generate interrupts
In fact, only three control commands generate an interrupt: read_id, recalibrate and seek Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
		
							parent
							
								
									1457a75843
								
							
						
					
					
						commit
						a005186c17
					
				
							
								
								
									
										12
									
								
								hw/fdc.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								hw/fdc.c
									
									
									
									
									
								
							@ -1348,7 +1348,7 @@ static void fdctrl_handle_lock(FDCtrl *fdctrl, int direction)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    fdctrl->lock = (fdctrl->fifo[0] & 0x80) ? 1 : 0;
 | 
					    fdctrl->lock = (fdctrl->fifo[0] & 0x80) ? 1 : 0;
 | 
				
			||||||
    fdctrl->fifo[0] = fdctrl->lock << 4;
 | 
					    fdctrl->fifo[0] = fdctrl->lock << 4;
 | 
				
			||||||
    fdctrl_set_fifo(fdctrl, 1, fdctrl->lock);
 | 
					    fdctrl_set_fifo(fdctrl, 1, 0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void fdctrl_handle_dumpreg(FDCtrl *fdctrl, int direction)
 | 
					static void fdctrl_handle_dumpreg(FDCtrl *fdctrl, int direction)
 | 
				
			||||||
@ -1380,7 +1380,7 @@ static void fdctrl_handle_version(FDCtrl *fdctrl, int direction)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    /* Controller's version */
 | 
					    /* Controller's version */
 | 
				
			||||||
    fdctrl->fifo[0] = fdctrl->version;
 | 
					    fdctrl->fifo[0] = fdctrl->version;
 | 
				
			||||||
    fdctrl_set_fifo(fdctrl, 1, 1);
 | 
					    fdctrl_set_fifo(fdctrl, 1, 0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void fdctrl_handle_partid(FDCtrl *fdctrl, int direction)
 | 
					static void fdctrl_handle_partid(FDCtrl *fdctrl, int direction)
 | 
				
			||||||
@ -1439,7 +1439,7 @@ static void fdctrl_handle_save(FDCtrl *fdctrl, int direction)
 | 
				
			|||||||
    fdctrl->fifo[12] = fdctrl->pwrd;
 | 
					    fdctrl->fifo[12] = fdctrl->pwrd;
 | 
				
			||||||
    fdctrl->fifo[13] = 0;
 | 
					    fdctrl->fifo[13] = 0;
 | 
				
			||||||
    fdctrl->fifo[14] = 0;
 | 
					    fdctrl->fifo[14] = 0;
 | 
				
			||||||
    fdctrl_set_fifo(fdctrl, 15, 1);
 | 
					    fdctrl_set_fifo(fdctrl, 15, 0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void fdctrl_handle_readid(FDCtrl *fdctrl, int direction)
 | 
					static void fdctrl_handle_readid(FDCtrl *fdctrl, int direction)
 | 
				
			||||||
@ -1580,7 +1580,7 @@ static void fdctrl_handle_powerdown_mode(FDCtrl *fdctrl, int direction)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    fdctrl->pwrd = fdctrl->fifo[1];
 | 
					    fdctrl->pwrd = fdctrl->fifo[1];
 | 
				
			||||||
    fdctrl->fifo[0] = fdctrl->fifo[1];
 | 
					    fdctrl->fifo[0] = fdctrl->fifo[1];
 | 
				
			||||||
    fdctrl_set_fifo(fdctrl, 1, 1);
 | 
					    fdctrl_set_fifo(fdctrl, 1, 0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void fdctrl_handle_option(FDCtrl *fdctrl, int direction)
 | 
					static void fdctrl_handle_option(FDCtrl *fdctrl, int direction)
 | 
				
			||||||
@ -1599,7 +1599,7 @@ static void fdctrl_handle_drive_specification_command(FDCtrl *fdctrl, int direct
 | 
				
			|||||||
            fdctrl->fifo[0] = fdctrl->fifo[1];
 | 
					            fdctrl->fifo[0] = fdctrl->fifo[1];
 | 
				
			||||||
            fdctrl->fifo[2] = 0;
 | 
					            fdctrl->fifo[2] = 0;
 | 
				
			||||||
            fdctrl->fifo[3] = 0;
 | 
					            fdctrl->fifo[3] = 0;
 | 
				
			||||||
            fdctrl_set_fifo(fdctrl, 4, 1);
 | 
					            fdctrl_set_fifo(fdctrl, 4, 0);
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            fdctrl_reset_fifo(fdctrl);
 | 
					            fdctrl_reset_fifo(fdctrl);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -1607,7 +1607,7 @@ static void fdctrl_handle_drive_specification_command(FDCtrl *fdctrl, int direct
 | 
				
			|||||||
        /* ERROR */
 | 
					        /* ERROR */
 | 
				
			||||||
        fdctrl->fifo[0] = 0x80 |
 | 
					        fdctrl->fifo[0] = 0x80 |
 | 
				
			||||||
            (cur_drv->head << 2) | GET_CUR_DRV(fdctrl);
 | 
					            (cur_drv->head << 2) | GET_CUR_DRV(fdctrl);
 | 
				
			||||||
        fdctrl_set_fifo(fdctrl, 1, 1);
 | 
					        fdctrl_set_fifo(fdctrl, 1, 0);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user