ide: add ide_tf_read() helper
* Factor out code reading taskfile registers from ide_end_drive_cmd() to the new ide_tf_read() helper. * Add IDE_TFLAG_IN_* taskfile flags to indicate the need to load particular IDE taskfile register in ide_tf_read(). * Update ide_end_drive_cmd() to set respective IDE_TFLAG_IN_* taksfile flags. * Add ide_get_lba_addr() for getting LBA sector address from taskfile struct. * Factor out code getting sector address from ide_dump_ata_status() to the new ide_dump_sector() function. * Convert ide_dump_sector() to use ide_tf_read() and ide_get_lba_addr(). * Remove no longer needed ide_read_24(). The only change in functionality caused by this patch is that ide_dump_ata_status() no longer prints "high"/"low" parts of LBA48 sector address (of course LBA48 sector address is still printed). Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
@@ -913,6 +913,27 @@ enum {
|
||||
IDE_TFLAG_IN_DATA = (1 << 17),
|
||||
IDE_TFLAG_CUSTOM_HANDLER = (1 << 18),
|
||||
IDE_TFLAG_DMA_PIO_FALLBACK = (1 << 19),
|
||||
IDE_TFLAG_IN_HOB_FEATURE = (1 << 20),
|
||||
IDE_TFLAG_IN_HOB_NSECT = (1 << 21),
|
||||
IDE_TFLAG_IN_HOB_LBAL = (1 << 22),
|
||||
IDE_TFLAG_IN_HOB_LBAM = (1 << 23),
|
||||
IDE_TFLAG_IN_HOB_LBAH = (1 << 24),
|
||||
IDE_TFLAG_IN_HOB_LBA = IDE_TFLAG_IN_HOB_LBAL |
|
||||
IDE_TFLAG_IN_HOB_LBAM |
|
||||
IDE_TFLAG_IN_HOB_LBAH,
|
||||
IDE_TFLAG_IN_HOB = IDE_TFLAG_IN_HOB_FEATURE |
|
||||
IDE_TFLAG_IN_HOB_NSECT |
|
||||
IDE_TFLAG_IN_HOB_LBA,
|
||||
IDE_TFLAG_IN_NSECT = (1 << 25),
|
||||
IDE_TFLAG_IN_LBAL = (1 << 26),
|
||||
IDE_TFLAG_IN_LBAM = (1 << 27),
|
||||
IDE_TFLAG_IN_LBAH = (1 << 28),
|
||||
IDE_TFLAG_IN_LBA = IDE_TFLAG_IN_LBAL |
|
||||
IDE_TFLAG_IN_LBAM |
|
||||
IDE_TFLAG_IN_LBAH,
|
||||
IDE_TFLAG_IN_TF = IDE_TFLAG_IN_NSECT |
|
||||
IDE_TFLAG_IN_LBA,
|
||||
IDE_TFLAG_IN_DEVICE = (1 << 29),
|
||||
};
|
||||
|
||||
struct ide_taskfile {
|
||||
@@ -956,8 +977,7 @@ typedef struct ide_task_s {
|
||||
} ide_task_t;
|
||||
|
||||
void ide_tf_load(ide_drive_t *, ide_task_t *);
|
||||
|
||||
extern u32 ide_read_24(ide_drive_t *);
|
||||
void ide_tf_read(ide_drive_t *, ide_task_t *);
|
||||
|
||||
extern void SELECT_DRIVE(ide_drive_t *);
|
||||
extern void SELECT_MASK(ide_drive_t *, int);
|
||||
|
Reference in New Issue
Block a user