/* reset is done by pulling bit 2 of DOR low for a while (old FDCs), or by setting the self clearing bit 7 of STATUS (newer FDCs)  */
static void reset_fdc(void)
/* reset is done by pulling bit 2 of DOR low for a while (old FDCs), or by setting the self clearing bit 7 of STATUS (newer FDCs)  */
static void reset_fdc(void)
{
	unsigned long flags;
	do_floppy = reset_interrupt;
	FDCS->reset = 0;
	reset_fdc_info(0);
	flags = claim_dma_lock();
	fd_disable_dma();
	release_dma_lock(flags);
	if (FDCS->version >= FDC_82072A)
		fd_outb(0x80 | (FDCS->dtr & 3), FD_STATUS);
	else {
		fd_outb(FDCS->dor & ~0x04, FD_DOR);
		udelay(FD_RESET_DELAY);
		fd_outb(FDCS->dor, FD_DOR);
	}
}