Skip to content

Commit

Permalink
ide: move drive_is_ready() to ide-io.c
Browse files Browse the repository at this point in the history
Move drive_is_ready() to ide-io.c, then make it static.

Also make some minor CodingStyle fixups while at it.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
  • Loading branch information
Bartlomiej Zolnierkiewicz committed Mar 24, 2009
1 parent 75a0cff commit b6a45a0
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 27 deletions.
23 changes: 23 additions & 0 deletions drivers/ide/ide-io.c
Original file line number Diff line number Diff line change
Expand Up @@ -887,6 +887,29 @@ static void ide_plug_device(ide_drive_t *drive)
spin_unlock_irqrestore(q->queue_lock, flags);
}

static int drive_is_ready(ide_drive_t *drive)
{
ide_hwif_t *hwif = drive->hwif;
u8 stat = 0;

if (drive->waiting_for_dma)
return hwif->dma_ops->dma_test_irq(drive);

if (hwif->io_ports.ctl_addr &&
(hwif->host_flags & IDE_HFLAG_BROKEN_ALTSTATUS) == 0)
stat = hwif->tp_ops->read_altstatus(hwif);
else
/* Note: this may clear a pending IRQ!! */
stat = hwif->tp_ops->read_status(hwif);

if (stat & ATA_BUSY)
/* drive busy: definitely not interrupting */
return 0;

/* drive ready: *might* be interrupting */
return 1;
}

/**
* ide_timer_expiry - handle lack of an IDE interrupt
* @data: timer callback magic (hwif)
Expand Down
25 changes: 0 additions & 25 deletions drivers/ide/ide-iops.c
Original file line number Diff line number Diff line change
Expand Up @@ -438,31 +438,6 @@ void ide_fixstring (u8 *s, const int bytecount, const int byteswap)

EXPORT_SYMBOL(ide_fixstring);

int drive_is_ready (ide_drive_t *drive)
{
ide_hwif_t *hwif = drive->hwif;
u8 stat = 0;

if (drive->waiting_for_dma)
return hwif->dma_ops->dma_test_irq(drive);

if (hwif->io_ports.ctl_addr &&
(hwif->host_flags & IDE_HFLAG_BROKEN_ALTSTATUS) == 0)
stat = hwif->tp_ops->read_altstatus(hwif);
else
/* Note: this may clear a pending IRQ!! */
stat = hwif->tp_ops->read_status(hwif);

if (stat & ATA_BUSY)
/* drive busy: definitely not interrupting */
return 0;

/* drive ready: *might* be interrupting */
return 1;
}

EXPORT_SYMBOL(drive_is_ready);

/*
* This routine busy-waits for the drive status to be not "busy".
* It then checks the status for all of the "good" bits and none
Expand Down
2 changes: 0 additions & 2 deletions include/linux/ide.h
Original file line number Diff line number Diff line change
Expand Up @@ -1200,8 +1200,6 @@ void SELECT_MASK(ide_drive_t *, int);
u8 ide_read_error(ide_drive_t *);
void ide_read_bcount_and_ireason(ide_drive_t *, u16 *, u8 *);

extern int drive_is_ready(ide_drive_t *);

int ide_check_atapi_device(ide_drive_t *, const char *);

void ide_init_pc(struct ide_atapi_pc *);
Expand Down

0 comments on commit b6a45a0

Please sign in to comment.