Source
x
DPRINT(("FDC irq, status = %02x handler = %08lx\n",status,(unsigned long)handler));
/*
* drivers/block/ataflop.c
*
* Copyright (C) 1993 Greg Harp
* Atari Support by Bjoern Brauel, Roman Hodek
*
* Big cleanup Sep 11..14 1994 Roman Hodek:
* - Driver now works interrupt driven
* - Support for two drives; should work, but I cannot test that :-(
* - Reading is done in whole tracks and buffered to speed up things
* - Disk change detection and drive deselecting after motor-off
* similar to TOS
* - Autodetection of disk format (DD/HD); untested yet, because I
* don't have an HD drive :-(
*
* Fixes Nov 13 1994 Martin Schaller:
* - Autodetection works now
* - Support for 5 1/4'' disks
* - Removed drive type (unknown on atari)
* - Do seeks with 8 Mhz
*
* Changes by Andreas Schwab:
* - After errors in multiple read mode try again reading single sectors
* (Feb 1995):
* - Clean up error handling
* - Set blk_size for proper size checking
* - Initialize track register when testing presence of floppy
* - Implement some ioctl's
*
* Changes by Torsten Lang:
* - When probing the floppies we should add the FDCCMDADD_H flag since
* the FDC will otherwise wait forever when no disk is inserted...
*
* ++ Freddi Aschwanden (fa) 20.9.95 fixes for medusa:
* - MFPDELAY() after each FDC access -> atari
* - more/other disk formats
* - DMA to the block buffer directly if we have a 32bit DMA
* - for medusa, the step rate is always 3ms
* - on medusa, use only cache_push()
* Roman:
* - Make disk format numbering independent from minors
* - Let user set max. supported drive type (speeds up format
* detection, saves buffer space)
*
* Roman 10/15/95:
* - implement some more ioctls
* - disk formatting
*
* Andreas 95/12/12:
* - increase gap size at start of track for HD/ED disks
*
* Michael (MSch) 11/07/96:
* - implemented FDSETPRM and FDDEFPRM ioctl
*
* Andreas (97/03/19):
* - implemented missing BLK* ioctls
*
* Things left to do:
* - Formatting
* - Maybe a better strategy for disk change detection (does anyone
* know one?)
*/
static DEFINE_MUTEX(ataflop_mutex);
static struct request *fd_request;
/*
* WD1772 stuff
*/
/* register codes */
/* command/status register */
/* track register */