ide-disk: use ide_get_lba_addr()
* Export ide_get_lba_addr(). * Convert idedisk_{read_native,set}_max_address() to use ide_get_lba_addr(). * Remove incorrect comment from idedisk_read_native_max_address() (noticed by Sergei). There should be no functionality changes caused by this patch. Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
1c904fcfbb
commit
a501633c7d
|
@ -326,18 +326,9 @@ static u64 idedisk_read_native_max_address(ide_drive_t *drive, int lba48)
|
||||||
ide_no_data_taskfile(drive, &args);
|
ide_no_data_taskfile(drive, &args);
|
||||||
|
|
||||||
/* if OK, compute maximum address value */
|
/* if OK, compute maximum address value */
|
||||||
if ((tf->status & 0x01) == 0) {
|
if ((tf->status & 0x01) == 0)
|
||||||
u32 high, low;
|
addr = ide_get_lba_addr(tf, lba48) + 1;
|
||||||
|
|
||||||
if (lba48)
|
|
||||||
high = (tf->hob_lbah << 16) | (tf->hob_lbam << 8) |
|
|
||||||
tf->hob_lbal;
|
|
||||||
else
|
|
||||||
high = tf->device & 0xf;
|
|
||||||
low = (tf->lbah << 16) | (tf->lbam << 8) | tf->lbal;
|
|
||||||
addr = ((__u64)high << 24) | low;
|
|
||||||
addr++; /* since the return value is (maxlba - 1), we add 1 */
|
|
||||||
}
|
|
||||||
return addr;
|
return addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -373,18 +364,9 @@ static u64 idedisk_set_max_address(ide_drive_t *drive, u64 addr_req, int lba48)
|
||||||
/* submit command request */
|
/* submit command request */
|
||||||
ide_no_data_taskfile(drive, &args);
|
ide_no_data_taskfile(drive, &args);
|
||||||
/* if OK, compute maximum address value */
|
/* if OK, compute maximum address value */
|
||||||
if ((tf->status & 0x01) == 0) {
|
if ((tf->status & 0x01) == 0)
|
||||||
u32 high, low;
|
addr_set = ide_get_lba_addr(tf, lba48) + 1;
|
||||||
|
|
||||||
if (lba48)
|
|
||||||
high = (tf->hob_lbah << 16) | (tf->hob_lbam << 8) |
|
|
||||||
tf->hob_lbal;
|
|
||||||
else
|
|
||||||
high = tf->device & 0xf;
|
|
||||||
low = (tf->lbah << 16) | (tf->lbam << 8) | tf->lbal;
|
|
||||||
addr_set = ((__u64)high << 24) | low;
|
|
||||||
addr_set++;
|
|
||||||
}
|
|
||||||
return addr_set;
|
return addr_set;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -479,7 +479,7 @@ static void ide_dump_opcode(ide_drive_t *drive)
|
||||||
printk("0x%02x\n", opcode);
|
printk("0x%02x\n", opcode);
|
||||||
}
|
}
|
||||||
|
|
||||||
static u64 ide_get_lba_addr(struct ide_taskfile *tf, int lba48)
|
u64 ide_get_lba_addr(struct ide_taskfile *tf, int lba48)
|
||||||
{
|
{
|
||||||
u32 high, low;
|
u32 high, low;
|
||||||
|
|
||||||
|
@ -492,6 +492,7 @@ static u64 ide_get_lba_addr(struct ide_taskfile *tf, int lba48)
|
||||||
|
|
||||||
return ((u64)high << 24) | low;
|
return ((u64)high << 24) | low;
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(ide_get_lba_addr);
|
||||||
|
|
||||||
static void ide_dump_sector(ide_drive_t *drive)
|
static void ide_dump_sector(ide_drive_t *drive)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1238,6 +1238,7 @@ static inline int ide_dev_is_sata(struct hd_driveid *id)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u64 ide_get_lba_addr(struct ide_taskfile *, int);
|
||||||
u8 ide_dump_status(ide_drive_t *, const char *, u8);
|
u8 ide_dump_status(ide_drive_t *, const char *, u8);
|
||||||
|
|
||||||
typedef struct ide_pio_timings_s {
|
typedef struct ide_pio_timings_s {
|
||||||
|
|
Loading…
Reference in New Issue