aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/pci/siimage.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-16 19:56:35 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-16 19:56:35 -0400
commit2b0460b534f383eca744eb8fff66ec9f57e702b9 (patch)
tree1bf4b9d0ebccd3083da4de7e4273b8d29f5d5c5d /drivers/ide/pci/siimage.c
parentd91f5bb69adde86173071cf7fffbdf705ae8c6e7 (diff)
parentb02fcae007ac64012806bc57054e7fee6e2ffe5e (diff)
Merge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6: (33 commits) amd74xx: remove /proc/ide/amd74xx amd74xx/via82cxxx: don't initialize drive->dn sis5513: remove /proc/ide/sis ide: remove CONFIG_IDEDMA_ONLYDISK ide: add "hdx=nodma" kernel parameter ide: remove hwif->autodma and drive->autodma ide: remove "idex=dma" kernel parameter ide: remove CONFIG_BLK_DEV_IDEDMA_FORCED ide: use PCI_VDEVICE() macro sis5513: clear prefetch and postwrite for ATAPI devices it8213/piix/slc90e66: "de-couple" PIO and UDMA modes ide: unexport noautodma ide: unexport ide_tune_dma ide: remove ->ide_dma_check (take 2) ide-pmac: add PIO autotune fallback to ->ide_dma_check ide-cris: add PIO autotune fallback to ->ide_dma_check sl82c105: add PIO autotune fallback to ->ide_dma_check cs5530/sc1200: add PIO autotune fallback to ->ide_dma_check ide: remove ide_use_fast_pio() ide: remove drive->init_speed zeroing ...
Diffstat (limited to 'drivers/ide/pci/siimage.c')
-rw-r--r--drivers/ide/pci/siimage.c42
1 files changed, 4 insertions, 38 deletions
diff --git a/drivers/ide/pci/siimage.c b/drivers/ide/pci/siimage.c
index ce7784996d12..85d0afd00e66 100644
--- a/drivers/ide/pci/siimage.c
+++ b/drivers/ide/pci/siimage.c
@@ -311,27 +311,6 @@ static void sil_set_dma_mode(ide_drive_t *drive, const u8 speed)
311 } 311 }
312} 312}
313 313
314/**
315 * siimage_configure_drive_for_dma - set up for DMA transfers
316 * @drive: drive we are going to set up
317 *
318 * Set up the drive for DMA, tune the controller and drive as
319 * required. If the drive isn't suitable for DMA or we hit
320 * other problems then we will drop down to PIO and set up
321 * PIO appropriately
322 */
323
324static int siimage_config_drive_for_dma (ide_drive_t *drive)
325{
326 if (ide_tune_dma(drive))
327 return 0;
328
329 if (ide_use_fast_pio(drive))
330 ide_set_max_pio(drive);
331
332 return -1;
333}
334
335/* returns 1 if dma irq issued, 0 otherwise */ 314/* returns 1 if dma irq issued, 0 otherwise */
336static int siimage_io_ide_dma_test_irq (ide_drive_t *drive) 315static int siimage_io_ide_dma_test_irq (ide_drive_t *drive)
337{ 316{
@@ -894,8 +873,6 @@ static u8 __devinit ata66_siimage(ide_hwif_t *hwif)
894 873
895static void __devinit init_hwif_siimage(ide_hwif_t *hwif) 874static void __devinit init_hwif_siimage(ide_hwif_t *hwif)
896{ 875{
897 hwif->autodma = 0;
898
899 hwif->resetproc = &siimage_reset; 876 hwif->resetproc = &siimage_reset;
900 hwif->set_pio_mode = &sil_set_pio_mode; 877 hwif->set_pio_mode = &sil_set_pio_mode;
901 hwif->set_dma_mode = &sil_set_dma_mode; 878 hwif->set_dma_mode = &sil_set_dma_mode;
@@ -925,8 +902,6 @@ static void __devinit init_hwif_siimage(ide_hwif_t *hwif)
925 if (!is_sata(hwif)) 902 if (!is_sata(hwif))
926 hwif->atapi_dma = 1; 903 hwif->atapi_dma = 1;
927 904
928 hwif->ide_dma_check = &siimage_config_drive_for_dma;
929
930 if (hwif->cbl != ATA_CBL_PATA40_SHORT) 905 if (hwif->cbl != ATA_CBL_PATA40_SHORT)
931 hwif->cbl = ata66_siimage(hwif); 906 hwif->cbl = ata66_siimage(hwif);
932 907
@@ -935,15 +910,6 @@ static void __devinit init_hwif_siimage(ide_hwif_t *hwif)
935 } else { 910 } else {
936 hwif->ide_dma_test_irq = & siimage_io_ide_dma_test_irq; 911 hwif->ide_dma_test_irq = & siimage_io_ide_dma_test_irq;
937 } 912 }
938
939 /*
940 * The BIOS often doesn't set up DMA on this controller
941 * so we always do it.
942 */
943
944 hwif->autodma = 1;
945 hwif->drives[0].autodma = hwif->autodma;
946 hwif->drives[1].autodma = hwif->autodma;
947} 913}
948 914
949#define DECLARE_SII_DEV(name_str) \ 915#define DECLARE_SII_DEV(name_str) \
@@ -978,11 +944,11 @@ static int __devinit siimage_init_one(struct pci_dev *dev, const struct pci_devi
978 return ide_setup_pci_device(dev, &siimage_chipsets[id->driver_data]); 944 return ide_setup_pci_device(dev, &siimage_chipsets[id->driver_data]);
979} 945}
980 946
981static struct pci_device_id siimage_pci_tbl[] = { 947static const struct pci_device_id siimage_pci_tbl[] = {
982 { PCI_VENDOR_ID_CMD, PCI_DEVICE_ID_SII_680, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, 948 { PCI_VDEVICE(CMD, PCI_DEVICE_ID_SII_680), 0 },
983#ifdef CONFIG_BLK_DEV_IDE_SATA 949#ifdef CONFIG_BLK_DEV_IDE_SATA
984 { PCI_VENDOR_ID_CMD, PCI_DEVICE_ID_SII_3112, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1}, 950 { PCI_VDEVICE(CMD, PCI_DEVICE_ID_SII_3112), 1 },
985 { PCI_VENDOR_ID_CMD, PCI_DEVICE_ID_SII_1210SA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 2}, 951 { PCI_VDEVICE(CMD, PCI_DEVICE_ID_SII_1210SA), 2 },
986#endif 952#endif
987 { 0, }, 953 { 0, },
988}; 954};