Lines Matching refs:disk

304 static void hd_out(struct hd_i_struct *disk,  in hd_out()  argument
320 if (!controller_ready(disk->unit, head)) { in hd_out()
325 outb_p(disk->ctl, HD_CMD); in hd_out()
327 outb_p(disk->wpcom >> 2, ++port); in hd_out()
332 outb_p(0xA0 | (disk->unit << 4) | head, ++port); in hd_out()
381 struct hd_i_struct *disk = &hd_info[i]; in reset_hd() local
382 disk->special_op = disk->recalibrate = 1; in reset_hd()
383 hd_out(disk, disk->sect, disk->sect, disk->head-1, in reset_hd()
384 disk->cyl, ATA_CMD_INIT_DEV_PARAMS, &reset_hd); in reset_hd()
420 struct hd_i_struct *disk = req->rq_disk->private_data; in bad_rw_intr() local
423 disk->special_op = disk->recalibrate = 1; in bad_rw_intr()
427 disk->special_op = disk->recalibrate = 1; in bad_rw_intr()
554 static int do_special_op(struct hd_i_struct *disk, struct request *req) in do_special_op() argument
556 if (disk->recalibrate) { in do_special_op()
557 disk->recalibrate = 0; in do_special_op()
558 hd_out(disk, disk->sect, 0, 0, 0, ATA_CMD_RESTORE, &recal_intr); in do_special_op()
561 if (disk->head > 16) { in do_special_op()
565 disk->special_op = 0; in do_special_op()
582 struct hd_i_struct *disk; in hd_request() local
603 disk = req->rq_disk->private_data; in hd_request()
614 if (disk->special_op) { in hd_request()
615 if (do_special_op(disk, req)) in hd_request()
619 sec = block % disk->sect + 1; in hd_request()
620 track = block / disk->sect; in hd_request()
621 head = track % disk->head; in hd_request()
622 cyl = track / disk->head; in hd_request()
632 hd_out(disk, nsect, sec, head, cyl, ATA_CMD_PIO_READ, in hd_request()
638 hd_out(disk, nsect, sec, head, cyl, ATA_CMD_PIO_WRITE, in hd_request()
663 struct hd_i_struct *disk = bdev->bd_disk->private_data; in hd_getgeo() local
665 geo->heads = disk->head; in hd_getgeo()
666 geo->sectors = disk->sect; in hd_getgeo()
667 geo->cylinders = disk->cyl; in hd_getgeo()
736 struct gendisk *disk = alloc_disk(64); in hd_init() local
738 if (!disk) in hd_init()
740 disk->major = HD_MAJOR; in hd_init()
741 disk->first_minor = drive << 6; in hd_init()
742 disk->fops = &hd_fops; in hd_init()
743 sprintf(disk->disk_name, "hd%c", 'a'+drive); in hd_init()
744 disk->private_data = p; in hd_init()
745 set_capacity(disk, p->head * p->sect * p->cyl); in hd_init()
746 disk->queue = hd_queue; in hd_init()
748 hd_gendisk[drive] = disk; in hd_init()
750 disk->disk_name, (unsigned long)get_capacity(disk)/2048, in hd_init()