diff options
author | Tejun Heo <htejun@gmail.com> | 2007-11-27 05:43:41 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2008-01-23 05:24:11 -0500 |
commit | 9d3501ab962b1506d93974faf8509251b4a85fbc (patch) | |
tree | a4785ca835e1b0ca5551167cf0ecf484eed8b71b /drivers/ata/ata_generic.c | |
parent | 70cd071e4ecc06c985189665af75c108601fd5a3 (diff) |
libata: kill ata_id_to_dma_mode()
ata_id_to_dma_mode() isn't quite generic. The function is basically
privately implemented ata_id_xfermask() combined with hardcoded mode
printing and configuration which are specific to ata_generic.
Kill the function and open code it in generic_set_mode() using generic
xfermode handling functions.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/ata/ata_generic.c')
-rw-r--r-- | drivers/ata/ata_generic.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/drivers/ata/ata_generic.c b/drivers/ata/ata_generic.c index fb5434c8ae6e..d11a4f1fe86a 100644 --- a/drivers/ata/ata_generic.c +++ b/drivers/ata/ata_generic.c | |||
@@ -63,7 +63,22 @@ static int generic_set_mode(struct ata_link *link, struct ata_device **unused) | |||
63 | /* We do need the right mode information for DMA or PIO | 63 | /* We do need the right mode information for DMA or PIO |
64 | and this comes from the current configuration flags */ | 64 | and this comes from the current configuration flags */ |
65 | if (dma_enabled & (1 << (5 + dev->devno))) { | 65 | if (dma_enabled & (1 << (5 + dev->devno))) { |
66 | ata_id_to_dma_mode(dev, XFER_MW_DMA_0); | 66 | unsigned int xfer_mask = ata_id_xfermask(dev->id); |
67 | const char *name; | ||
68 | |||
69 | if (xfer_mask & (ATA_MASK_MWDMA | ATA_MASK_UDMA)) | ||
70 | name = ata_mode_string(xfer_mask); | ||
71 | else { | ||
72 | /* SWDMA perhaps? */ | ||
73 | name = "DMA"; | ||
74 | xfer_mask |= ata_xfer_mode2mask(XFER_MW_DMA_0); | ||
75 | } | ||
76 | |||
77 | ata_dev_printk(dev, KERN_INFO, "configured for %s\n", | ||
78 | name); | ||
79 | |||
80 | dev->xfer_mode = ata_xfer_mask2mode(xfer_mask); | ||
81 | dev->xfer_shift = ata_xfer_mode2shift(dev->xfer_mode); | ||
67 | dev->flags &= ~ATA_DFLAG_PIO; | 82 | dev->flags &= ~ATA_DFLAG_PIO; |
68 | } else { | 83 | } else { |
69 | ata_dev_printk(dev, KERN_INFO, "configured for PIO\n"); | 84 | ata_dev_printk(dev, KERN_INFO, "configured for PIO\n"); |