]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/ata/pata_sis.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog
[linux-2.6-omap-h63xx.git] / drivers / ata / pata_sis.c
index 4ad7fb44bfa607e36da5ec925552ff27724bc3b2..b9ffafb4198ceacb886b91e4de6bf6f3790b7d1d 100644 (file)
@@ -34,7 +34,7 @@
 #include <linux/ata.h>
 
 #define DRV_NAME       "pata_sis"
-#define DRV_VERSION    "0.4.2"
+#define DRV_VERSION    "0.4.4"
 
 struct sis_chipset {
        u16 device;                     /* PCI host ID */
@@ -70,15 +70,13 @@ static int sis_133_pre_reset(struct ata_port *ap)
                { 0x4aU, 1U, 0x02UL, 0x02UL },  /* port 0 */
                { 0x4aU, 1U, 0x04UL, 0x04UL },  /* port 1 */
        };
-       
+
        struct pci_dev *pdev = to_pci_dev(ap->host->dev);
        u16 tmp;
 
-       if (!pci_test_config_bits(pdev, &sis_enable_bits[ap->port_no])) {
-               ata_port_disable(ap);
-               printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
-               return 0;
-       }
+       if (!pci_test_config_bits(pdev, &sis_enable_bits[ap->port_no]))
+               return -ENOENT;
+
        /* The top bit of this register is the cable detect bit */
        pci_read_config_word(pdev, 0x50 + 2 * ap->port_no, &tmp);
        if (tmp & 0x8000)
@@ -164,7 +162,7 @@ static int sis_old_pre_reset(struct ata_port *ap)
                { 0x4aU, 1U, 0x02UL, 0x02UL },  /* port 0 */
                { 0x4aU, 1U, 0x04UL, 0x04UL },  /* port 1 */
        };
-       
+
        struct pci_dev *pdev = to_pci_dev(ap->host->dev);
 
        if (!pci_test_config_bits(pdev, &sis_enable_bits[ap->port_no])) {
@@ -575,8 +573,6 @@ static const struct ata_port_operations sis_133_ops = {
        .qc_issue               = ata_qc_issue_prot,
        .data_xfer              = ata_pio_data_xfer,
 
-       .eng_timeout            = ata_eng_timeout,
-
        .irq_handler            = ata_interrupt,
        .irq_clear              = ata_bmdma_irq_clear,
 
@@ -601,7 +597,7 @@ static const struct ata_port_operations sis_133_early_ops = {
        .thaw                   = ata_bmdma_thaw,
        .error_handler          = sis_66_error_handler,
        .post_internal_cmd      = ata_bmdma_post_internal_cmd,
-       
+
        .bmdma_setup            = ata_bmdma_setup,
        .bmdma_start            = ata_bmdma_start,
        .bmdma_stop             = ata_bmdma_stop,
@@ -610,8 +606,6 @@ static const struct ata_port_operations sis_133_early_ops = {
        .qc_issue               = ata_qc_issue_prot,
        .data_xfer              = ata_pio_data_xfer,
 
-       .eng_timeout            = ata_eng_timeout,
-
        .irq_handler            = ata_interrupt,
        .irq_clear              = ata_bmdma_irq_clear,
 
@@ -636,7 +630,7 @@ static const struct ata_port_operations sis_100_ops = {
        .thaw                   = ata_bmdma_thaw,
        .error_handler          = sis_66_error_handler,
        .post_internal_cmd      = ata_bmdma_post_internal_cmd,
-       
+
 
        .bmdma_setup            = ata_bmdma_setup,
        .bmdma_start            = ata_bmdma_start,
@@ -646,8 +640,6 @@ static const struct ata_port_operations sis_100_ops = {
        .qc_issue               = ata_qc_issue_prot,
        .data_xfer              = ata_pio_data_xfer,
 
-       .eng_timeout            = ata_eng_timeout,
-
        .irq_handler            = ata_interrupt,
        .irq_clear              = ata_bmdma_irq_clear,
 
@@ -681,8 +673,6 @@ static const struct ata_port_operations sis_66_ops = {
        .qc_issue               = ata_qc_issue_prot,
        .data_xfer              = ata_pio_data_xfer,
 
-       .eng_timeout            = ata_eng_timeout,
-
        .irq_handler            = ata_interrupt,
        .irq_clear              = ata_bmdma_irq_clear,
 
@@ -716,8 +706,6 @@ static const struct ata_port_operations sis_old_ops = {
        .qc_issue               = ata_qc_issue_prot,
        .data_xfer              = ata_pio_data_xfer,
 
-       .eng_timeout            = ata_eng_timeout,
-
        .irq_handler            = ata_interrupt,
        .irq_clear              = ata_bmdma_irq_clear,
 
@@ -857,6 +845,10 @@ static int sis_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
        struct sis_chipset *chipset = NULL;
 
        static struct sis_chipset sis_chipsets[] = {
+       
+               { 0x0968, &sis_info133 },
+               { 0x0966, &sis_info133 },
+               { 0x0965, &sis_info133 },
                { 0x0745, &sis_info100 },
                { 0x0735, &sis_info100 },
                { 0x0733, &sis_info100 },
@@ -996,8 +988,9 @@ static int sis_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
 }
 
 static const struct pci_device_id sis_pci_tbl[] = {
-       { PCI_DEVICE(PCI_VENDOR_ID_SI, 0x5513), },      /* SiS 5513 */
-       { PCI_DEVICE(PCI_VENDOR_ID_SI, 0x5518), },      /* SiS 5518 */
+       { PCI_VDEVICE(SI, 0x5513), },   /* SiS 5513 */
+       { PCI_VDEVICE(SI, 0x5518), },   /* SiS 5518 */
+
        { }
 };
 
@@ -1018,7 +1011,6 @@ static void __exit sis_exit(void)
        pci_unregister_driver(&sis_pci_driver);
 }
 
-
 module_init(sis_init);
 module_exit(sis_exit);