Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 114169
b: refs/heads/master
c: aa5d2de
h: refs/heads/master
i:
  114167: cafe72b
v: v3
  • Loading branch information
Bartlomiej Zolnierkiewicz committed Oct 13, 2008
1 parent 792f24b commit d3b1fe0
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 43 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 85e39035ca381846b031690f4d1ac1f0660da0a2
refs/heads/master: aa5d2de7b080873f6d9ac3aede423c9713bf0caa
15 changes: 9 additions & 6 deletions trunk/drivers/ide/ide-atapi.c
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,12 @@ int ide_scsi_expiry(ide_drive_t *drive)
}
EXPORT_SYMBOL_GPL(ide_scsi_expiry);

ide_startstop_t ide_pc_intr(ide_drive_t *drive, ide_handler_t *handler)
/*
* This is the usual interrupt handler which will be called during a packet
* command. We will transfer some of the data (as requested by the drive)
* and will re-point interrupt handler to us.
*/
static ide_startstop_t ide_pc_intr(ide_drive_t *drive)
{
struct ide_atapi_pc *pc = drive->pc;
ide_hwif_t *hwif = drive->hwif;
Expand Down Expand Up @@ -425,10 +430,9 @@ ide_startstop_t ide_pc_intr(ide_drive_t *drive, ide_handler_t *handler)
rq->cmd[0], bcount);
next_irq:
/* And set the interrupt handler again */
ide_set_handler(drive, handler, timeout, expiry);
ide_set_handler(drive, ide_pc_intr, timeout, expiry);
return ide_started;
}
EXPORT_SYMBOL_GPL(ide_pc_intr);

static u8 ide_read_ireason(ide_drive_t *drive)
{
Expand Down Expand Up @@ -464,8 +468,7 @@ static u8 ide_wait_ireason(ide_drive_t *drive, u8 ireason)
return ireason;
}

