Skip to content

Commit

Permalink
[PATCH] libata: regularize dma_start/stop arguments
Browse files Browse the repository at this point in the history
Needed for a few PATA drivers.

Also fix up a wrong comment.
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
  • Loading branch information
Alan Cox authored and Jeff Garzik committed Aug 26, 2005
1 parent 31433ea commit b73fc89
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 9 deletions.
11 changes: 6 additions & 5 deletions drivers/scsi/libata-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -3017,7 +3017,7 @@ static void ata_qc_timeout(struct ata_queued_cmd *qc)
host_stat = ap->ops->bmdma_status(ap);

/* before we do anything else, clear DMA-Start bit */
ap->ops->bmdma_stop(ap);
ap->ops->bmdma_stop(qc);

/* fall through */

Expand Down Expand Up @@ -3399,7 +3399,7 @@ static void ata_bmdma_setup_mmio (struct ata_queued_cmd *qc)
}

/**
* ata_bmdma_start - Start a PCI IDE BMDMA transaction
* ata_bmdma_start_mmio - Start a PCI IDE BMDMA transaction
* @qc: Info associated with this ATA transaction.
*
* LOCKING:
Expand Down Expand Up @@ -3570,7 +3570,7 @@ u8 ata_bmdma_status(struct ata_port *ap)

/**
* ata_bmdma_stop - Stop PCI IDE BMDMA transfer
* @ap: Port associated with this ATA transaction.
* @qc: Command we are ending DMA for
*
* Clears the ATA_DMA_START flag in the dma control register
*
Expand All @@ -3580,8 +3580,9 @@ u8 ata_bmdma_status(struct ata_port *ap)
* spin_lock_irqsave(host_set lock)
*/

void ata_bmdma_stop(struct ata_port *ap)
void ata_bmdma_stop(struct ata_queued_cmd *qc)
{
struct ata_port *ap = qc->ap;
if (ap->flags & ATA_FLAG_MMIO) {
void __iomem *mmio = (void __iomem *) ap->ioaddr.bmdma_addr;

Expand Down Expand Up @@ -3633,7 +3634,7 @@ inline unsigned int ata_host_intr (struct ata_port *ap,
goto idle_irq;

/* before we do anything else, clear DMA-Start bit */
ap->ops->bmdma_stop(ap);
ap->ops->bmdma_stop(qc);

/* fall through */

Expand Down
4 changes: 2 additions & 2 deletions drivers/scsi/sata_qstor.c
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ static void qs_phy_reset(struct ata_port *ap);
static void qs_qc_prep(struct ata_queued_cmd *qc);
static int qs_qc_issue(struct ata_queued_cmd *qc);
static int qs_check_atapi_dma(struct ata_queued_cmd *qc);
static void qs_bmdma_stop(struct ata_port *ap);
static void qs_bmdma_stop(struct ata_queued_cmd *qc);
static u8 qs_bmdma_status(struct ata_port *ap);
static void qs_irq_clear(struct ata_port *ap);
static void qs_eng_timeout(struct ata_port *ap);
Expand Down Expand Up @@ -198,7 +198,7 @@ static int qs_check_atapi_dma(struct ata_queued_cmd *qc)
return 1; /* ATAPI DMA not supported */
}

static void qs_bmdma_stop(struct ata_port *ap)
static void qs_bmdma_stop(struct ata_queud_cmd *qc)
{
/* nothing */
}
Expand Down
5 changes: 3 additions & 2 deletions include/linux/libata.h
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@ struct ata_port_operations {

void (*host_stop) (struct ata_host_set *host_set);

void (*bmdma_stop) (struct ata_port *ap);
void (*bmdma_stop) (struct ata_queued_cmd *qc);
u8 (*bmdma_status) (struct ata_port *ap);
};

Expand Down Expand Up @@ -424,9 +424,10 @@ extern unsigned int ata_dev_classify(struct ata_taskfile *tf);
extern void ata_dev_id_string(u16 *id, unsigned char *s,
unsigned int ofs, unsigned int len);
extern void ata_dev_config(struct ata_port *ap, unsigned int i);
extern void ata_dev_set_protocol(struct ata_device *dev);
extern void ata_bmdma_setup (struct ata_queued_cmd *qc);
extern void ata_bmdma_start (struct ata_queued_cmd *qc);
extern void ata_bmdma_stop(struct ata_port *ap);
extern void ata_bmdma_stop(struct ata_queued_cmd *qc);
extern u8 ata_bmdma_status(struct ata_port *ap);
extern void ata_bmdma_irq_clear(struct ata_port *ap);
extern void ata_qc_complete(struct ata_queued_cmd *qc, u8 drv_stat);
Expand Down

0 comments on commit b73fc89

Please sign in to comment.