vserver 1.9.3
[linux-2.6.git] / drivers / scsi / sata_sil.c
index 72a89d1..9a349a9 100644 (file)
@@ -6,7 +6,7 @@
  *                 on emails.
  *
  *  Copyright 2003 Red Hat, Inc.
- *  Copyright 2003 Benjamin Herrenschmidt <benh@kernel.crashing.org>
+ *  Copyright 2003 Benjamin Herrenschmidt
  *
  *  The contents of this file are subject to the Open
  *  Software License version 1.1 that can be found at
@@ -106,6 +106,7 @@ static struct pci_driver sil_pci_driver = {
 static Scsi_Host_Template sil_sht = {
        .module                 = THIS_MODULE,
        .name                   = DRV_NAME,
+       .ioctl                  = ata_scsi_ioctl,
        .queuecommand           = ata_scsi_queuecmd,
        .eh_strategy_handler    = ata_scsi_error,
        .can_queue              = ATA_DEF_QUEUE,
@@ -124,14 +125,15 @@ static Scsi_Host_Template sil_sht = {
 static struct ata_port_operations sil_ops = {
        .port_disable           = ata_port_disable,
        .dev_config             = sil_dev_config,
-       .tf_load                = ata_tf_load_mmio,
-       .tf_read                = ata_tf_read_mmio,
-       .check_status           = ata_check_status_mmio,
-       .exec_command           = ata_exec_command_mmio,
+       .tf_load                = ata_tf_load,
+       .tf_read                = ata_tf_read,
+       .check_status           = ata_check_status,
+       .exec_command           = ata_exec_command,
+       .dev_select             = ata_std_dev_select,
        .phy_reset              = sata_phy_reset,
        .post_set_mode          = sil_post_set_mode,
-       .bmdma_setup            = ata_bmdma_setup_mmio,
-       .bmdma_start            = ata_bmdma_start_mmio,
+       .bmdma_setup            = ata_bmdma_setup,
+       .bmdma_start            = ata_bmdma_start,
        .qc_prep                = ata_qc_prep,
        .qc_issue               = ata_qc_issue_prot,
        .eng_timeout            = ata_eng_timeout,
@@ -149,7 +151,8 @@ static struct ata_port_info sil_port_info[] = {
                .sht            = &sil_sht,
                .host_flags     = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
                                  ATA_FLAG_SRST | ATA_FLAG_MMIO,
-               .pio_mask       = 0x03,                 /* pio3-4 */
+               .pio_mask       = 0x1f,                 /* pio0-4 */
+               .mwdma_mask     = 0x07,                 /* mwdma0-2 */
                .udma_mask      = 0x3f,                 /* udma0-5 */
                .port_ops       = &sil_ops,
        }, /* sil_3114 */
@@ -157,7 +160,8 @@ static struct ata_port_info sil_port_info[] = {
                .sht            = &sil_sht,
                .host_flags     = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
                                  ATA_FLAG_SRST | ATA_FLAG_MMIO,
-               .pio_mask       = 0x03,                 /* pio3-4 */
+               .pio_mask       = 0x1f,                 /* pio0-4 */
+               .mwdma_mask     = 0x07,                 /* mwdma0-2 */
                .udma_mask      = 0x3f,                 /* udma0-5 */
                .port_ops       = &sil_ops,
        },
@@ -363,6 +367,7 @@ static int sil_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
        probe_ent->sht = sil_port_info[ent->driver_data].sht;
        probe_ent->n_ports = (ent->driver_data == sil_3114) ? 4 : 2;
        probe_ent->pio_mask = sil_port_info[ent->driver_data].pio_mask;
+       probe_ent->mwdma_mask = sil_port_info[ent->driver_data].mwdma_mask;
        probe_ent->udma_mask = sil_port_info[ent->driver_data].udma_mask;
                probe_ent->irq = pdev->irq;
                probe_ent->irq_flags = SA_SHIRQ;