[ide] kill ide_driver_t->pre_reset

Add ide_drive_t->post_reset flag and use it to signal post reset
condition to the ide-tape driver (the only user of ->pre_reset).
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent a32ec521
......@@ -1127,7 +1127,7 @@ static void pre_reset(ide_drive_t *drive)
if (drive->media == ide_disk)
ide_disk_pre_reset(drive);
else
drive->driver->pre_reset(drive);
drive->post_reset = 1;
if (!drive->keep_settings) {
if (drive->using_dma) {
......
......@@ -2428,6 +2428,11 @@ static ide_startstop_t idetape_do_request(ide_drive_t *drive,
if (!drive->dsc_overlap && !(rq->cmd[0] & REQ_IDETAPE_PC2))
set_bit(IDETAPE_IGNORE_DSC, &tape->flags);
if (drive->post_reset == 1) {
set_bit(IDETAPE_IGNORE_DSC, &tape->flags);
drive->post_reset = 0;
}
if (tape->tape_still_time > 100 && tape->tape_still_time < 200)
tape->measure_insert_time = 1;
if (time_after(jiffies, tape->insert_time))
......@@ -3558,16 +3563,6 @@ static int idetape_blkdev_ioctl(ide_drive_t *drive, unsigned int cmd, unsigned l
return 0;
}
/*
* idetape_pre_reset is called before an ATAPI/ATA software reset.
*/
static void idetape_pre_reset (ide_drive_t *drive)
{
idetape_tape_t *tape = drive->driver_data;
if (tape != NULL)
set_bit(IDETAPE_IGNORE_DSC, &tape->flags);
}
/*
* idetape_space_over_filemarks is now a bit more complicated than just
* passing the command to the tape since we may have crossed some
......@@ -4697,7 +4692,6 @@ static ide_driver_t idetape_driver = {
.cleanup = idetape_cleanup,
.do_request = idetape_do_request,
.end_request = idetape_end_request,
.pre_reset = idetape_pre_reset,
.proc = idetape_proc,
.attach = idetape_attach,
.drives = LIST_HEAD_INIT(idetape_driver.drives),
......
......@@ -2042,10 +2042,6 @@ default_error(ide_drive_t *drive, struct request *rq, u8 stat, u8 err)
return __ide_error(drive, rq, stat, err);
}
static void default_pre_reset (ide_drive_t *drive)
{
}
static sector_t default_capacity (ide_drive_t *drive)
{
return 0x7fffffff;
......@@ -2064,7 +2060,6 @@ static void setup_driver_defaults (ide_driver_t *d)
if (d->end_request == NULL) d->end_request = default_end_request;
if (d->error == NULL) d->error = default_error;
if (d->abort == NULL) d->abort = default_abort;
if (d->pre_reset == NULL) d->pre_reset = default_pre_reset;
if (d->capacity == NULL) d->capacity = default_capacity;
}
......
......@@ -718,6 +718,7 @@ typedef struct ide_drive_s {
*/
unsigned scsi : 1; /* 0=default, 1=ide-scsi emulation */
unsigned sleeping : 1; /* 1=sleeping & sleep field valid */
unsigned post_reset : 1;
u8 quirk_list; /* considered quirky, set for a specific host */
u8 init_speed; /* transfer rate set at boot */
......@@ -1097,7 +1098,6 @@ typedef struct ide_driver_s {
ide_startstop_t (*error)(ide_drive_t *, struct request *rq, u8, u8);
ide_startstop_t (*abort)(ide_drive_t *, struct request *rq);
int (*ioctl)(ide_drive_t *, struct inode *, struct file *, unsigned int, unsigned long);
void (*pre_reset)(ide_drive_t *);
sector_t (*capacity)(ide_drive_t *);
ide_proc_entry_t *proc;
int (*attach)(ide_drive_t *);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment