|
@@ -322,41 +322,6 @@ static void ide_complete_pm_request (ide_drive_t *drive, struct request *rq)
|
|
|
spin_unlock_irqrestore(&ide_lock, flags);
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
- * FIXME: probably move this somewhere else, name is bad too :)
|
|
|
- */
|
|
|
-u64 ide_get_error_location(ide_drive_t *drive, char *args)
|
|
|
-{
|
|
|
- u32 high, low;
|
|
|
- u8 hcyl, lcyl, sect;
|
|
|
- u64 sector;
|
|
|
-
|
|
|
- high = 0;
|
|
|
- hcyl = args[5];
|
|
|
- lcyl = args[4];
|
|
|
- sect = args[3];
|
|
|
-
|
|
|
- if (ide_id_has_flush_cache_ext(drive->id)) {
|
|
|
- low = (hcyl << 16) | (lcyl << 8) | sect;
|
|
|
- HWIF(drive)->OUTB(drive->ctl|0x80, IDE_CONTROL_REG);
|
|
|
- high = ide_read_24(drive);
|
|
|
- } else {
|
|
|
- u8 cur = HWIF(drive)->INB(IDE_SELECT_REG);
|
|
|
- if (cur & 0x40) {
|
|
|
- high = cur & 0xf;
|
|
|
- low = (hcyl << 16) | (lcyl << 8) | sect;
|
|
|
- } else {
|
|
|
- low = hcyl * drive->head * drive->sect;
|
|
|
- low += lcyl * drive->sect;
|
|
|
- low += sect - 1;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- sector = ((u64) high << 24) | low;
|
|
|
- return sector;
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(ide_get_error_location);
|
|
|
-
|
|
|
/**
|
|
|
* ide_end_drive_cmd - end an explicit drive command
|
|
|
* @drive: command
|