tag | line | file | source code |
drive | 120 | drivers/block/ali14xx.c | static void ali14xx_tune_drive (ide_drive_t *drive, byte pio) |
drive | 125 | drivers/block/ali14xx.c | struct hd_driveid *id = drive->id; |
drive | 129 | drivers/block/ali14xx.c | pio = ide_get_best_pio_mode(drive); |
drive | 148 | drivers/block/ali14xx.c | drive->name, pio, time1, time2, param1, param2, param3, param4); |
drive | 151 | drivers/block/ali14xx.c | driveNum = (HWIF(drive)->index << 1) + drive->select.b.unit; |
drive | 119 | drivers/block/amiflop.c | #define SELMASK(drive) (1 << (3 + (drive & 3))) |
drive | 220 | drivers/block/amiflop.c | static void fd_motor_off(unsigned long drive) |
drive | 225 | drivers/block/amiflop.c | drive&=3; |
drive | 229 | drivers/block/amiflop.c | if (unit[drive].track % 2 != 0) |
drive | 233 | drivers/block/amiflop.c | prb &= ~SELMASK(drive); |
drive | 239 | drivers/block/amiflop.c | unit[drive].motor = 0; |
drive | 306 | drivers/block/amiflop.c | static void fd_select (int drive) |
drive | 310 | drivers/block/amiflop.c | drive&=3; |
drive | 311 | drivers/block/amiflop.c | if (drive == selected) |
drive | 313 | drivers/block/amiflop.c | selected = drive; |
drive | 315 | drivers/block/amiflop.c | if (unit[drive].track % 2 != 0) |
drive | 317 | drivers/block/amiflop.c | if (unit[drive].motor == 1) |
drive | 321 | drivers/block/amiflop.c | prb &= ~SELMASK(drive); |
drive | 325 | drivers/block/amiflop.c | static void fd_deselect (int drive) |
drive | 330 | drivers/block/amiflop.c | drive&=3; |
drive | 331 | drivers/block/amiflop.c | if (drive != selected) |
drive | 352 | drivers/block/amiflop.c | static int fd_calibrate(int drive) |
drive | 357 | drivers/block/amiflop.c | drive &= 3; |
drive | 358 | drivers/block/amiflop.c | if (!motor_on (drive)) |
drive | 360 | drivers/block/amiflop.c | fd_select (drive); |
drive | 365 | drivers/block/amiflop.c | for (n = unit[drive].type->tracks/4; n != 0; --n) { |
drive | 373 | drivers/block/amiflop.c | ms_delay(unit[drive].type->step_delay); |
drive | 375 | drivers/block/amiflop.c | ms_delay (unit[drive].type->settle_time); |
drive | 377 | drivers/block/amiflop.c | n = unit[drive].type->tracks/2 + 20; |
drive | 384 | drivers/block/amiflop.c | ms_delay(unit[drive].type->step_delay + 1); |
drive | 389 | drivers/block/amiflop.c | fd_motor_off (drive); |
drive | 390 | drivers/block/amiflop.c | unit[drive].track = -1; |
drive | 394 | drivers/block/amiflop.c | unit[drive].track = 0; |
drive | 395 | drivers/block/amiflop.c | ms_delay(unit[drive].type->settle_time); |
drive | 405 | drivers/block/amiflop.c | static int fd_seek(int drive, int track) |
drive | 410 | drivers/block/amiflop.c | drive &= 3; |
drive | 411 | drivers/block/amiflop.c | if (unit[drive].track == track) |
drive | 413 | drivers/block/amiflop.c | if (!motor_on(drive)) |
drive | 415 | drivers/block/amiflop.c | fd_select (drive); |
drive | 416 | drivers/block/amiflop.c | if (unit[drive].track < 0 && !fd_calibrate(drive)) |
drive | 419 | drivers/block/amiflop.c | cnt = unit[drive].track/2 - track/2; |
drive | 429 | drivers/block/amiflop.c | if (track % 2 != unit[drive].track % 2) |
drive | 430 | drivers/block/amiflop.c | ms_delay (unit[drive].type->side_time); |
drive | 431 | drivers/block/amiflop.c | unit[drive].track = track; |
drive | 440 | drivers/block/amiflop.c | ms_delay (unit[drive].type->step_delay); |
drive | 442 | drivers/block/amiflop.c | ms_delay (unit[drive].type->settle_time); |
drive | 608 | drivers/block/amiflop.c | static int amiga_read(int drive, unsigned char *track_data, |
drive | 616 | drivers/block/amiflop.c | drive&=3; |
drive | 617 | drivers/block/amiflop.c | end = raw + unit[drive].type->read_size; |
drive | 619 | drivers/block/amiflop.c | for (scnt = 0;scnt < unit[drive].sects; scnt++) { |
drive | 841 | drivers/block/amiflop.c | static int dos_read(int drive, unsigned char *track_data, |
drive | 849 | drivers/block/amiflop.c | drive&=3; |
drive | 850 | drivers/block/amiflop.c | end = raw + unit[drive].type->read_size; |
drive | 852 | drivers/block/amiflop.c | for (scnt=0;scnt<unit[drive].sects;scnt++) { |
drive | 856 | drivers/block/amiflop.c | track,drive,scnt); |
drive | 876 | drivers/block/amiflop.c | if (hdr.track != track/unit[drive].type->heads) { |
drive | 878 | drivers/block/amiflop.c | track/unit[drive].type->heads); |
drive | 882 | drivers/block/amiflop.c | if (hdr.side != track%unit[drive].type->heads) { |
drive | 884 | drivers/block/amiflop.c | track%unit[drive].type->heads); |
drive | 897 | drivers/block/amiflop.c | track, drive, scnt, hdr.sec); |
drive | 954 | drivers/block/amiflop.c | static unsigned long *ms_putsec(int drive, unsigned long *raw, int track, int cnt, |
drive | 962 | drivers/block/amiflop.c | drive&=3; |
drive | 972 | drivers/block/amiflop.c | hdr.track=track/unit[drive].type->heads; |
drive | 973 | drivers/block/amiflop.c | hdr.side=track%unit[drive].type->heads; |
drive | 1083 | drivers/block/amiflop.c | int drive = dev & 3; |
drive | 1091 | drivers/block/amiflop.c | fd_select (drive); |
drive | 1093 | drivers/block/amiflop.c | fd_deselect (drive); |
drive | 1097 | drivers/block/amiflop.c | unit[drive].track = -1; |
drive | 1119 | drivers/block/amiflop.c | static void raw_read(int drive, int track, char *ptrack, int len) |
drive | 1121 | drivers/block/amiflop.c | drive&=3; |
drive | 1130 | drivers/block/amiflop.c | ms_delay (unit[drive].type->side_time); |
drive | 1144 | drivers/block/amiflop.c | static int raw_write(int drive, int track, char *ptrack, int len) |
drive | 1148 | drivers/block/amiflop.c | drive&=3; |
drive | 1156 | drivers/block/amiflop.c | if ((ulong)track >= unit[drive].type->precomp2) |
drive | 1158 | drivers/block/amiflop.c | else if ((ulong)track >= unit[drive].type->precomp1) |
drive | 1164 | drivers/block/amiflop.c | ms_delay (unit[drive].type->side_time); |
drive | 1181 | drivers/block/amiflop.c | static int get_track(int drive, int track) |
drive | 1185 | drivers/block/amiflop.c | drive&=3; |
drive | 1186 | drivers/block/amiflop.c | if ((lastdrive == drive) && (savedtrack == track)) |
drive | 1189 | drivers/block/amiflop.c | lastdrive = drive; |
drive | 1190 | drivers/block/amiflop.c | raw_read(drive, track, raw_buf, unit[drive].type->read_size); |
drive | 1192 | drivers/block/amiflop.c | error = (*unit[drive].dtype->read_fkt)(drive, trackdata, (unsigned long)raw_buf, track); |
drive | 1198 | drivers/block/amiflop.c | unit[drive].track = -1; |
drive | 1247 | drivers/block/amiflop.c | int device, drive, cnt; |
drive | 1276 | drivers/block/amiflop.c | drive = device & 3; |
drive | 1277 | drivers/block/amiflop.c | floppy = unit + drive; |
drive | 1282 | drivers/block/amiflop.c | drive = device & 3; |
drive | 1283 | drivers/block/amiflop.c | floppy = unit + drive; |
drive | 1288 | drivers/block/amiflop.c | if (drive != selected && writepending) { |
drive | 1327 | drivers/block/amiflop.c | if (!motor_on (drive)) { |
drive | 1331 | drivers/block/amiflop.c | fd_select (drive); |
drive | 1332 | drivers/block/amiflop.c | if (!fd_seek(drive, track)) { |
drive | 1336 | drivers/block/amiflop.c | if (get_track(drive, track) == -1) { |
drive | 1344 | drivers/block/amiflop.c | if (!motor_on (drive)) { |
drive | 1348 | drivers/block/amiflop.c | fd_select (drive); |
drive | 1349 | drivers/block/amiflop.c | if (!fd_seek(drive, track)) { |
drive | 1353 | drivers/block/amiflop.c | if (get_track(drive, track) == -1) { |
drive | 1370 | drivers/block/amiflop.c | flush_track_timer.data = drive; |
drive | 1404 | drivers/block/amiflop.c | int drive = inode->i_rdev & 3; |
drive | 1411 | drivers/block/amiflop.c | if (fd_ref[drive] > 1) |
drive | 1414 | drivers/block/amiflop.c | if (motor_on(drive) == 0) |
drive | 1416 | drivers/block/amiflop.c | if (fd_calibrate(drive) == 0) |
drive | 1418 | drivers/block/amiflop.c | floppy_off(drive); |
drive | 1421 | drivers/block/amiflop.c | if (param < unit[drive].type->tracks) |
drive | 1423 | drivers/block/amiflop.c | fd_select(drive); |
drive | 1424 | drivers/block/amiflop.c | if (fd_seek(drive,param)!=0) |
drive | 1427 | drivers/block/amiflop.c | memset(trackdata,FD_FILL_BYTE,unit[drive].sects*512); |
drive | 1428 | drivers/block/amiflop.c | non_int_flush_track(drive); |
drive | 1430 | drivers/block/amiflop.c | floppy_off(drive); |
drive | 1436 | drivers/block/amiflop.c | floppy_off(drive); |
drive | 1446 | drivers/block/amiflop.c | getprm.track=unit[drive].type->tracks/unit[drive].type->heads; |
drive | 1447 | drivers/block/amiflop.c | getprm.head=unit[drive].type->heads; |
drive | 1448 | drivers/block/amiflop.c | getprm.sect=unit[drive].sects; |
drive | 1449 | drivers/block/amiflop.c | getprm.size=unit[drive].blocks; |
drive | 1457 | drivers/block/amiflop.c | put_fs_long(unit[drive].blocks,(long *)param); |
drive | 1463 | drivers/block/amiflop.c | if ((drive == selected) && (writepending)) { |
drive | 1471 | drivers/block/amiflop.c | unit[drive].type->read_size); |
drive | 1474 | drivers/block/amiflop.c | memcpy_tofs((void *)param, raw_buf, unit[drive].type->read_size); |
drive | 1475 | drivers/block/amiflop.c | return unit[drive].type->read_size; |
drive | 1478 | drivers/block/amiflop.c | printk("fd_ioctl: unknown cmd %d for drive %d.",cmd,drive); |
drive | 1487 | drivers/block/amiflop.c | static unsigned long get_drive_id(int drive) |
drive | 1492 | drivers/block/amiflop.c | drive&=3; |
drive | 1496 | drivers/block/amiflop.c | SELECT(SELMASK(drive)); |
drive | 1498 | drivers/block/amiflop.c | DESELECT(SELMASK(drive)); |
drive | 1502 | drivers/block/amiflop.c | SELECT(SELMASK(drive)); |
drive | 1504 | drivers/block/amiflop.c | DESELECT(SELMASK(drive)); |
drive | 1509 | drivers/block/amiflop.c | SELECT(SELMASK(drive)); |
drive | 1516 | drivers/block/amiflop.c | DESELECT(SELMASK(drive)); |
drive | 1527 | drivers/block/amiflop.c | if(drive == 0 && id == FD_NODRIVE) |
drive | 1540 | drivers/block/amiflop.c | int drive; |
drive | 1543 | drivers/block/amiflop.c | drive = dev & 3; |
drive | 1544 | drivers/block/amiflop.c | code = get_drive_id(drive); |
drive | 1547 | drivers/block/amiflop.c | unit[drive].type = NULL; |
drive | 1558 | drivers/block/amiflop.c | unit[drive].type = &drive_types[type]; |
drive | 1559 | drivers/block/amiflop.c | unit[drive].track = -1; |
drive | 1561 | drivers/block/amiflop.c | unit[drive].disk = -1; |
drive | 1562 | drivers/block/amiflop.c | unit[drive].motor = 0; |
drive | 1563 | drivers/block/amiflop.c | unit[drive].busy = 0; |
drive | 1564 | drivers/block/amiflop.c | unit[drive].status = -1; |
drive | 1568 | drivers/block/amiflop.c | unit[drive].dtype=&data_types[system]; |
drive | 1569 | drivers/block/amiflop.c | unit[drive].sects=data_types[system].sects*unit[drive].type->sect_mult; |
drive | 1570 | drivers/block/amiflop.c | unit[drive].blocks=unit[drive].type->heads*unit[drive].type->tracks* |
drive | 1571 | drivers/block/amiflop.c | unit[drive].sects; |
drive | 1573 | drivers/block/amiflop.c | floppy_sizes[MINOR(dev)] = unit[drive].blocks >> 1; |
drive | 1579 | drivers/block/amiflop.c | int drive,found; |
drive | 1583 | drivers/block/amiflop.c | for(drive=0;drive<FD_MAX_UNITS;drive++) { |
drive | 1584 | drivers/block/amiflop.c | fd_probe(drive); |
drive | 1585 | drivers/block/amiflop.c | if (unit[drive].type->code != FD_NODRIVE) { |
drive | 1586 | drivers/block/amiflop.c | printk("fd%d ",drive); |
drive | 1600 | drivers/block/amiflop.c | int drive; |
drive | 1604 | drivers/block/amiflop.c | drive = inode->i_rdev & 3; |
drive | 1605 | drivers/block/amiflop.c | old_dev = fd_device[drive]; |
drive | 1607 | drivers/block/amiflop.c | if (fd_ref[drive]) |
drive | 1611 | drivers/block/amiflop.c | if (unit[drive].type->code == FD_NODRIVE) |
drive | 1614 | drivers/block/amiflop.c | fd_ref[drive]++; |
drive | 1615 | drivers/block/amiflop.c | fd_device[drive] = inode->i_rdev; |
drive | 1626 | drivers/block/amiflop.c | fd_select (drive); |
drive | 1628 | drivers/block/amiflop.c | fd_deselect (drive); |
drive | 1635 | drivers/block/amiflop.c | unit[drive].dtype=&data_types[system]; |
drive | 1636 | drivers/block/amiflop.c | unit[drive].sects=data_types[system].sects*unit[drive].type->sect_mult; |
drive | 1637 | drivers/block/amiflop.c | unit[drive].blocks=unit[drive].type->heads*unit[drive].type->tracks* |
drive | 1638 | drivers/block/amiflop.c | unit[drive].sects; |
drive | 1640 | drivers/block/amiflop.c | printk("fd%d: accessing %s-disk with %s-layout\n",drive,unit[drive].type->name, |
drive | 214 | drivers/block/ataflop.c | #define UD unit[drive] |
drive | 215 | drivers/block/ataflop.c | #define UDT unit[drive].disktype |
drive | 272 | drivers/block/ataflop.c | #define IS_BUFFERED(drive,side,track) \ |
drive | 273 | drivers/block/ataflop.c | (BufferDrive == (drive) && BufferSide == (side) && BufferTrack == (track)) |
drive | 356 | drivers/block/ataflop.c | static void fd_select_drive( int drive ); |
drive | 364 | drivers/block/ataflop.c | static int do_format(kdev_t drive, struct atari_format_descr *desc); |
drive | 365 | drivers/block/ataflop.c | static void do_fd_action( int drive ); |
drive | 380 | drivers/block/ataflop.c | static void setup_req_params( int drive ); |
drive | 385 | drivers/block/ataflop.c | static void fd_probe( int drive ); |
drive | 386 | drivers/block/ataflop.c | static int fd_test_drive_present( int drive ); |
drive | 424 | drivers/block/ataflop.c | static void fd_select_drive( int drive ) |
drive | 429 | drivers/block/ataflop.c | if (drive == SelectedDrive) |
drive | 436 | drivers/block/ataflop.c | sound_ym.wd_data = (tmp | DSKDRVNONE) & ~(drive == 0 ? DSKDRV0 : DSKDRV1); |
drive | 448 | drivers/block/ataflop.c | SelectedDrive = drive; |
drive | 520 | drivers/block/ataflop.c | static int drive = 0; |
drive | 526 | drivers/block/ataflop.c | if (++drive > 1 || !UD.connected) |
drive | 527 | drivers/block/ataflop.c | drive = 0; |
drive | 536 | drivers/block/ataflop.c | ~(drive == 0 ? DSKDRV0 : DSKDRV1); |
drive | 541 | drivers/block/ataflop.c | DPRINT(( "wpstat[%d] = %d\n", drive, stat )); |
drive | 543 | drivers/block/ataflop.c | set_bit (drive, &changed_floppies); |
drive | 640 | drivers/block/ataflop.c | int type, drive = MINOR(device) & 3; |
drive | 643 | drivers/block/ataflop.c | drive, desc->track, desc->head, desc->sect_offset )); |
drive | 701 | drivers/block/ataflop.c | do_fd_action( drive ); |
drive | 719 | drivers/block/ataflop.c | static void do_fd_action( int drive ) |
drive | 725 | drivers/block/ataflop.c | if (IS_BUFFERED( drive, ReqSide, ReqTrack )) { |
drive | 730 | drivers/block/ataflop.c | setup_req_params( drive ); |
drive | 750 | drivers/block/ataflop.c | if (SelectedDrive != drive) |
drive | 751 | drivers/block/ataflop.c | fd_select_drive( drive ); |
drive | 1345 | drivers/block/ataflop.c | unsigned int drive = MINOR(dev) & 0x03; |
drive | 1352 | drivers/block/ataflop.c | if (test_bit (drive, &fake_change)) { |
drive | 1356 | drivers/block/ataflop.c | if (test_bit (drive, &changed_floppies)) { |
drive | 1372 | drivers/block/ataflop.c | int drive = MINOR(dev) & 3; |
drive | 1374 | drivers/block/ataflop.c | if (test_bit (drive, &changed_floppies) || test_bit (drive, &fake_change) |
drive | 1375 | drivers/block/ataflop.c | || unit[drive].disktype == 0) |
drive | 1378 | drivers/block/ataflop.c | clear_bit (drive, &fake_change); |
drive | 1379 | drivers/block/ataflop.c | clear_bit (drive, &changed_floppies); |
drive | 1397 | drivers/block/ataflop.c | static void setup_req_params( int drive ) |
drive | 1419 | drivers/block/ataflop.c | int device, drive, type; |
drive | 1443 | drivers/block/ataflop.c | drive = device & 3; |
drive | 1448 | drivers/block/ataflop.c | printk( "Unknown Device: fd%d\n", drive ); |
drive | 1457 | drivers/block/ataflop.c | floppy_sizes[drive] = UDT->blocks >> 1; |
drive | 1464 | drivers/block/ataflop.c | printk( "fd%d: invalid disk format", drive ); |
drive | 1469 | drivers/block/ataflop.c | printk( "fd%d: unsupported disk format", drive ); |
drive | 1475 | drivers/block/ataflop.c | floppy_sizes[drive] = UDT->blocks >> 1; |
drive | 1491 | drivers/block/ataflop.c | setup_req_params( drive ); |
drive | 1492 | drivers/block/ataflop.c | do_fd_action( drive ); |
drive | 1537 | drivers/block/ataflop.c | int drive, type, error; |
drive | 1547 | drivers/block/ataflop.c | drive = MINOR (device); |
drive | 1548 | drivers/block/ataflop.c | type = drive >> 2; |
drive | 1549 | drivers/block/ataflop.c | drive &= 3; |
drive | 1596 | drivers/block/ataflop.c | if (fd_ref[drive] != 1 && fd_ref[drive] != -1) |
drive | 1605 | drivers/block/ataflop.c | floppy_sizes[drive] = MAX_DISK_SIZE; |
drive | 1609 | drivers/block/ataflop.c | return invalidate_drive (drive); |
drive | 1617 | drivers/block/ataflop.c | static void fd_probe( int drive ) |
drive | 1622 | drivers/block/ataflop.c | if (!fd_test_drive_present( drive )) |
drive | 1627 | drivers/block/ataflop.c | switch( UserSteprate[drive] ) { |
drive | 1660 | drivers/block/ataflop.c | static int fd_test_drive_present( int drive ) |
drive | 1666 | drivers/block/ataflop.c | if (drive > 1) return( 0 ); |
drive | 1667 | drivers/block/ataflop.c | fd_select_drive( drive ); |
drive | 1709 | drivers/block/ataflop.c | int drive, cnt = 0; |
drive | 1716 | drivers/block/ataflop.c | for( drive = 0; drive < FD_MAX_UNITS; drive++ ) { |
drive | 1717 | drivers/block/ataflop.c | fd_probe( drive ); |
drive | 1719 | drivers/block/ataflop.c | printk("fd%d\n", drive); |
drive | 1752 | drivers/block/ataflop.c | int drive, type; |
drive | 1761 | drivers/block/ataflop.c | drive = MINOR (inode->i_rdev) & 3; |
drive | 1767 | drivers/block/ataflop.c | old_dev = fd_device[drive]; |
drive | 1769 | drivers/block/ataflop.c | if (fd_ref[drive]) |
drive | 1773 | drivers/block/ataflop.c | if (fd_ref[drive] == -1 || (fd_ref[drive] && filp->f_flags & O_EXCL)) |
drive | 1777 | drivers/block/ataflop.c | fd_ref[drive] = -1; |
drive | 1779 | drivers/block/ataflop.c | fd_ref[drive]++; |
drive | 1781 | drivers/block/ataflop.c | fd_device[drive] = inode->i_rdev; |
drive | 1811 | drivers/block/ataflop.c | int drive; |
drive | 1813 | drivers/block/ataflop.c | drive = inode->i_rdev & 3; |
drive | 1820 | drivers/block/ataflop.c | if (fd_ref[drive] < 0) |
drive | 1821 | drivers/block/ataflop.c | fd_ref[drive] = 0; |
drive | 1822 | drivers/block/ataflop.c | else if (!fd_ref[drive]--) |
drive | 1825 | drivers/block/ataflop.c | fd_ref[drive] = 0; |
drive | 672 | drivers/block/cmd640.c | static void cmd640_set_mode(ide_drive_t* drive, int pio_mode) { |
drive | 678 | drivers/block/cmd640.c | interface_number = HWIF(drive)->index; |
drive | 679 | drivers/block/cmd640.c | drive_number = drive->select.b.unit; |
drive | 697 | drivers/block/cmd640.c | static void cmd640_tune_drive(ide_drive_t *drive, byte pio_mode) { |
drive | 707 | drivers/block/cmd640.c | cmd640_set_mode(drive, pio_mode); |
drive | 711 | drivers/block/cmd640.c | interface_number = HWIF(drive)->index; |
drive | 712 | drivers/block/cmd640.c | drive_number = drive->select.b.unit; |
drive | 714 | drivers/block/cmd640.c | id = drive->id; |
drive | 70 | drivers/block/dtc2278.c | static void tune_dtc2278 (ide_drive_t *drive, byte pio) |
drive | 75 | drivers/block/dtc2278.c | pio = ide_get_best_pio_mode(drive); |
drive | 93 | drivers/block/dtc2278.c | drive->io_32bit = 1; |
drive | 94 | drivers/block/dtc2278.c | HWIF(drive)->drives[!drive->select.b.unit].io_32bit = 1; |
drive | 243 | drivers/block/floppy.c | #define UDP (&drive_params[drive]) |
drive | 244 | drivers/block/floppy.c | #define UDRS (&drive_state[drive]) |
drive | 245 | drivers/block/floppy.c | #define UDRWE (&write_errors[drive]) |
drive | 246 | drivers/block/floppy.c | #define UFDCS (&fdc_state[FDC(drive)]) |
drive | 536 | drivers/block/floppy.c | static int fd_eject(int drive) |
drive | 610 | drivers/block/floppy.c | static void reschedule_timeout(int drive, const char *message, int marg) |
drive | 612 | drivers/block/floppy.c | if (drive == CURRENTD) |
drive | 613 | drivers/block/floppy.c | drive = current_drive; |
drive | 615 | drivers/block/floppy.c | if (drive < 0 || drive > N_DRIVE) { |
drive | 617 | drivers/block/floppy.c | drive=0; |
drive | 681 | drivers/block/floppy.c | static int disk_change(int drive) |
drive | 683 | drivers/block/floppy.c | int fdc=FDC(drive); |
drive | 687 | drivers/block/floppy.c | if (!(FDCS->dor & (0x10 << UNIT(drive))) || |
drive | 688 | drivers/block/floppy.c | (FDCS->dor & 3) != UNIT(drive) || |
drive | 689 | drivers/block/floppy.c | fdc != FDC(drive)){ |
drive | 691 | drivers/block/floppy.c | DPRINT3("drive=%d fdc=%d dor=%x\n",drive, FDC(drive), |
drive | 698 | drivers/block/floppy.c | DPRINT1("checking disk change line for drive %d\n",drive); |
drive | 715 | drivers/block/floppy.c | current_type[drive] != NULL) |
drive | 718 | drivers/block/floppy.c | current_type[drive] = NULL; |
drive | 738 | drivers/block/floppy.c | register unsigned char drive, unit, newdor,olddor; |
drive | 748 | drivers/block/floppy.c | drive = REVDRIVE(fdc,unit); |
drive | 754 | drivers/block/floppy.c | disk_change(drive); |
drive | 761 | drivers/block/floppy.c | drive = REVDRIVE(fdc,unit); |
drive | 785 | drivers/block/floppy.c | int drive; |
drive | 791 | drivers/block/floppy.c | for (drive = 0; drive < N_DRIVE; drive++) |
drive | 792 | drivers/block/floppy.c | if (FDC(drive) == fdc && |
drive | 798 | drivers/block/floppy.c | static void set_fdc(int drive) |
drive | 800 | drivers/block/floppy.c | if (drive >= 0 && drive < N_DRIVE){ |
drive | 801 | drivers/block/floppy.c | fdc = FDC(drive); |
drive | 802 | drivers/block/floppy.c | current_drive = drive; |
drive | 819 | drivers/block/floppy.c | static int lock_fdc(int drive, int interruptible) |
drive | 836 | drivers/block/floppy.c | reschedule_timeout(drive, "lock fdc", 0); |
drive | 837 | drivers/block/floppy.c | set_fdc(drive); |
drive | 841 | drivers/block/floppy.c | #define LOCK_FDC(drive,interruptible) \ |
drive | 842 | drivers/block/floppy.c | if (lock_fdc(drive,interruptible)) return -EINTR; |
drive | 883 | drivers/block/floppy.c | static void floppy_off(unsigned int drive) |
drive | 886 | drivers/block/floppy.c | register int fdc=FDC(drive); |
drive | 888 | drivers/block/floppy.c | if (!(FDCS->dor & (0x10 << UNIT(drive)))) |
drive | 891 | drivers/block/floppy.c | del_timer(motor_off_timer+drive); |
drive | 899 | drivers/block/floppy.c | motor_off_timer[drive].expires = jiffies + UDP->spindown - delta; |
drive | 901 | drivers/block/floppy.c | add_timer(motor_off_timer+drive); |
drive | 911 | drivers/block/floppy.c | int i, drive, saved_drive; |
drive | 918 | drivers/block/floppy.c | drive = (saved_drive + i + 1) % N_DRIVE; |
drive | 921 | drivers/block/floppy.c | set_fdc(drive); |
drive | 922 | drivers/block/floppy.c | if (!(set_dor(fdc, ~3, UNIT(drive) | (0x10 << UNIT(drive))) & |
drive | 923 | drivers/block/floppy.c | (0x10 << UNIT(drive)))) |
drive | 926 | drivers/block/floppy.c | set_dor(fdc, ~(0x10 << UNIT(drive)), 0); |
drive | 2148 | drivers/block/floppy.c | int drive=DRIVE(device); |
drive | 2150 | drivers/block/floppy.c | LOCK_FDC(drive,1); |
drive | 2836 | drivers/block/floppy.c | static int user_reset_fdc(int drive, int arg, int interruptible) |
drive | 2841 | drivers/block/floppy.c | LOCK_FDC(drive,interruptible); |
drive | 2880 | drivers/block/floppy.c | static inline const char *drive_name(int type, int drive) |
drive | 3075 | drivers/block/floppy.c | int drive, ret, ret2; |
drive | 3080 | drivers/block/floppy.c | for (drive= 0; drive < N_DRIVE; drive++){ |
drive | 3081 | drivers/block/floppy.c | if (FDC(drive) != fdc) |
drive | 3083 | drivers/block/floppy.c | if (drive == current_drive){ |
drive | 3134 | drivers/block/floppy.c | static inline void clear_write_error(int drive) |
drive | 3140 | drivers/block/floppy.c | int drive, int type, kdev_t device) |
drive | 3155 | drivers/block/floppy.c | LOCK_FDC(drive,1); |
drive | 3159 | drivers/block/floppy.c | set_bit(drive, &fake_change); |
drive | 3175 | drivers/block/floppy.c | LOCK_FDC(drive,1); |
drive | 3180 | drivers/block/floppy.c | user_params[drive] = *g; |
drive | 3181 | drivers/block/floppy.c | if (buffer_drive == drive) |
drive | 3182 | drivers/block/floppy.c | SUPBOUND(buffer_max, user_params[drive].sect); |
drive | 3183 | drivers/block/floppy.c | current_type[drive] = &user_params[drive]; |
drive | 3184 | drivers/block/floppy.c | floppy_sizes[drive] = user_params[drive].size >> 1; |
drive | 3194 | drivers/block/floppy.c | if (DRS->maxblock > user_params[drive].sect || DRS->maxtrack) |
drive | 3288 | drivers/block/floppy.c | int i,drive,type; |
drive | 3305 | drivers/block/floppy.c | drive = DRIVE(device); |
drive | 3344 | drivers/block/floppy.c | LOCK_FDC(drive,1); |
drive | 3348 | drivers/block/floppy.c | ret=fd_eject(UNIT(drive)); |
drive | 3355 | drivers/block/floppy.c | LOCK_FDC(drive,1); |
drive | 3356 | drivers/block/floppy.c | current_type[drive] = NULL; |
drive | 3357 | drivers/block/floppy.c | floppy_sizes[drive] = MAX_DISK_SIZE; |
drive | 3363 | drivers/block/floppy.c | drive, type, device); |
drive | 3368 | drivers/block/floppy.c | outparam = (char *) current_type[drive]; |
drive | 3381 | drivers/block/floppy.c | LOCK_FDC(drive,1); |
drive | 3396 | drivers/block/floppy.c | LOCK_FDC(drive,1); |
drive | 3407 | drivers/block/floppy.c | outparam = drive_name(type,drive); |
drive | 3415 | drivers/block/floppy.c | LOCK_FDC(drive,1); |
drive | 3422 | drivers/block/floppy.c | return user_reset_fdc(drive, (int)param, 1); |
drive | 3435 | drivers/block/floppy.c | LOCK_FDC(drive,1); |
drive | 3442 | drivers/block/floppy.c | LOCK_FDC(drive,1); |
drive | 3463 | drivers/block/floppy.c | int drive; |
drive | 3466 | drivers/block/floppy.c | drive=0; |
drive | 3469 | drivers/block/floppy.c | drive=1; |
drive | 3476 | drivers/block/floppy.c | for (drive=0; drive < N_DRIVE; drive++){ |
drive | 3490 | drivers/block/floppy.c | allowed_drive_mask |= 1 << drive; |
drive | 3491 | drivers/block/floppy.c | printk("fd%d is %s", drive, |
drive | 3494 | drivers/block/floppy.c | printk("fd%d is unknown type %d",drive, |
drive | 3505 | drivers/block/floppy.c | int drive = DRIVE(inode->i_rdev); |
drive | 3518 | drivers/block/floppy.c | int drive = DRIVE(inode->i_rdev); |
drive | 3535 | drivers/block/floppy.c | int drive; |
drive | 3537 | drivers/block/floppy.c | drive = DRIVE(inode->i_rdev); |
drive | 3562 | drivers/block/floppy.c | int drive; |
drive | 3572 | drivers/block/floppy.c | drive = DRIVE(inode->i_rdev); |
drive | 3573 | drivers/block/floppy.c | if (drive >= N_DRIVE || |
drive | 3574 | drivers/block/floppy.c | !(allowed_drive_mask & (1 << drive)) || |
drive | 3575 | drivers/block/floppy.c | fdc_state[FDC(drive)].version == FDC_NONE) |
drive | 3630 | drivers/block/floppy.c | if (buffer_drive == drive) |
drive | 3663 | drivers/block/floppy.c | int drive = DRIVE(dev); |
drive | 3674 | drivers/block/floppy.c | lock_fdc(drive,0); |
drive | 3681 | drivers/block/floppy.c | test_bit(drive, &fake_change) || |
drive | 3682 | drivers/block/floppy.c | (!TYPE(dev) && !current_type[drive])) |
drive | 3693 | drivers/block/floppy.c | #define NO_GEOM (!current_type[drive] && !TYPE(dev)) |
drive | 3695 | drivers/block/floppy.c | int drive=DRIVE(dev); |
drive | 3700 | drivers/block/floppy.c | test_bit(drive, &fake_change) || |
drive | 3702 | drivers/block/floppy.c | lock_fdc(drive,0); |
drive | 3704 | drivers/block/floppy.c | if (!(cf || test_bit(drive, &fake_change) || NO_GEOM)){ |
drive | 3710 | drivers/block/floppy.c | if (buffer_drive == drive) |
drive | 3712 | drivers/block/floppy.c | clear_bit(drive, &fake_change); |
drive | 3972 | drivers/block/floppy.c | int i,unit,drive; |
drive | 4021 | drivers/block/floppy.c | for (drive = 0; drive < N_DRIVE; drive++) { |
drive | 4115 | drivers/block/floppy.c | int drive; |
drive | 4148 | drivers/block/floppy.c | for (drive=0; drive < N_FDC * 4; drive++) |
drive | 4149 | drivers/block/floppy.c | if (motor_off_timer[drive].next) |
drive | 4150 | drivers/block/floppy.c | printk("motor off timer %d still active\n", drive); |
drive | 601 | drivers/block/genhd.c | void resetup_one_dev(struct gendisk *dev, int drive) |
drive | 604 | drivers/block/genhd.c | int first_minor = drive << dev->minor_shift; |
drive | 624 | drivers/block/genhd.c | int i, drive; |
drive | 633 | drivers/block/genhd.c | for (drive = 0 ; drive < dev->nr_real ; drive++) { |
drive | 634 | drivers/block/genhd.c | int first_minor = drive << dev->minor_shift; |
drive | 206 | drivers/block/hd.c | static int controller_ready(unsigned int drive, unsigned int head) |
drive | 213 | drivers/block/hd.c | outb_p(0xA0 | (drive<<4) | head, HD_CURRENT); |
drive | 220 | drivers/block/hd.c | static void hd_out(unsigned int drive,unsigned int nsect,unsigned int sect, |
drive | 232 | drivers/block/hd.c | if (!controller_ready(drive, head)) { |
drive | 237 | drivers/block/hd.c | outb_p(hd_info[drive].ctl,HD_CMD); |
drive | 239 | drivers/block/hd.c | outb_p(hd_info[drive].wpcom>>2,++port); |
drive | 244 | drivers/block/hd.c | outb_p(0xA0|(drive<<4)|head,++port); |
drive | 962 | drivers/block/hd.c | int cmos_disks, drive; |
drive | 964 | drivers/block/hd.c | for (drive=0 ; drive<2 ; drive++) { |
drive | 965 | drivers/block/hd.c | bios_info[drive].cyl = hd_info[drive].cyl = *(unsigned short *) BIOS; |
drive | 966 | drivers/block/hd.c | bios_info[drive].head = hd_info[drive].head = *(2+BIOS); |
drive | 967 | drivers/block/hd.c | bios_info[drive].wpcom = hd_info[drive].wpcom = *(unsigned short *) (5+BIOS); |
drive | 968 | drivers/block/hd.c | bios_info[drive].ctl = hd_info[drive].ctl = *(8+BIOS); |
drive | 969 | drivers/block/hd.c | bios_info[drive].lzone = hd_info[drive].lzone = *(unsigned short *) (12+BIOS); |
drive | 970 | drivers/block/hd.c | bios_info[drive].sect = hd_info[drive].sect = *(14+BIOS); |
drive | 972 | drivers/block/hd.c | if (hd_info[drive].cyl && NR_HD == drive) |
drive | 124 | drivers/block/ht6560b.c | static void ht6560b_selectproc (ide_drive_t *drive) |
drive | 130 | drivers/block/ht6560b.c | byte select = ht6560b_selects[HWIF(drive)->index][drive->select.b.unit]; |
drive | 131 | drivers/block/ht6560b.c | byte timing = ht6560b_timings[HWIF(drive)->index][drive->select.b.unit]; |
drive | 155 | drivers/block/ht6560b.c | printk("ht6560b: %s: select=%#x timing=%#x\n", drive->name, t, timing); |
drive | 158 | drivers/block/ht6560b.c | OUT_BYTE(drive->select.all,IDE_SELECT_REG); |
drive | 196 | drivers/block/ht6560b.c | static void tune_ht6560b (ide_drive_t *drive, byte pio) |
drive | 201 | drivers/block/ht6560b.c | if (drive->media != ide_disk) |
drive | 204 | drivers/block/ht6560b.c | pio = ide_get_best_pio_mode (drive); |
drive | 208 | drivers/block/ht6560b.c | unit = drive->select.b.unit; |
drive | 209 | drivers/block/ht6560b.c | hwif = HWIF(drive)->index; |
drive | 219 | drivers/block/ide-cd.c | #define CDROM_CONFIG_FLAGS(drive) ((struct ide_cd_config_flags *)&((drive)->bios_sect)) |
drive | 231 | drivers/block/ide-cd.c | #define CDROM_STATE_FLAGS(drive) ((struct ide_cd_state_flags *)&((drive)->bios_head)) |
drive | 249 | drivers/block/ide-cd.c | void cdrom_in_bytes (ide_drive_t *drive, void *buffer, uint bytecount) |
drive | 252 | drivers/block/ide-cd.c | ide_input_data (drive, buffer, bytecount / 4); |
drive | 260 | drivers/block/ide-cd.c | void cdrom_out_bytes (ide_drive_t *drive, void *buffer, uint bytecount) |
drive | 263 | drivers/block/ide-cd.c | ide_output_data (drive, buffer, bytecount / 4); |
drive | 421 | drivers/block/ide-cd.c | void cdrom_analyze_sense_data (ide_drive_t *drive, |
drive | 441 | drivers/block/ide-cd.c | printk ("ATAPI device %s:\n", drive->name); |
drive | 526 | drivers/block/ide-cd.c | drive->name, |
drive | 547 | drivers/block/ide-cd.c | static void cdrom_queue_request_sense (ide_drive_t *drive, |
drive | 559 | drivers/block/ide-cd.c | reqbuf = &drive->cdrom_info.sense_data; |
drive | 563 | drivers/block/ide-cd.c | pc = &HWIF(drive)->request_sense_pc; |
drive | 581 | drivers/block/ide-cd.c | rq = &HWIF(drive)->request_sense_request; |
drive | 586 | drivers/block/ide-cd.c | (void) ide_do_drive_cmd (drive, rq, ide_preempt); |
drive | 590 | drivers/block/ide-cd.c | static void cdrom_end_request (int uptodate, ide_drive_t *drive) |
drive | 592 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
drive | 605 | drivers/block/ide-cd.c | cdrom_analyze_sense_data (drive, |
drive | 612 | drivers/block/ide-cd.c | ide_end_request (uptodate, HWGROUP(drive)); |
drive | 618 | drivers/block/ide-cd.c | static void cdrom_saw_media_change (ide_drive_t *drive) |
drive | 620 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->media_changed = 1; |
drive | 621 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->toc_valid = 0; |
drive | 622 | drivers/block/ide-cd.c | drive->cdrom_info.nsectors_buffered = 0; |
drive | 628 | drivers/block/ide-cd.c | static int cdrom_decode_status (ide_drive_t *drive, int good_stat, |
drive | 631 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
drive | 647 | drivers/block/ide-cd.c | drive->name); |
drive | 659 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
drive | 660 | drivers/block/ide-cd.c | ide_error (drive, "request sense failure", stat); |
drive | 672 | drivers/block/ide-cd.c | cdrom_saw_media_change (drive); |
drive | 682 | drivers/block/ide-cd.c | drive->name); |
drive | 685 | drivers/block/ide-cd.c | cdrom_saw_media_change (drive); |
drive | 686 | drivers/block/ide-cd.c | printk ("%s: media changed\n", drive->name); |
drive | 689 | drivers/block/ide-cd.c | ide_dump_status (drive, "packet command error", |
drive | 708 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
drive | 711 | drivers/block/ide-cd.c | cdrom_queue_request_sense (drive, sem, |
drive | 718 | drivers/block/ide-cd.c | cdrom_saw_media_change (drive); |
drive | 721 | drivers/block/ide-cd.c | printk ("%s : tray open\n", drive->name); |
drive | 722 | drivers/block/ide-cd.c | cdrom_end_request (0, drive); |
drive | 725 | drivers/block/ide-cd.c | cdrom_saw_media_change (drive); |
drive | 731 | drivers/block/ide-cd.c | cdrom_end_request (0, drive); |
drive | 736 | drivers/block/ide-cd.c | ide_dump_status (drive, "command error", stat); |
drive | 737 | drivers/block/ide-cd.c | cdrom_end_request (0, drive); |
drive | 741 | drivers/block/ide-cd.c | ide_error (drive, "cdrom_decode_status", stat); |
drive | 745 | drivers/block/ide-cd.c | cdrom_end_request (0, drive); |
drive | 751 | drivers/block/ide-cd.c | cdrom_queue_request_sense (drive, |
drive | 768 | drivers/block/ide-cd.c | static int cdrom_start_packet_command (ide_drive_t *drive, int xferlen, |
drive | 772 | drivers/block/ide-cd.c | if (ide_wait_stat (drive, 0, BUSY_STAT, WAIT_READY)) return 1; |
drive | 781 | drivers/block/ide-cd.c | OUT_BYTE (drive->ctl, IDE_CONTROL_REG); |
drive | 783 | drivers/block/ide-cd.c | if (CDROM_CONFIG_FLAGS (drive)->drq_interrupt) { |
drive | 784 | drivers/block/ide-cd.c | ide_set_handler (drive, handler, WAIT_CMD); |
drive | 788 | drivers/block/ide-cd.c | (*handler) (drive); |
drive | 800 | drivers/block/ide-cd.c | static int cdrom_transfer_packet_command (ide_drive_t *drive, |
drive | 804 | drivers/block/ide-cd.c | if (CDROM_CONFIG_FLAGS (drive)->drq_interrupt) { |
drive | 810 | drivers/block/ide-cd.c | if (cdrom_decode_status (drive, DRQ_STAT, &stat_dum)) return 1; |
drive | 813 | drivers/block/ide-cd.c | if (ide_wait_stat (drive, DRQ_STAT, BUSY_STAT, WAIT_READY)) |
drive | 818 | drivers/block/ide-cd.c | ide_set_handler (drive, handler, WAIT_CMD); |
drive | 821 | drivers/block/ide-cd.c | cdrom_out_bytes (drive, cmd_buf, cmd_len); |
drive | 839 | drivers/block/ide-cd.c | static void cdrom_buffer_sectors (ide_drive_t *drive, unsigned long sector, |
drive | 842 | drivers/block/ide-cd.c | struct cdrom_info *info = &drive->cdrom_info; |
drive | 871 | drivers/block/ide-cd.c | cdrom_in_bytes (drive, dest, SECTOR_SIZE); |
drive | 881 | drivers/block/ide-cd.c | cdrom_in_bytes (drive, dum, sizeof (dum)); |
drive | 893 | drivers/block/ide-cd.c | int cdrom_read_check_ireason (ide_drive_t *drive, int len, int ireason) |
drive | 902 | drivers/block/ide-cd.c | drive->name); |
drive | 908 | drivers/block/ide-cd.c | cdrom_out_bytes (drive, &dum, sizeof (dum)); |
drive | 914 | drivers/block/ide-cd.c | drive->name, ireason); |
drive | 917 | drivers/block/ide-cd.c | cdrom_end_request (0, drive); |
drive | 925 | drivers/block/ide-cd.c | static void cdrom_read_intr (ide_drive_t *drive) |
drive | 930 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
drive | 933 | drivers/block/ide-cd.c | if (cdrom_decode_status (drive, 0, &stat)) return; |
drive | 945 | drivers/block/ide-cd.c | drive->name, rq->current_nr_sectors); |
drive | 946 | drivers/block/ide-cd.c | cdrom_end_request (0, drive); |
drive | 948 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
drive | 954 | drivers/block/ide-cd.c | if (cdrom_read_check_ireason (drive, len, ireason)) return; |
drive | 961 | drivers/block/ide-cd.c | drive->name, len); |
drive | 963 | drivers/block/ide-cd.c | cdrom_end_request (0, drive); |
drive | 979 | drivers/block/ide-cd.c | cdrom_in_bytes (drive, dum, sizeof (dum)); |
drive | 994 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
drive | 999 | drivers/block/ide-cd.c | cdrom_buffer_sectors (drive, |
drive | 1012 | drivers/block/ide-cd.c | cdrom_in_bytes (drive |
drive | 1026 | drivers/block/ide-cd.c | ide_set_handler (drive, &cdrom_read_intr, WAIT_CMD); |
drive | 1034 | drivers/block/ide-cd.c | static int cdrom_read_from_buffer (ide_drive_t *drive) |
drive | 1036 | drivers/block/ide-cd.c | struct cdrom_info *info = &drive->cdrom_info; |
drive | 1037 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
drive | 1048 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
drive | 1063 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
drive | 1069 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
drive | 1078 | drivers/block/ide-cd.c | drive->name, rq->sector); |
drive | 1079 | drivers/block/ide-cd.c | cdrom_end_request (0, drive); |
drive | 1094 | drivers/block/ide-cd.c | static void cdrom_start_read_continuation (ide_drive_t *drive) |
drive | 1097 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
drive | 1120 | drivers/block/ide-cd.c | drive->name, rq->current_nr_sectors); |
drive | 1121 | drivers/block/ide-cd.c | cdrom_end_request (0, drive); |
drive | 1150 | drivers/block/ide-cd.c | (void) cdrom_transfer_packet_command (drive, pc.c, sizeof (pc.c), |
drive | 1158 | drivers/block/ide-cd.c | static void cdrom_start_read (ide_drive_t *drive, unsigned int block) |
drive | 1160 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
drive | 1176 | drivers/block/ide-cd.c | if (cdrom_read_from_buffer (drive)) |
drive | 1180 | drivers/block/ide-cd.c | drive->cdrom_info.nsectors_buffered = 0; |
drive | 1183 | drivers/block/ide-cd.c | cdrom_start_packet_command (drive, 32768, |
drive | 1196 | drivers/block/ide-cd.c | cdrom_lockdoor (ide_drive_t *drive, int lockflag, |
drive | 1202 | drivers/block/ide-cd.c | static void cdrom_pc_intr (ide_drive_t *drive) |
drive | 1205 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
drive | 1209 | drivers/block/ide-cd.c | if (cdrom_decode_status (drive, 0, &stat)) return; |
drive | 1230 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
drive | 1233 | drivers/block/ide-cd.c | drive->name, pc->buflen); |
drive | 1235 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
drive | 1251 | drivers/block/ide-cd.c | drive->name); |
drive | 1257 | drivers/block/ide-cd.c | cdrom_out_bytes (drive, pc->buffer, thislen); |
drive | 1263 | drivers/block/ide-cd.c | cdrom_out_bytes (drive, &dum, sizeof (dum)); |
drive | 1278 | drivers/block/ide-cd.c | drive->name); |
drive | 1284 | drivers/block/ide-cd.c | cdrom_in_bytes (drive, pc->buffer, thislen); |
drive | 1290 | drivers/block/ide-cd.c | cdrom_in_bytes (drive, &dum, sizeof (dum)); |
drive | 1300 | drivers/block/ide-cd.c | drive->name, ireason); |
drive | 1305 | drivers/block/ide-cd.c | ide_set_handler (drive, &cdrom_pc_intr, WAIT_CMD); |
drive | 1309 | drivers/block/ide-cd.c | static void cdrom_do_pc_continuation (ide_drive_t *drive) |
drive | 1311 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
drive | 1315 | drivers/block/ide-cd.c | cdrom_transfer_packet_command (drive, pc->c, |
drive | 1320 | drivers/block/ide-cd.c | static void cdrom_do_packet_command (ide_drive_t *drive) |
drive | 1323 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
drive | 1332 | drivers/block/ide-cd.c | cdrom_start_packet_command (drive, len, cdrom_do_pc_continuation); |
drive | 1347 | drivers/block/ide-cd.c | int cdrom_queue_packet_command (ide_drive_t *drive, struct packet_command *pc) |
drive | 1364 | drivers/block/ide-cd.c | (void) ide_do_drive_cmd (drive, &req, ide_wait); |
drive | 1400 | drivers/block/ide-cd.c | if (CDROM_STATE_FLAGS (drive)->door_locked == 0 && |
drive | 1404 | drivers/block/ide-cd.c | (void) cdrom_lockdoor (drive, 1, NULL); |
drive | 1415 | drivers/block/ide-cd.c | void ide_do_rw_cdrom (ide_drive_t *drive, unsigned long block) |
drive | 1417 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
drive | 1420 | drivers/block/ide-cd.c | cdrom_do_packet_command (drive); |
drive | 1422 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
drive | 1423 | drivers/block/ide-cd.c | ide_do_reset (drive); |
drive | 1427 | drivers/block/ide-cd.c | cdrom_end_request (0, drive); |
drive | 1429 | drivers/block/ide-cd.c | cdrom_start_read (drive, block); |
drive | 1489 | drivers/block/ide-cd.c | cdrom_check_status (ide_drive_t *drive, |
drive | 1499 | drivers/block/ide-cd.c | return cdrom_queue_packet_command (drive, &pc); |
drive | 1505 | drivers/block/ide-cd.c | cdrom_lockdoor (ide_drive_t *drive, int lockflag, |
drive | 1516 | drivers/block/ide-cd.c | if (CDROM_CONFIG_FLAGS (drive)->no_doorlock) |
drive | 1524 | drivers/block/ide-cd.c | stat = cdrom_queue_packet_command (drive, &pc); |
drive | 1528 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->door_locked = lockflag; |
drive | 1535 | drivers/block/ide-cd.c | drive->name); |
drive | 1536 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->no_doorlock = 1; |
drive | 1538 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->door_locked = lockflag; |
drive | 1548 | drivers/block/ide-cd.c | cdrom_eject (ide_drive_t *drive, int ejectflag, |
drive | 1558 | drivers/block/ide-cd.c | return cdrom_queue_packet_command (drive, &pc); |
drive | 1563 | drivers/block/ide-cd.c | cdrom_pause (ide_drive_t *drive, int pauseflag, |
drive | 1573 | drivers/block/ide-cd.c | return cdrom_queue_packet_command (drive, &pc); |
drive | 1578 | drivers/block/ide-cd.c | cdrom_startstop (ide_drive_t *drive, int startflag, |
drive | 1589 | drivers/block/ide-cd.c | return cdrom_queue_packet_command (drive, &pc); |
drive | 1594 | drivers/block/ide-cd.c | cdrom_read_capacity (ide_drive_t *drive, unsigned *capacity, |
drive | 1612 | drivers/block/ide-cd.c | stat = cdrom_queue_packet_command (drive, &pc); |
drive | 1621 | drivers/block/ide-cd.c | cdrom_read_tocentry (ide_drive_t *drive, int trackno, int msf_flag, |
drive | 1638 | drivers/block/ide-cd.c | return cdrom_queue_packet_command (drive, &pc); |
drive | 1644 | drivers/block/ide-cd.c | cdrom_read_toc (ide_drive_t *drive, |
drive | 1648 | drivers/block/ide-cd.c | struct atapi_toc *toc = drive->cdrom_info.toc; |
drive | 1658 | drivers/block/ide-cd.c | drive->cdrom_info.toc = toc; |
drive | 1662 | drivers/block/ide-cd.c | printk ("%s: No cdrom TOC buffer!\n", drive->name); |
drive | 1668 | drivers/block/ide-cd.c | if (CDROM_STATE_FLAGS (drive)->toc_valid) |
drive | 1669 | drivers/block/ide-cd.c | (void) cdrom_check_status (drive, NULL); |
drive | 1671 | drivers/block/ide-cd.c | if (CDROM_STATE_FLAGS (drive)->toc_valid) return 0; |
drive | 1674 | drivers/block/ide-cd.c | stat = cdrom_read_tocentry (drive, 0, 1, 0, (char *)&toc->hdr, |
drive | 1681 | drivers/block/ide-cd.c | if (CDROM_CONFIG_FLAGS (drive)->toctracks_as_bcd) { |
drive | 1692 | drivers/block/ide-cd.c | stat = cdrom_read_tocentry (drive, 0, 1, 0, (char *)&toc->hdr, |
drive | 1701 | drivers/block/ide-cd.c | if (CDROM_CONFIG_FLAGS (drive)->toctracks_as_bcd) { |
drive | 1709 | drivers/block/ide-cd.c | if (CDROM_CONFIG_FLAGS (drive)->tocaddr_as_bcd) { |
drive | 1710 | drivers/block/ide-cd.c | if (CDROM_CONFIG_FLAGS (drive)->toctracks_as_bcd) |
drive | 1721 | drivers/block/ide-cd.c | stat = cdrom_read_tocentry (drive, 0, 1, 1, |
drive | 1727 | drivers/block/ide-cd.c | if (CDROM_CONFIG_FLAGS (drive)->tocaddr_as_bcd) |
drive | 1738 | drivers/block/ide-cd.c | stat = cdrom_read_capacity (drive, &toc->capacity, reqbuf); |
drive | 1741 | drivers/block/ide-cd.c | HWIF(drive)->gd->sizes[drive->select.b.unit << PARTN_BITS] |
drive | 1743 | drivers/block/ide-cd.c | drive->part[0].nr_sects = toc->capacity * SECTORS_PER_FRAME; |
drive | 1746 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->toc_valid = 1; |
drive | 1753 | drivers/block/ide-cd.c | cdrom_read_subchannel (ide_drive_t *drive, int format, |
drive | 1770 | drivers/block/ide-cd.c | return cdrom_queue_packet_command (drive, &pc); |
drive | 1776 | drivers/block/ide-cd.c | cdrom_mode_sense (ide_drive_t *drive, int pageno, int modeflag, |
drive | 1791 | drivers/block/ide-cd.c | return cdrom_queue_packet_command (drive, &pc); |
drive | 1796 | drivers/block/ide-cd.c | cdrom_mode_select (ide_drive_t *drive, int pageno, char *buf, int buflen, |
drive | 1811 | drivers/block/ide-cd.c | return cdrom_queue_packet_command (drive, &pc); |
drive | 1816 | drivers/block/ide-cd.c | cdrom_play_lba_range_1 (ide_drive_t *drive, int lba_start, int lba_end, |
drive | 1829 | drivers/block/ide-cd.c | if (CDROM_CONFIG_FLAGS (drive)->playmsf_as_bcd) { |
drive | 1839 | drivers/block/ide-cd.c | return cdrom_queue_packet_command (drive, &pc); |
drive | 1846 | drivers/block/ide-cd.c | cdrom_play_lba_range (ide_drive_t *drive, int lba_start, int lba_end, |
drive | 1861 | drivers/block/ide-cd.c | stat = cdrom_play_lba_range_1 (drive, lba_start, lba_end, |
drive | 1878 | drivers/block/ide-cd.c | int cdrom_get_toc_entry (ide_drive_t *drive, int track, |
drive | 1886 | drivers/block/ide-cd.c | stat = cdrom_read_toc (drive, reqbuf); |
drive | 1889 | drivers/block/ide-cd.c | toc = drive->cdrom_info.toc; |
drive | 1906 | drivers/block/ide-cd.c | cdrom_read_block (ide_drive_t *drive, int format, int lba, |
drive | 1924 | drivers/block/ide-cd.c | if (CDROM_CONFIG_FLAGS (drive)->old_readcd) |
drive | 1939 | drivers/block/ide-cd.c | stat = cdrom_queue_packet_command (drive, &pc); |
drive | 1946 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->old_readcd == 0) { |
drive | 1949 | drivers/block/ide-cd.c | drive->name); |
drive | 1950 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->old_readcd = 1; |
drive | 1951 | drivers/block/ide-cd.c | return cdrom_read_block (drive, format, lba, buf, buflen, |
drive | 1960 | drivers/block/ide-cd.c | int ide_cdrom_ioctl (ide_drive_t *drive, struct inode *inode, |
drive | 1967 | drivers/block/ide-cd.c | if (drive->usage > 1) |
drive | 1970 | drivers/block/ide-cd.c | stat = cdrom_lockdoor (drive, 0, NULL); |
drive | 1973 | drivers/block/ide-cd.c | return cdrom_eject (drive, 0, NULL); |
drive | 1978 | drivers/block/ide-cd.c | if (drive->usage > 1) |
drive | 1981 | drivers/block/ide-cd.c | stat = cdrom_eject (drive, 1, NULL); |
drive | 1984 | drivers/block/ide-cd.c | return cdrom_lockdoor (drive, 1, NULL); |
drive | 1988 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->eject_on_close = arg; |
drive | 1993 | drivers/block/ide-cd.c | return cdrom_pause (drive, 1, NULL); |
drive | 1996 | drivers/block/ide-cd.c | return cdrom_pause (drive, 0, NULL); |
drive | 1999 | drivers/block/ide-cd.c | return cdrom_startstop (drive, 1, NULL); |
drive | 2004 | drivers/block/ide-cd.c | stat = cdrom_startstop (drive, 0, NULL); |
drive | 2007 | drivers/block/ide-cd.c | return cdrom_eject (drive, 1, NULL); |
drive | 2026 | drivers/block/ide-cd.c | return cdrom_play_lba_range (drive, lba_start, lba_end, NULL); |
drive | 2041 | drivers/block/ide-cd.c | stat = cdrom_get_toc_entry (drive, ti.cdti_trk0, &first_toc, |
drive | 2044 | drivers/block/ide-cd.c | stat = cdrom_get_toc_entry (drive, ti.cdti_trk1, &last_toc, |
drive | 2054 | drivers/block/ide-cd.c | return cdrom_play_lba_range (drive, lba_start, lba_end, NULL); |
drive | 2067 | drivers/block/ide-cd.c | stat = cdrom_read_toc (drive, NULL); |
drive | 2070 | drivers/block/ide-cd.c | toc = drive->cdrom_info.toc; |
drive | 2090 | drivers/block/ide-cd.c | stat = cdrom_get_toc_entry (drive, tocentry.cdte_track, &toce, |
drive | 2122 | drivers/block/ide-cd.c | stat = cdrom_read_subchannel (drive, 1, /* current position */ |
drive | 2128 | drivers/block/ide-cd.c | if (CDROM_CONFIG_FLAGS (drive)->subchan_as_bcd) { |
drive | 2132 | drivers/block/ide-cd.c | if (CDROM_CONFIG_FLAGS (drive)->tocaddr_as_bcd) |
drive | 2181 | drivers/block/ide-cd.c | stat = cdrom_mode_sense (drive, 0x0e, 0, buffer, |
drive | 2184 | drivers/block/ide-cd.c | stat = cdrom_mode_sense (drive, 0x0e, 1, mask, |
drive | 2195 | drivers/block/ide-cd.c | return cdrom_mode_select (drive, 0x0e, buffer, |
drive | 2208 | drivers/block/ide-cd.c | stat = cdrom_mode_sense (drive, 0x0e, 0, buffer, |
drive | 2234 | drivers/block/ide-cd.c | stat = cdrom_read_toc (drive, NULL); |
drive | 2237 | drivers/block/ide-cd.c | toc = drive->cdrom_info.toc; |
drive | 2264 | drivers/block/ide-cd.c | stat = cdrom_read_toc (drive, NULL); |
drive | 2267 | drivers/block/ide-cd.c | toc = drive->cdrom_info.toc; |
drive | 2296 | drivers/block/ide-cd.c | stat = cdrom_read_block (drive, 1, lba, buf, |
drive | 2333 | drivers/block/ide-cd.c | stat = cdrom_read_toc (drive, NULL); |
drive | 2336 | drivers/block/ide-cd.c | toc = drive->cdrom_info.toc; |
drive | 2341 | drivers/block/ide-cd.c | stat = cdrom_read_block (drive, format, lba, buf, blocksize, |
drive | 2358 | drivers/block/ide-cd.c | stat = cdrom_read_subchannel (drive, 2, /* get MCN */ |
drive | 2378 | drivers/block/ide-cd.c | return ide_do_drive_cmd (drive, &req, ide_wait); |
drive | 2416 | drivers/block/ide-cd.c | stat = cdrom_queue_packet_command (drive, &pc); |
drive | 2438 | drivers/block/ide-cd.c | int ide_cdrom_check_media_change (ide_drive_t *drive) |
drive | 2442 | drivers/block/ide-cd.c | (void) cdrom_check_status (drive, NULL); |
drive | 2444 | drivers/block/ide-cd.c | retval = CDROM_STATE_FLAGS (drive)->media_changed; |
drive | 2445 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->media_changed = 0; |
drive | 2451 | drivers/block/ide-cd.c | int ide_cdrom_open (struct inode *ip, struct file *fp, ide_drive_t *drive) |
drive | 2455 | drivers/block/ide-cd.c | --drive->usage; |
drive | 2460 | drivers/block/ide-cd.c | if (drive->usage == 1) { |
drive | 2466 | drivers/block/ide-cd.c | stat = cdrom_check_status (drive, &my_reqbuf); |
drive | 2470 | drivers/block/ide-cd.c | cdrom_eject (drive, 1, &my_reqbuf); |
drive | 2471 | drivers/block/ide-cd.c | stat = cdrom_check_status (drive, &my_reqbuf); |
drive | 2476 | drivers/block/ide-cd.c | --drive->usage; |
drive | 2481 | drivers/block/ide-cd.c | (void) cdrom_lockdoor (drive, 1, &my_reqbuf); |
drive | 2484 | drivers/block/ide-cd.c | (void) cdrom_read_toc (drive, &my_reqbuf); |
drive | 2496 | drivers/block/ide-cd.c | ide_drive_t *drive) |
drive | 2498 | drivers/block/ide-cd.c | if (drive->usage == 0) { |
drive | 2502 | drivers/block/ide-cd.c | (void) cdrom_lockdoor (drive, 0, NULL); |
drive | 2505 | drivers/block/ide-cd.c | if (CDROM_STATE_FLAGS (drive)->eject_on_close) |
drive | 2506 | drivers/block/ide-cd.c | (void) cdrom_eject (drive, 0, NULL); |
drive | 2516 | drivers/block/ide-cd.c | void ide_cdrom_setup (ide_drive_t *drive) |
drive | 2518 | drivers/block/ide-cd.c | blksize_size[HWIF(drive)->major][drive->select.b.unit << PARTN_BITS] = |
drive | 2521 | drivers/block/ide-cd.c | drive->special.all = 0; |
drive | 2522 | drivers/block/ide-cd.c | drive->ready_stat = 0; |
drive | 2524 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->media_changed = 0; |
drive | 2525 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->toc_valid = 0; |
drive | 2526 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->door_locked = 0; |
drive | 2529 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->eject_on_close= 0; |
drive | 2532 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->no_doorlock = 1; |
drive | 2534 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->no_doorlock = 0; |
drive | 2537 | drivers/block/ide-cd.c | if (drive->id != NULL) |
drive | 2538 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->drq_interrupt = |
drive | 2539 | drivers/block/ide-cd.c | ((drive->id->config & 0x0060) == 0x20); |
drive | 2541 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->drq_interrupt = 0; |
drive | 2544 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->old_readcd = 0; |
drive | 2545 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->toctracks_as_bcd = 0; |
drive | 2546 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->tocaddr_as_bcd = 0; |
drive | 2547 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->playmsf_as_bcd = 0; |
drive | 2548 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->subchan_as_bcd = 0; |
drive | 2550 | drivers/block/ide-cd.c | if (drive->id != NULL) { |
drive | 2551 | drivers/block/ide-cd.c | if (strcmp (drive->id->model, "V003S0DS") == 0 && |
drive | 2552 | drivers/block/ide-cd.c | drive->id->fw_rev[4] == '1' && |
drive | 2553 | drivers/block/ide-cd.c | drive->id->fw_rev[6] <= '2') { |
drive | 2556 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->toctracks_as_bcd = 1; |
drive | 2557 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->tocaddr_as_bcd = 1; |
drive | 2558 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->playmsf_as_bcd = 1; |
drive | 2559 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->subchan_as_bcd = 1; |
drive | 2562 | drivers/block/ide-cd.c | else if (strcmp (drive->id->model, |
drive | 2564 | drivers/block/ide-cd.c | strcmp (drive->id->fw_rev, "1.01") == 0) { |
drive | 2566 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->tocaddr_as_bcd = 1; |
drive | 2567 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->playmsf_as_bcd = 1; |
drive | 2568 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->subchan_as_bcd = 1; |
drive | 2571 | drivers/block/ide-cd.c | else if (strcmp (drive->id->model, "WEARNES CDD-120") == 0 && |
drive | 2572 | drivers/block/ide-cd.c | strcmp (drive->id->fw_rev, "A1.1") == 0) { |
drive | 2574 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->playmsf_as_bcd = 1; |
drive | 2575 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->subchan_as_bcd = 1; |
drive | 2580 | drivers/block/ide-cd.c | drive->cdrom_info.toc = NULL; |
drive | 2581 | drivers/block/ide-cd.c | drive->cdrom_info.sector_buffer = NULL; |
drive | 2582 | drivers/block/ide-cd.c | drive->cdrom_info.sector_buffered = 0; |
drive | 2583 | drivers/block/ide-cd.c | drive->cdrom_info.nsectors_buffered = 0; |
drive | 460 | drivers/block/ide-tape.c | #define IDETAPE_DATA_REG (HWIF(drive)->io_base+IDETAPE_DATA_OFFSET) |
drive | 461 | drivers/block/ide-tape.c | #define IDETAPE_ERROR_REG (HWIF(drive)->io_base+IDETAPE_ERROR_OFFSET) |
drive | 462 | drivers/block/ide-tape.c | #define IDETAPE_IREASON_REG (HWIF(drive)->io_base+IDETAPE_IREASON_OFFSET) |
drive | 463 | drivers/block/ide-tape.c | #define IDETAPE_RESERVED3_REG (HWIF(drive)->io_base+IDETAPE_RESERVED3_OFFSET) |
drive | 464 | drivers/block/ide-tape.c | #define IDETAPE_BCOUNTL_REG (HWIF(drive)->io_base+IDETAPE_BCOUNTL_OFFSET) |
drive | 465 | drivers/block/ide-tape.c | #define IDETAPE_BCOUNTH_REG (HWIF(drive)->io_base+IDETAPE_BCOUNTH_OFFSET) |
drive | 466 | drivers/block/ide-tape.c | #define IDETAPE_DRIVESEL_REG (HWIF(drive)->io_base+IDETAPE_DRIVESEL_OFFSET) |
drive | 467 | drivers/block/ide-tape.c | #define IDETAPE_STATUS_REG (HWIF(drive)->io_base+IDETAPE_STATUS_OFFSET) |
drive | 474 | drivers/block/ide-tape.c | #define IDETAPE_FEATURES_REG (HWIF(drive)->io_base+IDETAPE_FEATURES_OFFSET) |
drive | 475 | drivers/block/ide-tape.c | #define IDETAPE_ATACOMMAND_REG (HWIF(drive)->io_base+IDETAPE_ATACOMMAND_OFFSET) |
drive | 476 | drivers/block/ide-tape.c | #define IDETAPE_CONTROL_REG (HWIF(drive)->ctl_port) |
drive | 597 | drivers/block/ide-tape.c | ide_drive_t *drive; |
drive | 814 | drivers/block/ide-tape.c | void idetape_input_data (ide_drive_t *drive,void *buffer, unsigned long bcount); |
drive | 815 | drivers/block/ide-tape.c | void idetape_output_data (ide_drive_t *drive,void *buffer, unsigned long bcount); |
drive | 816 | drivers/block/ide-tape.c | void idetape_discard_data (ide_drive_t *drive, unsigned long bcount); |
drive | 822 | drivers/block/ide-tape.c | void idetape_issue_packet_command (ide_drive_t *drive,idetape_packet_command_t *pc,ide_handler_t *handler); |
drive | 823 | drivers/block/ide-tape.c | void idetape_pc_intr (ide_drive_t *drive); |
drive | 829 | drivers/block/ide-tape.c | void idetape_postpone_request (ide_drive_t *drive); |
drive | 832 | drivers/block/ide-tape.c | void idetape_put_back_postponed_request (ide_drive_t *drive); |
drive | 833 | drivers/block/ide-tape.c | void idetape_media_access_finished (ide_drive_t *drive); |
drive | 839 | drivers/block/ide-tape.c | void idetape_pc_callback (ide_drive_t *drive); |
drive | 840 | drivers/block/ide-tape.c | void idetape_retry_pc (ide_drive_t *drive); |
drive | 842 | drivers/block/ide-tape.c | void idetape_queue_pc_head (ide_drive_t *drive,idetape_packet_command_t *pc,struct request *rq); |
drive | 843 | drivers/block/ide-tape.c | void idetape_analyze_error (ide_drive_t *drive,idetape_request_sense_result_t *result); |
drive | 845 | drivers/block/ide-tape.c | idetape_packet_command_t *idetape_next_pc_storage (ide_drive_t *drive); |
drive | 846 | drivers/block/ide-tape.c | struct request *idetape_next_rq_storage (ide_drive_t *drive); |
drive | 853 | drivers/block/ide-tape.c | void idetape_inquiry_callback (ide_drive_t *drive); |
drive | 862 | drivers/block/ide-tape.c | void idetape_read_position_callback (ide_drive_t *drive); |
drive | 864 | drivers/block/ide-tape.c | void idetape_read_callback (ide_drive_t *drive); |
drive | 866 | drivers/block/ide-tape.c | void idetape_write_callback (ide_drive_t *drive); |
drive | 869 | drivers/block/ide-tape.c | void idetape_request_sense_callback (ide_drive_t *drive); |
drive | 894 | drivers/block/ide-tape.c | int idetape_mtioctop (ide_drive_t *drive,short mt_op,int mt_count); |
drive | 901 | drivers/block/ide-tape.c | int idetape_space_over_filemarks (ide_drive_t *drive,short mt_op,int mt_count); |
drive | 909 | drivers/block/ide-tape.c | int idetape_add_chrdev_read_request (ide_drive_t *drive,int blocks,char *buffer); |
drive | 916 | drivers/block/ide-tape.c | int idetape_add_chrdev_write_request (ide_drive_t *drive,int blocks,char *buffer); |
drive | 924 | drivers/block/ide-tape.c | int idetape_queue_rw_tail (ide_drive_t *drive,int cmd,int blocks,char *buffer); |
drive | 931 | drivers/block/ide-tape.c | int idetape_queue_pc_tail (ide_drive_t *drive,idetape_packet_command_t *pc); |
drive | 933 | drivers/block/ide-tape.c | int idetape_position_tape (ide_drive_t *drive,unsigned long block); |
drive | 934 | drivers/block/ide-tape.c | int idetape_rewind_tape (ide_drive_t *drive); |
drive | 935 | drivers/block/ide-tape.c | int idetape_flush_tape_buffers (ide_drive_t *drive); |
drive | 941 | drivers/block/ide-tape.c | void idetape_get_mode_sense_results (ide_drive_t *drive); |
drive | 956 | drivers/block/ide-tape.c | idetape_pipeline_stage_t *idetape_kmalloc_stage (ide_drive_t *drive); |
drive | 960 | drivers/block/ide-tape.c | void idetape_increase_max_pipeline_stages (ide_drive_t *drive); |
drive | 961 | drivers/block/ide-tape.c | void idetape_add_stage_tail (ide_drive_t *drive,idetape_pipeline_stage_t *stage); |
drive | 962 | drivers/block/ide-tape.c | void idetape_remove_stage_head (ide_drive_t *drive); |
drive | 963 | drivers/block/ide-tape.c | void idetape_active_next_stage (ide_drive_t *drive); |
drive | 964 | drivers/block/ide-tape.c | void idetape_wait_for_pipeline (ide_drive_t *drive); |
drive | 965 | drivers/block/ide-tape.c | void idetape_discard_read_pipeline (ide_drive_t *drive); |
drive | 966 | drivers/block/ide-tape.c | void idetape_empty_write_pipeline (ide_drive_t *drive); |
drive | 967 | drivers/block/ide-tape.c | void idetape_insert_pipeline_into_queue (ide_drive_t *drive); |
drive | 1022 | drivers/block/ide-tape.c | int idetape_identify_device (ide_drive_t *drive,struct hd_driveid *id) |
drive | 1165 | drivers/block/ide-tape.c | idetape_chrdev.drive=drive; |
drive | 1189 | drivers/block/ide-tape.c | ide_drive_t *drive; |
drive | 1194 | drivers/block/ide-tape.c | drive=idetape_chrdev.drive; |
drive | 1204 | drivers/block/ide-tape.c | drive->name,idetape_chrdev.name,major); |
drive | 1222 | drivers/block/ide-tape.c | void idetape_setup (ide_drive_t *drive) |
drive | 1225 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 1233 | drivers/block/ide-tape.c | drive->ready_stat = 0; /* With an ATAPI device, we can issue packet commands */ |
drive | 1235 | drivers/block/ide-tape.c | HWIF(drive)->tape_drive=drive; |
drive | 1260 | drivers/block/ide-tape.c | idetape_get_mode_sense_results (drive); |
drive | 1347 | drivers/block/ide-tape.c | void idetape_get_mode_sense_results (ide_drive_t *drive) |
drive | 1351 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 1360 | drivers/block/ide-tape.c | retval=idetape_queue_pc_tail (drive,&pc); |
drive | 1457 | drivers/block/ide-tape.c | void idetape_issue_packet_command (ide_drive_t *drive,idetape_packet_command_t *pc,ide_handler_t *handler) |
drive | 1465 | drivers/block/ide-tape.c | tape=&(drive->tape); |
drive | 1487 | drivers/block/ide-tape.c | printk ("ide-tape: %s: I/O error, ",drive->name); |
drive | 1498 | drivers/block/ide-tape.c | (*pc->callback)(drive); |
drive | 1520 | drivers/block/ide-tape.c | drive->using_dma=0; |
drive | 1523 | drivers/block/ide-tape.c | if (pc->request_transfer && pc->dma_recommended && drive->using_dma) { |
drive | 1524 | drivers/block/ide-tape.c | dma_ok=!(HWIF(drive)->dmaproc(pc->writing ? ide_dma_write : ide_dma_read, drive)); |
drive | 1528 | drivers/block/ide-tape.c | OUT_BYTE (drive->ctl,IDETAPE_CONTROL_REG); |
drive | 1532 | drivers/block/ide-tape.c | OUT_BYTE (drive->select.all,IDETAPE_DRIVESEL_REG); |
drive | 1534 | drivers/block/ide-tape.c | ide_set_handler (drive,handler,WAIT_CMD); /* Set the interrupt routine */ |
drive | 1536 | drivers/block/ide-tape.c | if (ide_wait_stat (drive,DRQ_STAT,BUSY_STAT,WAIT_READY)) { /* Wait for DRQ to be ready - Assuming Accelerated DRQ */ |
drive | 1553 | drivers/block/ide-tape.c | ide_do_reset (drive); |
drive | 1557 | drivers/block/ide-tape.c | ide_output_data (drive,pc->c,12/4); /* Send the actual packet */ |
drive | 1561 | drivers/block/ide-tape.c | (void) (HWIF(drive)->dmaproc(ide_dma_begin, drive)); |
drive | 1576 | drivers/block/ide-tape.c | void idetape_pc_intr (ide_drive_t *drive) |
drive | 1579 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 1588 | drivers/block/ide-tape.c | if ((pc->dma_error=HWIF(drive)->dmaproc(ide_dma_status_bad, drive))) |
drive | 1593 | drivers/block/ide-tape.c | pc->actually_transferred=HWIF(drive)->dmaproc(ide_dma_transferred, drive); |
drive | 1596 | drivers/block/ide-tape.c | (void) (HWIF(drive)->dmaproc(ide_dma_abort, drive)); /* End DMA */ |
drive | 1624 | drivers/block/ide-tape.c | printk ("ide-tape: %s: I/O error, ",drive->name); |
drive | 1628 | drivers/block/ide-tape.c | ide_do_reset (drive); |
drive | 1632 | drivers/block/ide-tape.c | idetape_retry_pc (drive); /* Retry operation */ |
drive | 1638 | drivers/block/ide-tape.c | idetape_postpone_request (drive); /* Allow ide.c to handle other requests */ |
drive | 1648 | drivers/block/ide-tape.c | (*pc->callback)(drive); /* Command finished - Call the callback function */ |
drive | 1656 | drivers/block/ide-tape.c | drive->using_dma=0; |
drive | 1657 | drivers/block/ide-tape.c | ide_do_reset (drive); |
drive | 1667 | drivers/block/ide-tape.c | ide_do_reset (drive); |
drive | 1673 | drivers/block/ide-tape.c | ide_do_reset (drive); |
drive | 1683 | drivers/block/ide-tape.c | idetape_discard_data (drive,bcount.all); |
drive | 1684 | drivers/block/ide-tape.c | ide_set_handler (drive,&idetape_pc_intr,WAIT_CMD); |
drive | 1697 | drivers/block/ide-tape.c | idetape_discard_data (drive,bcount.all); |
drive | 1698 | drivers/block/ide-tape.c | ide_set_handler (drive,&idetape_pc_intr,WAIT_CMD); |
drive | 1706 | drivers/block/ide-tape.c | idetape_output_data (drive,pc->current_position,bcount.all); /* Write the current buffer */ |
drive | 1708 | drivers/block/ide-tape.c | idetape_input_data (drive,pc->current_position,bcount.all); /* Read the current buffer */ |
drive | 1715 | drivers/block/ide-tape.c | ide_set_handler (drive,&idetape_pc_intr,WAIT_CMD); /* And set the interrupt handler again */ |
drive | 1724 | drivers/block/ide-tape.c | void idetape_postpone_request (ide_drive_t *drive) |
drive | 1727 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 1741 | drivers/block/ide-tape.c | tape->dsc_timer.data=(unsigned long) drive; |
drive | 1749 | drivers/block/ide-tape.c | tape->postponed_rq = rq = HWGROUP(drive)->rq; |
drive | 1752 | drivers/block/ide-tape.c | HWGROUP(drive)->rq = NULL; |
drive | 1775 | drivers/block/ide-tape.c | ide_drive_t *drive=(ide_drive_t *) data; |
drive | 1776 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 1780 | drivers/block/ide-tape.c | printk ("%s: idetape_poll_for_dsc_direct called\n",drive->name); |
drive | 1783 | drivers/block/ide-tape.c | OUT_BYTE(drive->select.all,IDE_SELECT_REG); |
drive | 1789 | drivers/block/ide-tape.c | idetape_put_back_postponed_request (drive); /* request in the request queue */ |
drive | 1797 | drivers/block/ide-tape.c | idetape_put_back_postponed_request (drive); |
drive | 1830 | drivers/block/ide-tape.c | ide_drive_t *drive=(ide_drive_t *) data; |
drive | 1831 | drivers/block/ide-tape.c | unsigned int major = HWIF(drive)->major; |
drive | 1832 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 1839 | drivers/block/ide-tape.c | printk ("%s: idetape_poll_for_dsc called\n",drive->name); |
drive | 1849 | drivers/block/ide-tape.c | if (HWGROUP (drive)->rq == NULL) { |
drive | 1864 | drivers/block/ide-tape.c | idetape_put_back_postponed_request (drive); |
drive | 1928 | drivers/block/ide-tape.c | idetape_put_back_postponed_request (drive); |
drive | 1940 | drivers/block/ide-tape.c | if (next_rq == HWGROUP (drive)->rq) |
drive | 1983 | drivers/block/ide-tape.c | idetape_put_back_postponed_request (drive); |
drive | 2002 | drivers/block/ide-tape.c | idetape_put_back_postponed_request (drive); |
drive | 2023 | drivers/block/ide-tape.c | void idetape_put_back_postponed_request (ide_drive_t *drive) |
drive | 2026 | drivers/block/ide-tape.c | idetape_tape_t *tape = &(drive->tape); |
drive | 2037 | drivers/block/ide-tape.c | (void) ide_do_drive_cmd (drive, tape->postponed_rq, ide_next); |
drive | 2051 | drivers/block/ide-tape.c | void idetape_media_access_finished (ide_drive_t *drive) |
drive | 2054 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 2067 | drivers/block/ide-tape.c | printk ("ide-tape: %s: I/O error, ",drive->name); |
drive | 2068 | drivers/block/ide-tape.c | idetape_retry_pc (drive); /* Retry operation */ |
drive | 2079 | drivers/block/ide-tape.c | (*pc->callback)(drive); |
drive | 2084 | drivers/block/ide-tape.c | printk ("ide-tape: %s: DSC timeout.\n",drive->name); |
drive | 2093 | drivers/block/ide-tape.c | (*pc->callback)(drive); |
drive | 2105 | drivers/block/ide-tape.c | void idetape_retry_pc (ide_drive_t *drive) |
drive | 2113 | drivers/block/ide-tape.c | pc=idetape_next_pc_storage (drive); |
drive | 2114 | drivers/block/ide-tape.c | new_rq=idetape_next_rq_storage (drive); |
drive | 2119 | drivers/block/ide-tape.c | idetape_queue_pc_head (drive,pc,new_rq); |
drive | 2126 | drivers/block/ide-tape.c | void idetape_pc_callback (ide_drive_t *drive) |
drive | 2132 | drivers/block/ide-tape.c | tape=&(drive->tape); |
drive | 2133 | drivers/block/ide-tape.c | rq=HWGROUP(drive)->rq; |
drive | 2142 | drivers/block/ide-tape.c | idetape_end_request (1,HWGROUP (drive)); |
drive | 2145 | drivers/block/ide-tape.c | idetape_end_request (0,HWGROUP (drive)); |
drive | 2151 | drivers/block/ide-tape.c | void idetape_read_callback (ide_drive_t *drive) |
drive | 2154 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 2155 | drivers/block/ide-tape.c | struct request *rq=HWGROUP(drive)->rq; |
drive | 2166 | drivers/block/ide-tape.c | idetape_end_request (1,HWGROUP (drive)); |
drive | 2174 | drivers/block/ide-tape.c | idetape_end_request (0,HWGROUP (drive)); |
drive | 2179 | drivers/block/ide-tape.c | void idetape_write_callback (ide_drive_t *drive) |
drive | 2182 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 2183 | drivers/block/ide-tape.c | struct request *rq=HWGROUP(drive)->rq; |
drive | 2194 | drivers/block/ide-tape.c | idetape_end_request (1,HWGROUP (drive)); |
drive | 2197 | drivers/block/ide-tape.c | idetape_end_request (0,HWGROUP (drive)); |
drive | 2202 | drivers/block/ide-tape.c | void idetape_inquiry_callback (ide_drive_t *drive) |
drive | 2207 | drivers/block/ide-tape.c | tape=&(drive->tape); |
drive | 2210 | drivers/block/ide-tape.c | idetape_pc_callback (drive); |
drive | 2221 | drivers/block/ide-tape.c | void idetape_input_data (ide_drive_t *drive,void *buffer, unsigned long bcount) |
drive | 2230 | drivers/block/ide-tape.c | ide_input_data (drive,buffer,wcount); |
drive | 2242 | drivers/block/ide-tape.c | void idetape_output_data (ide_drive_t *drive,void *buffer, unsigned long bcount) |
drive | 2251 | drivers/block/ide-tape.c | ide_output_data (drive,buffer,wcount); |
drive | 2264 | drivers/block/ide-tape.c | void idetape_discard_data (ide_drive_t *drive, unsigned long bcount) |
drive | 2392 | drivers/block/ide-tape.c | void idetape_request_sense_callback (ide_drive_t *drive) |
drive | 2395 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 2404 | drivers/block/ide-tape.c | idetape_analyze_error (drive,(idetape_request_sense_result_t *) tape->pc->buffer); |
drive | 2405 | drivers/block/ide-tape.c | idetape_end_request (1,HWGROUP (drive)); |
drive | 2409 | drivers/block/ide-tape.c | idetape_end_request (0,HWGROUP (drive)); |
drive | 2420 | drivers/block/ide-tape.c | void idetape_analyze_error (ide_drive_t *drive,idetape_request_sense_result_t *result) |
drive | 2423 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 2752 | drivers/block/ide-tape.c | void idetape_read_position_callback (ide_drive_t *drive) |
drive | 2759 | drivers/block/ide-tape.c | tape=&(drive->tape); |
drive | 2765 | drivers/block/ide-tape.c | rq=HWGROUP(drive)->rq; |
drive | 2779 | drivers/block/ide-tape.c | idetape_end_request (0,HWGROUP (drive)); |
drive | 2787 | drivers/block/ide-tape.c | idetape_end_request (1,HWGROUP (drive)); |
drive | 2792 | drivers/block/ide-tape.c | idetape_end_request (0,HWGROUP (drive)); |
drive | 2805 | drivers/block/ide-tape.c | int idetape_blkdev_ioctl (ide_drive_t *drive, struct inode *inode, struct file *file, |
drive | 2834 | drivers/block/ide-tape.c | ide_drive_t *drive = hwgroup->drive; |
drive | 2836 | drivers/block/ide-tape.c | idetape_tape_t *tape = &(drive->tape); |
drive | 2837 | drivers/block/ide-tape.c | unsigned int major = HWIF(drive)->major; |
drive | 2868 | drivers/block/ide-tape.c | idetape_remove_stage_head (drive); |
drive | 2873 | drivers/block/ide-tape.c | idetape_increase_max_pipeline_stages (drive); |
drive | 2874 | drivers/block/ide-tape.c | ide_end_drive_cmd (drive, 0, 0); |
drive | 2878 | drivers/block/ide-tape.c | idetape_active_next_stage (drive); |
drive | 2888 | drivers/block/ide-tape.c | (void) ide_do_drive_cmd (drive,tape->active_data_request,ide_end); |
drive | 2890 | drivers/block/ide-tape.c | (void) ide_do_drive_cmd (drive,tape->active_data_request,ide_next); |
drive | 2893 | drivers/block/ide-tape.c | ide_end_drive_cmd (drive, 0, 0); |
drive | 2900 | drivers/block/ide-tape.c | void idetape_do_request (ide_drive_t *drive, struct request *rq, unsigned long block) |
drive | 2903 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 2905 | drivers/block/ide-tape.c | unsigned int major = HWIF(drive)->major; |
drive | 2928 | drivers/block/ide-tape.c | ide_end_request (0,HWGROUP (drive)); /* Let the common code handle it */ |
drive | 2958 | drivers/block/ide-tape.c | idetape_issue_packet_command (drive,tape->failed_pc,&idetape_pc_intr); |
drive | 2968 | drivers/block/ide-tape.c | idetape_end_request (0,HWGROUP (drive)); |
drive | 2977 | drivers/block/ide-tape.c | idetape_media_access_finished (drive); |
drive | 3010 | drivers/block/ide-tape.c | idetape_postpone_request (drive); /* Allow ide.c to process requests from */ |
drive | 3014 | drivers/block/ide-tape.c | pc=idetape_next_pc_storage (drive); |
drive | 3023 | drivers/block/ide-tape.c | idetape_issue_packet_command (drive,pc,&idetape_pc_intr); |
drive | 3032 | drivers/block/ide-tape.c | idetape_postpone_request (drive); /* Allow ide.c to process requests from */ |
drive | 3036 | drivers/block/ide-tape.c | pc=idetape_next_pc_storage (drive); |
drive | 3045 | drivers/block/ide-tape.c | idetape_issue_packet_command (drive,pc,&idetape_pc_intr); |
drive | 3062 | drivers/block/ide-tape.c | idetape_postpone_request (drive); /* Allow ide.c to process requests from */ |
drive | 3067 | drivers/block/ide-tape.c | idetape_issue_packet_command (drive,pc,&idetape_pc_intr); |
drive | 3072 | drivers/block/ide-tape.c | idetape_end_request (0,HWGROUP (drive)); |
drive | 3098 | drivers/block/ide-tape.c | int idetape_queue_pc_tail (ide_drive_t *drive,idetape_packet_command_t *pc) |
drive | 3105 | drivers/block/ide-tape.c | return ide_do_drive_cmd (drive, &rq, ide_wait); |
drive | 3128 | drivers/block/ide-tape.c | void idetape_queue_pc_head (ide_drive_t *drive,idetape_packet_command_t *pc,struct request *rq) |
drive | 3131 | drivers/block/ide-tape.c | unsigned int major = HWIF(drive)->major; |
drive | 3134 | drivers/block/ide-tape.c | bdev->current_request=HWGROUP (drive)->rq; /* Since we may have taken it out */ |
drive | 3139 | drivers/block/ide-tape.c | (void) ide_do_drive_cmd (drive, rq, ide_preempt); |
drive | 3171 | drivers/block/ide-tape.c | int idetape_queue_rw_tail (ide_drive_t *drive,int cmd,int blocks,char *buffer) |
drive | 3174 | drivers/block/ide-tape.c | idetape_tape_t *tape = &(drive->tape); |
drive | 3192 | drivers/block/ide-tape.c | (void) ide_do_drive_cmd (drive, &rq, ide_wait); |
drive | 3202 | drivers/block/ide-tape.c | int idetape_add_chrdev_read_request (ide_drive_t *drive,int blocks,char *buffer) |
drive | 3205 | drivers/block/ide-tape.c | idetape_tape_t *tape = &(drive->tape); |
drive | 3221 | drivers/block/ide-tape.c | new_stage=idetape_kmalloc_stage (drive); |
drive | 3225 | drivers/block/ide-tape.c | idetape_add_stage_tail (drive,new_stage); |
drive | 3227 | drivers/block/ide-tape.c | new_stage=idetape_kmalloc_stage (drive); |
drive | 3230 | drivers/block/ide-tape.c | idetape_insert_pipeline_into_queue (drive); |
drive | 3240 | drivers/block/ide-tape.c | return (idetape_queue_rw_tail (drive,IDETAPE_READ_REQUEST,blocks,buffer)); |
drive | 3253 | drivers/block/ide-tape.c | idetape_remove_stage_head (drive); |
drive | 3275 | drivers/block/ide-tape.c | int idetape_add_chrdev_write_request (ide_drive_t *drive,int blocks,char *buffer) |
drive | 3278 | drivers/block/ide-tape.c | idetape_tape_t *tape = &(drive->tape); |
drive | 3288 | drivers/block/ide-tape.c | new_stage=idetape_kmalloc_stage (drive); |
drive | 3302 | drivers/block/ide-tape.c | new_stage=idetape_kmalloc_stage (drive); |
drive | 3311 | drivers/block/ide-tape.c | return (idetape_queue_rw_tail (drive,IDETAPE_WRITE_REQUEST,blocks,buffer)); |
drive | 3326 | drivers/block/ide-tape.c | idetape_add_stage_tail (drive,new_stage); |
drive | 3339 | drivers/block/ide-tape.c | idetape_insert_pipeline_into_queue (drive); |
drive | 3349 | drivers/block/ide-tape.c | void idetape_discard_read_pipeline (ide_drive_t *drive) |
drive | 3352 | drivers/block/ide-tape.c | idetape_tape_t *tape = &(drive->tape); |
drive | 3375 | drivers/block/ide-tape.c | idetape_remove_stage_head (drive); |
drive | 3389 | drivers/block/ide-tape.c | void idetape_wait_for_pipeline (ide_drive_t *drive) |
drive | 3392 | drivers/block/ide-tape.c | idetape_tape_t *tape = &(drive->tape); |
drive | 3396 | drivers/block/ide-tape.c | idetape_insert_pipeline_into_queue (drive); |
drive | 3412 | drivers/block/ide-tape.c | void idetape_empty_write_pipeline (ide_drive_t *drive) |
drive | 3415 | drivers/block/ide-tape.c | idetape_tape_t *tape = &(drive->tape); |
drive | 3435 | drivers/block/ide-tape.c | (void) idetape_add_chrdev_write_request (drive,blocks,tape->merge_buffer); |
drive | 3439 | drivers/block/ide-tape.c | idetape_wait_for_pipeline (drive); |
drive | 3536 | drivers/block/ide-tape.c | idetape_packet_command_t *idetape_next_pc_storage (ide_drive_t *drive) |
drive | 3541 | drivers/block/ide-tape.c | tape=&(drive->tape); |
drive | 3563 | drivers/block/ide-tape.c | struct request *idetape_next_rq_storage (ide_drive_t *drive) |
drive | 3568 | drivers/block/ide-tape.c | tape=&(drive->tape); |
drive | 3586 | drivers/block/ide-tape.c | int idetape_blkdev_open (struct inode *inode, struct file *filp, ide_drive_t *drive) |
drive | 3589 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 3609 | drivers/block/ide-tape.c | void idetape_blkdev_release (struct inode *inode, struct file *filp, ide_drive_t *drive) |
drive | 3612 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 3653 | drivers/block/ide-tape.c | ide_drive_t *drive=idetape_chrdev.drive; |
drive | 3654 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 3664 | drivers/block/ide-tape.c | idetape_empty_write_pipeline (drive); |
drive | 3665 | drivers/block/ide-tape.c | idetape_flush_tape_buffers (drive); |
drive | 3674 | drivers/block/ide-tape.c | bytes_read=idetape_queue_rw_tail (drive,IDETAPE_READ_REQUEST,0,tape->merge_buffer); |
drive | 3698 | drivers/block/ide-tape.c | bytes_read=idetape_add_chrdev_read_request (drive,tape->capabilities.ctl,tape->merge_buffer); |
drive | 3706 | drivers/block/ide-tape.c | bytes_read=idetape_add_chrdev_read_request (drive,tape->capabilities.ctl,tape->merge_buffer); |
drive | 3721 | drivers/block/ide-tape.c | ide_drive_t *drive=idetape_chrdev.drive; |
drive | 3722 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 3732 | drivers/block/ide-tape.c | idetape_discard_read_pipeline (drive); |
drive | 3740 | drivers/block/ide-tape.c | retval=idetape_queue_rw_tail (drive,IDETAPE_WRITE_REQUEST,0,tape->merge_buffer); |
drive | 3764 | drivers/block/ide-tape.c | retval=idetape_add_chrdev_write_request (drive,tape->capabilities.ctl,tape->merge_buffer); |
drive | 3773 | drivers/block/ide-tape.c | retval=idetape_add_chrdev_write_request (drive,tape->capabilities.ctl,tape->merge_buffer); |
drive | 3821 | drivers/block/ide-tape.c | ide_drive_t *drive=idetape_chrdev.drive; |
drive | 3822 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 3834 | drivers/block/ide-tape.c | idetape_empty_write_pipeline (drive); |
drive | 3835 | drivers/block/ide-tape.c | idetape_flush_tape_buffers (drive); |
drive | 3839 | drivers/block/ide-tape.c | idetape_discard_read_pipeline (drive); |
drive | 3850 | drivers/block/ide-tape.c | return (idetape_mtioctop (drive,mtop.mt_op,mtop.mt_count)); |
drive | 3859 | drivers/block/ide-tape.c | retval=idetape_queue_pc_tail (drive,&pc); |
drive | 3867 | drivers/block/ide-tape.c | return (idetape_blkdev_ioctl (drive,inode,file,cmd,arg)); |
drive | 3924 | drivers/block/ide-tape.c | int idetape_mtioctop (ide_drive_t *drive,short mt_op,int mt_count) |
drive | 3927 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 3950 | drivers/block/ide-tape.c | return (idetape_space_over_filemarks (drive,mt_op,mt_count)); |
drive | 3960 | drivers/block/ide-tape.c | idetape_discard_read_pipeline (drive); |
drive | 3966 | drivers/block/ide-tape.c | retval=idetape_queue_pc_tail (drive,&pc); |
drive | 3971 | drivers/block/ide-tape.c | return (idetape_rewind_tape (drive)); |
drive | 3974 | drivers/block/ide-tape.c | return (idetape_queue_pc_tail (drive,&pc)); |
drive | 3976 | drivers/block/ide-tape.c | return (idetape_flush_tape_buffers (drive)); |
drive | 3979 | drivers/block/ide-tape.c | return (idetape_queue_pc_tail (drive,&pc)); |
drive | 3982 | drivers/block/ide-tape.c | return (idetape_queue_pc_tail (drive,&pc)); |
drive | 3984 | drivers/block/ide-tape.c | retval=idetape_rewind_tape (drive); |
drive | 3987 | drivers/block/ide-tape.c | return (idetape_queue_pc_tail (drive,&pc)); |
drive | 3989 | drivers/block/ide-tape.c | return (idetape_position_tape (drive,mt_count)); |
drive | 4006 | drivers/block/ide-tape.c | int idetape_space_over_filemarks (ide_drive_t *drive,short mt_op,int mt_count) |
drive | 4009 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 4041 | drivers/block/ide-tape.c | idetape_remove_stage_head (drive); |
drive | 4046 | drivers/block/ide-tape.c | idetape_remove_stage_head (drive); |
drive | 4048 | drivers/block/ide-tape.c | idetape_discard_read_pipeline (drive); |
drive | 4063 | drivers/block/ide-tape.c | return (idetape_queue_pc_tail (drive,&pc)); |
drive | 4067 | drivers/block/ide-tape.c | retval=idetape_mtioctop (drive,MTFSF,mt_count-count); |
drive | 4069 | drivers/block/ide-tape.c | return (idetape_mtioctop (drive,MTBSF,1)); |
drive | 4074 | drivers/block/ide-tape.c | return (idetape_queue_pc_tail (drive,&pc)); |
drive | 4078 | drivers/block/ide-tape.c | retval=idetape_mtioctop (drive,MTBSF,mt_count+count); |
drive | 4080 | drivers/block/ide-tape.c | return (idetape_mtioctop (drive,MTFSF,1)); |
drive | 4094 | drivers/block/ide-tape.c | ide_drive_t *drive=idetape_chrdev.drive; |
drive | 4095 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 4139 | drivers/block/ide-tape.c | if (idetape_rewind_tape (drive)) { |
drive | 4156 | drivers/block/ide-tape.c | ide_drive_t *drive=idetape_chrdev.drive; |
drive | 4157 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 4167 | drivers/block/ide-tape.c | idetape_empty_write_pipeline (drive); |
drive | 4169 | drivers/block/ide-tape.c | if (idetape_queue_pc_tail (drive,&pc)) |
drive | 4175 | drivers/block/ide-tape.c | idetape_discard_read_pipeline (drive); |
drive | 4177 | drivers/block/ide-tape.c | idetape_wait_for_pipeline (drive); |
drive | 4181 | drivers/block/ide-tape.c | if (idetape_rewind_tape (drive)) |
drive | 4210 | drivers/block/ide-tape.c | int idetape_position_tape (ide_drive_t *drive,unsigned long block) |
drive | 4217 | drivers/block/ide-tape.c | retval=idetape_queue_pc_tail (drive,&pc); |
drive | 4224 | drivers/block/ide-tape.c | return (idetape_queue_pc_tail (drive,&pc)); |
drive | 4233 | drivers/block/ide-tape.c | int idetape_rewind_tape (ide_drive_t *drive) |
drive | 4243 | drivers/block/ide-tape.c | retval=idetape_queue_pc_tail (drive,&pc); |
drive | 4250 | drivers/block/ide-tape.c | return (idetape_queue_pc_tail (drive,&pc)); |
drive | 4253 | drivers/block/ide-tape.c | int idetape_flush_tape_buffers (ide_drive_t *drive) |
drive | 4259 | drivers/block/ide-tape.c | return (idetape_queue_pc_tail (drive,&pc)); |
drive | 4280 | drivers/block/ide-tape.c | idetape_pipeline_stage_t *idetape_kmalloc_stage (ide_drive_t *drive) |
drive | 4283 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 4452 | drivers/block/ide-tape.c | void idetape_increase_max_pipeline_stages (ide_drive_t *drive) |
drive | 4455 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 4480 | drivers/block/ide-tape.c | void idetape_add_stage_tail (ide_drive_t *drive,idetape_pipeline_stage_t *stage) |
drive | 4483 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 4507 | drivers/block/ide-tape.c | void idetape_remove_stage_head (ide_drive_t *drive) |
drive | 4510 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 4546 | drivers/block/ide-tape.c | void idetape_insert_pipeline_into_queue (ide_drive_t *drive) |
drive | 4549 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 4555 | drivers/block/ide-tape.c | idetape_active_next_stage (drive); |
drive | 4556 | drivers/block/ide-tape.c | (void) (ide_do_drive_cmd (drive,tape->active_data_request,ide_end)); |
drive | 4565 | drivers/block/ide-tape.c | void idetape_active_next_stage (ide_drive_t *drive) |
drive | 4568 | drivers/block/ide-tape.c | idetape_tape_t *tape=&(drive->tape); |
drive | 274 | drivers/block/ide.c | #define IS_PROMISE_DRIVE (HWIF(drive)->chipset == ide_promise) |
drive | 308 | drivers/block/ide.c | #define SET_RECOVERY_TIMER(drive) set_recovery_timer (drive) |
drive | 312 | drivers/block/ide.c | #define SET_RECOVERY_TIMER(drive) |
drive | 350 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
drive | 352 | drivers/block/ide.c | drive->select.all = (unit<<4)|0xa0; |
drive | 353 | drivers/block/ide.c | drive->hwif = hwif; |
drive | 354 | drivers/block/ide.c | drive->ctl = 0x08; |
drive | 355 | drivers/block/ide.c | drive->ready_stat = READY_STAT; |
drive | 356 | drivers/block/ide.c | drive->bad_wstat = BAD_W_STAT; |
drive | 357 | drivers/block/ide.c | drive->special.b.recalibrate = 1; |
drive | 358 | drivers/block/ide.c | drive->special.b.set_geometry = 1; |
drive | 359 | drivers/block/ide.c | drive->name[0] = 'h'; |
drive | 360 | drivers/block/ide.c | drive->name[1] = 'd'; |
drive | 361 | drivers/block/ide.c | drive->name[2] = 'a' + (index * MAX_DRIVES) + unit; |
drive | 411 | drivers/block/ide.c | void ide_input_data (ide_drive_t *drive, void *buffer, unsigned int wcount) |
drive | 413 | drivers/block/ide.c | unsigned short io_base = HWIF(drive)->io_base; |
drive | 415 | drivers/block/ide.c | byte io_32bit = drive->io_32bit; |
drive | 423 | drivers/block/ide.c | if (drive->unmask) |
drive | 435 | drivers/block/ide.c | void ide_output_data (ide_drive_t *drive, void *buffer, unsigned int wcount) |
drive | 437 | drivers/block/ide.c | unsigned short io_base = HWIF(drive)->io_base; |
drive | 439 | drivers/block/ide.c | byte io_32bit = drive->io_32bit; |
drive | 447 | drivers/block/ide.c | if (drive->unmask) |
drive | 463 | drivers/block/ide.c | void ide_set_handler (ide_drive_t *drive, ide_handler_t *handler, unsigned int timeout) |
drive | 465 | drivers/block/ide.c | ide_hwgroup_t *hwgroup = HWGROUP(drive); |
drive | 469 | drivers/block/ide.c | drive->name, hwgroup->handler, handler); |
drive | 507 | drivers/block/ide.c | static unsigned long current_capacity (ide_drive_t *drive) |
drive | 509 | drivers/block/ide.c | struct hd_driveid *id = drive->id; |
drive | 510 | drivers/block/ide.c | unsigned long capacity = drive->cyl * drive->head * drive->sect; |
drive | 512 | drivers/block/ide.c | if (!drive->present) |
drive | 514 | drivers/block/ide.c | if (drive->media != ide_disk) |
drive | 516 | drivers/block/ide.c | drive->select.b.lba = 0; |
drive | 521 | drivers/block/ide.c | drive->select.b.lba = 1; |
drive | 524 | drivers/block/ide.c | return (capacity - drive->sect0); |
drive | 537 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
drive | 539 | drivers/block/ide.c | if (drive->present && drive->media == ide_cdrom) |
drive | 540 | drivers/block/ide.c | ide_cdrom_setup(drive); |
drive | 543 | drivers/block/ide.c | if (drive->present && drive->media == ide_tape) |
drive | 544 | drivers/block/ide.c | idetape_setup(drive); |
drive | 546 | drivers/block/ide.c | drive->part[0].nr_sects = current_capacity(drive); |
drive | 547 | drivers/block/ide.c | if (!drive->present || drive->media != ide_disk) { |
drive | 548 | drivers/block/ide.c | drive->part[0].start_sect = -1; /* skip partition check */ |
drive | 607 | drivers/block/ide.c | static void atapi_reset_pollfunc (ide_drive_t *drive) |
drive | 609 | drivers/block/ide.c | ide_hwgroup_t *hwgroup = HWGROUP(drive); |
drive | 612 | drivers/block/ide.c | OUT_BYTE (drive->select.all, IDE_SELECT_REG); |
drive | 616 | drivers/block/ide.c | printk("%s: ATAPI reset complete\n", drive->name); |
drive | 619 | drivers/block/ide.c | ide_set_handler (drive, &atapi_reset_pollfunc, HZ/20); |
drive | 623 | drivers/block/ide.c | printk("%s: ATAPI reset timed-out, status=0x%02x\n", drive->name, stat); |
drive | 624 | drivers/block/ide.c | do_reset1 (drive, 1); /* do it the old fashioned way */ |
drive | 636 | drivers/block/ide.c | static void reset_pollfunc (ide_drive_t *drive) |
drive | 638 | drivers/block/ide.c | ide_hwgroup_t *hwgroup = HWGROUP(drive); |
drive | 639 | drivers/block/ide.c | ide_hwif_t *hwif = HWIF(drive); |
drive | 644 | drivers/block/ide.c | ide_set_handler (drive, &reset_pollfunc, HZ/20); |
drive | 694 | drivers/block/ide.c | static void do_reset1 (ide_drive_t *drive, int do_not_try_atapi) |
drive | 698 | drivers/block/ide.c | ide_hwif_t *hwif = HWIF(drive); |
drive | 699 | drivers/block/ide.c | ide_hwgroup_t *hwgroup = HWGROUP(drive); |
drive | 706 | drivers/block/ide.c | if (drive->media != ide_disk) { |
drive | 708 | drivers/block/ide.c | if (!drive->keep_settings) |
drive | 709 | drivers/block/ide.c | drive->unmask = 0; |
drive | 710 | drivers/block/ide.c | OUT_BYTE (drive->select.all, IDE_SELECT_REG); |
drive | 714 | drivers/block/ide.c | ide_set_handler (drive, &atapi_reset_pollfunc, HZ/20); |
drive | 753 | drivers/block/ide.c | OUT_BYTE(drive->ctl|6,IDE_CONTROL_REG); /* set SRST and nIEN */ |
drive | 755 | drivers/block/ide.c | OUT_BYTE(drive->ctl|2,IDE_CONTROL_REG); /* clear SRST, leave nIEN */ |
drive | 758 | drivers/block/ide.c | ide_set_handler (drive, &reset_pollfunc, HZ/20); |
drive | 767 | drivers/block/ide.c | void ide_do_reset (ide_drive_t *drive) |
drive | 769 | drivers/block/ide.c | do_reset1 (drive, 0); |
drive | 771 | drivers/block/ide.c | if (drive->media == ide_tape) |
drive | 772 | drivers/block/ide.c | drive->tape.reset_issued=1; |
drive | 779 | drivers/block/ide.c | void ide_end_drive_cmd (ide_drive_t *drive, byte stat, byte err) |
drive | 782 | drivers/block/ide.c | struct request *rq = HWGROUP(drive)->rq; |
drive | 796 | drivers/block/ide.c | HWGROUP(drive)->rq = NULL; |
drive | 806 | drivers/block/ide.c | byte ide_dump_status (ide_drive_t *drive, const char *msg, byte stat) |
drive | 813 | drivers/block/ide.c | printk("%s: %s: status=0x%02x", drive->name, msg, stat); |
drive | 815 | drivers/block/ide.c | if (drive->media == ide_disk) { |
drive | 834 | drivers/block/ide.c | printk("%s: %s: error=0x%02x", drive->name, msg, err); |
drive | 836 | drivers/block/ide.c | if (drive->media == ide_disk) { |
drive | 860 | drivers/block/ide.c | if (HWGROUP(drive)->rq) |
drive | 861 | drivers/block/ide.c | printk(", sector=%ld", HWGROUP(drive)->rq->sector); |
drive | 878 | drivers/block/ide.c | static void try_to_flush_leftover_data (ide_drive_t *drive) |
drive | 880 | drivers/block/ide.c | int i = (drive->mult_count ? drive->mult_count : 1) * SECTOR_WORDS; |
drive | 886 | drivers/block/ide.c | ide_input_data (drive, buffer, wcount); |
drive | 893 | drivers/block/ide.c | void ide_error (ide_drive_t *drive, const char *msg, byte stat) |
drive | 898 | drivers/block/ide.c | err = ide_dump_status(drive, msg, stat); |
drive | 899 | drivers/block/ide.c | if ((rq = HWGROUP(drive)->rq) == NULL || drive == NULL) |
drive | 904 | drivers/block/ide.c | ide_end_drive_cmd(drive, stat, err); |
drive | 910 | drivers/block/ide.c | if (drive->media == ide_disk && (stat & ERR_STAT)) { |
drive | 918 | drivers/block/ide.c | try_to_flush_leftover_data(drive); |
drive | 925 | drivers/block/ide.c | if (drive->media == ide_tape) { |
drive | 927 | drivers/block/ide.c | idetape_end_request(0, HWGROUP(drive)); |
drive | 931 | drivers/block/ide.c | ide_end_request(0, HWGROUP(drive)); |
drive | 936 | drivers/block/ide.c | ide_do_reset(drive); |
drive | 939 | drivers/block/ide.c | drive->special.b.recalibrate = 1; |
drive | 947 | drivers/block/ide.c | static void read_intr (ide_drive_t *drive) |
drive | 955 | drivers/block/ide.c | ide_error(drive, "read_intr", stat); |
drive | 958 | drivers/block/ide.c | msect = drive->mult_count; |
drive | 960 | drivers/block/ide.c | rq = HWGROUP(drive)->rq; |
drive | 967 | drivers/block/ide.c | ide_input_data(drive, rq->buffer, nsect * SECTOR_WORDS); |
drive | 970 | drivers/block/ide.c | drive->name, rq->sector, rq->sector+nsect-1, |
drive | 978 | drivers/block/ide.c | ide_end_request(1, HWGROUP(drive)); |
drive | 982 | drivers/block/ide.c | ide_set_handler (drive, &read_intr, WAIT_CMD); |
drive | 989 | drivers/block/ide.c | static void write_intr (ide_drive_t *drive) |
drive | 993 | drivers/block/ide.c | ide_hwgroup_t *hwgroup = HWGROUP(drive); |
drive | 996 | drivers/block/ide.c | if (OK_STAT(stat=GET_STAT(),DRIVE_READY,drive->bad_wstat)) { |
drive | 999 | drivers/block/ide.c | drive->name, rq->sector, (unsigned long) rq->buffer, |
drive | 1011 | drivers/block/ide.c | ide_output_data (drive, rq->buffer, SECTOR_WORDS); |
drive | 1012 | drivers/block/ide.c | ide_set_handler (drive, &write_intr, WAIT_CMD); |
drive | 1017 | drivers/block/ide.c | ide_error(drive, "write_intr", stat); |
drive | 1024 | drivers/block/ide.c | void ide_multwrite (ide_drive_t *drive, unsigned int mcount) |
drive | 1026 | drivers/block/ide.c | struct request *rq = &HWGROUP(drive)->wrq; |
drive | 1034 | drivers/block/ide.c | ide_output_data(drive, rq->buffer, nsect<<7); |
drive | 1037 | drivers/block/ide.c | drive->name, rq->sector, (unsigned long) rq->buffer, |
drive | 1047 | drivers/block/ide.c | panic("%s: buffer list corrupted\n", drive->name); |
drive | 1059 | drivers/block/ide.c | static void multwrite_intr (ide_drive_t *drive) |
drive | 1063 | drivers/block/ide.c | ide_hwgroup_t *hwgroup = HWGROUP(drive); |
drive | 1066 | drivers/block/ide.c | if (OK_STAT(stat=GET_STAT(),DRIVE_READY,drive->bad_wstat)) { |
drive | 1069 | drivers/block/ide.c | ide_multwrite(drive, drive->mult_count); |
drive | 1070 | drivers/block/ide.c | ide_set_handler (drive, &multwrite_intr, WAIT_CMD); |
drive | 1084 | drivers/block/ide.c | ide_error(drive, "multwrite_intr", stat); |
drive | 1091 | drivers/block/ide.c | static void ide_cmd(ide_drive_t *drive, byte cmd, byte nsect, ide_handler_t *handler) |
drive | 1093 | drivers/block/ide.c | ide_set_handler (drive, handler, WAIT_CMD); |
drive | 1094 | drivers/block/ide.c | OUT_BYTE(drive->ctl,IDE_CONTROL_REG); |
drive | 1102 | drivers/block/ide.c | static void set_multmode_intr (ide_drive_t *drive) |
drive | 1108 | drivers/block/ide.c | drive->mult_count = drive->mult_req; |
drive | 1110 | drivers/block/ide.c | drive->mult_req = drive->mult_count = 0; |
drive | 1111 | drivers/block/ide.c | drive->special.b.recalibrate = 1; |
drive | 1112 | drivers/block/ide.c | (void) ide_dump_status(drive, "set_multmode", stat); |
drive | 1119 | drivers/block/ide.c | static void set_geometry_intr (ide_drive_t *drive) |
drive | 1125 | drivers/block/ide.c | ide_error(drive, "set_geometry_intr", stat); |
drive | 1131 | drivers/block/ide.c | static void recal_intr (ide_drive_t *drive) |
drive | 1137 | drivers/block/ide.c | ide_error(drive, "recal_intr", stat); |
drive | 1143 | drivers/block/ide.c | static void drive_cmd_intr (ide_drive_t *drive) |
drive | 1145 | drivers/block/ide.c | struct request *rq = HWGROUP(drive)->rq; |
drive | 1151 | drivers/block/ide.c | ide_input_data(drive, &args[4], args[3] * SECTOR_WORDS); |
drive | 1155 | drivers/block/ide.c | ide_end_drive_cmd (drive, stat, GET_ERR()); |
drive | 1157 | drivers/block/ide.c | ide_error(drive, "drive_cmd", stat); /* calls ide_end_drive_cmd */ |
drive | 1164 | drivers/block/ide.c | static inline void do_special (ide_drive_t *drive) |
drive | 1166 | drivers/block/ide.c | special_t *s = &drive->special; |
drive | 1169 | drivers/block/ide.c | printk("%s: do_special: 0x%02x\n", drive->name, s->all); |
drive | 1173 | drivers/block/ide.c | if (drive->media == ide_disk) { |
drive | 1174 | drivers/block/ide.c | OUT_BYTE(drive->sect,IDE_SECTOR_REG); |
drive | 1175 | drivers/block/ide.c | OUT_BYTE(drive->cyl,IDE_LCYL_REG); |
drive | 1176 | drivers/block/ide.c | OUT_BYTE(drive->cyl>>8,IDE_HCYL_REG); |
drive | 1177 | drivers/block/ide.c | OUT_BYTE(((drive->head-1)|drive->select.all)&0xBF,IDE_SELECT_REG); |
drive | 1179 | drivers/block/ide.c | ide_cmd(drive, WIN_SPECIFY, drive->sect, &set_geometry_intr); |
drive | 1183 | drivers/block/ide.c | if (drive->media == ide_disk && !IS_PROMISE_DRIVE) |
drive | 1184 | drivers/block/ide.c | ide_cmd(drive, WIN_RESTORE, drive->sect, &recal_intr); |
drive | 1186 | drivers/block/ide.c | ide_tuneproc_t *tuneproc = HWIF(drive)->tuneproc; |
drive | 1189 | drivers/block/ide.c | tuneproc(drive, drive->pio_req); |
drive | 1193 | drivers/block/ide.c | if (drive->media == ide_disk) { |
drive | 1194 | drivers/block/ide.c | if (drive->id && drive->mult_req > drive->id->max_multsect) |
drive | 1195 | drivers/block/ide.c | drive->mult_req = drive->id->max_multsect; |
drive | 1197 | drivers/block/ide.c | ide_cmd(drive, WIN_SETMULT, drive->mult_req, &set_multmode_intr); |
drive | 1199 | drivers/block/ide.c | drive->mult_req = 0; |
drive | 1203 | drivers/block/ide.c | printk("%s: bad special flag: 0x%02x\n", drive->name, special); |
drive | 1218 | drivers/block/ide.c | int ide_wait_stat (ide_drive_t *drive, byte good, byte bad, unsigned long timeout) |
drive | 1228 | drivers/block/ide.c | ide_error(drive, "status error", stat); |
drive | 1243 | drivers/block/ide.c | ide_error(drive, "status timeout", GET_STAT()); |
drive | 1252 | drivers/block/ide.c | static inline void do_rw_disk (ide_drive_t *drive, struct request *rq, unsigned long block) |
drive | 1254 | drivers/block/ide.c | ide_hwif_t *hwif = HWIF(drive); |
drive | 1260 | drivers/block/ide.c | OUT_BYTE(drive->ctl,IDE_CONTROL_REG); |
drive | 1268 | drivers/block/ide.c | if (drive->select.b.lba || use_promise_io) { |
drive | 1270 | drivers/block/ide.c | if (drive->select.b.lba) { |
drive | 1274 | drivers/block/ide.c | drive->name, (rq->cmd==READ)?"read":"writ", |
drive | 1280 | drivers/block/ide.c | OUT_BYTE(((block>>8)&0x0f)|drive->select.all,io_base+IDE_SELECT_OFFSET); |
drive | 1283 | drivers/block/ide.c | track = block / drive->sect; |
drive | 1284 | drivers/block/ide.c | sect = block % drive->sect + 1; |
drive | 1286 | drivers/block/ide.c | head = track % drive->head; |
drive | 1287 | drivers/block/ide.c | cyl = track / drive->head; |
drive | 1290 | drivers/block/ide.c | OUT_BYTE(head|drive->select.all,io_base+IDE_SELECT_OFFSET); |
drive | 1293 | drivers/block/ide.c | drive->name, (rq->cmd==READ)?"read":"writ", cyl, |
drive | 1299 | drivers/block/ide.c | do_promise_io (drive, rq); |
drive | 1305 | drivers/block/ide.c | if (drive->using_dma && !(HWIF(drive)->dmaproc(ide_dma_read, drive))) |
drive | 1308 | drivers/block/ide.c | ide_set_handler(drive, &read_intr, WAIT_CMD); |
drive | 1309 | drivers/block/ide.c | OUT_BYTE(drive->mult_count ? WIN_MULTREAD : WIN_READ, io_base+IDE_COMMAND_OFFSET); |
drive | 1314 | drivers/block/ide.c | if (drive->using_dma && !(HWIF(drive)->dmaproc(ide_dma_write, drive))) |
drive | 1317 | drivers/block/ide.c | OUT_BYTE(drive->mult_count ? WIN_MULTWRITE : WIN_WRITE, io_base+IDE_COMMAND_OFFSET); |
drive | 1318 | drivers/block/ide.c | if (ide_wait_stat(drive, DATA_READY, drive->bad_wstat, WAIT_DRQ)) { |
drive | 1319 | drivers/block/ide.c | printk("%s: no DRQ after issuing %s\n", drive->name, |
drive | 1320 | drivers/block/ide.c | drive->mult_count ? "MULTWRITE" : "WRITE"); |
drive | 1323 | drivers/block/ide.c | if (!drive->unmask) |
drive | 1325 | drivers/block/ide.c | if (drive->mult_count) { |
drive | 1326 | drivers/block/ide.c | HWGROUP(drive)->wrq = *rq; /* scratchpad */ |
drive | 1327 | drivers/block/ide.c | ide_set_handler (drive, &multwrite_intr, WAIT_CMD); |
drive | 1328 | drivers/block/ide.c | ide_multwrite(drive, drive->mult_count); |
drive | 1330 | drivers/block/ide.c | ide_set_handler (drive, &write_intr, WAIT_CMD); |
drive | 1331 | drivers/block/ide.c | ide_output_data(drive, rq->buffer, SECTOR_WORDS); |
drive | 1335 | drivers/block/ide.c | printk("%s: bad command: %d\n", drive->name, rq->cmd); |
drive | 1336 | drivers/block/ide.c | ide_end_request(0, HWGROUP(drive)); |
drive | 1343 | drivers/block/ide.c | static void execute_drive_cmd (ide_drive_t *drive, struct request *rq) |
drive | 1349 | drivers/block/ide.c | drive->name, args[0], args[1], args[2], args[3]); |
drive | 1352 | drivers/block/ide.c | ide_cmd(drive, args[0], args[1], &drive_cmd_intr); |
drive | 1360 | drivers/block/ide.c | printk("%s: DRIVE_CMD (null)\n", drive->name); |
drive | 1362 | drivers/block/ide.c | ide_end_drive_cmd(drive, GET_STAT(), GET_ERR()); |
drive | 1374 | drivers/block/ide.c | ide_drive_t *drive; |
drive | 1387 | drivers/block/ide.c | drive = &hwif->drives[unit]; |
drive | 1390 | drivers/block/ide.c | printk("%s: block not locked\n", drive->name); |
drive | 1396 | drivers/block/ide.c | if ((blockend < block) || (blockend > drive->part[minor&PARTN_MASK].nr_sects)) { |
drive | 1397 | drivers/block/ide.c | printk("%s%c: bad access: block=%ld, count=%ld\n", drive->name, |
drive | 1401 | drivers/block/ide.c | block += drive->part[minor&PARTN_MASK].start_sect + drive->sect0; |
drive | 1403 | drivers/block/ide.c | if (block == 0 && drive->remap_0_to_1) |
drive | 1406 | drivers/block/ide.c | ((ide_hwgroup_t *)hwif->hwgroup)->drive = drive; |
drive | 1415 | drivers/block/ide.c | SELECT_DRIVE(hwif,drive); |
drive | 1416 | drivers/block/ide.c | if (ide_wait_stat(drive, drive->ready_stat, BUSY_STAT|DRQ_STAT, WAIT_READY)) { |
drive | 1417 | drivers/block/ide.c | printk("%s: drive not ready for command\n", drive->name); |
drive | 1421 | drivers/block/ide.c | if (!drive->special.all) { |
drive | 1423 | drivers/block/ide.c | execute_drive_cmd(drive, rq); |
drive | 1427 | drivers/block/ide.c | switch (drive->media) { |
drive | 1429 | drivers/block/ide.c | do_rw_disk (drive, rq, block); |
drive | 1433 | drivers/block/ide.c | ide_do_rw_cdrom (drive, block); |
drive | 1438 | drivers/block/ide.c | idetape_do_request (drive, rq, block); |
drive | 1444 | drivers/block/ide.c | drive->name, drive->media); |
drive | 1448 | drivers/block/ide.c | do_rw_disk (drive, rq, block); /* simpler and faster */ |
drive | 1452 | drivers/block/ide.c | do_special(drive); |
drive | 1484 | drivers/block/ide.c | if (hwif->sharing_irq && hwgroup->drive) /* set nIEN */ |
drive | 1485 | drivers/block/ide.c | OUT_BYTE(hwgroup->drive->ctl|2,hwif->ctl_port); |
drive | 1560 | drivers/block/ide.c | ide_drive_t *drive = hwgroup->drive; |
drive | 1569 | drivers/block/ide.c | handler(drive); |
drive | 1572 | drivers/block/ide.c | printk("%s: marginal timeout\n", drive->name); |
drive | 1576 | drivers/block/ide.c | (void) hwgroup->hwif->dmaproc (ide_dma_abort, drive); |
drive | 1577 | drivers/block/ide.c | ide_error(drive, "irq timeout", GET_STAT()); |
drive | 1619 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
drive | 1620 | drivers/block/ide.c | if (!drive->present) |
drive | 1622 | drivers/block/ide.c | SELECT_DRIVE(hwif,drive); |
drive | 1623 | drivers/block/ide.c | if (!OK_STAT(stat=GET_STAT(), drive->ready_stat, BAD_STAT)) |
drive | 1624 | drivers/block/ide.c | (void) ide_dump_status(drive, "unexpected_intr", stat); |
drive | 1626 | drivers/block/ide.c | try_to_flush_leftover_data(drive); |
drive | 1630 | drivers/block/ide.c | SELECT_DRIVE(hwif,hwgroup->drive); /* Ugh.. probably interrupts current I/O */ |
drive | 1642 | drivers/block/ide.c | ide_drive_t *drive = hwgroup->drive; |
drive | 1645 | drivers/block/ide.c | if (drive->unmask) |
drive | 1647 | drivers/block/ide.c | handler(drive); |
drive | 1650 | drivers/block/ide.c | SET_RECOVERY_TIMER(HWIF(drive)); |
drive | 1673 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
drive | 1674 | drivers/block/ide.c | if (drive->present) |
drive | 1675 | drivers/block/ide.c | return drive; |
drive | 1734 | drivers/block/ide.c | int ide_do_drive_cmd (ide_drive_t *drive, struct request *rq, ide_action_t action) |
drive | 1737 | drivers/block/ide.c | unsigned int major = HWIF(drive)->major; |
drive | 1746 | drivers/block/ide.c | rq->rq_dev = MKDEV(major,(drive->select.b.unit)<<PARTN_BITS); |
drive | 1754 | drivers/block/ide.c | HWGROUP(drive)->next_hwif = HWIF(drive); |
drive | 1761 | drivers/block/ide.c | HWGROUP(drive)->rq = NULL; |
drive | 1763 | drivers/block/ide.c | if (HWGROUP(drive)->rq == NULL) { /* is this necessary (?) */ |
drive | 1783 | drivers/block/ide.c | ide_drive_t *drive; |
drive | 1786 | drivers/block/ide.c | if ((drive = get_info_ptr(inode->i_rdev)) == NULL) |
drive | 1790 | drivers/block/ide.c | while (drive->busy) |
drive | 1791 | drivers/block/ide.c | sleep_on(&drive->wqueue); |
drive | 1792 | drivers/block/ide.c | drive->usage++; |
drive | 1795 | drivers/block/ide.c | if (drive->media == ide_cdrom) |
drive | 1796 | drivers/block/ide.c | return ide_cdrom_open (inode, filp, drive); |
drive | 1799 | drivers/block/ide.c | if (drive->media == ide_tape) |
drive | 1800 | drivers/block/ide.c | return idetape_blkdev_open (inode, filp, drive); |
drive | 1802 | drivers/block/ide.c | if (drive->removable) { |
drive | 1813 | drivers/block/ide.c | (void) ide_do_drive_cmd(drive, &rq, ide_wait); |
drive | 1824 | drivers/block/ide.c | ide_drive_t *drive; |
drive | 1826 | drivers/block/ide.c | if ((drive = get_info_ptr(inode->i_rdev)) != NULL) { |
drive | 1828 | drivers/block/ide.c | drive->usage--; |
drive | 1830 | drivers/block/ide.c | if (drive->media == ide_cdrom) { |
drive | 1831 | drivers/block/ide.c | ide_cdrom_release (inode, file, drive); |
drive | 1836 | drivers/block/ide.c | if (drive->media == ide_tape) { |
drive | 1837 | drivers/block/ide.c | idetape_blkdev_release (inode, file, drive); |
drive | 1841 | drivers/block/ide.c | if (drive->removable && !drive->usage) { |
drive | 1847 | drivers/block/ide.c | (void) ide_do_drive_cmd(drive, &rq, ide_wait); |
drive | 1862 | drivers/block/ide.c | ide_drive_t *drive; |
drive | 1866 | drivers/block/ide.c | if ((drive = get_info_ptr(i_rdev)) == NULL) |
drive | 1870 | drivers/block/ide.c | minor = drive->select.b.unit << PARTN_BITS; |
drive | 1873 | drivers/block/ide.c | if (drive->busy || (drive->usage > 1)) { |
drive | 1877 | drivers/block/ide.c | drive->busy = 1; |
drive | 1881 | drivers/block/ide.c | if (drive->part[p].nr_sects > 0) { |
drive | 1887 | drivers/block/ide.c | drive->part[p].start_sect = 0; |
drive | 1888 | drivers/block/ide.c | drive->part[p].nr_sects = 0; |
drive | 1891 | drivers/block/ide.c | drive->part[0].nr_sects = current_capacity(drive); |
drive | 1892 | drivers/block/ide.c | if (drive->media == ide_disk) |
drive | 1893 | drivers/block/ide.c | resetup_one_dev(HWIF(drive)->gd, drive->select.b.unit); |
drive | 1895 | drivers/block/ide.c | drive->busy = 0; |
drive | 1896 | drivers/block/ide.c | wake_up(&drive->wqueue); |
drive | 1916 | drivers/block/ide.c | ide_drive_t *drive; |
drive | 1922 | drivers/block/ide.c | if ((drive = get_info_ptr(inode->i_rdev)) == NULL) |
drive | 1929 | drivers/block/ide.c | if (!loc || drive->media != ide_disk) return -EINVAL; |
drive | 1932 | drivers/block/ide.c | put_user(drive->bios_head, (byte *) &loc->heads); |
drive | 1933 | drivers/block/ide.c | put_user(drive->bios_sect, (byte *) &loc->sectors); |
drive | 1934 | drivers/block/ide.c | put_user(drive->bios_cyl, (unsigned short *) &loc->cylinders); |
drive | 1935 | drivers/block/ide.c | put_user((unsigned)drive->part[MINOR(inode->i_rdev)&PARTN_MASK].start_sect, |
drive | 1955 | drivers/block/ide.c | return write_fs_long(arg, drive->part[MINOR(inode->i_rdev)&PARTN_MASK].nr_sects); |
drive | 1961 | drivers/block/ide.c | return write_fs_long(arg, drive->keep_settings); |
drive | 1964 | drivers/block/ide.c | return write_fs_long(arg, drive->unmask); |
drive | 1967 | drivers/block/ide.c | return write_fs_long(arg, drive->using_dma); |
drive | 1970 | drivers/block/ide.c | return write_fs_long(arg, drive->io_32bit); |
drive | 1973 | drivers/block/ide.c | return write_fs_long(arg, drive->mult_count); |
drive | 1978 | drivers/block/ide.c | if (drive->id == NULL) |
drive | 1980 | drivers/block/ide.c | err = verify_area(VERIFY_WRITE, (char *)arg, sizeof(*drive->id)); |
drive | 1982 | drivers/block/ide.c | memcpy_tofs((char *)arg, (char *)drive->id, sizeof(*drive->id)); |
drive | 1986 | drivers/block/ide.c | return write_fs_long(arg, drive->bad_wstat == BAD_R_STAT); |
drive | 1991 | drivers/block/ide.c | if (drive->media == ide_cdrom) |
drive | 1994 | drivers/block/ide.c | if (!drive->id || !(drive->id->capability & 1) || !HWIF(drive)->dmaproc) |
drive | 2009 | drivers/block/ide.c | if (!(HWIF(drive)->dmaproc)) { |
drive | 2013 | drivers/block/ide.c | drive->using_dma = arg; |
drive | 2016 | drivers/block/ide.c | drive->keep_settings = arg; |
drive | 2019 | drivers/block/ide.c | if (arg && HWIF(drive)->no_unmask) { |
drive | 2023 | drivers/block/ide.c | drive->unmask = arg; |
drive | 2026 | drivers/block/ide.c | drive->bad_wstat = arg ? BAD_R_STAT : BAD_W_STAT; |
drive | 2031 | drivers/block/ide.c | drive->io_32bit = arg; |
drive | 2033 | drivers/block/ide.c | if (HWIF(drive)->chipset == ide_dtc2278) |
drive | 2034 | drivers/block/ide.c | HWIF(drive)->drives[!drive->select.b.unit].io_32bit = arg; |
drive | 2045 | drivers/block/ide.c | if (drive->id && arg > drive->id->max_multsect) |
drive | 2049 | drivers/block/ide.c | if (drive->special.b.set_multmode) { |
drive | 2053 | drivers/block/ide.c | drive->mult_req = arg; |
drive | 2054 | drivers/block/ide.c | drive->special.b.set_multmode = 1; |
drive | 2056 | drivers/block/ide.c | (void) ide_do_drive_cmd (drive, &rq, ide_wait); |
drive | 2057 | drivers/block/ide.c | return (drive->mult_count == arg) ? 0 : -EIO; |
drive | 2065 | drivers/block/ide.c | err = ide_do_drive_cmd(drive, &rq, ide_wait); |
drive | 2080 | drivers/block/ide.c | err = ide_do_drive_cmd(drive, &rq, ide_wait); |
drive | 2092 | drivers/block/ide.c | if (!HWIF(drive)->tuneproc) |
drive | 2096 | drivers/block/ide.c | drive->pio_req = (int) arg; |
drive | 2097 | drivers/block/ide.c | drive->special.b.set_pio = 1; |
drive | 2105 | drivers/block/ide.c | if (drive->media == ide_cdrom) |
drive | 2106 | drivers/block/ide.c | return ide_cdrom_ioctl(drive, inode, file, cmd, arg); |
drive | 2109 | drivers/block/ide.c | if (drive->media == ide_tape) |
drive | 2110 | drivers/block/ide.c | return idetape_blkdev_ioctl(drive, inode, file, cmd, arg); |
drive | 2118 | drivers/block/ide.c | ide_drive_t *drive; |
drive | 2120 | drivers/block/ide.c | if ((drive = get_info_ptr(i_rdev)) == NULL) |
drive | 2123 | drivers/block/ide.c | if (drive->media == ide_cdrom) |
drive | 2124 | drivers/block/ide.c | return ide_cdrom_check_media_change (drive); |
drive | 2126 | drivers/block/ide.c | if (drive->removable) /* for disks */ |
drive | 2158 | drivers/block/ide.c | static inline void do_identify (ide_drive_t *drive, byte cmd) |
drive | 2164 | drivers/block/ide.c | id = drive->id = kmalloc (SECTOR_WORDS*4, GFP_KERNEL); |
drive | 2165 | drivers/block/ide.c | ide_input_data(drive, id, SECTOR_WORDS); /* read 512 bytes of id info */ |
drive | 2173 | drivers/block/ide.c | printk("%s: EATA SCSI HBA %.10s\n", drive->name, id->model); |
drive | 2174 | drivers/block/ide.c | drive->present = 0; |
drive | 2199 | drivers/block/ide.c | printk("%s: %s, ATAPI ", drive->name, id->model); |
drive | 2201 | drivers/block/ide.c | if (HWIF(drive)->is_promise2) { |
drive | 2203 | drivers/block/ide.c | drive->present = 0; |
drive | 2212 | drivers/block/ide.c | drive->media = ide_cdrom; |
drive | 2213 | drivers/block/ide.c | drive->present = 1; |
drive | 2214 | drivers/block/ide.c | drive->removable = 1; |
drive | 2223 | drivers/block/ide.c | if (idetape_identify_device (drive,id)) { |
drive | 2224 | drivers/block/ide.c | drive->media = ide_tape; |
drive | 2225 | drivers/block/ide.c | drive->present = 1; |
drive | 2226 | drivers/block/ide.c | drive->removable = 1; |
drive | 2227 | drivers/block/ide.c | if (drive->autotune != 2 && HWIF(drive)->dmaproc != NULL) { |
drive | 2228 | drivers/block/ide.c | if (!HWIF(drive)->dmaproc(ide_dma_check, drive)) |
drive | 2234 | drivers/block/ide.c | drive->present = 0; |
drive | 2243 | drivers/block/ide.c | drive->present = 0; |
drive | 2247 | drivers/block/ide.c | drive->present = 0; |
drive | 2256 | drivers/block/ide.c | drive->removable = 1; |
drive | 2261 | drivers/block/ide.c | drive->removable = 0; |
drive | 2262 | drivers/block/ide.c | if (drive->select.all & (1<<4)) { |
drive | 2263 | drivers/block/ide.c | drive->present = 0; |
drive | 2268 | drivers/block/ide.c | drive->media = ide_disk; |
drive | 2270 | drivers/block/ide.c | if (!drive->present) { |
drive | 2271 | drivers/block/ide.c | drive->present = 1; |
drive | 2272 | drivers/block/ide.c | drive->cyl = drive->bios_cyl = id->cyls; |
drive | 2273 | drivers/block/ide.c | drive->head = drive->bios_head = id->heads; |
drive | 2274 | drivers/block/ide.c | drive->sect = drive->bios_sect = id->sectors; |
drive | 2290 | drivers/block/ide.c | drive->cyl = id->cur_cyls; |
drive | 2291 | drivers/block/ide.c | drive->head = id->cur_heads; |
drive | 2292 | drivers/block/ide.c | drive->sect = id->cur_sectors; |
drive | 2295 | drivers/block/ide.c | capacity = drive->cyl * drive->head * drive->sect; |
drive | 2304 | drivers/block/ide.c | if ((!drive->head || drive->head > 16) && id->heads && id->heads <= 16) { |
drive | 2305 | drivers/block/ide.c | drive->cyl = id->cyls; |
drive | 2306 | drivers/block/ide.c | drive->head = id->heads; |
drive | 2307 | drivers/block/ide.c | drive->sect = id->sectors; |
drive | 2310 | drivers/block/ide.c | if (drive->sect == drive->bios_sect && drive->head == drive->bios_head) { |
drive | 2311 | drivers/block/ide.c | if (drive->cyl > drive->bios_cyl) |
drive | 2312 | drivers/block/ide.c | drive->bios_cyl = drive->cyl; |
drive | 2315 | drivers/block/ide.c | (void) current_capacity (drive); /* initialize LBA selection */ |
drive | 2318 | drivers/block/ide.c | drive->name, id->model, current_capacity(drive)/2048L, id->buf_size/2, |
drive | 2319 | drivers/block/ide.c | drive->select.b.lba ? "LBA, " : "", |
drive | 2320 | drivers/block/ide.c | drive->bios_cyl, drive->bios_head, drive->bios_sect); |
drive | 2322 | drivers/block/ide.c | drive->mult_count = 0; |
drive | 2324 | drivers/block/ide.c | drive->mult_req = INITIAL_MULT_COUNT; |
drive | 2325 | drivers/block/ide.c | if (drive->mult_req > id->max_multsect) |
drive | 2326 | drivers/block/ide.c | drive->mult_req = id->max_multsect; |
drive | 2327 | drivers/block/ide.c | if (drive->mult_req || ((id->multsect_valid & 1) && id->multsect)) |
drive | 2328 | drivers/block/ide.c | drive->special.b.set_multmode = 1; |
drive | 2330 | drivers/block/ide.c | if (drive->autotune != 2 && HWIF(drive)->dmaproc != NULL) { |
drive | 2331 | drivers/block/ide.c | if (!(HWIF(drive)->dmaproc(ide_dma_check, drive))) |
drive | 2358 | drivers/block/ide.c | static int try_to_identify (ide_drive_t *drive, byte cmd) |
drive | 2364 | drivers/block/ide.c | if (!HWIF(drive)->irq) { /* already got an IRQ? */ |
drive | 2367 | drivers/block/ide.c | OUT_BYTE(drive->ctl,IDE_CONTROL_REG); /* enable device irq */ |
drive | 2372 | drivers/block/ide.c | printk("%s: probing with STATUS instead of ALTSTATUS\n", drive->name); |
drive | 2379 | drivers/block/ide.c | if(promise_cmd(drive,PROMISE_IDENTIFY)) |
drive | 2388 | drivers/block/ide.c | if (!HWIF(drive)->irq) |
drive | 2400 | drivers/block/ide.c | do_identify(drive, cmd); /* drive returned ID */ |
drive | 2401 | drivers/block/ide.c | if (drive->present && drive->media != ide_tape) { |
drive | 2402 | drivers/block/ide.c | ide_tuneproc_t *tuneproc = HWIF(drive)->tuneproc; |
drive | 2403 | drivers/block/ide.c | if (tuneproc != NULL && drive->autotune == 1) |
drive | 2404 | drivers/block/ide.c | tuneproc(drive, 255); /* auto-tune PIO mode */ |
drive | 2411 | drivers/block/ide.c | if (!HWIF(drive)->irq) { |
drive | 2414 | drivers/block/ide.c | HWIF(drive)->irq = irqs; |
drive | 2416 | drivers/block/ide.c | printk("%s: IRQ probe failed (%d)\n", drive->name, irqs); |
drive | 2418 | drivers/block/ide.c | if (HWIF(drive)->chipset == ide_cmd640) { |
drive | 2420 | drivers/block/ide.c | printk("%s: Hmmm.. probably a driver problem.\n", drive->name); |
drive | 2421 | drivers/block/ide.c | printk("%s: cmd640 reg 09h == 0x%02x\n", drive->name, get_cmd640_reg(9)); |
drive | 2422 | drivers/block/ide.c | printk("%s: cmd640 reg 51h == 0x%02x\n", drive->name, get_cmd640_reg(0x51)); |
drive | 2446 | drivers/block/ide.c | static int do_probe (ide_drive_t *drive, byte cmd) |
drive | 2451 | drivers/block/ide.c | if (drive->present) { /* avoid waiting for inappropriate probes */ |
drive | 2452 | drivers/block/ide.c | if ((drive->media != ide_disk) && (cmd == WIN_IDENTIFY)) |
drive | 2458 | drivers/block/ide.c | drive->name, drive->present, drive->media, |
drive | 2461 | drivers/block/ide.c | hwif = HWIF(drive); |
drive | 2462 | drivers/block/ide.c | SELECT_DRIVE(hwif,drive); |
drive | 2463 | drivers/block/ide.c | OUT_BYTE(drive->select.all,IDE_SELECT_REG); /* select target drive */ |
drive | 2465 | drivers/block/ide.c | if (IN_BYTE(IDE_SELECT_REG) != drive->select.all && !drive->present) { |
drive | 2471 | drivers/block/ide.c | || drive->present || cmd == WIN_PIDENTIFY) |
drive | 2473 | drivers/block/ide.c | if ((rc = try_to_identify(drive,cmd))) /* send cmd and wait */ |
drive | 2474 | drivers/block/ide.c | rc = try_to_identify(drive,cmd); /* failed: try again */ |
drive | 2476 | drivers/block/ide.c | printk("%s: no response (status = 0x%02x)\n", drive->name, GET_STAT()); |
drive | 2481 | drivers/block/ide.c | if (drive->select.b.unit != 0) { |
drive | 2495 | drivers/block/ide.c | static inline byte probe_for_drive (ide_drive_t *drive) |
drive | 2497 | drivers/block/ide.c | if (drive->noprobe) /* skip probing? */ |
drive | 2498 | drivers/block/ide.c | return drive->present; |
drive | 2499 | drivers/block/ide.c | if (do_probe(drive, WIN_IDENTIFY) >= 2) { /* if !(success||timed-out) */ |
drive | 2501 | drivers/block/ide.c | (void) do_probe(drive, WIN_PIDENTIFY); /* look for ATAPI device */ |
drive | 2504 | drivers/block/ide.c | if (!drive->present) |
drive | 2506 | drivers/block/ide.c | if (drive->id == NULL) { /* identification failed? */ |
drive | 2507 | drivers/block/ide.c | if (drive->media == ide_disk) { |
drive | 2509 | drivers/block/ide.c | drive->name, drive->cyl, drive->head, drive->sect); |
drive | 2512 | drivers/block/ide.c | else if (drive->media == ide_cdrom) { |
drive | 2513 | drivers/block/ide.c | printk("%s: ATAPI cdrom (?)\n", drive->name); |
drive | 2517 | drivers/block/ide.c | drive->present = 0; /* nuke it */ |
drive | 2560 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
drive | 2561 | drivers/block/ide.c | if ((cmos_disks & (0xf0 >> (unit*4))) && !drive->present && !drive->nobios) { |
drive | 2562 | drivers/block/ide.c | drive->cyl = drive->bios_cyl = *(unsigned short *)BIOS; |
drive | 2563 | drivers/block/ide.c | drive->head = drive->bios_head = *(BIOS+2); |
drive | 2564 | drivers/block/ide.c | drive->sect = drive->bios_sect = *(BIOS+14); |
drive | 2565 | drivers/block/ide.c | drive->ctl = *(BIOS+8); |
drive | 2566 | drivers/block/ide.c | drive->present = 1; |
drive | 2593 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
drive | 2594 | drivers/block/ide.c | if (drive->present) { |
drive | 2595 | drivers/block/ide.c | drive->present = 0; |
drive | 2596 | drivers/block/ide.c | printk("%s: ERROR, PORTS ALREADY IN USE\n", drive->name); |
drive | 2612 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
drive | 2613 | drivers/block/ide.c | (void) probe_for_drive (drive); |
drive | 2614 | drivers/block/ide.c | if (drive->present && drive->media == ide_disk) { |
drive | 2615 | drivers/block/ide.c | if ((!drive->head || drive->head > 16) && !drive->select.b.lba) { |
drive | 2617 | drivers/block/ide.c | drive->name, drive->head); |
drive | 2618 | drivers/block/ide.c | drive->present = 0; |
drive | 2621 | drivers/block/ide.c | if (drive->present && !hwif->present) { |
drive | 2745 | drivers/block/ide.c | ide_drive_t *drive; |
drive | 2763 | drivers/block/ide.c | drive = &hwif->drives[unit]; |
drive | 2766 | drivers/block/ide.c | drive->nobios = 1; /* drop into "noprobe" */ |
drive | 2768 | drivers/block/ide.c | drive->noprobe = 1; |
drive | 2771 | drivers/block/ide.c | drive->bad_wstat = BAD_R_STAT; |
drive | 2775 | drivers/block/ide.c | drive->present = 1; |
drive | 2776 | drivers/block/ide.c | drive->media = ide_cdrom; |
drive | 2783 | drivers/block/ide.c | drive->autotune = 1; |
drive | 2786 | drivers/block/ide.c | drive->autotune = 2; |
drive | 2789 | drivers/block/ide.c | drive->media = ide_disk; |
drive | 2790 | drivers/block/ide.c | drive->cyl = drive->bios_cyl = vals[0]; |
drive | 2791 | drivers/block/ide.c | drive->head = drive->bios_head = vals[1]; |
drive | 2792 | drivers/block/ide.c | drive->sect = drive->bios_sect = vals[2]; |
drive | 2793 | drivers/block/ide.c | drive->present = 1; |
drive | 2794 | drivers/block/ide.c | drive->forced_geom = 1; |
drive | 2948 | drivers/block/ide.c | ide_drive_t *drive; |
drive | 2953 | drivers/block/ide.c | if ((drive = get_info_ptr(i_rdev)) == NULL || drive->forced_geom) |
drive | 2956 | drivers/block/ide.c | if (xparm > 1 && xparm <= drive->bios_head && drive->bios_sect == 63) |
drive | 2961 | drivers/block/ide.c | if (drive->id) { |
drive | 2962 | drivers/block/ide.c | drive->cyl = drive->id->cyls; |
drive | 2963 | drivers/block/ide.c | drive->head = drive->id->heads; |
drive | 2964 | drivers/block/ide.c | drive->sect = drive->id->sectors; |
drive | 2966 | drivers/block/ide.c | drive->bios_cyl = drive->cyl; |
drive | 2967 | drivers/block/ide.c | drive->bios_head = drive->head; |
drive | 2968 | drivers/block/ide.c | drive->bios_sect = drive->sect; |
drive | 2969 | drivers/block/ide.c | drive->special.b.set_geometry = 1; |
drive | 2971 | drivers/block/ide.c | tracks = drive->bios_cyl * drive->bios_head * drive->bios_sect / 63; |
drive | 2972 | drivers/block/ide.c | drive->bios_sect = 63; |
drive | 2974 | drivers/block/ide.c | drive->bios_head = xparm; |
drive | 2975 | drivers/block/ide.c | drive->bios_cyl = tracks / drive->bios_head; |
drive | 2977 | drivers/block/ide.c | while (drive->bios_cyl >= 1024) { |
drive | 2978 | drivers/block/ide.c | drive->bios_head = *heads; |
drive | 2979 | drivers/block/ide.c | drive->bios_cyl = tracks / drive->bios_head; |
drive | 2985 | drivers/block/ide.c | drive->remap_0_to_1 = 1; |
drive | 2990 | drivers/block/ide.c | drive->sect0 = 63; |
drive | 2991 | drivers/block/ide.c | drive->bios_cyl = (tracks - 1) / drive->bios_head; |
drive | 2996 | drivers/block/ide.c | drive->part[0].nr_sects = current_capacity(drive); |
drive | 2997 | drivers/block/ide.c | printk("[%d/%d/%d]", drive->bios_cyl, drive->bios_head, drive->bios_sect); |
drive | 3053 | drivers/block/ide.c | hwgroup->drive = &hwif->drives[0]; |
drive | 3055 | drivers/block/ide.c | hwgroup->drive = &hwif->drives[1]; |
drive | 77 | drivers/block/ide.h | #define HWIF(drive) ((ide_hwif_t *)((drive)->hwif)) |
drive | 78 | drivers/block/ide.h | #define HWGROUP(drive) ((ide_hwgroup_t *)(HWIF(drive)->hwgroup)) |
drive | 91 | drivers/block/ide.h | #define IDE_DATA_REG (HWIF(drive)->io_base+IDE_DATA_OFFSET) |
drive | 92 | drivers/block/ide.h | #define IDE_ERROR_REG (HWIF(drive)->io_base+IDE_ERROR_OFFSET) |
drive | 93 | drivers/block/ide.h | #define IDE_NSECTOR_REG (HWIF(drive)->io_base+IDE_NSECTOR_OFFSET) |
drive | 94 | drivers/block/ide.h | #define IDE_SECTOR_REG (HWIF(drive)->io_base+IDE_SECTOR_OFFSET) |
drive | 95 | drivers/block/ide.h | #define IDE_LCYL_REG (HWIF(drive)->io_base+IDE_LCYL_OFFSET) |
drive | 96 | drivers/block/ide.h | #define IDE_HCYL_REG (HWIF(drive)->io_base+IDE_HCYL_OFFSET) |
drive | 97 | drivers/block/ide.h | #define IDE_SELECT_REG (HWIF(drive)->io_base+IDE_SELECT_OFFSET) |
drive | 98 | drivers/block/ide.h | #define IDE_STATUS_REG (HWIF(drive)->io_base+IDE_STATUS_OFFSET) |
drive | 99 | drivers/block/ide.h | #define IDE_CONTROL_REG (HWIF(drive)->ctl_port) |
drive | 144 | drivers/block/ide.h | #define SELECT_DRIVE(hwif,drive) \ |
drive | 147 | drivers/block/ide.h | hwif->selectproc(drive); \ |
drive | 149 | drivers/block/ide.h | OUT_BYTE((drive)->select.all, hwif->io_base+IDE_SELECT_OFFSET); \ |
drive | 152 | drivers/block/ide.h | #define SELECT_DRIVE(hwif,drive) OUT_BYTE((drive)->select.all, hwif->io_base+IDE_SELECT_OFFSET); |
drive | 446 | drivers/block/ide.h | ide_drive_t *drive; /* current drive */ |
drive | 476 | drivers/block/ide.h | #define SET_RECOVERY_TIMER(drive) ide_set_recovery_timer (drive) |
drive | 478 | drivers/block/ide.h | #define SET_RECOVERY_TIMER(drive) |
drive | 484 | drivers/block/ide.h | void ide_input_data (ide_drive_t *drive, void *buffer, unsigned int wcount); |
drive | 489 | drivers/block/ide.h | void ide_output_data (ide_drive_t *drive, void *buffer, unsigned int wcount); |
drive | 495 | drivers/block/ide.h | void ide_set_handler (ide_drive_t *drive, ide_handler_t *handler, unsigned int timeout); |
drive | 500 | drivers/block/ide.h | byte ide_dump_status (ide_drive_t *drive, const char *msg, byte stat); |
drive | 506 | drivers/block/ide.h | void ide_error (ide_drive_t *drive, const char *msg, byte stat); |
drive | 523 | drivers/block/ide.h | int ide_wait_stat (ide_drive_t *drive, byte good, byte bad, unsigned long timeout); |
drive | 590 | drivers/block/ide.h | int ide_do_drive_cmd (ide_drive_t *drive, struct request *rq, ide_action_t action); |
drive | 596 | drivers/block/ide.h | void ide_end_drive_cmd (ide_drive_t *drive, byte stat, byte err); |
drive | 602 | drivers/block/ide.h | void ide_multwrite (ide_drive_t *drive, unsigned int mcount); |
drive | 632 | drivers/block/ide.h | int idetape_identify_device (ide_drive_t *drive,struct hd_driveid *id); |
drive | 640 | drivers/block/ide.h | void idetape_setup (ide_drive_t *drive); |
drive | 647 | drivers/block/ide.h | void idetape_do_request (ide_drive_t *drive, struct request *rq, unsigned long block); |
drive | 660 | drivers/block/ide.h | int idetape_blkdev_ioctl (ide_drive_t *drive, struct inode *inode, struct file *file, |
drive | 662 | drivers/block/ide.h | int idetape_blkdev_open (struct inode *inode, struct file *filp, ide_drive_t *drive); |
drive | 663 | drivers/block/ide.h | void idetape_blkdev_release (struct inode *inode, struct file *filp, ide_drive_t *drive); |
drive | 21 | drivers/block/ide_modes.h | unsigned int ide_get_best_pio_mode (ide_drive_t *drive); |
drive | 118 | drivers/block/ide_modes.h | unsigned int ide_get_best_pio_mode (ide_drive_t *drive) |
drive | 121 | drivers/block/ide_modes.h | struct hd_driveid *id = drive->id; |
drive | 124 | drivers/block/ide_modes.h | if (HWIF(drive)->chipset != ide_cmd640 && !strcmp("QUANTUM FIREBALL1080A", id->model)) |
drive | 70 | drivers/block/promise.c | static void promise_selectproc (ide_drive_t *drive) |
drive | 74 | drivers/block/promise.c | OUT_BYTE(drive->select.all,IDE_SELECT_REG); |
drive | 76 | drivers/block/promise.c | number = ((HWIF(drive)->is_promise2)<<1) + drive->select.b.unit; |
drive | 84 | drivers/block/promise.c | int promise_cmd(ide_drive_t *drive, byte cmd) |
drive | 89 | drivers/block/promise.c | promise_selectproc(drive); /* redundant? */ |
drive | 127 | drivers/block/promise.c | ide_drive_t *drive; |
drive | 134 | drivers/block/promise.c | drive = &hwif->drives[0]; |
drive | 144 | drivers/block/promise.c | if(promise_cmd(drive,PROMISE_GET_CONFIG)) { |
drive | 147 | drivers/block/promise.c | if(ide_wait_stat(drive,DATA_READY,BAD_W_STAT,WAIT_DRQ)) { |
drive | 151 | drivers/block/promise.c | ide_input_data(drive,&ident,SECTOR_WORDS); |
drive | 195 | drivers/block/promise.c | static void promise_read_intr (ide_drive_t *drive) |
drive | 203 | drivers/block/promise.c | ide_error(drive, "promise_read_intr", stat); |
drive | 212 | drivers/block/promise.c | rq = HWGROUP(drive)->rq; |
drive | 216 | drivers/block/promise.c | rq = HWGROUP(drive)->rq; |
drive | 220 | drivers/block/promise.c | ide_input_data(drive, rq->buffer, nsect * SECTOR_WORDS); |
drive | 223 | drivers/block/promise.c | "remaining=%ld\n", drive->name, rq->sector, rq->sector+nsect-1, |
drive | 231 | drivers/block/promise.c | ide_end_request(1, HWGROUP(drive)); |
drive | 239 | drivers/block/promise.c | ide_set_handler (drive, &promise_read_intr, WAIT_CMD); |
drive | 243 | drivers/block/promise.c | ide_error(drive, "promise read intr", stat); |
drive | 250 | drivers/block/promise.c | static void promise_write_pollfunc (ide_drive_t *drive) |
drive | 253 | drivers/block/promise.c | ide_hwgroup_t *hwgroup = HWGROUP(drive); |
drive | 258 | drivers/block/promise.c | ide_set_handler (drive, &promise_write_pollfunc, 1); |
drive | 261 | drivers/block/promise.c | printk("%s: write timed-out!\n",drive->name); |
drive | 262 | drivers/block/promise.c | ide_error (drive, "write timeout", GET_STAT()); |
drive | 266 | drivers/block/promise.c | ide_multwrite(drive, 4); |
drive | 283 | drivers/block/promise.c | static void promise_write (ide_drive_t *drive) |
drive | 285 | drivers/block/promise.c | ide_hwgroup_t *hwgroup = HWGROUP(drive); |
drive | 290 | drivers/block/promise.c | ide_multwrite(drive, rq->nr_sectors - 4); |
drive | 292 | drivers/block/promise.c | ide_set_handler (drive, &promise_write_pollfunc, 1); |
drive | 295 | drivers/block/promise.c | ide_multwrite(drive, rq->nr_sectors); |
drive | 309 | drivers/block/promise.c | void do_promise_io (ide_drive_t *drive, struct request *rq) |
drive | 312 | drivers/block/promise.c | unsigned short io_base = HWIF(drive)->io_base; |
drive | 316 | drivers/block/promise.c | ide_set_handler(drive, &promise_read_intr, WAIT_CMD); |
drive | 333 | drivers/block/promise.c | ide_intr(HWIF(drive)->irq,HWGROUP(drive),NULL); |
drive | 344 | drivers/block/promise.c | drive->name); |
drive | 349 | drivers/block/promise.c | if (ide_wait_stat(drive, DATA_READY, drive->bad_wstat, WAIT_DRQ)) { |
drive | 350 | drivers/block/promise.c | printk("%s: no DRQ after issuing PROMISE_WRITE\n", drive->name); |
drive | 353 | drivers/block/promise.c | if (!drive->unmask) |
drive | 355 | drivers/block/promise.c | HWGROUP(drive)->wrq = *rq; /* scratchpad */ |
drive | 356 | drivers/block/promise.c | promise_write(drive); |
drive | 359 | drivers/block/promise.c | printk("%s: bad command: %d\n", drive->name, rq->cmd); |
drive | 360 | drivers/block/promise.c | ide_end_request(0, HWGROUP(drive)); |
drive | 46 | drivers/block/qd6580.c | static void tune_qd6580 (ide_drive_t *drive, byte pio) |
drive | 51 | drivers/block/qd6580.c | pio = ide_get_best_pio_mode (drive); |
drive | 150 | drivers/block/triton.c | static void dma_intr (ide_drive_t *drive) |
drive | 154 | drivers/block/triton.c | struct request *rq = HWGROUP(drive)->rq; |
drive | 155 | drivers/block/triton.c | unsigned short dma_base = HWIF(drive)->dma_base; |
drive | 160 | drivers/block/triton.c | if (OK_STAT(stat,DRIVE_READY,drive->bad_wstat|DRQ_STAT)) { |
drive | 162 | drivers/block/triton.c | rq = HWGROUP(drive)->rq; |
drive | 165 | drivers/block/triton.c | ide_end_request(1, HWGROUP(drive)); |
drive | 169 | drivers/block/triton.c | printk("%s: bad DMA status: 0x%02x\n", drive->name, dma_stat); |
drive | 172 | drivers/block/triton.c | ide_error(drive, "dma_intr", stat); |
drive | 179 | drivers/block/triton.c | static int build_dmatable (ide_drive_t *drive) |
drive | 181 | drivers/block/triton.c | struct request *rq = HWGROUP(drive)->rq; |
drive | 183 | drivers/block/triton.c | unsigned long size, addr, *table = HWIF(drive)->dmatable; |
drive | 197 | drivers/block/triton.c | if (drive->media == ide_tape) |
drive | 198 | drivers/block/triton.c | size = drive->tape.pc->request_transfer; |
drive | 219 | drivers/block/triton.c | printk("%s: DMA table too small\n", drive->name); |
drive | 236 | drivers/block/triton.c | printk("%s: empty DMA table?\n", drive->name); |
drive | 240 | drivers/block/triton.c | static int config_drive_for_dma (ide_drive_t *drive) |
drive | 244 | drivers/block/triton.c | struct hd_driveid *id = drive->id; |
drive | 248 | drivers/block/triton.c | drive->using_dma = 1; |
drive | 255 | drivers/block/triton.c | drive->using_dma = 1; |
drive | 278 | drivers/block/triton.c | static int triton_dmaproc (ide_dma_action_t func, ide_drive_t *drive) |
drive | 280 | drivers/block/triton.c | unsigned long dma_base = HWIF(drive)->dma_base; |
drive | 288 | drivers/block/triton.c | return config_drive_for_dma (drive); |
drive | 308 | drivers/block/triton.c | if (build_dmatable (drive)) |
drive | 310 | drivers/block/triton.c | outl(virt_to_bus (HWIF(drive)->dmatable), dma_base + 4); /* PRD table */ |
drive | 314 | drivers/block/triton.c | if (drive->media != ide_disk) |
drive | 317 | drivers/block/triton.c | ide_set_handler(drive, &dma_intr, WAIT_CMD); /* issue cmd to drive */ |
drive | 110 | drivers/block/umc8672.c | static void tune_umc (ide_drive_t *drive, byte pio) |
drive | 113 | drivers/block/umc8672.c | pio = ide_get_best_pio_mode(drive); |
drive | 117 | drivers/block/umc8672.c | current_speeds[drive->name[2] - 'a'] = pio_to_umc[pio]; |
drive | 342 | drivers/block/xd.c | static int xd_readwrite (u_char operation,u_char drive,char *buffer,u_int block,u_int count) |
drive | 349 | drivers/block/xd.c | printk("xd_readwrite: operation = %s, drive = %d, buffer = 0x%X, block = %d, count = %d\n",operation == READ ? "read" : "write",drive,buffer,block,count); |
drive | 352 | drivers/block/xd.c | control = xd_info[drive].control; |
drive | 356 | drivers/block/xd.c | track = block / xd_info[drive].sectors; |
drive | 357 | drivers/block/xd.c | head = track % xd_info[drive].heads; |
drive | 358 | drivers/block/xd.c | cylinder = track / xd_info[drive].heads; |
drive | 359 | drivers/block/xd.c | sector = block % xd_info[drive].sectors; |
drive | 362 | drivers/block/xd.c | printk("xd_readwrite: drive = %d, head = %d, cylinder = %d, sector = %d, count = %d\n",drive,head,cylinder,sector,temp); |
drive | 366 | drivers/block/xd.c | xd_build(cmdblk,operation == READ ? CMD_READ : CMD_WRITE,drive,head,cylinder,sector,temp & 0xFF,control); |
drive | 371 | drivers/block/xd.c | xd_recalibrate(drive); |
drive | 392 | drivers/block/xd.c | static void xd_recalibrate (u_char drive) |
drive | 396 | drivers/block/xd.c | xd_build(cmdblk,CMD_RECALIBRATE,drive,0,0,0,0,0); |
drive | 440 | drivers/block/xd.c | static u_char *xd_build (u_char *cmdblk,u_char command,u_char drive,u_char head,u_short cylinder,u_char sector,u_char count,u_char control) |
drive | 443 | drivers/block/xd.c | cmdblk[1] = ((drive & 0x07) << 5) | (head & 0x1F); |
drive | 527 | drivers/block/xd.c | static u_char xd_initdrives (void (*init_drive)(u_char drive)) |
drive | 556 | drivers/block/xd.c | static void xd_dtc_init_drive (u_char drive) |
drive | 560 | drivers/block/xd.c | xd_build(cmdblk,CMD_DTCGETGEOM,drive,0,0,0,0,0); |
drive | 562 | drivers/block/xd.c | xd_info[drive].heads = buf[0x0A]; /* heads */ |
drive | 563 | drivers/block/xd.c | xd_info[drive].cylinders = ((u_short *) (buf))[0x04]; /* cylinders */ |
drive | 564 | drivers/block/xd.c | xd_info[drive].sectors = 17; /* sectors */ |
drive | 566 | drivers/block/xd.c | xd_info[drive].rwrite = ((u_short *) (buf + 1))[0x05]; /* reduced write */ |
drive | 567 | drivers/block/xd.c | xd_info[drive].precomp = ((u_short *) (buf + 1))[0x06]; /* write precomp */ |
drive | 568 | drivers/block/xd.c | xd_info[drive].ecc = buf[0x0F]; /* ecc length */ |
drive | 570 | drivers/block/xd.c | xd_info[drive].control = 0; /* control byte */ |
drive | 572 | drivers/block/xd.c | xd_setparam(CMD_DTCSETPARAM,drive,xd_info[drive].heads,xd_info[drive].cylinders,((u_short *) (buf + 1))[0x05],((u_short *) (buf + 1))[0x06],buf[0x0F]); |
drive | 573 | drivers/block/xd.c | xd_build(cmdblk,CMD_DTCSETSTEP,drive,0,0,0,0,7); |
drive | 575 | drivers/block/xd.c | printk("xd_dtc_init_drive: error setting step rate for drive %d\n",drive); |
drive | 578 | drivers/block/xd.c | printk("xd_dtc_init_drive: error reading geometry for drive %d\n",drive); |
drive | 600 | drivers/block/xd.c | static void xd_wd_init_drive (u_char drive) |
drive | 604 | drivers/block/xd.c | xd_build(cmdblk,CMD_READ,drive,0,0,0,1,0); |
drive | 606 | drivers/block/xd.c | xd_info[drive].heads = buf[0x1AF]; /* heads */ |
drive | 607 | drivers/block/xd.c | xd_info[drive].cylinders = ((u_short *) (buf + 1))[0xD6]; /* cylinders */ |
drive | 608 | drivers/block/xd.c | xd_info[drive].sectors = 17; /* sectors */ |
drive | 610 | drivers/block/xd.c | xd_info[drive].rwrite = ((u_short *) (buf))[0xD8]; /* reduced write */ |
drive | 611 | drivers/block/xd.c | xd_info[drive].wprecomp = ((u_short *) (buf))[0xDA]; /* write precomp */ |
drive | 612 | drivers/block/xd.c | xd_info[drive].ecc = buf[0x1B4]; /* ecc length */ |
drive | 614 | drivers/block/xd.c | xd_info[drive].control = buf[0x1B5]; /* control byte */ |
drive | 616 | drivers/block/xd.c | xd_setparam(CMD_WDSETPARAM,drive,xd_info[drive].heads,xd_info[drive].cylinders,((u_short *) (buf))[0xD8],((u_short *) (buf))[0xDA],buf[0x1B4]); |
drive | 619 | drivers/block/xd.c | printk("xd_wd_init_drive: error reading geometry for drive %d\n",drive); |
drive | 639 | drivers/block/xd.c | static void xd_seagate_init_drive (u_char drive) |
drive | 643 | drivers/block/xd.c | xd_build(cmdblk,CMD_ST11GETGEOM,drive,0,0,0,1,0); |
drive | 645 | drivers/block/xd.c | xd_info[drive].heads = buf[0x04]; /* heads */ |
drive | 646 | drivers/block/xd.c | xd_info[drive].cylinders = (buf[0x02] << 8) | buf[0x03]; /* cylinders */ |
drive | 647 | drivers/block/xd.c | xd_info[drive].sectors = buf[0x05]; /* sectors */ |
drive | 648 | drivers/block/xd.c | xd_info[drive].control = 0; /* control byte */ |
drive | 651 | drivers/block/xd.c | printk("xd_seagate_init_drive: error reading geometry from drive %d\n",drive); |
drive | 673 | drivers/block/xd.c | static void xd_omti_init_drive (u_char drive) |
drive | 676 | drivers/block/xd.c | xd_override_init_drive(drive); |
drive | 679 | drivers/block/xd.c | xd_info[drive].control = 2; |
drive | 684 | drivers/block/xd.c | static void xd_override_init_drive (u_char drive) |
drive | 692 | drivers/block/xd.c | xd_build(cmdblk,CMD_SEEK,drive,(u_char) test[0],(u_short) test[1],(u_char) test[2],0,0); |
drive | 700 | drivers/block/xd.c | xd_info[drive].heads = (u_char) min[0] + 1; |
drive | 701 | drivers/block/xd.c | xd_info[drive].cylinders = (u_short) min[1] + 1; |
drive | 702 | drivers/block/xd.c | xd_info[drive].sectors = (u_char) min[2] + 1; |
drive | 703 | drivers/block/xd.c | xd_info[drive].control = 0; |
drive | 720 | drivers/block/xd.c | static void xd_setparam (u_char command,u_char drive,u_char heads,u_short cylinders,u_short rwrite,u_short wprecomp,u_char ecc) |
drive | 724 | drivers/block/xd.c | xd_build(cmdblk,command,drive,0,0,0,0,0); |
drive | 735 | drivers/block/xd.c | printk("xd_setparam: error setting characteristics for drive %d\n",drive); |
drive | 1102 | drivers/cdrom/mcdx.c | int drive; |
drive | 1113 | drivers/cdrom/mcdx.c | for (drive = 0; drive < MCDX_NDRIVES; drive++) |
drive | 1114 | drivers/cdrom/mcdx.c | mcdx_stuffp[drive] = NULL; |
drive | 1117 | drivers/cdrom/mcdx.c | for (drive = 0; drive < MCDX_NDRIVES; drive++) { |
drive | 1122 | drivers/cdrom/mcdx.c | mcdx_blocksizes[drive] = 0; |
drive | 1126 | drivers/cdrom/mcdx.c | TRACE((INIT, "init() try drive %d\n", drive)); |
drive | 1145 | drivers/cdrom/mcdx.c | stuffp->irq = irq(mcdx_drive_map[drive]); |
drive | 1146 | drivers/cdrom/mcdx.c | stuffp->wreg_data = stuffp->rreg_data = port(mcdx_drive_map[drive]); |
drive | 1251 | drivers/cdrom/mcdx.c | stuffp->minor = drive; |
drive | 1257 | drivers/cdrom/mcdx.c | mcdx_stuffp[drive] = stuffp; |
drive | 1258 | drivers/cdrom/mcdx.c | TRACE((INIT, "init() mcdx_stuffp[%d] = %p\n", drive, stuffp)); |
drive | 1920 | drivers/scsi/fdomain.c | int drive; |
drive | 1976 | drivers/scsi/fdomain.c | drive = MINOR(dev) / 16; |
drive | 1983 | drivers/scsi/fdomain.c | i = (struct drive_info *)( (char *)bios_base + 0x1f33 + drive * 25 ); |
drive | 1986 | drivers/scsi/fdomain.c | i = (struct drive_info *)( (char *)bios_base + 0x1f36 + drive * 15 ); |
drive | 1989 | drivers/scsi/fdomain.c | i = (struct drive_info *)( (char *)bios_base + 0x1f34 + drive * 15 ); |
drive | 1992 | drivers/scsi/fdomain.c | i = (struct drive_info *)( (char *)bios_base + 0x1f31 + drive * 25 ); |
drive | 2001 | drivers/scsi/fdomain.c | i = (struct drive_info *)( (char *)bios_base + 0x1f71 + drive * 10 ); |
drive | 65 | include/asm-m68k/ide.h | #define SELECT_DRIVE(hwif,drive) OUT_BYTE((drive)->select.all, hwif->io_base+IDE_SELECT_OFFSET); |
drive | 356 | include/asm-sparc/floppy.h | #define fd_eject(drive) sparc_eject() |
drive | 51 | include/linux/blkdev.h | extern void resetup_one_dev(struct gendisk *dev, int drive); |
drive | 103 | include/linux/xd.h | void (*init_drive)(u_char drive); |
drive | 109 | include/linux/xd.h | static u_char xd_initdrives (void (*init_drive)(u_char drive)); |
drive | 117 | include/linux/xd.h | static int xd_readwrite (u_char operation,u_char drive,char *buffer,u_int block,u_int count); |
drive | 118 | include/linux/xd.h | static void xd_recalibrate (u_char drive); |
drive | 122 | include/linux/xd.h | static u_char *xd_build (u_char *cmdblk,u_char command,u_char drive,u_char head,u_short cylinder,u_char sector,u_char count,u_char control); |
drive | 128 | include/linux/xd.h | static void xd_dtc_init_drive (u_char drive); |
drive | 130 | include/linux/xd.h | static void xd_wd_init_drive (u_char drive); |
drive | 132 | include/linux/xd.h | static void xd_seagate_init_drive (u_char drive); |
drive | 134 | include/linux/xd.h | static void xd_omti_init_drive (u_char drive); |
drive | 135 | include/linux/xd.h | static void xd_setparam (u_char command,u_char drive,u_char heads,u_short cylinders,u_short rwrite,u_short wprecomp,u_char ecc); |
drive | 136 | include/linux/xd.h | static void xd_override_init_drive (u_char drive); |