| tag | line | file | source code |
| drive | 236 | drivers/block/floppy.c | #define UDP (&drive_params[drive]) |
| drive | 237 | drivers/block/floppy.c | #define UDRS (&drive_state[drive]) |
| drive | 238 | drivers/block/floppy.c | #define UDRWE (&write_errors[drive]) |
| drive | 239 | drivers/block/floppy.c | #define UFDCS (&fdc_state[FDC(drive)]) |
| drive | 607 | drivers/block/floppy.c | static void reschedule_timeout(int drive, const char *message, int marg) |
| drive | 609 | drivers/block/floppy.c | if (drive == CURRENTD ) |
| drive | 610 | drivers/block/floppy.c | drive = current_drive; |
| drive | 612 | drivers/block/floppy.c | if (drive < 0 || drive > N_DRIVE) { |
| drive | 614 | drivers/block/floppy.c | drive=0; |
| drive | 659 | drivers/block/floppy.c | static int disk_change(int drive) |
| drive | 661 | drivers/block/floppy.c | int fdc=FDC(drive); |
| drive | 665 | drivers/block/floppy.c | if(! (FDCS->dor & (0x10 << UNIT(drive))) || |
| drive | 666 | drivers/block/floppy.c | (FDCS->dor & 3) != UNIT(drive) || |
| drive | 667 | drivers/block/floppy.c | fdc != FDC(drive)){ |
| drive | 669 | drivers/block/floppy.c | DPRINT3("drive=%d fdc=%d dor=%x\n",drive, FDC(drive), |
| drive | 676 | drivers/block/floppy.c | DPRINT1("checking disk change line for drive %d\n",drive); |
| drive | 693 | drivers/block/floppy.c | current_type[drive] != NULL) |
| drive | 696 | drivers/block/floppy.c | current_type[drive] = NULL; |
| drive | 716 | drivers/block/floppy.c | register unsigned char drive, unit, newdor,olddor; |
| drive | 726 | drivers/block/floppy.c | drive = REVDRIVE(fdc,unit); |
| drive | 732 | drivers/block/floppy.c | disk_change(drive); |
| drive | 739 | drivers/block/floppy.c | drive = REVDRIVE(fdc,unit); |
| drive | 763 | drivers/block/floppy.c | int drive; |
| drive | 769 | drivers/block/floppy.c | for ( drive = 0; drive < N_DRIVE; drive++) |
| drive | 770 | drivers/block/floppy.c | if (FDC(drive) == fdc && |
| drive | 776 | drivers/block/floppy.c | static void set_fdc(int drive) |
| drive | 778 | drivers/block/floppy.c | if (drive >= 0 && drive < N_DRIVE){ |
| drive | 779 | drivers/block/floppy.c | fdc = FDC(drive); |
| drive | 780 | drivers/block/floppy.c | current_drive = drive; |
| drive | 791 | drivers/block/floppy.c | static int lock_fdc(int drive, int interruptible) |
| drive | 810 | drivers/block/floppy.c | set_fdc(drive); |
| drive | 811 | drivers/block/floppy.c | reschedule_timeout(drive, "lock fdc", 0); |
| drive | 815 | drivers/block/floppy.c | #define LOCK_FDC(drive,interruptible) \ |
| drive | 816 | drivers/block/floppy.c | if(lock_fdc(drive,interruptible)) return -EINTR; |
| drive | 856 | drivers/block/floppy.c | static void floppy_off(unsigned int drive) |
| drive | 859 | drivers/block/floppy.c | register int fdc=FDC(drive); |
| drive | 861 | drivers/block/floppy.c | if( !(FDCS->dor & ( 0x10 << UNIT(drive)))) |
| drive | 864 | drivers/block/floppy.c | del_timer(motor_off_timer+drive); |
| drive | 872 | drivers/block/floppy.c | motor_off_timer[drive].expires = jiffies + UDP->spindown - delta; |
| drive | 874 | drivers/block/floppy.c | add_timer(motor_off_timer+drive); |
| drive | 884 | drivers/block/floppy.c | int i, drive, saved_drive; |
| drive | 891 | drivers/block/floppy.c | drive = (saved_drive + i + 1 ) % N_DRIVE; |
| drive | 894 | drivers/block/floppy.c | set_fdc(drive); |
| drive | 895 | drivers/block/floppy.c | if(! (set_dor( fdc, ~3, UNIT(drive) | ( 0x10 << UNIT(drive))) & |
| drive | 896 | drivers/block/floppy.c | (0x10 << UNIT(drive)))) |
| drive | 899 | drivers/block/floppy.c | set_dor( fdc, ~( 0x10 << UNIT(drive) ), 0 ); |
| drive | 2089 | drivers/block/floppy.c | int drive=DRIVE(device); |
| drive | 2091 | drivers/block/floppy.c | LOCK_FDC(drive,1); |
| drive | 2776 | drivers/block/floppy.c | static int user_reset_fdc(int drive, int arg, int interruptible) |
| drive | 2783 | drivers/block/floppy.c | LOCK_FDC(drive,interruptible); |
| drive | 2813 | drivers/block/floppy.c | static const char *drive_name(int type, int drive ) |
| drive | 2840 | drivers/block/floppy.c | int i, drive, count, ret; |
| drive | 2844 | drivers/block/floppy.c | for ( drive= 0; drive < N_DRIVE; drive++){ |
| drive | 2845 | drivers/block/floppy.c | if ( FDC(drive) != fdc) |
| drive | 2847 | drivers/block/floppy.c | if ( drive == current_drive ){ |
| drive | 2934 | drivers/block/floppy.c | int i,drive,type,cnt; |
| drive | 2944 | drivers/block/floppy.c | drive = DRIVE(device); |
| drive | 2950 | drivers/block/floppy.c | name = drive_name(type,drive); |
| drive | 2962 | drivers/block/floppy.c | else if ((this_floppy = current_type[drive]) == |
| drive | 2967 | drivers/block/floppy.c | LOCK_FDC(drive,1); |
| drive | 2994 | drivers/block/floppy.c | LOCK_FDC(drive,1); |
| drive | 3009 | drivers/block/floppy.c | LOCK_FDC(drive,1); |
| drive | 3010 | drivers/block/floppy.c | current_type[drive] = NULL; |
| drive | 3011 | drivers/block/floppy.c | floppy_sizes[drive] = MAX_DISK_SIZE; |
| drive | 3016 | drivers/block/floppy.c | LOCK_FDC(drive,1); |
| drive | 3032 | drivers/block/floppy.c | LOCK_FDC(drive,1); |
| drive | 3036 | drivers/block/floppy.c | set_bit(drive, &fake_change); |
| drive | 3055 | drivers/block/floppy.c | LOCK_FDC(drive,1); |
| drive | 3060 | drivers/block/floppy.c | user_params[drive] = newparams; |
| drive | 3061 | drivers/block/floppy.c | if (buffer_drive == drive && |
| drive | 3062 | drivers/block/floppy.c | buffer_max > user_params[drive].sect) |
| drive | 3063 | drivers/block/floppy.c | buffer_max=user_params[drive].sect; |
| drive | 3064 | drivers/block/floppy.c | current_type[drive] = &user_params[drive]; |
| drive | 3065 | drivers/block/floppy.c | floppy_sizes[drive] = user_params[drive].size >> 1; |
| drive | 3076 | drivers/block/floppy.c | user_params[drive].sect || |
| drive | 3083 | drivers/block/floppy.c | return user_reset_fdc( drive, (int)param, 1); |
| drive | 3095 | drivers/block/floppy.c | LOCK_FDC(drive,1); |
| drive | 3114 | drivers/block/floppy.c | int drive; |
| drive | 3117 | drivers/block/floppy.c | drive=0; |
| drive | 3120 | drivers/block/floppy.c | drive=1; |
| drive | 3127 | drivers/block/floppy.c | for (drive=0; drive < N_DRIVE; drive++){ |
| drive | 3139 | drivers/block/floppy.c | ALLOWED_DRIVE_MASK |= 1 << drive; |
| drive | 3140 | drivers/block/floppy.c | printk("fd%d is %s", drive, |
| drive | 3143 | drivers/block/floppy.c | printk("fd%d is unknown type %d",drive, |
| drive | 3154 | drivers/block/floppy.c | int drive = DRIVE(inode->i_rdev); |
| drive | 3167 | drivers/block/floppy.c | int drive = DRIVE(inode->i_rdev); |
| drive | 3185 | drivers/block/floppy.c | int drive; |
| drive | 3187 | drivers/block/floppy.c | drive = DRIVE(inode->i_rdev); |
| drive | 3214 | drivers/block/floppy.c | int drive; |
| drive | 3224 | drivers/block/floppy.c | drive = DRIVE(inode->i_rdev); |
| drive | 3226 | drivers/block/floppy.c | if (drive >= N_DRIVE || |
| drive | 3227 | drivers/block/floppy.c | !( ALLOWED_DRIVE_MASK & ( 1 << drive)) || |
| drive | 3228 | drivers/block/floppy.c | fdc_state[FDC(drive)].version == FDC_NONE) |
| drive | 3284 | drivers/block/floppy.c | if (buffer_drive == drive) |
| drive | 3317 | drivers/block/floppy.c | int drive = DRIVE( dev ); |
| drive | 3328 | drivers/block/floppy.c | lock_fdc(drive,0); |
| drive | 3335 | drivers/block/floppy.c | test_bit(drive, &fake_change) || |
| drive | 3336 | drivers/block/floppy.c | (!TYPE(dev) && !current_type[drive])) |
| drive | 3347 | drivers/block/floppy.c | #define NO_GEOM (!current_type[drive] && !TYPE(dev)) |
| drive | 3349 | drivers/block/floppy.c | int drive=DRIVE(dev); |
| drive | 3354 | drivers/block/floppy.c | test_bit(drive, &fake_change) || |
| drive | 3356 | drivers/block/floppy.c | lock_fdc(drive,0); |
| drive | 3358 | drivers/block/floppy.c | if(! (cf || test_bit(drive, &fake_change) || NO_GEOM)){ |
| drive | 3364 | drivers/block/floppy.c | if ( buffer_drive == drive) |
| drive | 3366 | drivers/block/floppy.c | clear_bit(drive, &fake_change); |
| drive | 3583 | drivers/block/floppy.c | int i,drive; |
| drive | 3626 | drivers/block/floppy.c | for (drive = 0; drive < N_DRIVE ; drive++) { |
| drive | 3724 | drivers/block/floppy.c | int drive; |
| drive | 3758 | drivers/block/floppy.c | for(drive=0; drive < N_FDC * 4; drive++) |
| drive | 3759 | drivers/block/floppy.c | if( motor_off_timer[drive].next ) |
| drive | 3760 | drivers/block/floppy.c | printk("motor off timer %d still active\n", drive); |
| drive | 401 | drivers/block/genhd.c | void resetup_one_dev(struct gendisk *dev, int drive) |
| drive | 404 | drivers/block/genhd.c | int first_minor = drive << dev->minor_shift; |
| drive | 424 | drivers/block/genhd.c | int i, drive; |
| drive | 433 | drivers/block/genhd.c | for (drive = 0 ; drive < dev->nr_real ; drive++) { |
| drive | 434 | 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 | 170 | drivers/block/ide-cd.c | #define CDROM_CONFIG_FLAGS(drive) ((struct ide_cd_config_flags *)&((drive)->bios_sect)) |
| drive | 182 | drivers/block/ide-cd.c | #define CDROM_STATE_FLAGS(drive) ((struct ide_cd_state_flags *)&((drive)->bios_head)) |
| drive | 200 | drivers/block/ide-cd.c | void cdrom_in_bytes (ide_drive_t *drive, void *buffer, uint bytecount) |
| drive | 203 | drivers/block/ide-cd.c | ide_input_data (drive, buffer, bytecount / 4); |
| drive | 212 | drivers/block/ide-cd.c | void cdrom_out_bytes (ide_drive_t *drive, void *buffer, uint bytecount) |
| drive | 215 | drivers/block/ide-cd.c | ide_output_data (drive, buffer, bytecount / 4); |
| drive | 372 | drivers/block/ide-cd.c | void cdrom_analyze_sense_data (ide_drive_t *drive, |
| drive | 390 | drivers/block/ide-cd.c | printk ("ATAPI device %s:\n", drive->name); |
| drive | 477 | drivers/block/ide-cd.c | drive->name, |
| drive | 498 | drivers/block/ide-cd.c | static void cdrom_queue_request_sense (ide_drive_t *drive, |
| drive | 508 | drivers/block/ide-cd.c | int major = HWIF(drive)->major; |
| drive | 513 | drivers/block/ide-cd.c | rq = HWGROUP(drive)->rq; |
| drive | 521 | drivers/block/ide-cd.c | HWGROUP(drive)->rq = NULL; |
| drive | 529 | drivers/block/ide-cd.c | reqbuf = &drive->cdrom_info.sense_data; |
| drive | 533 | drivers/block/ide-cd.c | pc = &HWIF(drive)->request_sense_pc; |
| drive | 549 | drivers/block/ide-cd.c | rq = &HWIF(drive)->request_sense_request; |
| drive | 551 | drivers/block/ide-cd.c | rq->rq_dev = MKDEV (major, (drive->select.b.unit) << PARTN_BITS); |
| drive | 574 | drivers/block/ide-cd.c | static void cdrom_end_request (int uptodate, ide_drive_t *drive) |
| drive | 576 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
| drive | 590 | drivers/block/ide-cd.c | cdrom_analyze_sense_data (drive, |
| drive | 595 | drivers/block/ide-cd.c | ide_end_request (uptodate, HWGROUP(drive)); |
| drive | 601 | drivers/block/ide-cd.c | static void cdrom_saw_media_change (ide_drive_t *drive) |
| drive | 603 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->media_changed = 1; |
| drive | 604 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->toc_valid = 0; |
| drive | 605 | drivers/block/ide-cd.c | drive->cdrom_info.nsectors_buffered = 0; |
| drive | 611 | drivers/block/ide-cd.c | static int cdrom_decode_status (ide_drive_t *drive, int good_stat, int *stat_ret) |
| drive | 613 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
| drive | 628 | drivers/block/ide-cd.c | printk ("%s : missing request in cdrom_decode_status\n", drive->name); |
| drive | 641 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
| drive | 642 | drivers/block/ide-cd.c | if (ide_error (drive, "request sense failure", stat)) |
| drive | 656 | drivers/block/ide-cd.c | cdrom_saw_media_change (drive); |
| drive | 664 | drivers/block/ide-cd.c | printk ("%s : tray open or drive not ready\n", drive->name); |
| drive | 670 | drivers/block/ide-cd.c | cdrom_saw_media_change (drive); |
| drive | 671 | drivers/block/ide-cd.c | printk ("%s: media changed\n", drive->name); |
| drive | 677 | drivers/block/ide-cd.c | ide_dump_status (drive, "packet command error", stat); |
| drive | 695 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
| drive | 698 | drivers/block/ide-cd.c | cdrom_queue_request_sense (drive, sem, pc->sense_data, pc); |
| drive | 708 | drivers/block/ide-cd.c | cdrom_saw_media_change (drive); |
| drive | 711 | drivers/block/ide-cd.c | printk ("%s : tray open\n", drive->name); |
| drive | 712 | drivers/block/ide-cd.c | cdrom_end_request (0, drive); |
| drive | 718 | drivers/block/ide-cd.c | cdrom_saw_media_change (drive); |
| drive | 724 | drivers/block/ide-cd.c | cdrom_end_request (0, drive); |
| drive | 731 | drivers/block/ide-cd.c | ide_dump_status (drive, "command error", stat); |
| drive | 732 | drivers/block/ide-cd.c | cdrom_end_request (0, drive); |
| drive | 738 | drivers/block/ide-cd.c | if (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, NULL, NULL, NULL); |
| 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 | 785 | drivers/block/ide-cd.c | ide_set_handler (drive, handler); |
| drive | 791 | drivers/block/ide-cd.c | (*handler) (drive); |
| drive | 803 | drivers/block/ide-cd.c | static int cdrom_transfer_packet_command (ide_drive_t *drive, |
| drive | 807 | drivers/block/ide-cd.c | if (CDROM_CONFIG_FLAGS (drive)->drq_interrupt) |
| drive | 814 | drivers/block/ide-cd.c | if (cdrom_decode_status (drive, DRQ_STAT, &stat_dum)) return 1; |
| drive | 819 | drivers/block/ide-cd.c | if (ide_wait_stat (drive, DRQ_STAT, BUSY_STAT, WAIT_READY)) return 1; |
| drive | 823 | drivers/block/ide-cd.c | ide_set_handler (drive, handler); |
| drive | 826 | drivers/block/ide-cd.c | cdrom_out_bytes (drive, cmd_buf, cmd_len); |
| drive | 844 | drivers/block/ide-cd.c | static void cdrom_buffer_sectors (ide_drive_t *drive, unsigned long sector, |
| drive | 847 | drivers/block/ide-cd.c | struct cdrom_info *info = &drive->cdrom_info; |
| drive | 876 | drivers/block/ide-cd.c | cdrom_in_bytes (drive, dest, SECTOR_SIZE); |
| drive | 887 | drivers/block/ide-cd.c | cdrom_in_bytes (drive, dum, sizeof (dum)); |
| drive | 899 | drivers/block/ide-cd.c | int cdrom_read_check_ireason (ide_drive_t *drive, int len, int ireason) |
| drive | 909 | drivers/block/ide-cd.c | drive->name); |
| drive | 916 | drivers/block/ide-cd.c | cdrom_out_bytes (drive, &dum, sizeof (dum)); |
| drive | 925 | drivers/block/ide-cd.c | drive->name, ireason); |
| drive | 928 | drivers/block/ide-cd.c | cdrom_end_request (0, drive); |
| drive | 937 | drivers/block/ide-cd.c | static void cdrom_read_intr (ide_drive_t *drive) |
| drive | 942 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
| drive | 945 | drivers/block/ide-cd.c | if (cdrom_decode_status (drive, 0, &stat)) return; |
| drive | 959 | drivers/block/ide-cd.c | drive->name, rq->current_nr_sectors); |
| drive | 960 | drivers/block/ide-cd.c | cdrom_end_request (0, drive); |
| drive | 963 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
| drive | 970 | drivers/block/ide-cd.c | if (cdrom_read_check_ireason (drive, len, ireason)) return; |
| drive | 977 | drivers/block/ide-cd.c | drive->name, len); |
| drive | 979 | drivers/block/ide-cd.c | cdrom_end_request (0, drive); |
| drive | 995 | drivers/block/ide-cd.c | cdrom_in_bytes (drive, dum, sizeof (dum)); |
| drive | 1011 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
| drive | 1017 | drivers/block/ide-cd.c | cdrom_buffer_sectors (drive, rq->sector, sectors_to_transfer); |
| drive | 1031 | drivers/block/ide-cd.c | cdrom_in_bytes (drive, rq->buffer, SECTOR_SIZE); |
| drive | 1044 | drivers/block/ide-cd.c | ide_set_handler (drive, &cdrom_read_intr); |
| drive | 1052 | drivers/block/ide-cd.c | static int cdrom_read_from_buffer (ide_drive_t *drive) |
| drive | 1054 | drivers/block/ide-cd.c | struct cdrom_info *info = &drive->cdrom_info; |
| drive | 1055 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
| drive | 1067 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
| drive | 1082 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
| drive | 1088 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
| drive | 1098 | drivers/block/ide-cd.c | drive->name, rq->sector); |
| drive | 1099 | drivers/block/ide-cd.c | cdrom_end_request (0, drive); |
| drive | 1114 | drivers/block/ide-cd.c | static void cdrom_start_read_continuation (ide_drive_t *drive) |
| drive | 1117 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
| drive | 1140 | drivers/block/ide-cd.c | drive->name, rq->current_nr_sectors); |
| drive | 1141 | drivers/block/ide-cd.c | cdrom_end_request (0, drive); |
| drive | 1179 | drivers/block/ide-cd.c | (void) cdrom_transfer_packet_command (drive, pc.c, sizeof (pc.c), |
| drive | 1187 | drivers/block/ide-cd.c | static void cdrom_start_read (ide_drive_t *drive, unsigned int block) |
| drive | 1189 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
| drive | 1196 | drivers/block/ide-cd.c | if (cdrom_read_from_buffer (drive)) |
| drive | 1200 | drivers/block/ide-cd.c | drive->cdrom_info.nsectors_buffered = 0; |
| drive | 1203 | drivers/block/ide-cd.c | cdrom_start_packet_command (drive, 32768, cdrom_start_read_continuation); |
| drive | 1215 | drivers/block/ide-cd.c | cdrom_lockdoor (ide_drive_t *drive, int lockflag, |
| drive | 1221 | drivers/block/ide-cd.c | static void cdrom_pc_intr (ide_drive_t *drive) |
| drive | 1224 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
| drive | 1228 | drivers/block/ide-cd.c | if (cdrom_decode_status (drive, 0, &stat)) return; |
| drive | 1248 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
| drive | 1252 | drivers/block/ide-cd.c | drive->name, pc->buflen); |
| drive | 1254 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
| drive | 1272 | drivers/block/ide-cd.c | drive->name); |
| drive | 1278 | drivers/block/ide-cd.c | cdrom_out_bytes (drive, pc->buffer, thislen); |
| drive | 1285 | drivers/block/ide-cd.c | cdrom_out_bytes (drive, &dum, sizeof (dum)); |
| drive | 1301 | drivers/block/ide-cd.c | drive->name); |
| drive | 1307 | drivers/block/ide-cd.c | cdrom_in_bytes (drive, pc->buffer, thislen); |
| drive | 1314 | drivers/block/ide-cd.c | cdrom_in_bytes (drive, &dum, sizeof (dum)); |
| drive | 1326 | drivers/block/ide-cd.c | drive->name, ireason); |
| drive | 1331 | drivers/block/ide-cd.c | ide_set_handler (drive, &cdrom_pc_intr); |
| drive | 1335 | drivers/block/ide-cd.c | static void cdrom_do_pc_continuation (ide_drive_t *drive) |
| drive | 1337 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
| drive | 1341 | drivers/block/ide-cd.c | cdrom_transfer_packet_command (drive, pc->c, sizeof (pc->c), &cdrom_pc_intr); |
| drive | 1345 | drivers/block/ide-cd.c | static void cdrom_do_packet_command (ide_drive_t *drive) |
| drive | 1348 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
| drive | 1357 | drivers/block/ide-cd.c | cdrom_start_packet_command (drive, len, cdrom_do_pc_continuation); |
| drive | 1373 | drivers/block/ide-cd.c | void cdrom_queue_request (ide_drive_t *drive, struct request *req) |
| drive | 1377 | drivers/block/ide-cd.c | int major = HWIF(drive)->major; |
| drive | 1380 | drivers/block/ide-cd.c | req->rq_dev = MKDEV (major, (drive->select.b.unit) << PARTN_BITS); |
| drive | 1406 | drivers/block/ide-cd.c | int cdrom_queue_packet_command (ide_drive_t *drive, struct packet_command *pc) |
| drive | 1428 | drivers/block/ide-cd.c | cdrom_queue_request (drive, &req); |
| drive | 1468 | drivers/block/ide-cd.c | if (CDROM_STATE_FLAGS (drive)->door_locked == 0 && |
| drive | 1473 | drivers/block/ide-cd.c | (void) cdrom_lockdoor (drive, 1, NULL); |
| drive | 1485 | drivers/block/ide-cd.c | void ide_do_rw_cdrom (ide_drive_t *drive, unsigned long block) |
| drive | 1487 | drivers/block/ide-cd.c | struct request *rq = HWGROUP(drive)->rq; |
| drive | 1490 | drivers/block/ide-cd.c | cdrom_do_packet_command (drive); |
| drive | 1494 | drivers/block/ide-cd.c | cdrom_end_request (1, drive); |
| drive | 1495 | drivers/block/ide-cd.c | if (ide_do_reset (drive)) |
| drive | 1502 | drivers/block/ide-cd.c | cdrom_end_request (0, drive); |
| drive | 1505 | drivers/block/ide-cd.c | cdrom_start_read (drive, block); |
| drive | 1570 | drivers/block/ide-cd.c | cdrom_check_status (ide_drive_t *drive, |
| drive | 1580 | drivers/block/ide-cd.c | return cdrom_queue_packet_command (drive, &pc); |
| drive | 1586 | drivers/block/ide-cd.c | cdrom_lockdoor (ide_drive_t *drive, int lockflag, |
| drive | 1597 | drivers/block/ide-cd.c | if (CDROM_CONFIG_FLAGS (drive)->no_doorlock) |
| drive | 1606 | drivers/block/ide-cd.c | stat = cdrom_queue_packet_command (drive, &pc); |
| drive | 1610 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->door_locked = lockflag; |
| drive | 1617 | drivers/block/ide-cd.c | printk ("%s: door locking not supported\n", drive->name); |
| drive | 1618 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->no_doorlock = 1; |
| drive | 1620 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->door_locked = lockflag; |
| drive | 1630 | drivers/block/ide-cd.c | cdrom_eject (ide_drive_t *drive, int ejectflag, |
| drive | 1640 | drivers/block/ide-cd.c | return cdrom_queue_packet_command (drive, &pc); |
| drive | 1645 | drivers/block/ide-cd.c | cdrom_pause (ide_drive_t *drive, int pauseflag, |
| drive | 1655 | drivers/block/ide-cd.c | return cdrom_queue_packet_command (drive, &pc); |
| drive | 1660 | drivers/block/ide-cd.c | cdrom_startstop (ide_drive_t *drive, int startflag, |
| drive | 1671 | drivers/block/ide-cd.c | return cdrom_queue_packet_command (drive, &pc); |
| drive | 1676 | drivers/block/ide-cd.c | cdrom_read_capacity (ide_drive_t *drive, unsigned *capacity, |
| drive | 1694 | drivers/block/ide-cd.c | stat = cdrom_queue_packet_command (drive, &pc); |
| drive | 1706 | drivers/block/ide-cd.c | cdrom_read_tocentry (ide_drive_t *drive, int trackno, int msf_flag, |
| drive | 1723 | drivers/block/ide-cd.c | return cdrom_queue_packet_command (drive, &pc); |
| drive | 1729 | drivers/block/ide-cd.c | cdrom_read_toc (ide_drive_t *drive, |
| drive | 1734 | drivers/block/ide-cd.c | struct atapi_toc *toc = drive->cdrom_info.toc; |
| drive | 1745 | drivers/block/ide-cd.c | drive->cdrom_info.toc = toc; |
| drive | 1750 | drivers/block/ide-cd.c | printk ("%s: No cdrom TOC buffer!\n", drive->name); |
| drive | 1756 | drivers/block/ide-cd.c | if (CDROM_STATE_FLAGS (drive)->toc_valid) |
| drive | 1757 | drivers/block/ide-cd.c | (void) cdrom_check_status (drive, NULL); |
| drive | 1759 | drivers/block/ide-cd.c | if (CDROM_STATE_FLAGS (drive)->toc_valid) return 0; |
| drive | 1762 | drivers/block/ide-cd.c | msf_flag = (CDROM_CONFIG_FLAGS (drive)->no_lba_toc); |
| drive | 1765 | drivers/block/ide-cd.c | stat = cdrom_read_tocentry (drive, 0, msf_flag, 0, (char *)&toc->hdr, |
| drive | 1776 | drivers/block/ide-cd.c | stat = cdrom_read_tocentry (drive, 0, msf_flag, 0, (char *)&toc->hdr, |
| drive | 1794 | drivers/block/ide-cd.c | stat = cdrom_read_tocentry (drive, 0, msf_flag, 1, |
| drive | 1811 | drivers/block/ide-cd.c | stat = cdrom_read_capacity (drive, &toc->capacity, reqbuf); |
| drive | 1814 | drivers/block/ide-cd.c | HWIF(drive)->gd->sizes[drive->select.b.unit << PARTN_BITS] |
| drive | 1816 | drivers/block/ide-cd.c | drive->part[0].nr_sects = toc->capacity * SECTORS_PER_FRAME; |
| drive | 1819 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->toc_valid = 1; |
| drive | 1826 | drivers/block/ide-cd.c | cdrom_read_subchannel (ide_drive_t *drive, |
| drive | 1842 | drivers/block/ide-cd.c | return cdrom_queue_packet_command (drive, &pc); |
| drive | 1848 | drivers/block/ide-cd.c | cdrom_mode_sense (ide_drive_t *drive, int pageno, int modeflag, |
| drive | 1863 | drivers/block/ide-cd.c | return cdrom_queue_packet_command (drive, &pc); |
| drive | 1868 | drivers/block/ide-cd.c | cdrom_mode_select (ide_drive_t *drive, int pageno, char *buf, int buflen, |
| drive | 1883 | drivers/block/ide-cd.c | return cdrom_queue_packet_command (drive, &pc); |
| drive | 1888 | drivers/block/ide-cd.c | cdrom_play_lba_range_play12 (ide_drive_t *drive, int lba_start, int lba_end, |
| drive | 1902 | drivers/block/ide-cd.c | return cdrom_queue_packet_command (drive, &pc); |
| drive | 1907 | drivers/block/ide-cd.c | cdrom_play_lba_range_msf (ide_drive_t *drive, int lba_start, int lba_end, |
| drive | 1919 | drivers/block/ide-cd.c | if (CDROM_CONFIG_FLAGS (drive)->msf_as_bcd) |
| drive | 1929 | drivers/block/ide-cd.c | return cdrom_queue_packet_command (drive, &pc); |
| drive | 1936 | drivers/block/ide-cd.c | cdrom_play_lba_range (ide_drive_t *drive, int lba_start, int lba_end, |
| drive | 1950 | drivers/block/ide-cd.c | if (CDROM_CONFIG_FLAGS (drive)->no_playaudio12) |
| drive | 1951 | drivers/block/ide-cd.c | return cdrom_play_lba_range_msf (drive, lba_start, lba_end, reqbuf); |
| drive | 1960 | drivers/block/ide-cd.c | stat = cdrom_play_lba_range_play12 (drive, lba_start, lba_end, reqbuf); |
| drive | 1969 | drivers/block/ide-cd.c | "trying PLAYAUDIO_MSF\n", drive->name); |
| drive | 1970 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->no_playaudio12 = 1; |
| drive | 1971 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->msf_as_bcd = 1; |
| drive | 1972 | drivers/block/ide-cd.c | return cdrom_play_lba_range_msf (drive, lba_start, lba_end, reqbuf); |
| drive | 1982 | drivers/block/ide-cd.c | int cdrom_get_toc_entry (ide_drive_t *drive, int track, |
| drive | 1990 | drivers/block/ide-cd.c | stat = cdrom_read_toc (drive, reqbuf); |
| drive | 1993 | drivers/block/ide-cd.c | toc = drive->cdrom_info.toc; |
| drive | 2010 | drivers/block/ide-cd.c | cdrom_read_block (ide_drive_t *drive, int format, int lba, |
| drive | 2027 | drivers/block/ide-cd.c | if (CDROM_CONFIG_FLAGS (drive)->old_readcd) |
| drive | 2038 | drivers/block/ide-cd.c | stat = cdrom_queue_packet_command (drive, &pc); |
| drive | 2043 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->old_readcd == 0) |
| drive | 2046 | drivers/block/ide-cd.c | drive->name); |
| drive | 2047 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->old_readcd = 1; |
| drive | 2048 | drivers/block/ide-cd.c | return cdrom_read_block (drive, format, lba, buf, buflen, reqbuf); |
| drive | 2055 | drivers/block/ide-cd.c | int ide_cdrom_ioctl (ide_drive_t *drive, struct inode *inode, |
| drive | 2064 | drivers/block/ide-cd.c | if (drive->usage > 1) |
| drive | 2067 | drivers/block/ide-cd.c | stat = cdrom_lockdoor (drive, 0, NULL); |
| drive | 2070 | drivers/block/ide-cd.c | return cdrom_eject (drive, 0, NULL); |
| drive | 2075 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->eject_on_close = arg; |
| drive | 2080 | drivers/block/ide-cd.c | return cdrom_pause (drive, 1, NULL); |
| drive | 2083 | drivers/block/ide-cd.c | return cdrom_pause (drive, 0, NULL); |
| drive | 2086 | drivers/block/ide-cd.c | return cdrom_startstop (drive, 1, NULL); |
| drive | 2092 | drivers/block/ide-cd.c | stat = cdrom_startstop (drive, 0, NULL); |
| drive | 2095 | drivers/block/ide-cd.c | return cdrom_eject (drive, 1, NULL); |
| drive | 2115 | drivers/block/ide-cd.c | return cdrom_play_lba_range (drive, lba_start, lba_end, NULL); |
| drive | 2131 | drivers/block/ide-cd.c | stat = cdrom_get_toc_entry (drive, ti.cdti_trk0, &first_toc, NULL); |
| drive | 2133 | drivers/block/ide-cd.c | stat = cdrom_get_toc_entry (drive, ti.cdti_trk1, &last_toc, NULL); |
| drive | 2142 | drivers/block/ide-cd.c | return cdrom_play_lba_range (drive, lba_start, lba_end, NULL); |
| drive | 2155 | drivers/block/ide-cd.c | stat = cdrom_read_toc (drive, NULL); |
| drive | 2158 | drivers/block/ide-cd.c | toc = drive->cdrom_info.toc; |
| drive | 2180 | drivers/block/ide-cd.c | stat = cdrom_get_toc_entry (drive, tocentry.cdte_track, &toce, NULL); |
| drive | 2215 | drivers/block/ide-cd.c | stat = cdrom_read_subchannel (drive, buffer, sizeof (buffer), NULL); |
| drive | 2260 | drivers/block/ide-cd.c | stat = cdrom_mode_sense (drive, 0x0e, 0, buffer, sizeof (buffer),NULL); |
| drive | 2262 | drivers/block/ide-cd.c | stat = cdrom_mode_sense (drive, 0x0e, 1, mask , sizeof (buffer),NULL); |
| drive | 2272 | drivers/block/ide-cd.c | return cdrom_mode_select (drive, 0x0e, buffer, sizeof (buffer), NULL); |
| drive | 2284 | drivers/block/ide-cd.c | stat = cdrom_mode_sense (drive, 0x0e, 0, buffer, sizeof (buffer), NULL); |
| drive | 2311 | drivers/block/ide-cd.c | stat = cdrom_read_toc (drive, NULL); |
| drive | 2314 | drivers/block/ide-cd.c | toc = drive->cdrom_info.toc; |
| drive | 2344 | drivers/block/ide-cd.c | stat = cdrom_read_toc (drive, NULL); |
| drive | 2347 | drivers/block/ide-cd.c | toc = drive->cdrom_info.toc; |
| drive | 2378 | drivers/block/ide-cd.c | stat = cdrom_read_block (drive, 1, lba, buf, |
| drive | 2419 | drivers/block/ide-cd.c | stat = cdrom_read_toc (drive, NULL); |
| drive | 2422 | drivers/block/ide-cd.c | toc = drive->cdrom_info.toc; |
| drive | 2427 | drivers/block/ide-cd.c | stat = cdrom_read_block (drive, format, lba, buf, blocksize, NULL); |
| drive | 2440 | drivers/block/ide-cd.c | cdrom_queue_request (drive, &req); |
| drive | 2480 | drivers/block/ide-cd.c | stat = cdrom_queue_packet_command (drive, &pc); |
| drive | 2502 | drivers/block/ide-cd.c | int ide_cdrom_check_media_change (ide_drive_t *drive) |
| drive | 2506 | drivers/block/ide-cd.c | (void) cdrom_check_status (drive, NULL); |
| drive | 2508 | drivers/block/ide-cd.c | retval = CDROM_STATE_FLAGS (drive)->media_changed; |
| drive | 2509 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->media_changed = 0; |
| drive | 2515 | drivers/block/ide-cd.c | int ide_cdrom_open (struct inode *ip, struct file *fp, ide_drive_t *drive) |
| drive | 2520 | drivers/block/ide-cd.c | --drive->usage; |
| drive | 2525 | drivers/block/ide-cd.c | if (drive->usage == 1) |
| drive | 2532 | drivers/block/ide-cd.c | stat = cdrom_check_status (drive, &my_reqbuf); |
| drive | 2537 | drivers/block/ide-cd.c | cdrom_eject (drive, 1, &my_reqbuf); |
| drive | 2538 | drivers/block/ide-cd.c | stat = cdrom_check_status (drive, &my_reqbuf); |
| drive | 2544 | drivers/block/ide-cd.c | --drive->usage; |
| drive | 2549 | drivers/block/ide-cd.c | (void) cdrom_lockdoor (drive, 1, &my_reqbuf); |
| drive | 2552 | drivers/block/ide-cd.c | (void) cdrom_read_toc (drive, &my_reqbuf); |
| drive | 2563 | drivers/block/ide-cd.c | void ide_cdrom_release (struct inode *inode, struct file *file, ide_drive_t *drive) |
| drive | 2565 | drivers/block/ide-cd.c | if (drive->usage == 0) |
| drive | 2570 | drivers/block/ide-cd.c | (void) cdrom_lockdoor (drive, 0, NULL); |
| drive | 2573 | drivers/block/ide-cd.c | if (CDROM_STATE_FLAGS (drive)->eject_on_close) |
| drive | 2574 | drivers/block/ide-cd.c | (void) cdrom_eject (drive, 0, NULL); |
| drive | 2584 | drivers/block/ide-cd.c | void ide_cdrom_setup (ide_drive_t *drive) |
| drive | 2586 | drivers/block/ide-cd.c | blksize_size[HWIF(drive)->major][drive->select.b.unit << PARTN_BITS] = CD_FRAMESIZE; |
| drive | 2588 | drivers/block/ide-cd.c | drive->special.all = 0; |
| drive | 2589 | drivers/block/ide-cd.c | drive->ready_stat = 0; |
| drive | 2591 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->media_changed = 0; |
| drive | 2592 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->toc_valid = 0; |
| drive | 2593 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->door_locked = 0; |
| drive | 2596 | drivers/block/ide-cd.c | CDROM_STATE_FLAGS (drive)->eject_on_close= 0; |
| drive | 2598 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->no_doorlock = 0; |
| drive | 2599 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->no_playaudio12 = 0; |
| drive | 2600 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->old_readcd = 0; |
| drive | 2601 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->no_lba_toc = 0; |
| drive | 2602 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->msf_as_bcd = 0; |
| drive | 2603 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->drq_interrupt = |
| drive | 2604 | drivers/block/ide-cd.c | ((drive->id->config & 0x0060) == 0x20); |
| drive | 2607 | drivers/block/ide-cd.c | if (strcmp (drive->id->model, "CD220E") == 0) /* Creative Labs */ |
| drive | 2608 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->no_lba_toc = 1; |
| drive | 2610 | drivers/block/ide-cd.c | else if (strcmp (drive->id->model, "TO-ICSLYAL") == 0 || /* Acer CD525E */ |
| drive | 2611 | drivers/block/ide-cd.c | strcmp (drive->id->model, "OTI-SCYLLA") == 0) |
| drive | 2612 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->no_lba_toc = 1; |
| drive | 2614 | drivers/block/ide-cd.c | else if (strcmp (drive->id->model, "CDA26803I SE") == 0) /* Aztech */ |
| drive | 2616 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->no_lba_toc = 1; |
| drive | 2619 | drivers/block/ide-cd.c | CDROM_CONFIG_FLAGS (drive)->no_playaudio12 = 1; |
| drive | 2622 | drivers/block/ide-cd.c | drive->cdrom_info.toc = NULL; |
| drive | 2623 | drivers/block/ide-cd.c | drive->cdrom_info.sector_buffer = NULL; |
| drive | 2624 | drivers/block/ide-cd.c | drive->cdrom_info.sector_buffered = 0; |
| drive | 2625 | drivers/block/ide-cd.c | drive->cdrom_info.nsectors_buffered = 0; |
| drive | 274 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
| drive | 277 | drivers/block/ide.c | drive->select.all = (unit<<4)|0xa0; |
| drive | 278 | drivers/block/ide.c | drive->hwif = hwif; |
| drive | 279 | drivers/block/ide.c | drive->ctl = 0x08; |
| drive | 280 | drivers/block/ide.c | drive->ready_stat = READY_STAT; |
| drive | 281 | drivers/block/ide.c | drive->bad_wstat = BAD_W_STAT; |
| drive | 282 | drivers/block/ide.c | drive->special.b.recalibrate = 1; |
| drive | 283 | drivers/block/ide.c | drive->special.b.set_geometry = 1; |
| drive | 284 | drivers/block/ide.c | drive->name[0] = 'h'; |
| drive | 285 | drivers/block/ide.c | drive->name[1] = 'd'; |
| drive | 286 | drivers/block/ide.c | drive->name[2] = 'a' + (h * MAX_DRIVES) + unit; |
| drive | 308 | drivers/block/ide.c | void ide_input_data (ide_drive_t *drive, void *buffer, unsigned int wcount) |
| drive | 310 | drivers/block/ide.c | unsigned short io_base = HWIF(drive)->io_base; |
| drive | 313 | drivers/block/ide.c | if (drive->vlb_32bit) { |
| drive | 315 | drivers/block/ide.c | if (drive->vlb_sync) { |
| drive | 319 | drivers/block/ide.c | if (drive->unmask) |
| drive | 331 | drivers/block/ide.c | void ide_output_data (ide_drive_t *drive, void *buffer, unsigned int wcount) |
| drive | 333 | drivers/block/ide.c | unsigned short io_base = HWIF(drive)->io_base; |
| drive | 336 | drivers/block/ide.c | if (drive->vlb_32bit) { |
| drive | 338 | drivers/block/ide.c | if (drive->vlb_sync) { |
| drive | 342 | drivers/block/ide.c | if (drive->unmask) |
| drive | 389 | drivers/block/ide.c | void ide_set_handler (ide_drive_t *drive, ide_handler_t *handler) |
| drive | 391 | drivers/block/ide.c | ide_hwgroup_t *hwgroup = HWGROUP(drive); |
| drive | 394 | drivers/block/ide.c | printk("%s: ide_set_handler: old handler not null\n", drive->name); |
| drive | 431 | drivers/block/ide.c | static unsigned long current_capacity (ide_drive_t *drive) |
| drive | 433 | drivers/block/ide.c | struct hd_driveid *id = drive->id; |
| drive | 436 | drivers/block/ide.c | if (!drive->present) |
| drive | 438 | drivers/block/ide.c | if (drive->media != disk) |
| drive | 442 | drivers/block/ide.c | drive->select.b.lba = 1; |
| drive | 445 | drivers/block/ide.c | drive->select.b.lba = 0; |
| drive | 446 | drivers/block/ide.c | capacity = drive->cyl * drive->head * drive->sect; |
| drive | 448 | drivers/block/ide.c | return (capacity - drive->sect0); |
| drive | 461 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
| drive | 462 | drivers/block/ide.c | drive->part[0].nr_sects = current_capacity(drive); |
| drive | 463 | drivers/block/ide.c | if (!drive->present || drive->media != disk) { |
| drive | 464 | drivers/block/ide.c | drive->part[0].start_sect = -1; /* skip partition check */ |
| drive | 555 | drivers/block/ide.c | static void reset_ihandler (ide_drive_t *drive) |
| drive | 561 | drivers/block/ide.c | unexpected_intr (HWIF(drive)->irq, HWGROUP(drive)); |
| drive | 591 | drivers/block/ide.c | ide_drive_t *drive = hwgroup->drive; |
| drive | 594 | drivers/block/ide.c | OUT_BYTE (drive->select.all, IDE_SELECT_REG); |
| drive | 602 | drivers/block/ide.c | printk("%s: ATAPI reset timed-out, status=0x%02x\n", drive->name, stat); |
| drive | 603 | drivers/block/ide.c | return ide_do_reset (drive); /* do it the old fashioned way */ |
| drive | 608 | drivers/block/ide.c | printk("%s: ATAPI reset complete\n", drive->name); |
| drive | 624 | drivers/block/ide.c | ide_drive_t *drive = hwgroup->drive; |
| drive | 682 | drivers/block/ide.c | int ide_do_reset (ide_drive_t *drive) |
| drive | 686 | drivers/block/ide.c | ide_hwif_t *hwif = HWIF(drive); |
| drive | 687 | drivers/block/ide.c | ide_hwgroup_t *hwgroup = HWGROUP(drive); |
| drive | 694 | drivers/block/ide.c | if (drive->media == cdrom) { |
| drive | 697 | drivers/block/ide.c | if (!drive->keep_settings) |
| drive | 698 | drivers/block/ide.c | drive->unmask = 0; |
| drive | 699 | drivers/block/ide.c | OUT_BYTE (drive->select.all, IDE_SELECT_REG); |
| drive | 739 | drivers/block/ide.c | OUT_BYTE(drive->ctl|6,IDE_CONTROL_REG); /* set SRST and nIEN */ |
| drive | 741 | drivers/block/ide.c | OUT_BYTE(drive->ctl|2,IDE_CONTROL_REG); /* clear SRST, leave nIEN */ |
| drive | 753 | drivers/block/ide.c | static void end_drive_cmd (ide_drive_t *drive, byte stat, byte err) |
| drive | 756 | drivers/block/ide.c | struct request *rq = HWGROUP(drive)->rq; |
| drive | 768 | drivers/block/ide.c | HWGROUP(drive)->rq = NULL; |
| drive | 775 | drivers/block/ide.c | byte ide_dump_status (ide_drive_t *drive, const char *msg, byte stat) |
| drive | 782 | drivers/block/ide.c | printk("%s: %s: status=0x%02x", drive->name, msg, stat); |
| drive | 784 | drivers/block/ide.c | if (drive->media == disk) { |
| drive | 803 | drivers/block/ide.c | printk("%s: %s: error=0x%02x", drive->name, msg, err); |
| drive | 805 | drivers/block/ide.c | if (drive->media == disk) { |
| drive | 829 | drivers/block/ide.c | if (HWGROUP(drive)->rq) |
| drive | 830 | drivers/block/ide.c | printk(", sector=%ld", HWGROUP(drive)->rq->sector); |
| drive | 847 | drivers/block/ide.c | static void try_to_flush_leftover_data (ide_drive_t *drive) |
| drive | 849 | drivers/block/ide.c | int i = (drive->mult_count ? drive->mult_count : 1) * SECTOR_WORDS; |
| drive | 855 | drivers/block/ide.c | ide_input_data (drive, buffer, wcount); |
| drive | 866 | drivers/block/ide.c | int ide_error (ide_drive_t *drive, const char *msg, byte stat) |
| drive | 871 | drivers/block/ide.c | err = ide_dump_status(drive, msg, stat); |
| drive | 872 | drivers/block/ide.c | if ((rq = HWGROUP(drive)->rq) == NULL || drive == NULL) |
| drive | 875 | drivers/block/ide.c | end_drive_cmd(drive, stat, err); |
| drive | 881 | drivers/block/ide.c | if (drive->media == disk && (stat & ERR_STAT)) { |
| drive | 889 | drivers/block/ide.c | try_to_flush_leftover_data(drive); |
| drive | 895 | drivers/block/ide.c | if (rq->errors > 3 && drive->using_dma) { /* DMA troubles? */ |
| drive | 896 | drivers/block/ide.c | drive->using_dma = 0; |
| drive | 897 | drivers/block/ide.c | printk("%s: DMA disabled\n", drive->name); |
| drive | 903 | drivers/block/ide.c | ide_end_request(0, HWGROUP(drive)); |
| drive | 907 | drivers/block/ide.c | return ide_do_reset(drive); |
| drive | 909 | drivers/block/ide.c | drive->special.b.recalibrate = 1; |
| drive | 918 | drivers/block/ide.c | static void read_intr (ide_drive_t *drive) |
| drive | 927 | drivers/block/ide.c | if (!ide_error(drive, "read_intr", stat)) |
| drive | 931 | drivers/block/ide.c | msect = drive->mult_count; |
| drive | 933 | drivers/block/ide.c | rq = HWGROUP(drive)->rq; |
| drive | 940 | drivers/block/ide.c | ide_input_data(drive, rq->buffer, nsect * SECTOR_WORDS); |
| drive | 943 | drivers/block/ide.c | drive->name, rq->sector, rq->sector+nsect-1, |
| drive | 951 | drivers/block/ide.c | ide_end_request(1, HWGROUP(drive)); |
| drive | 955 | drivers/block/ide.c | ide_set_handler (drive, &read_intr); |
| drive | 964 | drivers/block/ide.c | static void write_intr (ide_drive_t *drive) |
| drive | 968 | drivers/block/ide.c | struct request *rq = HWGROUP(drive)->rq; |
| drive | 970 | drivers/block/ide.c | if (OK_STAT(stat=GET_STAT(),DRIVE_READY,drive->bad_wstat)) { |
| drive | 973 | drivers/block/ide.c | drive->name, rq->sector, (unsigned long) rq->buffer, |
| drive | 983 | drivers/block/ide.c | ide_end_request(1, HWGROUP(drive)); |
| drive | 985 | drivers/block/ide.c | ide_output_data (drive, rq->buffer, SECTOR_WORDS); |
| drive | 986 | drivers/block/ide.c | ide_set_handler (drive, &write_intr); |
| drive | 994 | drivers/block/ide.c | if (!ide_error(drive, "write_intr", stat)) |
| drive | 1002 | drivers/block/ide.c | static void multwrite (ide_drive_t *drive) |
| drive | 1004 | drivers/block/ide.c | struct request *rq = &HWGROUP(drive)->wrq; |
| drive | 1005 | drivers/block/ide.c | unsigned int mcount = drive->mult_count; |
| drive | 1013 | drivers/block/ide.c | ide_output_data(drive, rq->buffer, nsect<<7); |
| drive | 1016 | drivers/block/ide.c | drive->name, rq->sector, (unsigned long) rq->buffer, |
| drive | 1026 | drivers/block/ide.c | panic("%s: buffer list corrupted\n", drive->name); |
| drive | 1038 | drivers/block/ide.c | static void multwrite_intr (ide_drive_t *drive) |
| drive | 1042 | drivers/block/ide.c | struct request *rq = &HWGROUP(drive)->wrq; |
| drive | 1044 | drivers/block/ide.c | if (OK_STAT(stat=GET_STAT(),DRIVE_READY,drive->bad_wstat)) { |
| drive | 1047 | drivers/block/ide.c | multwrite(drive); |
| drive | 1048 | drivers/block/ide.c | ide_set_handler (drive, &multwrite_intr); |
| drive | 1053 | drivers/block/ide.c | rq = HWGROUP(drive)->rq; |
| drive | 1056 | drivers/block/ide.c | ide_end_request(1, HWGROUP(drive)); |
| drive | 1064 | drivers/block/ide.c | if (!ide_error(drive, "multwrite_intr", stat)) |
| drive | 1072 | drivers/block/ide.c | static void ide_cmd(ide_drive_t *drive, byte cmd, byte nsect, ide_handler_t *handler) |
| drive | 1074 | drivers/block/ide.c | ide_set_handler (drive, handler); |
| drive | 1075 | drivers/block/ide.c | OUT_BYTE(drive->ctl,IDE_CONTROL_REG); |
| drive | 1083 | drivers/block/ide.c | static void set_multmode_intr (ide_drive_t *drive) |
| drive | 1089 | drivers/block/ide.c | drive->mult_count = drive->mult_req; |
| drive | 1091 | drivers/block/ide.c | drive->mult_req = drive->mult_count = 0; |
| drive | 1092 | drivers/block/ide.c | drive->special.b.recalibrate = 1; |
| drive | 1093 | drivers/block/ide.c | (void) ide_dump_status(drive, "set_multmode", stat); |
| drive | 1101 | drivers/block/ide.c | static void set_geometry_intr (ide_drive_t *drive) |
| drive | 1107 | drivers/block/ide.c | if (ide_error(drive, "set_geometry_intr", stat)) |
| drive | 1115 | drivers/block/ide.c | static void recal_intr (ide_drive_t *drive) |
| drive | 1121 | drivers/block/ide.c | if (ide_error(drive, "recal_intr", stat)) |
| drive | 1129 | drivers/block/ide.c | static void drive_cmd_intr (ide_drive_t *drive) |
| drive | 1135 | drivers/block/ide.c | end_drive_cmd (drive, stat, GET_ERR()); |
| drive | 1136 | drivers/block/ide.c | else if (ide_error(drive, "drive_cmd", stat)) /* calls end_drive_cmd */ |
| drive | 1146 | drivers/block/ide.c | static inline void do_special (ide_drive_t *drive) |
| drive | 1148 | drivers/block/ide.c | special_t *s = &drive->special; |
| drive | 1150 | drivers/block/ide.c | printk("%s: do_special: 0x%02x\n", drive->name, s->all); |
| drive | 1154 | drivers/block/ide.c | if (drive->media == disk) { |
| drive | 1155 | drivers/block/ide.c | OUT_BYTE(drive->sect,IDE_SECTOR_REG); |
| drive | 1156 | drivers/block/ide.c | OUT_BYTE(drive->cyl,IDE_LCYL_REG); |
| drive | 1157 | drivers/block/ide.c | OUT_BYTE(drive->cyl>>8,IDE_HCYL_REG); |
| drive | 1158 | drivers/block/ide.c | OUT_BYTE(((drive->head-1)|drive->select.all)&0xBF,IDE_SELECT_REG); |
| drive | 1159 | drivers/block/ide.c | ide_cmd(drive, WIN_SPECIFY, drive->sect, &set_geometry_intr); |
| drive | 1163 | drivers/block/ide.c | if (drive->media == disk) { |
| drive | 1164 | drivers/block/ide.c | ide_cmd(drive, WIN_RESTORE, drive->sect, &recal_intr); |
| drive | 1168 | drivers/block/ide.c | if (drive->media == disk) { |
| drive | 1169 | drivers/block/ide.c | if (drive->id && drive->mult_req > drive->id->max_multsect) |
| drive | 1170 | drivers/block/ide.c | drive->mult_req = drive->id->max_multsect; |
| drive | 1171 | drivers/block/ide.c | ide_cmd(drive, WIN_SETMULT, drive->mult_req, &set_multmode_intr); |
| drive | 1173 | drivers/block/ide.c | drive->mult_req = 0; |
| drive | 1176 | drivers/block/ide.c | printk("%s: bad special flag: 0x%02x\n", drive->name, s->all); |
| drive | 1191 | drivers/block/ide.c | int ide_wait_stat (ide_drive_t *drive, byte good, byte bad, unsigned long timeout) |
| drive | 1200 | drivers/block/ide.c | (void) ide_error(drive, "status error", stat); |
| drive | 1215 | drivers/block/ide.c | (void) ide_error(drive, "status timeout", GET_STAT()); |
| drive | 1224 | drivers/block/ide.c | static inline void do_rw_disk (ide_drive_t *drive, struct request *rq, unsigned long block) |
| drive | 1226 | drivers/block/ide.c | unsigned short io_base = HWIF(drive)->io_base; |
| drive | 1228 | drivers/block/ide.c | OUT_BYTE(drive->ctl,IDE_CONTROL_REG); |
| drive | 1230 | drivers/block/ide.c | if (drive->select.b.lba) { |
| drive | 1233 | drivers/block/ide.c | drive->name, (rq->cmd==READ)?"read":"writ", |
| drive | 1239 | drivers/block/ide.c | OUT_BYTE(((block>>8)&0x0f)|drive->select.all,io_base+IDE_SELECT_OFFSET); |
| drive | 1242 | drivers/block/ide.c | track = block / drive->sect; |
| drive | 1243 | drivers/block/ide.c | sect = block % drive->sect + 1; |
| drive | 1245 | drivers/block/ide.c | head = track % drive->head; |
| drive | 1246 | drivers/block/ide.c | cyl = track / drive->head; |
| drive | 1249 | drivers/block/ide.c | OUT_BYTE(head|drive->select.all,io_base+IDE_SELECT_OFFSET); |
| drive | 1252 | drivers/block/ide.c | drive->name, (rq->cmd==READ)?"read":"writ", cyl, |
| drive | 1258 | drivers/block/ide.c | if (drive->using_dma && !(HWIF(drive)->dmaproc(ide_dma_read, drive))) |
| drive | 1261 | drivers/block/ide.c | ide_set_handler(drive, &read_intr); |
| drive | 1262 | drivers/block/ide.c | OUT_BYTE(drive->mult_count ? WIN_MULTREAD : WIN_READ, io_base+IDE_COMMAND_OFFSET); |
| drive | 1267 | drivers/block/ide.c | if (drive->using_dma && !(HWIF(drive)->dmaproc(ide_dma_write, drive))) |
| drive | 1270 | drivers/block/ide.c | OUT_BYTE(drive->mult_count ? WIN_MULTWRITE : WIN_WRITE, io_base+IDE_COMMAND_OFFSET); |
| drive | 1271 | drivers/block/ide.c | if (ide_wait_stat(drive, DATA_READY, drive->bad_wstat, WAIT_DRQ)) { |
| drive | 1272 | drivers/block/ide.c | printk("%s: no DRQ after issuing %s\n", drive->name, |
| drive | 1273 | drivers/block/ide.c | drive->mult_count ? "MULTWRITE" : "WRITE"); |
| drive | 1276 | drivers/block/ide.c | if (!drive->unmask) |
| drive | 1278 | drivers/block/ide.c | if (drive->mult_count) { |
| drive | 1279 | drivers/block/ide.c | HWGROUP(drive)->wrq = *rq; /* scratchpad */ |
| drive | 1280 | drivers/block/ide.c | ide_set_handler (drive, &multwrite_intr); |
| drive | 1281 | drivers/block/ide.c | multwrite(drive); |
| drive | 1283 | drivers/block/ide.c | ide_set_handler (drive, &write_intr); |
| drive | 1284 | drivers/block/ide.c | ide_output_data(drive, rq->buffer, SECTOR_WORDS); |
| drive | 1292 | drivers/block/ide.c | drive->name, args[0], args[1], args[2]); |
| drive | 1294 | drivers/block/ide.c | ide_cmd(drive, args[0], args[1], &drive_cmd_intr); |
| drive | 1302 | drivers/block/ide.c | printk("%s: DRIVE_CMD (null)\n", drive->name); |
| drive | 1304 | drivers/block/ide.c | end_drive_cmd(drive, GET_STAT(), GET_ERR()); |
| drive | 1308 | drivers/block/ide.c | printk("%s: bad command: %d\n", drive->name, rq->cmd); |
| drive | 1309 | drivers/block/ide.c | ide_end_request(0, HWGROUP(drive)); |
| drive | 1319 | drivers/block/ide.c | ide_drive_t *drive; |
| drive | 1332 | drivers/block/ide.c | drive = &hwif->drives[unit]; |
| drive | 1335 | drivers/block/ide.c | printk("%s: block not locked\n", drive->name); |
| drive | 1341 | drivers/block/ide.c | if ((blockend < block) || (blockend > drive->part[minor&PARTN_MASK].nr_sects)) { |
| drive | 1342 | drivers/block/ide.c | printk("%s%c: bad access: block=%ld, count=%ld\n", drive->name, |
| drive | 1346 | drivers/block/ide.c | block += drive->part[minor&PARTN_MASK].start_sect + drive->sect0; |
| drive | 1348 | drivers/block/ide.c | if (block == 0 && drive->ezdrive) { |
| drive | 1350 | drivers/block/ide.c | printk("%s: [EZD] accessing sector 1 instead of sector 0\n", drive->name); |
| drive | 1353 | drivers/block/ide.c | ((ide_hwgroup_t *)hwif->hwgroup)->drive = drive; |
| drive | 1361 | drivers/block/ide.c | OUT_BYTE(drive->select.all,IDE_SELECT_REG); |
| drive | 1362 | drivers/block/ide.c | if (ide_wait_stat(drive, drive->ready_stat, BUSY_STAT|DRQ_STAT, WAIT_READY)) { |
| drive | 1363 | drivers/block/ide.c | printk("%s: drive not ready for command\n", drive->name); |
| drive | 1367 | drivers/block/ide.c | if (!drive->special.all) { |
| drive | 1369 | drivers/block/ide.c | switch (drive->media) { |
| drive | 1371 | drivers/block/ide.c | do_rw_disk (drive, rq, block); |
| drive | 1374 | drivers/block/ide.c | ide_do_rw_cdrom (drive, block); |
| drive | 1378 | drivers/block/ide.c | drive->name, drive->media); |
| drive | 1382 | drivers/block/ide.c | do_rw_disk (drive, rq, block); /* simpler and faster */ |
| drive | 1386 | drivers/block/ide.c | do_special(drive); |
| drive | 1418 | drivers/block/ide.c | hwgroup->drive = NULL; /* paranoia */ |
| drive | 1482 | drivers/block/ide.c | ide_drive_t *drive = hwgroup->drive; |
| drive | 1493 | drivers/block/ide.c | printk("%s: marginal timeout\n", drive->name); |
| drive | 1497 | drivers/block/ide.c | (void) hwgroup->hwif->dmaproc (ide_dma_abort, drive); |
| drive | 1498 | drivers/block/ide.c | if (!ide_error(drive, "irq timeout", GET_STAT())) |
| drive | 1552 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
| drive | 1553 | drivers/block/ide.c | if (!drive->present) |
| drive | 1555 | drivers/block/ide.c | if (!OK_STAT(stat=GET_STAT(), drive->ready_stat, BAD_STAT)) |
| drive | 1556 | drivers/block/ide.c | (void) ide_dump_status(drive, "unexpected_intr", stat); |
| drive | 1558 | drivers/block/ide.c | try_to_flush_leftover_data(drive); |
| drive | 1573 | drivers/block/ide.c | ide_drive_t *drive = hwgroup->drive; |
| drive | 1576 | drivers/block/ide.c | if (drive->unmask) |
| drive | 1578 | drivers/block/ide.c | handler(drive); |
| drive | 1599 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
| drive | 1600 | drivers/block/ide.c | if (drive->present) |
| drive | 1601 | drivers/block/ide.c | return drive; |
| drive | 1661 | drivers/block/ide.c | ide_drive_t *drive; |
| drive | 1664 | drivers/block/ide.c | if ((drive = get_info_ptr(inode->i_rdev)) == NULL) |
| drive | 1668 | drivers/block/ide.c | while (drive->busy) |
| drive | 1669 | drivers/block/ide.c | sleep_on(&drive->wqueue); |
| drive | 1670 | drivers/block/ide.c | drive->usage++; |
| drive | 1673 | drivers/block/ide.c | if (drive->media == cdrom) |
| drive | 1674 | drivers/block/ide.c | return ide_cdrom_open (inode, filp, drive); |
| drive | 1676 | drivers/block/ide.c | if (drive->removeable) { |
| drive | 1690 | drivers/block/ide.c | ide_drive_t *drive; |
| drive | 1692 | drivers/block/ide.c | if ((drive = get_info_ptr(inode->i_rdev)) != NULL) { |
| drive | 1694 | drivers/block/ide.c | drive->usage--; |
| drive | 1696 | drivers/block/ide.c | if (drive->media == cdrom) |
| drive | 1697 | drivers/block/ide.c | ide_cdrom_release (inode, file, drive); |
| drive | 1700 | drivers/block/ide.c | if (drive->removeable) { |
| drive | 1718 | drivers/block/ide.c | ide_drive_t *drive; |
| drive | 1722 | drivers/block/ide.c | if ((drive = get_info_ptr(i_rdev)) == NULL) |
| drive | 1726 | drivers/block/ide.c | minor = drive->select.b.unit << PARTN_BITS; |
| drive | 1729 | drivers/block/ide.c | if (drive->busy || (drive->usage > 1)) { |
| drive | 1733 | drivers/block/ide.c | drive->busy = 1; |
| drive | 1737 | drivers/block/ide.c | if (drive->part[p].nr_sects > 0) { |
| drive | 1743 | drivers/block/ide.c | drive->part[p].start_sect = 0; |
| drive | 1744 | drivers/block/ide.c | drive->part[p].nr_sects = 0; |
| drive | 1747 | drivers/block/ide.c | drive->part[0].nr_sects = current_capacity(drive); |
| drive | 1748 | drivers/block/ide.c | if (drive->media == disk) |
| drive | 1749 | drivers/block/ide.c | resetup_one_dev(HWIF(drive)->gd, drive->select.b.unit); |
| drive | 1751 | drivers/block/ide.c | drive->busy = 0; |
| drive | 1752 | drivers/block/ide.c | wake_up(&drive->wqueue); |
| drive | 1773 | drivers/block/ide.c | ide_drive_t *drive; |
| drive | 1778 | drivers/block/ide.c | if ((drive = get_info_ptr(inode->i_rdev)) == NULL) |
| drive | 1782 | drivers/block/ide.c | if (!loc || drive->media != disk) return -EINVAL; |
| drive | 1785 | drivers/block/ide.c | put_user(drive->bios_head, (byte *) &loc->heads); |
| drive | 1786 | drivers/block/ide.c | put_user(drive->bios_sect, (byte *) &loc->sectors); |
| drive | 1787 | drivers/block/ide.c | put_user(drive->bios_cyl, (unsigned short *) &loc->cylinders); |
| drive | 1788 | drivers/block/ide.c | put_user((unsigned)drive->part[MINOR(inode->i_rdev)&PARTN_MASK].start_sect, |
| drive | 1808 | drivers/block/ide.c | return write_fs_long(arg, drive->part[MINOR(inode->i_rdev)&PARTN_MASK].nr_sects); |
| drive | 1813 | drivers/block/ide.c | return write_fs_long(arg, drive->keep_settings); |
| drive | 1816 | drivers/block/ide.c | return write_fs_long(arg, drive->unmask); |
| drive | 1819 | drivers/block/ide.c | return write_fs_long(arg, drive->using_dma); |
| drive | 1822 | drivers/block/ide.c | return write_fs_long(arg, drive->chipset); |
| drive | 1825 | drivers/block/ide.c | return write_fs_long(arg, drive->mult_count); |
| drive | 1830 | drivers/block/ide.c | if (drive->id == NULL) |
| drive | 1832 | drivers/block/ide.c | err = verify_area(VERIFY_WRITE, (char *)arg, sizeof(*drive->id)); |
| drive | 1834 | drivers/block/ide.c | memcpy_tofs((char *)arg, (char *)drive->id, sizeof(*drive->id)); |
| drive | 1838 | drivers/block/ide.c | return write_fs_long(arg, drive->bad_wstat == BAD_R_STAT); |
| drive | 1841 | drivers/block/ide.c | if (drive->media != disk) |
| drive | 1843 | drivers/block/ide.c | if (!drive->id || !(drive->id->capability & 1) || !HWIF(drive)->dmaproc) |
| drive | 1859 | drivers/block/ide.c | drive->using_dma = arg; |
| drive | 1862 | drivers/block/ide.c | drive->keep_settings = arg; |
| drive | 1869 | drivers/block/ide.c | drive->unmask = arg; |
| drive | 1872 | drivers/block/ide.c | drive->bad_wstat = arg ? BAD_R_STAT : BAD_W_STAT; |
| drive | 1875 | drivers/block/ide.c | drive->chipset = arg; |
| drive | 1876 | drivers/block/ide.c | drive->vlb_32bit = (arg & 1); |
| drive | 1877 | drivers/block/ide.c | drive->vlb_sync = (arg & 2) >> 1; |
| drive | 1879 | drivers/block/ide.c | if (drive->vlb_sync) |
| drive | 1880 | drivers/block/ide.c | printk("%s: VLB_SYNC not supported by this kernel\n", drive->name); |
| drive | 1892 | drivers/block/ide.c | if ((drive->id != NULL) && (arg > drive->id->max_multsect)) |
| drive | 1896 | drivers/block/ide.c | if (drive->special.b.set_multmode) { |
| drive | 1900 | drivers/block/ide.c | drive->mult_req = arg; |
| drive | 1901 | drivers/block/ide.c | drive->special.b.set_multmode = 1; |
| drive | 1904 | drivers/block/ide.c | return (drive->mult_count == arg) ? 0 : -EIO; |
| drive | 1929 | drivers/block/ide.c | if (drive->media == cdrom) |
| drive | 1930 | drivers/block/ide.c | return ide_cdrom_ioctl(drive, inode, file, cmd, arg); |
| drive | 1938 | drivers/block/ide.c | ide_drive_t *drive; |
| drive | 1940 | drivers/block/ide.c | if ((drive = get_info_ptr(i_rdev)) == NULL) |
| drive | 1943 | drivers/block/ide.c | if (drive->media == cdrom) |
| drive | 1944 | drivers/block/ide.c | return ide_cdrom_check_media_change (drive); |
| drive | 1946 | drivers/block/ide.c | if (drive->removeable) /* for disks */ |
| drive | 1978 | drivers/block/ide.c | static inline void do_identify (ide_drive_t *drive, byte cmd) |
| drive | 1984 | drivers/block/ide.c | id = drive->id = ide_alloc (SECTOR_WORDS*4, 0); |
| drive | 1985 | drivers/block/ide.c | ide_input_data(drive, id, SECTOR_WORDS); /* read 512 bytes of id info */ |
| drive | 1993 | drivers/block/ide.c | printk("%s: EATA SCSI HBA %.10s\n", drive->name, id->model); |
| drive | 1994 | drivers/block/ide.c | drive->present = 0; |
| drive | 2020 | drivers/block/ide.c | printk("%s: %s, ATAPI, ", drive->name, id->model); |
| drive | 2021 | drivers/block/ide.c | drive->media = cdrom; |
| drive | 2027 | drivers/block/ide.c | drive->present = 1; |
| drive | 2028 | drivers/block/ide.c | drive->removeable = 1; |
| drive | 2038 | drivers/block/ide.c | drive->removeable = 1; |
| drive | 2041 | drivers/block/ide.c | drive->media = disk; |
| drive | 2043 | drivers/block/ide.c | if (!drive->present) { |
| drive | 2044 | drivers/block/ide.c | drive->present = 1; |
| drive | 2045 | drivers/block/ide.c | drive->cyl = drive->bios_cyl = id->cyls; |
| drive | 2046 | drivers/block/ide.c | drive->head = drive->bios_head = id->heads; |
| drive | 2047 | drivers/block/ide.c | drive->sect = drive->bios_sect = id->sectors; |
| drive | 2063 | drivers/block/ide.c | drive->cyl = id->cur_cyls; |
| drive | 2064 | drivers/block/ide.c | drive->head = id->cur_heads; |
| drive | 2065 | drivers/block/ide.c | drive->sect = id->cur_sectors; |
| drive | 2068 | drivers/block/ide.c | capacity = drive->cyl * drive->head * drive->sect; |
| drive | 2077 | drivers/block/ide.c | if ((!drive->head || drive->head > 16) && id->heads && id->heads <= 16) { |
| drive | 2078 | drivers/block/ide.c | drive->cyl = id->cyls; |
| drive | 2079 | drivers/block/ide.c | drive->head = id->heads; |
| drive | 2080 | drivers/block/ide.c | drive->sect = id->sectors; |
| drive | 2083 | drivers/block/ide.c | if (drive->sect == drive->bios_sect && drive->head == drive->bios_head) { |
| drive | 2084 | drivers/block/ide.c | if (drive->cyl > drive->bios_cyl) |
| drive | 2085 | drivers/block/ide.c | drive->bios_cyl = drive->cyl; |
| drive | 2088 | drivers/block/ide.c | (void) current_capacity (drive); /* initialize LBA selection */ |
| drive | 2091 | drivers/block/ide.c | drive->name, id->model, current_capacity(drive)/2048L, id->buf_size/2, |
| drive | 2092 | drivers/block/ide.c | drive->select.b.lba ? "LBA, " : "", |
| drive | 2093 | drivers/block/ide.c | drive->bios_cyl, drive->bios_head, drive->bios_sect); |
| drive | 2095 | drivers/block/ide.c | drive->mult_count = 0; |
| drive | 2097 | drivers/block/ide.c | drive->mult_req = INITIAL_MULT_COUNT; |
| drive | 2098 | drivers/block/ide.c | if (drive->mult_req > id->max_multsect) |
| drive | 2099 | drivers/block/ide.c | drive->mult_req = id->max_multsect; |
| drive | 2100 | drivers/block/ide.c | if (drive->mult_req || ((id->multsect_valid & 1) && id->multsect)) |
| drive | 2101 | drivers/block/ide.c | drive->special.b.set_multmode = 1; |
| drive | 2103 | drivers/block/ide.c | if (HWIF(drive)->dmaproc != NULL) { /* hwif supports DMA? */ |
| drive | 2104 | drivers/block/ide.c | if (!(HWIF(drive)->dmaproc(ide_dma_check, drive))) |
| drive | 2130 | drivers/block/ide.c | static int try_to_identify (ide_drive_t *drive, byte cmd) |
| drive | 2136 | drivers/block/ide.c | if (!HWIF(drive)->irq) { /* already got an IRQ? */ |
| drive | 2139 | drivers/block/ide.c | OUT_BYTE(drive->ctl,IDE_CONTROL_REG); /* enable device irq */ |
| drive | 2144 | drivers/block/ide.c | printk("%s: probing with STATUS instead of ALTSTATUS\n", drive->name); |
| drive | 2154 | drivers/block/ide.c | if (!HWIF(drive)->irq) |
| drive | 2164 | drivers/block/ide.c | do_identify(drive, cmd); /* drive returned ID */ |
| drive | 2168 | drivers/block/ide.c | if (!HWIF(drive)->irq) { |
| drive | 2171 | drivers/block/ide.c | HWIF(drive)->irq = irqs; |
| drive | 2173 | drivers/block/ide.c | printk("%s: IRQ probe failed (%d)\n", drive->name, irqs); |
| drive | 2194 | drivers/block/ide.c | static int do_probe (ide_drive_t *drive, byte cmd) |
| drive | 2198 | drivers/block/ide.c | if (drive->present) { /* avoid waiting for inappropriate probes */ |
| drive | 2199 | drivers/block/ide.c | if ((drive->media == cdrom) && (cmd == WIN_IDENTIFY)) |
| drive | 2205 | drivers/block/ide.c | drive->name, drive->present, drive->media ? "cdrom":"disk", |
| drive | 2209 | drivers/block/ide.c | if (HWIF(drive)->select) |
| drive | 2210 | drivers/block/ide.c | ide_hwif_select (HWIF(drive)); |
| drive | 2212 | drivers/block/ide.c | OUT_BYTE(drive->select.all,IDE_SELECT_REG); /* select target drive */ |
| drive | 2214 | drivers/block/ide.c | if (IN_BYTE(IDE_SELECT_REG) != drive->select.all && !drive->present) { |
| drive | 2220 | drivers/block/ide.c | || drive->present || cmd == WIN_PIDENTIFY) |
| drive | 2222 | drivers/block/ide.c | if ((rc = try_to_identify(drive,cmd))) /* send cmd and wait */ |
| drive | 2223 | drivers/block/ide.c | rc = try_to_identify(drive,cmd); /* failed: try again */ |
| drive | 2225 | drivers/block/ide.c | printk("%s: no response (status = 0x%02x)\n", drive->name, GET_STAT()); |
| drive | 2230 | drivers/block/ide.c | if (drive->select.b.unit != 0) { |
| drive | 2244 | drivers/block/ide.c | static inline byte probe_for_drive (ide_drive_t *drive) |
| drive | 2246 | drivers/block/ide.c | if (drive->noprobe) /* skip probing? */ |
| drive | 2247 | drivers/block/ide.c | return drive->present; |
| drive | 2248 | drivers/block/ide.c | if (do_probe(drive, WIN_IDENTIFY) >= 2) { /* if !(success||timed-out) */ |
| drive | 2250 | drivers/block/ide.c | (void) do_probe(drive, WIN_PIDENTIFY); /* look for ATAPI device */ |
| drive | 2253 | drivers/block/ide.c | if (!drive->present) |
| drive | 2255 | drivers/block/ide.c | if (drive->id == NULL) { /* identification failed? */ |
| drive | 2256 | drivers/block/ide.c | if (drive->media == disk) { |
| drive | 2258 | drivers/block/ide.c | drive->name, drive->cyl, drive->head, drive->sect); |
| drive | 2261 | drivers/block/ide.c | else if (drive->media == cdrom) { |
| drive | 2262 | drivers/block/ide.c | printk("%s: ATAPI cdrom (?)\n", drive->name); |
| drive | 2266 | drivers/block/ide.c | drive->present = 0; /* nuke it */ |
| drive | 2270 | drivers/block/ide.c | if (drive->media == disk && !drive->select.b.lba) { |
| drive | 2271 | drivers/block/ide.c | if (!drive->head || drive->head > 16) { |
| drive | 2273 | drivers/block/ide.c | drive->name, drive->head); |
| drive | 2274 | drivers/block/ide.c | drive->present = 0; |
| drive | 2291 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
| drive | 2292 | drivers/block/ide.c | if (drive->present) { |
| drive | 2293 | drivers/block/ide.c | drive->present = 0; |
| drive | 2294 | drivers/block/ide.c | printk("%s: ERROR, PORTS ALREADY IN USE\n", drive->name); |
| drive | 2313 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
| drive | 2314 | drivers/block/ide.c | (void) probe_for_drive (drive); |
| drive | 2316 | drivers/block/ide.c | if (drive->present && drive->media == cdrom) |
| drive | 2317 | drivers/block/ide.c | ide_cdrom_setup(drive); |
| drive | 2321 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
| drive | 2322 | drivers/block/ide.c | if (drive->present) { |
| drive | 2539 | drivers/block/ide.c | ide_drive_t *drive; |
| drive | 2556 | drivers/block/ide.c | drive = &hwif->drives[unit]; |
| drive | 2559 | drivers/block/ide.c | drive->noprobe = 1; |
| drive | 2562 | drivers/block/ide.c | drive->bad_wstat = BAD_R_STAT; |
| drive | 2566 | drivers/block/ide.c | drive->present = 1; |
| drive | 2567 | drivers/block/ide.c | drive->media = cdrom; |
| drive | 2574 | drivers/block/ide.c | drive->media = disk; |
| drive | 2575 | drivers/block/ide.c | drive->cyl = drive->bios_cyl = vals[0]; |
| drive | 2576 | drivers/block/ide.c | drive->head = drive->bios_head = vals[1]; |
| drive | 2577 | drivers/block/ide.c | drive->sect = drive->bios_sect = vals[2]; |
| drive | 2578 | drivers/block/ide.c | drive->present = 1; |
| drive | 2661 | drivers/block/ide.c | ide_drive_t *drive; |
| drive | 2666 | drivers/block/ide.c | if ((drive = get_info_ptr(i_rdev)) == NULL || drive->id == NULL) |
| drive | 2669 | drivers/block/ide.c | drive->cyl = drive->bios_cyl = drive->id->cyls; |
| drive | 2670 | drivers/block/ide.c | drive->head = drive->bios_head = drive->id->heads; |
| drive | 2671 | drivers/block/ide.c | drive->sect = drive->bios_sect = drive->id->sectors; |
| drive | 2672 | drivers/block/ide.c | drive->special.b.set_geometry = 1; |
| drive | 2674 | drivers/block/ide.c | tracks = drive->bios_cyl * drive->bios_head * drive->bios_sect / 63; |
| drive | 2675 | drivers/block/ide.c | drive->bios_sect = 63; |
| drive | 2676 | drivers/block/ide.c | while (drive->bios_cyl >= 1024) { |
| drive | 2677 | drivers/block/ide.c | drive->bios_head = *heads; |
| drive | 2678 | drivers/block/ide.c | drive->bios_cyl = tracks / drive->bios_head; |
| drive | 2685 | drivers/block/ide.c | drive->ezdrive = 1; |
| drive | 2689 | drivers/block/ide.c | drive->sect0 = 63; |
| drive | 2690 | drivers/block/ide.c | drive->bios_cyl = (tracks - 1) / drive->bios_head; |
| drive | 2693 | drivers/block/ide.c | drive->part[0].nr_sects = current_capacity(drive); |
| drive | 2694 | drivers/block/ide.c | printk("%s [%d/%d/%d]", msg, drive->bios_cyl, drive->bios_head, drive->bios_sect); |
| drive | 2732 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
| drive | 2733 | drivers/block/ide.c | if ((cmos_disks & (0xf0 >> (unit*4))) && !drive->present) { |
| drive | 2734 | drivers/block/ide.c | drive->cyl = drive->bios_cyl = *(unsigned short *)BIOS; |
| drive | 2735 | drivers/block/ide.c | drive->head = drive->bios_head = *(BIOS+2); |
| drive | 2736 | drivers/block/ide.c | drive->sect = drive->bios_sect = *(BIOS+14); |
| drive | 2737 | drivers/block/ide.c | drive->ctl = *(BIOS+8); |
| drive | 2738 | drivers/block/ide.c | drive->present = 1; |
| drive | 2779 | drivers/block/ide.c | hwgroup->drive = NULL; |
| drive | 83 | drivers/block/ide.h | #define HWIF(drive) ((ide_hwif_t *)drive->hwif) |
| drive | 84 | drivers/block/ide.h | #define HWGROUP(drive) ((ide_hwgroup_t *)(HWIF(drive)->hwgroup)) |
| drive | 97 | drivers/block/ide.h | #define IDE_DATA_REG (HWIF(drive)->io_base+IDE_DATA_OFFSET) |
| drive | 98 | drivers/block/ide.h | #define IDE_ERROR_REG (HWIF(drive)->io_base+IDE_ERROR_OFFSET) |
| drive | 99 | drivers/block/ide.h | #define IDE_NSECTOR_REG (HWIF(drive)->io_base+IDE_NSECTOR_OFFSET) |
| drive | 100 | drivers/block/ide.h | #define IDE_SECTOR_REG (HWIF(drive)->io_base+IDE_SECTOR_OFFSET) |
| drive | 101 | drivers/block/ide.h | #define IDE_LCYL_REG (HWIF(drive)->io_base+IDE_LCYL_OFFSET) |
| drive | 102 | drivers/block/ide.h | #define IDE_HCYL_REG (HWIF(drive)->io_base+IDE_HCYL_OFFSET) |
| drive | 103 | drivers/block/ide.h | #define IDE_SELECT_REG (HWIF(drive)->io_base+IDE_SELECT_OFFSET) |
| drive | 104 | drivers/block/ide.h | #define IDE_STATUS_REG (HWIF(drive)->io_base+IDE_STATUS_OFFSET) |
| drive | 105 | drivers/block/ide.h | #define IDE_CONTROL_REG (HWIF(drive)->ctl_port) |
| drive | 338 | drivers/block/ide.h | ide_drive_t *drive; /* current drive */ |
| drive | 357 | drivers/block/ide.h | #define SET_RECOVERY_TIMER(drive) ide_set_recovery_timer (drive) |
| drive | 359 | drivers/block/ide.h | #define SET_RECOVERY_TIMER(drive) |
| drive | 369 | drivers/block/ide.h | #define IDE_DO_REQUEST { SET_RECOVERY_TIMER(HWIF(drive)); ide_do_request(HWGROUP(drive)); } |
| drive | 375 | drivers/block/ide.h | void ide_input_data (ide_drive_t *drive, void *buffer, unsigned int wcount); |
| drive | 380 | drivers/block/ide.h | void ide_output_data (ide_drive_t *drive, void *buffer, unsigned int wcount); |
| drive | 386 | drivers/block/ide.h | void ide_set_handler (ide_drive_t *drive, ide_handler_t *handler); |
| drive | 391 | drivers/block/ide.h | byte ide_dump_status (ide_drive_t *drive, const char *msg, byte stat); |
| drive | 400 | drivers/block/ide.h | int ide_error (ide_drive_t *drive, const char *msg, byte stat); |
| drive | 409 | drivers/block/ide.h | int ide_wait_stat (ide_drive_t *drive, byte good, byte bad, unsigned long timeout); |
| drive | 1031 | drivers/block/mcdx.c | int drive; |
| drive | 1037 | drivers/block/mcdx.c | for (drive = 0; drive < MCDX_NDRIVES; drive++) |
| drive | 1038 | drivers/block/mcdx.c | mcdx_stuffp[drive] = NULL; |
| drive | 1041 | drivers/block/mcdx.c | for (drive = 0; drive < MCDX_NDRIVES; drive++) { |
| drive | 1048 | drivers/block/mcdx.c | TRACE((INIT, "init() try drive %d\n", drive)); |
| drive | 1072 | drivers/block/mcdx.c | stuffp->irq = irq(mcdx_drive_map[drive]); |
| drive | 1073 | drivers/block/mcdx.c | stuffp->wreg_data = stuffp->rreg_data = port(mcdx_drive_map[drive]); |
| drive | 1181 | drivers/block/mcdx.c | stuffp->minor = drive; |
| drive | 1187 | drivers/block/mcdx.c | mcdx_stuffp[drive] = stuffp; |
| drive | 1188 | drivers/block/mcdx.c | TRACE((INIT, "init() mcdx_stuffp[%d] = %p\n", drive, stuffp)); |
| drive | 110 | drivers/block/triton.c | static void dma_intr (ide_drive_t *drive) |
| drive | 114 | drivers/block/triton.c | struct request *rq = HWGROUP(drive)->rq; |
| drive | 115 | drivers/block/triton.c | unsigned short dma_base = HWIF(drive)->dma_base; |
| drive | 120 | drivers/block/triton.c | if (OK_STAT(stat,DRIVE_READY,drive->bad_wstat|DRQ_STAT)) { |
| drive | 122 | drivers/block/triton.c | rq = HWGROUP(drive)->rq; |
| drive | 125 | drivers/block/triton.c | ide_end_request(1, HWGROUP(drive)); |
| drive | 130 | drivers/block/triton.c | printk("%s: bad DMA status: 0x%02x\n", drive->name, dma_stat); |
| drive | 133 | drivers/block/triton.c | if (!ide_error(drive, "dma_intr", stat)) |
| drive | 141 | drivers/block/triton.c | static int build_dmatable (ide_drive_t *drive) |
| drive | 143 | drivers/block/triton.c | struct request *rq = HWGROUP(drive)->rq; |
| drive | 145 | drivers/block/triton.c | unsigned long size, addr, *table = HWIF(drive)->dmatable; |
| drive | 176 | drivers/block/triton.c | printk("%s: DMA table too small\n", drive->name); |
| drive | 193 | drivers/block/triton.c | printk("%s: empty DMA table?\n", drive->name); |
| drive | 197 | drivers/block/triton.c | static int config_drive_for_dma (ide_drive_t *drive) |
| drive | 201 | drivers/block/triton.c | struct hd_driveid *id = drive->id; |
| drive | 205 | drivers/block/triton.c | drive->using_dma = 1; |
| drive | 212 | drivers/block/triton.c | drive->using_dma = 1; |
| drive | 231 | drivers/block/triton.c | static int triton_dmaproc (ide_dma_action_t func, ide_drive_t *drive) |
| drive | 233 | drivers/block/triton.c | unsigned long dma_base = HWIF(drive)->dma_base; |
| drive | 241 | drivers/block/triton.c | return config_drive_for_dma (drive); |
| drive | 250 | drivers/block/triton.c | if (build_dmatable (drive)) |
| drive | 252 | drivers/block/triton.c | outl(virt_to_bus (HWIF(drive)->dmatable), dma_base + 4); /* PRD table */ |
| drive | 255 | drivers/block/triton.c | ide_set_handler (drive, &dma_intr); /* issue cmd to drive */ |
| drive | 334 | drivers/block/xd.c | static int xd_readwrite (u_char operation,u_char drive,char *buffer,u_int block,u_int count) |
| drive | 341 | 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 | 344 | drivers/block/xd.c | control = xd_info[drive].control; |
| drive | 348 | drivers/block/xd.c | track = block / xd_info[drive].sectors; |
| drive | 349 | drivers/block/xd.c | head = track % xd_info[drive].heads; |
| drive | 350 | drivers/block/xd.c | cylinder = track / xd_info[drive].heads; |
| drive | 351 | drivers/block/xd.c | sector = block % xd_info[drive].sectors; |
| drive | 354 | drivers/block/xd.c | printk("xd_readwrite: drive = %d, head = %d, cylinder = %d, sector = %d, count = %d\n",drive,head,cylinder,sector,temp); |
| drive | 358 | drivers/block/xd.c | xd_build(cmdblk,operation == READ ? CMD_READ : CMD_WRITE,drive,head,cylinder,sector,temp & 0xFF,control); |
| drive | 363 | drivers/block/xd.c | xd_recalibrate(drive); |
| drive | 384 | drivers/block/xd.c | static void xd_recalibrate (u_char drive) |
| drive | 388 | drivers/block/xd.c | xd_build(cmdblk,CMD_RECALIBRATE,drive,0,0,0,0,0); |
| drive | 432 | 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 | 435 | drivers/block/xd.c | cmdblk[1] = ((drive & 0x07) << 5) | (head & 0x1F); |
| drive | 519 | drivers/block/xd.c | static u_char xd_initdrives (void (*init_drive)(u_char drive)) |
| drive | 548 | drivers/block/xd.c | static void xd_dtc_init_drive (u_char drive) |
| drive | 552 | drivers/block/xd.c | xd_build(cmdblk,CMD_DTCGETGEOM,drive,0,0,0,0,0); |
| drive | 554 | drivers/block/xd.c | xd_info[drive].heads = buf[0x0A]; /* heads */ |
| drive | 555 | drivers/block/xd.c | xd_info[drive].cylinders = ((u_short *) (buf))[0x04]; /* cylinders */ |
| drive | 556 | drivers/block/xd.c | xd_info[drive].sectors = 17; /* sectors */ |
| drive | 558 | drivers/block/xd.c | xd_info[drive].rwrite = ((u_short *) (buf + 1))[0x05]; /* reduced write */ |
| drive | 559 | drivers/block/xd.c | xd_info[drive].precomp = ((u_short *) (buf + 1))[0x06]; /* write precomp */ |
| drive | 560 | drivers/block/xd.c | xd_info[drive].ecc = buf[0x0F]; /* ecc length */ |
| drive | 562 | drivers/block/xd.c | xd_info[drive].control = 0; /* control byte */ |
| drive | 564 | 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 | 565 | drivers/block/xd.c | xd_build(cmdblk,CMD_DTCSETSTEP,drive,0,0,0,0,7); |
| drive | 567 | drivers/block/xd.c | printk("xd_dtc_init_drive: error setting step rate for drive %d\n",drive); |
| drive | 570 | drivers/block/xd.c | printk("xd_dtc_init_drive: error reading geometry for drive %d\n",drive); |
| drive | 592 | drivers/block/xd.c | static void xd_wd_init_drive (u_char drive) |
| drive | 596 | drivers/block/xd.c | xd_build(cmdblk,CMD_READ,drive,0,0,0,1,0); |
| drive | 598 | drivers/block/xd.c | xd_info[drive].heads = buf[0x1AF]; /* heads */ |
| drive | 599 | drivers/block/xd.c | xd_info[drive].cylinders = ((u_short *) (buf + 1))[0xD6]; /* cylinders */ |
| drive | 600 | drivers/block/xd.c | xd_info[drive].sectors = 17; /* sectors */ |
| drive | 602 | drivers/block/xd.c | xd_info[drive].rwrite = ((u_short *) (buf))[0xD8]; /* reduced write */ |
| drive | 603 | drivers/block/xd.c | xd_info[drive].wprecomp = ((u_short *) (buf))[0xDA]; /* write precomp */ |
| drive | 604 | drivers/block/xd.c | xd_info[drive].ecc = buf[0x1B4]; /* ecc length */ |
| drive | 606 | drivers/block/xd.c | xd_info[drive].control = buf[0x1B5]; /* control byte */ |
| drive | 608 | 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 | 611 | drivers/block/xd.c | printk("xd_wd_init_drive: error reading geometry for drive %d\n",drive); |
| drive | 631 | drivers/block/xd.c | static void xd_seagate_init_drive (u_char drive) |
| drive | 635 | drivers/block/xd.c | xd_build(cmdblk,CMD_ST11GETGEOM,drive,0,0,0,1,0); |
| drive | 637 | drivers/block/xd.c | xd_info[drive].heads = buf[0x04]; /* heads */ |
| drive | 638 | drivers/block/xd.c | xd_info[drive].cylinders = (buf[0x02] << 8) | buf[0x03]; /* cylinders */ |
| drive | 639 | drivers/block/xd.c | xd_info[drive].sectors = buf[0x05]; /* sectors */ |
| drive | 640 | drivers/block/xd.c | xd_info[drive].control = 0; /* control byte */ |
| drive | 643 | drivers/block/xd.c | printk("xd_seagate_init_drive: error reading geometry from drive %d\n",drive); |
| drive | 665 | drivers/block/xd.c | static void xd_omti_init_drive (u_char drive) |
| drive | 668 | drivers/block/xd.c | xd_override_init_drive(drive); |
| drive | 671 | drivers/block/xd.c | xd_info[drive].control = 2; |
| drive | 676 | drivers/block/xd.c | static void xd_override_init_drive (u_char drive) |
| drive | 684 | 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 | 692 | drivers/block/xd.c | xd_info[drive].heads = (u_char) min[0] + 1; |
| drive | 693 | drivers/block/xd.c | xd_info[drive].cylinders = (u_short) min[1] + 1; |
| drive | 694 | drivers/block/xd.c | xd_info[drive].sectors = (u_char) min[2] + 1; |
| drive | 695 | drivers/block/xd.c | xd_info[drive].control = 0; |
| drive | 712 | 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 | 716 | drivers/block/xd.c | xd_build(cmdblk,command,drive,0,0,0,0,0); |
| drive | 727 | drivers/block/xd.c | printk("xd_setparam: error setting characteristics for drive %d\n",drive); |
| drive | 1843 | drivers/scsi/fdomain.c | int drive; |
| drive | 1899 | drivers/scsi/fdomain.c | drive = MINOR(dev) / 16; |
| drive | 1906 | drivers/scsi/fdomain.c | i = (struct drive_info *)( (char *)bios_base + 0x1f33 + drive * 25 ); |
| drive | 1909 | drivers/scsi/fdomain.c | i = (struct drive_info *)( (char *)bios_base + 0x1f36 + drive * 15 ); |
| drive | 1912 | drivers/scsi/fdomain.c | i = (struct drive_info *)( (char *)bios_base + 0x1f34 + drive * 15 ); |
| drive | 1915 | drivers/scsi/fdomain.c | i = (struct drive_info *)( (char *)bios_base + 0x1f31 + drive * 25 ); |
| drive | 1924 | drivers/scsi/fdomain.c | i = (struct drive_info *)( (char *)bios_base + 0x1f71 + drive * 10 ); |
| drive | 48 | 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); |