ide_startstop_t ide_transfer_pc(ide_drive_t *drive,
ide_handler_t *handler, unsigned int timeout,
ide_startstop_t ide_transfer_pc(ide_drive_t *drive, unsigned int timeout,
ide_expiry_t *expiry)
{
struct ide_atapi_pc *pc = drive->pc;
Expand All @@ -491,7 +494,7 @@ ide_startstop_t ide_transfer_pc(ide_drive_t *drive,
}

/* Set the interrupt routine */
ide_set_handler(drive, handler, timeout, expiry);
ide_set_handler(drive, ide_pc_intr, timeout, expiry);

/* Begin DMA, if necessary */
if (pc->flags & PC_FLAG_DMA_OK) {
Expand Down
10 changes: 2 additions & 8 deletions trunk/drivers/ide/ide-floppy.c
Original file line number Diff line number Diff line change
Expand Up @@ -193,12 +193,6 @@ static void ide_floppy_callback(ide_drive_t *drive, int dsc)
idefloppy_end_request(drive, uptodate, 0);
}

/* The usual interrupt handler called during a packet command. */
static ide_startstop_t idefloppy_pc_intr(ide_drive_t *drive)
{
return ide_pc_intr(drive, idefloppy_pc_intr);
}

/*
* What we have here is a classic case of a top half / bottom half interrupt
* service routine. In interrupt mode, the device sends an interrupt to signal
Expand Down Expand Up @@ -230,7 +224,7 @@ static ide_startstop_t idefloppy_start_pc_transfer(ide_drive_t *drive)
* where the Busy flag was apparently being deasserted before the
* unit was ready to receive data. This was happening on a
* 1200 MHz Athlon system. 10/26/01 25msec is too short,
* 40 and 50msec work well. idefloppy_pc_intr will not be actually
* 40 and 50msec work well. ide_pc_intr will not be actually
* used until after the packet is moved in about 50 msec.
*/
if (drive->atapi_flags & IDE_AFLAG_ZIP_DRIVE) {
Expand All @@ -241,7 +235,7 @@ static ide_startstop_t idefloppy_start_pc_transfer(ide_drive_t *drive)
expiry = NULL;
}

return ide_transfer_pc(drive, idefloppy_pc_intr, timeout, expiry);
return ide_transfer_pc(drive, timeout, expiry);
}

static void ide_floppy_report_error(idefloppy_floppy_t *floppy,
Expand Down
18 changes: 3 additions & 15 deletions trunk/drivers/ide/ide-tape.c
Original file line number Diff line number Diff line change
Expand Up @@ -618,18 +618,6 @@ static int ide_tape_io_buffers(ide_drive_t *drive, struct ide_atapi_pc *pc,
return bcount;
}

/*
* This is the usual interrupt handler which will be called during a packet
* command. We will transfer some of the data (as requested by the drive) and
* will re-point interrupt handler to us. When data transfer is finished, we
* will act according to the algorithm described before
* idetape_issue_pc.
*/
static ide_startstop_t idetape_pc_intr(ide_drive_t *drive)
{
return ide_pc_intr(drive, idetape_pc_intr);
}

/*
* Packet Command Interface
*
Expand All @@ -640,9 +628,9 @@ static ide_startstop_t idetape_pc_intr(ide_drive_t *drive)
* The handling will be done in three stages:
*
* 1. idetape_issue_pc will send the packet command to the drive, and will set
* the interrupt handler to idetape_pc_intr.
* the interrupt handler to ide_pc_intr.
*
* 2. On each interrupt, idetape_pc_intr will be called. This step will be
* 2. On each interrupt, ide_pc_intr will be called. This step will be
* repeated until the device signals us that no more interrupts will be issued.
*
* 3. ATAPI Tape media access commands have immediate status with a delayed
Expand All @@ -668,7 +656,7 @@ static ide_startstop_t idetape_pc_intr(ide_drive_t *drive)
*/
static ide_startstop_t idetape_transfer_pc(ide_drive_t *drive)
{
return ide_transfer_pc(drive, idetape_pc_intr, WAIT_TAPE_CMD, NULL);
return ide_transfer_pc(drive, WAIT_TAPE_CMD, NULL);
}

static ide_startstop_t idetape_issue_pc(ide_drive_t *drive,
Expand Down
11 changes: 1 addition & 10 deletions trunk/drivers/scsi/ide-scsi.c
Original file line number Diff line number Diff line change
Expand Up @@ -270,18 +270,9 @@ static int idescsi_end_request (ide_drive_t *drive, int uptodate, int nrsecs)
return 0;
}

/*
* Our interrupt handler.
*/
static ide_startstop_t idescsi_pc_intr (ide_drive_t *drive)
{
return ide_pc_intr(drive, idescsi_pc_intr);
}

static ide_startstop_t idescsi_transfer_pc(ide_drive_t *drive)
{
return ide_transfer_pc(drive, idescsi_pc_intr,
ide_scsi_get_timeout(drive->pc),
return ide_transfer_pc(drive, ide_scsi_get_timeout(drive->pc),
ide_scsi_expiry);
}

Expand Down
4 changes: 1 addition & 3 deletions trunk/include/linux/ide.h
Original file line number Diff line number Diff line change
Expand Up @@ -1188,9 +1188,7 @@ static inline unsigned long ide_scsi_get_timeout(struct ide_atapi_pc *pc)

int ide_scsi_expiry(ide_drive_t *);

ide_startstop_t ide_pc_intr(ide_drive_t *drive, ide_handler_t *handler);
ide_startstop_t ide_transfer_pc(ide_drive_t *,
ide_handler_t *, unsigned int, ide_expiry_t *);
ide_startstop_t ide_transfer_pc(ide_drive_t *, unsigned int, ide_expiry_t *);
ide_startstop_t ide_issue_pc(ide_drive_t *,
ide_handler_t *, unsigned int, ide_expiry_t *);

Expand Down

0 comments on commit d3b1fe0

Please sign in to comment.