Lines Matching full:track
28 * - Initialize track register when testing presence of floppy
51 * - increase gap size at start of track for HD/ED disks
93 #define FDCSELREG_TRA (0x82) /* track register */
127 #define FDCCMDADD_U (0x10) /* update track register */
141 #define FDCSTAT_TR00 (0x04) /* Track 00 flag (Type I) */
162 int track; /* to be formatted */ member
170 unsigned spt; /* sectors per track */
173 unsigned stretch; /* track doubling ? */
294 int track; /* current head position or -1 if member
338 * operations. Second, a track buffer is used to cache a whole track
340 * because that allows write operations without clearing the track buffer.
355 static int UseTrackbuffer = -1; /* Do track buffering? */
364 #define IS_BUFFERED(drive,side,track) \ argument
365 (BufferDrive == (drive) && BufferSide == (side) && BufferTrack == (track))
504 /* Select a drive, update the FDC's track register and set the correct
524 /* restore track register to saved value */ in fd_select_drive()
525 FDC_WRITE( FDCREG_TRACK, UD.track ); in fd_select_drive()
594 * as possible) and keep track of the current state of the write protection.
707 SUD.track = -1; in fd_error()
753 if (!UDT || desc->track >= UDT->blocks/UDT->spt/2 || desc->head >= 2) { in do_format()
760 /* The track buffer is used for the raw track data, so its in do_format()
771 *p++ = desc->track; in do_format()
788 ReqTrack = desc->track; in do_format()
803 * required parameter settings (drive select, side select, track
832 /* cmd == WRITE, pay attention to track buffer in do_fd_action()
842 if (UD.track == -1) in do_fd_action()
844 else if (UD.track != ReqTrack << UDT->stretch) in do_fd_action()
853 /* Seek to track 0 if the current track is unknown */
857 if (SUD.track >= 0) { in fd_calibrate()
889 SUD.track = 0; in fd_calibrate_done()
895 /* Seek the drive to the requested track. The drive must have been
901 if (SUD.track == ReqTrack << SUDT->stretch) { in fd_seek()
911 DPRINT(("fd_seek() to track %d\n",ReqTrack)); in fd_seek()
933 printk(KERN_ERR "fd%d: seek error (to track %d)\n", in fd_seek_done()
935 /* we don't know exactly which track we are on now! */ in fd_seek_done()
936 SUD.track = -1; in fd_seek_done()
940 SUD.track = ReqTrack << SUDT->stretch; in fd_seek_done()
951 * over the correct track.
961 unsigned int track; in fd_rwsec() local
989 /* Cheat for track if stretch != 0 */ in fd_rwsec()
991 track = FDC_READ( FDCREG_TRACK); in fd_rwsec()
993 FDC_WRITE( FDCREG_TRACK, track >> SUDT->stretch); in fd_rwsec()
1039 /* If reading a whole track, wait about one disk rotation and in fd_rwsec()
1126 unsigned int track; in fd_rwsec_done1() local
1130 /* Correct the track if stretch != 0 */ in fd_rwsec_done1()
1132 track = FDC_READ( FDCREG_TRACK); in fd_rwsec_done1()
1134 FDC_WRITE( FDCREG_TRACK, track << SUDT->stretch); in fd_rwsec_done1()
1191 printk(KERN_ERR "fd%d: sector %d not found (side %d, track %d)\n", in fd_rwsec_done1()
1196 printk(KERN_ERR "fd%d: CRC error (side %d, track %d, sector %d)\n", in fd_rwsec_done1()
1201 printk(KERN_ERR "fd%d: lost data (side %d, track %d, sector %d)\n", in fd_rwsec_done1()
1244 unsigned int track; in fd_writetrack() local
1253 /* Cheat for track if stretch != 0 */ in fd_writetrack()
1255 track = FDC_READ( FDCREG_TRACK); in fd_writetrack()
1257 FDC_WRITE(FDCREG_TRACK,track >> SUDT->stretch); in fd_writetrack()
1311 printk(KERN_ERR "fd%d: lost data (side %d, track %d)\n", in fd_writetrack_done()
1347 * no matter what :-( To save time, the seek goes to the track we're
1358 FDC_WRITE (FDCREG_DATA, SUD.track); in finish_fdc()
1599 getprm.track = dtp->blocks/dtp->spt/2; in fd_locked_ioctl()
1703 if (setprm.track != dtp->blocks/dtp->spt/2 || in fd_locked_ioctl()
1735 /* invalidate the buffer track to force a reread */ in fd_locked_ioctl()
1769 UD.track = 0; in fd_probe()
2044 track buffering off for all Medusas, though it in atari_floppy_init()
2065 unit[i].track = -1; in atari_floppy_init()