mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 19:56:18 +00:00
pata_sl82c105: remove un-needed code paths
Remove the DMA setup function. As pointed out by Sergey we set the actual DMA clock timing in set_dmamode so we don't actually need to do anything with it at set up time, but just leave the PIO timings loaded. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
cb0e34ba59
commit
16728da998
1 changed files with 9 additions and 30 deletions
|
@ -7,6 +7,13 @@
|
||||||
* SL82C105/Winbond 553 IDE driver
|
* SL82C105/Winbond 553 IDE driver
|
||||||
*
|
*
|
||||||
* and in part on the documentation and errata sheet
|
* and in part on the documentation and errata sheet
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Note: The controller like many controllers has shared timings for
|
||||||
|
* PIO and DMA. We thus flip to the DMA timings in dma_start and flip back
|
||||||
|
* in the dma_stop function. Thus we actually don't need a set_dmamode
|
||||||
|
* method as the PIO method is always called and will set the right PIO
|
||||||
|
* timing parameters.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
@ -19,7 +26,7 @@
|
||||||
#include <linux/libata.h>
|
#include <linux/libata.h>
|
||||||
|
|
||||||
#define DRV_NAME "pata_sl82c105"
|
#define DRV_NAME "pata_sl82c105"
|
||||||
#define DRV_VERSION "0.2.3"
|
#define DRV_VERSION "0.2.5"
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
/*
|
/*
|
||||||
|
@ -125,33 +132,6 @@ static void sl82c105_configure_dmamode(struct ata_port *ap, struct ata_device *a
|
||||||
pci_read_config_word(pdev, timing, &dummy);
|
pci_read_config_word(pdev, timing, &dummy);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* sl82c105_set_dmamode - set initial DMA mode data
|
|
||||||
* @ap: ATA interface
|
|
||||||
* @adev: ATA device
|
|
||||||
*
|
|
||||||
* Called to do the DMA mode setup. This replaces the PIO timings
|
|
||||||
* for the device in question. Set appropriate PIO timings not DMA
|
|
||||||
* timings at this point.
|
|
||||||
*/
|
|
||||||
|
|
||||||
static void sl82c105_set_dmamode(struct ata_port *ap, struct ata_device *adev)
|
|
||||||
{
|
|
||||||
switch(adev->dma_mode) {
|
|
||||||
case XFER_MW_DMA_0:
|
|
||||||
sl82c105_configure_piomode(ap, adev, 0);
|
|
||||||
break;
|
|
||||||
case XFER_MW_DMA_1:
|
|
||||||
sl82c105_configure_piomode(ap, adev, 3);
|
|
||||||
break;
|
|
||||||
case XFER_MW_DMA_2:
|
|
||||||
sl82c105_configure_piomode(ap, adev, 4);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
BUG();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* sl82c105_reset_engine - Reset the DMA engine
|
* sl82c105_reset_engine - Reset the DMA engine
|
||||||
* @ap: ATA interface
|
* @ap: ATA interface
|
||||||
|
@ -222,7 +202,7 @@ static void sl82c105_bmdma_stop(struct ata_queued_cmd *qc)
|
||||||
|
|
||||||
/* This will redo the initial setup of the DMA device to matching
|
/* This will redo the initial setup of the DMA device to matching
|
||||||
PIO timings */
|
PIO timings */
|
||||||
sl82c105_set_dmamode(ap, qc->dev);
|
sl82c105_set_piomode(ap, qc->dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct scsi_host_template sl82c105_sht = {
|
static struct scsi_host_template sl82c105_sht = {
|
||||||
|
@ -246,7 +226,6 @@ static struct scsi_host_template sl82c105_sht = {
|
||||||
static struct ata_port_operations sl82c105_port_ops = {
|
static struct ata_port_operations sl82c105_port_ops = {
|
||||||
.port_disable = ata_port_disable,
|
.port_disable = ata_port_disable,
|
||||||
.set_piomode = sl82c105_set_piomode,
|
.set_piomode = sl82c105_set_piomode,
|
||||||
.set_dmamode = sl82c105_set_dmamode,
|
|
||||||
.mode_filter = ata_pci_default_filter,
|
.mode_filter = ata_pci_default_filter,
|
||||||
|
|
||||||
.tf_load = ata_tf_load,
|
.tf_load = ata_tf_load,
|
||||||
|
|
Loading…
Reference in a new issue