|
@@ -354,7 +354,6 @@ static void idefloppy_init_pc(struct ide_atapi_pc *pc)
|
|
memset(pc, 0, sizeof(*pc));
|
|
memset(pc, 0, sizeof(*pc));
|
|
pc->buf = pc->pc_buf;
|
|
pc->buf = pc->pc_buf;
|
|
pc->buf_size = IDEFLOPPY_PC_BUFFER_SIZE;
|
|
pc->buf_size = IDEFLOPPY_PC_BUFFER_SIZE;
|
|
- pc->callback = ide_floppy_callback;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
static void idefloppy_create_request_sense_cmd(struct ide_atapi_pc *pc)
|
|
static void idefloppy_create_request_sense_cmd(struct ide_atapi_pc *pc)
|
|
@@ -474,7 +473,7 @@ static ide_startstop_t idefloppy_issue_pc(ide_drive_t *drive,
|
|
pc->error = IDEFLOPPY_ERROR_GENERAL;
|
|
pc->error = IDEFLOPPY_ERROR_GENERAL;
|
|
|
|
|
|
floppy->failed_pc = NULL;
|
|
floppy->failed_pc = NULL;
|
|
- pc->callback(drive);
|
|
|
|
|
|
+ drive->pc_callback(drive);
|
|
return ide_stopped;
|
|
return ide_stopped;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1040,6 +1039,7 @@ static void idefloppy_setup(ide_drive_t *drive, idefloppy_floppy_t *floppy)
|
|
|
|
|
|
*((u16 *) &gcw) = drive->id->config;
|
|
*((u16 *) &gcw) = drive->id->config;
|
|
floppy->pc = floppy->pc_stack;
|
|
floppy->pc = floppy->pc_stack;
|
|
|
|
+ drive->pc_callback = ide_floppy_callback;
|
|
|
|
|
|
if (((gcw[0] & 0x60) >> 5) == 1)
|
|
if (((gcw[0] & 0x60) >> 5) == 1)
|
|
floppy->flags |= IDEFLOPPY_FLAG_DRQ_INTERRUPT;
|
|
floppy->flags |= IDEFLOPPY_FLAG_DRQ_INTERRUPT;
|