summaryrefslogtreecommitdiff
path: root/include/linux/ide.h
diff options
context:
space:
mode:
authorMartin Dalecki <dalecki@evision-ventures.com>2002-06-02 02:42:42 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2002-06-02 02:42:42 -0700
commit08446d856daf3669d2e91c3fd80ccb612e13c20c (patch)
treec76b2b02a1819a0e1ce7fe8731eb39bd942c8ad0 /include/linux/ide.h
parent76d0453847004cf0dd82e368262b17225f4bdd03 (diff)
[PATCH] 2.5.19 IDE 81
- Don't use ata_taskfiles cmd field for drive status reporting, we can now simply use drive->status instead. - Unify command type parser entries which could be unified due to the unification of corresponding interrupt handlers. - Eliminate reading parameter from ata_do_udma(). We have this information already in the rq. This allows us to merge several methods. - Rename XXX_udma to udma_setup, since we have finally settled up on this semantics. - Simplify tons of host chip code by removing wrapper functions.
Diffstat (limited to 'include/linux/ide.h')
-rw-r--r--include/linux/ide.h42
1 files changed, 16 insertions, 26 deletions
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 9c289abd3ccc..24f5ce47a19d 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -425,7 +425,7 @@ struct ata_channel {
* mode itself.
*/
- /* setup disk on a channel for a particular transfer mode */
+ /* setup disk on a channel for a particular PIO transfer mode */
void (*tuneproc) (struct ata_device *, byte pio);
/* setup the chipset timing for a particular transfer mode */
@@ -455,18 +455,13 @@ struct ata_channel {
void (*atapi_read)(struct ata_device *, void *, unsigned int);
void (*atapi_write)(struct ata_device *, void *, unsigned int);
- int (*XXX_udma)(struct ata_device *);
+ int (*udma_setup)(struct ata_device *);
void (*udma_enable)(struct ata_device *, int, int);
-
int (*udma_start) (struct ata_device *, struct request *rq);
int (*udma_stop) (struct ata_device *);
-
- int (*udma_read) (struct ata_device *, struct request *rq);
- int (*udma_write) (struct ata_device *, struct request *rq);
-
+ int (*udma_init) (struct ata_device *, struct request *rq);
int (*udma_irq_status) (struct ata_device *);
-
void (*udma_timeout) (struct ata_device *);
void (*udma_irq_lost) (struct ata_device *);
@@ -770,14 +765,12 @@ static inline int udma_stop(struct ata_device *drive)
return drive->channel->udma_stop(drive);
}
-static inline int udma_read(struct ata_device *drive, struct request *rq)
-{
- return drive->channel->udma_read(drive, rq);
-}
-
-static inline int udma_write(struct ata_device *drive, struct request *rq)
+/*
+ * Initiate actual DMA data transfer. The direction is encoded in the request.
+ */
+static inline int udma_init(struct ata_device *drive, struct request *rq)
{
- return drive->channel->udma_write(drive, rq);
+ return drive->channel->udma_init(drive, rq);
}
static inline int udma_irq_status(struct ata_device *drive)
@@ -797,14 +790,14 @@ static inline void udma_irq_lost(struct ata_device *drive)
#ifdef CONFIG_BLK_DEV_IDEDMA
-void udma_pci_enable(struct ata_device *drive, int on, int verbose);
-int udma_pci_start(struct ata_device *drive, struct request *rq);
-int udma_pci_stop(struct ata_device *drive);
-int udma_pci_read(struct ata_device *drive, struct request *rq);
-int udma_pci_write(struct ata_device *drive, struct request *rq);
-int udma_pci_irq_status(struct ata_device *drive);
-void udma_pci_timeout(struct ata_device *drive);
-void udma_pci_irq_lost(struct ata_device *);
+extern void udma_pci_enable(struct ata_device *drive, int on, int verbose);
+extern int udma_pci_start(struct ata_device *drive, struct request *rq);
+extern int udma_pci_stop(struct ata_device *drive);
+extern int udma_pci_init(struct ata_device *drive, struct request *rq);
+extern int udma_pci_irq_status(struct ata_device *drive);
+extern void udma_pci_timeout(struct ata_device *drive);
+extern void udma_pci_irq_lost(struct ata_device *);
+extern int udma_pci_setup(struct ata_device *);
extern int udma_new_table(struct ata_channel *, struct request *);
extern void udma_destroy_table(struct ata_channel *);
@@ -813,14 +806,11 @@ extern void udma_print(struct ata_device *);
extern int udma_black_list(struct ata_device *);
extern int udma_white_list(struct ata_device *);
-extern int ata_do_udma(unsigned int reading, struct ata_device *drive, struct request *rq);
-
extern ide_startstop_t udma_tcq_taskfile(struct ata_device *, struct request *);
extern int udma_tcq_enable(struct ata_device *, int);
extern ide_startstop_t ide_dma_intr(struct ata_device *, struct request *);
extern int check_drive_lists(struct ata_device *, int good_bad);
-extern int XXX_ide_dmaproc(struct ata_device *);
extern void ide_release_dma(struct ata_channel *);
extern int ata_start_dma(struct ata_device *, struct request *rq);