mirror of
https://github.com/torvalds/linux.git
synced 2024-11-16 17:12:06 +00:00
Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev: [libata] Don't use old-EH ->eng_timeout() hook when not needed [libata] sata_mv: fix oops by filling in missing hook [libata] One more s/15/ATA_SECONDARY_IRQ/ substitution [libata] pata_serverworks: fill in ->irq_clear hook [PATCH] pata_serverworks: correct PCI ID in cable detection table [PATCH] libata-sff: use our IRQ defines [PATCH] libata-eh: Remove layering violation and duplication when handling absent ports [PATCH] libata: tighten rules for legacy dependancies [PATCH] libata: refuse to register IRQless ports
This commit is contained in:
commit
ac7f6b5e44
@ -311,7 +311,7 @@ config PATA_JMICRON
|
||||
|
||||
config PATA_LEGACY
|
||||
tristate "Legacy ISA PATA support (Experimental)"
|
||||
depends on PCI && EXPERIMENTAL
|
||||
depends on ISA && EXPERIMENTAL
|
||||
help
|
||||
This option enables support for ISA/VLB bus legacy PATA
|
||||
ports and allows them to be accessed via the new ATA layer.
|
||||
@ -400,6 +400,7 @@ config PATA_PDC_OLD
|
||||
|
||||
config PATA_QDI
|
||||
tristate "QDI VLB PATA support"
|
||||
depends on ISA
|
||||
help
|
||||
Support for QDI 6500 and 6580 PATA controllers on VESA local bus.
|
||||
|
||||
|
@ -143,7 +143,7 @@ static struct ata_port_operations generic_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
.irq_clear = ata_bmdma_irq_clear,
|
||||
|
||||
|
@ -643,11 +643,9 @@ static int piix_pata_prereset(struct ata_port *ap)
|
||||
{
|
||||
struct pci_dev *pdev = to_pci_dev(ap->host->dev);
|
||||
|
||||
if (!pci_test_config_bits(pdev, &piix_enable_bits[ap->port_no])) {
|
||||
ata_port_printk(ap, KERN_INFO, "port disabled. ignoring.\n");
|
||||
ap->eh_context.i.action &= ~ATA_EH_RESET_MASK;
|
||||
return 0;
|
||||
}
|
||||
if (!pci_test_config_bits(pdev, &piix_enable_bits[ap->port_no]))
|
||||
return -ENOENT;
|
||||
|
||||
ap->cbl = ATA_CBL_PATA40;
|
||||
return ata_std_prereset(ap);
|
||||
}
|
||||
|
@ -5453,6 +5453,11 @@ int ata_device_add(const struct ata_probe_ent *ent)
|
||||
int rc;
|
||||
|
||||
DPRINTK("ENTER\n");
|
||||
|
||||
if (ent->irq == 0) {
|
||||
dev_printk(KERN_ERR, dev, "is not available: No interrupt assigned.\n");
|
||||
return 0;
|
||||
}
|
||||
/* alloc a container for our list of ATA ports (buses) */
|
||||
host = kzalloc(sizeof(struct ata_host) +
|
||||
(ent->n_ports * sizeof(void *)), GFP_KERNEL);
|
||||
|
@ -1515,7 +1515,11 @@ static int ata_eh_reset(struct ata_port *ap, int classify,
|
||||
if (prereset) {
|
||||
rc = prereset(ap);
|
||||
if (rc) {
|
||||
ata_port_printk(ap, KERN_ERR,
|
||||
if (rc == -ENOENT) {
|
||||
ata_port_printk(ap, KERN_DEBUG, "port disabled. ignoring.\n");
|
||||
ap->eh_context.i.action &= ~ATA_EH_RESET_MASK;
|
||||
} else
|
||||
ata_port_printk(ap, KERN_ERR,
|
||||
"prereset failed (errno=%d)\n", rc);
|
||||
return rc;
|
||||
}
|
||||
|
@ -881,7 +881,7 @@ static struct ata_probe_ent *ata_pci_init_legacy_port(struct pci_dev *pdev,
|
||||
probe_ent->private_data = port[0]->private_data;
|
||||
|
||||
if (port_mask & ATA_PORT_PRIMARY) {
|
||||
probe_ent->irq = 14;
|
||||
probe_ent->irq = ATA_PRIMARY_IRQ;
|
||||
probe_ent->port[0].cmd_addr = ATA_PRIMARY_CMD;
|
||||
probe_ent->port[0].altstatus_addr =
|
||||
probe_ent->port[0].ctl_addr = ATA_PRIMARY_CTL;
|
||||
@ -896,9 +896,9 @@ static struct ata_probe_ent *ata_pci_init_legacy_port(struct pci_dev *pdev,
|
||||
|
||||
if (port_mask & ATA_PORT_SECONDARY) {
|
||||
if (probe_ent->irq)
|
||||
probe_ent->irq2 = 15;
|
||||
probe_ent->irq2 = ATA_SECONDARY_IRQ;
|
||||
else
|
||||
probe_ent->irq = 15;
|
||||
probe_ent->irq = ATA_SECONDARY_IRQ;
|
||||
probe_ent->port[1].cmd_addr = ATA_SECONDARY_CMD;
|
||||
probe_ent->port[1].altstatus_addr =
|
||||
probe_ent->port[1].ctl_addr = ATA_SECONDARY_CTL;
|
||||
|
@ -369,7 +369,7 @@ static struct ata_port_operations ali_early_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -410,7 +410,7 @@ static struct ata_port_operations ali_20_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -448,7 +448,7 @@ static struct ata_port_operations ali_c2_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -485,7 +485,7 @@ static struct ata_port_operations ali_c5_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include <linux/libata.h>
|
||||
|
||||
#define DRV_NAME "pata_amd"
|
||||
#define DRV_VERSION "0.2.3"
|
||||
#define DRV_VERSION "0.2.4"
|
||||
|
||||
/**
|
||||
* timing_setup - shared timing computation and load
|
||||
@ -137,11 +137,8 @@ static int amd_pre_reset(struct ata_port *ap)
|
||||
struct pci_dev *pdev = to_pci_dev(ap->host->dev);
|
||||
u8 ata66;
|
||||
|
||||
if (!pci_test_config_bits(pdev, &amd_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, &amd_enable_bits[ap->port_no]))
|
||||
return -ENOENT;
|
||||
|
||||
pci_read_config_byte(pdev, 0x42, &ata66);
|
||||
if (ata66 & bitmask[ap->port_no])
|
||||
@ -167,11 +164,9 @@ static int amd_early_pre_reset(struct ata_port *ap)
|
||||
{ 0x40, 1, 0x01, 0x01 }
|
||||
};
|
||||
|
||||
if (!pci_test_config_bits(pdev, &amd_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, &amd_enable_bits[ap->port_no]))
|
||||
return -ENOENT;
|
||||
|
||||
/* No host side cable detection */
|
||||
ap->cbl = ATA_CBL_PATA80;
|
||||
return ata_std_prereset(ap);
|
||||
@ -262,12 +257,8 @@ static int nv_pre_reset(struct ata_port *ap) {
|
||||
u8 ata66;
|
||||
u16 udma;
|
||||
|
||||
if (!pci_test_config_bits(pdev, &nv_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, &nv_enable_bits[ap->port_no]))
|
||||
return -ENOENT;
|
||||
|
||||
pci_read_config_byte(pdev, 0x52, &ata66);
|
||||
if (ata66 & bitmask[ap->port_no])
|
||||
@ -368,7 +359,7 @@ static struct ata_port_operations amd33_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -402,7 +393,7 @@ static struct ata_port_operations amd66_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -436,7 +427,7 @@ static struct ata_port_operations amd100_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -470,7 +461,7 @@ static struct ata_port_operations amd133_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -504,7 +495,7 @@ static struct ata_port_operations nv100_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -538,7 +529,7 @@ static struct ata_port_operations nv133_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -28,7 +28,7 @@
|
||||
#include <linux/ata.h>
|
||||
|
||||
#define DRV_NAME "pata_artop"
|
||||
#define DRV_VERSION "0.4.1"
|
||||
#define DRV_VERSION "0.4.2"
|
||||
|
||||
/*
|
||||
* The ARTOP has 33 Mhz and "over clocked" timing tables. Until we
|
||||
@ -47,11 +47,9 @@ static int artop6210_pre_reset(struct ata_port *ap)
|
||||
{ 0x4AU, 1U, 0x04UL, 0x04UL }, /* port 1 */
|
||||
};
|
||||
|
||||
if (!pci_test_config_bits(pdev, &artop_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, &artop_enable_bits[ap->port_no]))
|
||||
return -ENOENT;
|
||||
|
||||
ap->cbl = ATA_CBL_PATA40;
|
||||
return ata_std_prereset(ap);
|
||||
}
|
||||
@ -90,11 +88,9 @@ static int artop6260_pre_reset(struct ata_port *ap)
|
||||
u8 tmp;
|
||||
|
||||
/* Odd numbered device ids are the units with enable bits (the -R cards) */
|
||||
if (pdev->device % 1 && !pci_test_config_bits(pdev, &artop_enable_bits[ap->port_no])) {
|
||||
ata_port_disable(ap);
|
||||
printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
|
||||
return 0;
|
||||
}
|
||||
if (pdev->device % 1 && !pci_test_config_bits(pdev, &artop_enable_bits[ap->port_no]))
|
||||
return -ENOENT;
|
||||
|
||||
pci_read_config_byte(pdev, 0x49, &tmp);
|
||||
if (tmp & (1 >> ap->port_no))
|
||||
ap->cbl = ATA_CBL_PATA40;
|
||||
@ -344,7 +340,7 @@ static const struct ata_port_operations artop6210_ops = {
|
||||
.bmdma_status = ata_bmdma_status,
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -379,8 +375,6 @@ static const struct ata_port_operations artop6260_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,
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include <linux/libata.h>
|
||||
|
||||
#define DRV_NAME "pata_atiixp"
|
||||
#define DRV_VERSION "0.4.2"
|
||||
#define DRV_VERSION "0.4.3"
|
||||
|
||||
enum {
|
||||
ATIIXP_IDE_PIO_TIMING = 0x40,
|
||||
@ -41,11 +41,9 @@ static int atiixp_pre_reset(struct ata_port *ap)
|
||||
{ 0x48, 1, 0x08, 0x00 }
|
||||
};
|
||||
|
||||
if (!pci_test_config_bits(pdev, &atiixp_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, &atiixp_enable_bits[ap->port_no]))
|
||||
return -ENOENT;
|
||||
|
||||
ap->cbl = ATA_CBL_PATA80;
|
||||
return ata_std_prereset(ap);
|
||||
}
|
||||
@ -244,7 +242,7 @@ static struct ata_port_operations atiixp_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -301,7 +301,7 @@ static struct ata_port_operations cmd64x_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -335,7 +335,7 @@ static struct ata_port_operations cmd646r1_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -369,7 +369,7 @@ static struct ata_port_operations cmd648_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -193,8 +193,6 @@ static struct ata_port_operations cs5520_port_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,
|
||||
|
||||
|
@ -207,7 +207,7 @@ static struct ata_port_operations cs5530_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = cs5530_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -211,7 +211,7 @@ static struct ata_port_operations cs5535_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -162,7 +162,7 @@ static struct ata_port_operations cy82c693_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include <linux/ata.h>
|
||||
|
||||
#define DRV_NAME "pata_efar"
|
||||
#define DRV_VERSION "0.4.1"
|
||||
#define DRV_VERSION "0.4.2"
|
||||
|
||||
/**
|
||||
* efar_pre_reset - check for 40/80 pin
|
||||
@ -42,11 +42,9 @@ static int efar_pre_reset(struct ata_port *ap)
|
||||
struct pci_dev *pdev = to_pci_dev(ap->host->dev);
|
||||
u8 tmp;
|
||||
|
||||
if (!pci_test_config_bits(pdev, &efar_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, &efar_enable_bits[ap->port_no]))
|
||||
return -ENOENT;
|
||||
|
||||
pci_read_config_byte(pdev, 0x47, &tmp);
|
||||
if (tmp & (2 >> ap->port_no))
|
||||
ap->cbl = ATA_CBL_PATA40;
|
||||
@ -263,8 +261,6 @@ static const struct ata_port_operations efar_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,
|
||||
|
||||
|
@ -360,7 +360,7 @@ static struct ata_port_operations hpt366_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -793,7 +793,7 @@ static struct ata_port_operations hpt370_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -832,7 +832,7 @@ static struct ata_port_operations hpt370a_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -872,7 +872,7 @@ static struct ata_port_operations hpt372_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -912,7 +912,7 @@ static struct ata_port_operations hpt374_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -372,7 +372,7 @@ static struct ata_port_operations hpt3x2n_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = hpt3x2n_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -145,7 +145,7 @@ static struct ata_port_operations hpt3x3_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -52,7 +52,7 @@ static struct ata_port_operations isapnp_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -703,7 +703,7 @@ static struct ata_port_operations it821x_smart_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = it821x_smart_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -739,7 +739,7 @@ static struct ata_port_operations it821x_passthru_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = it821x_passthru_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_clear = ata_bmdma_irq_clear,
|
||||
|
@ -51,7 +51,7 @@ static int jmicron_pre_reset(struct ata_port *ap)
|
||||
/* Check if our port is enabled */
|
||||
pci_read_config_dword(pdev, 0x40, &control);
|
||||
if ((control & port_mask) == 0)
|
||||
return 0;
|
||||
return -ENOENT;
|
||||
|
||||
/* There are two basic mappings. One has the two SATA ports merged
|
||||
as master/slave and the secondary as PATA, the other has only the
|
||||
@ -164,8 +164,7 @@ static const struct ata_port_operations jmicron_ops = {
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
/* Timeout handling. Special recovery hooks here */
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
/* IRQ-related hooks */
|
||||
.irq_handler = ata_interrupt,
|
||||
.irq_clear = ata_bmdma_irq_clear,
|
||||
|
||||
|
@ -161,7 +161,7 @@ static struct ata_port_operations simple_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer_noirq,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -186,7 +186,7 @@ static struct ata_port_operations legacy_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer_noirq,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -296,7 +296,7 @@ static struct ata_port_operations pdc20230_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = pdc_data_xfer_vlb,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -348,7 +348,7 @@ static struct ata_port_operations ht6560a_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer, /* Check vlb/noirq */
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -411,7 +411,7 @@ static struct ata_port_operations ht6560b_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer, /* FIXME: Check 32bit and noirq */
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -529,7 +529,7 @@ static struct ata_port_operations opti82c611a_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -659,7 +659,7 @@ static struct ata_port_operations opti82c46x_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = opti82c46x_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -18,7 +18,7 @@
|
||||
* The driver conciously keeps this logic internally to avoid pushing quirky
|
||||
* PATA history into the clean libata layer.
|
||||
*
|
||||
* Thinkpad specific note: If you boot an MPIIX using thinkpad with a PCMCIA
|
||||
* Thinkpad specific note: If you boot an MPIIX using a thinkpad with a PCMCIA
|
||||
* hard disk present this driver will not detect it. This is not a bug. In this
|
||||
* configuration the secondary port of the MPIIX is disabled and the addresses
|
||||
* are decoded by the PCMCIA bridge and therefore are for a generic IDE driver
|
||||
@ -35,7 +35,7 @@
|
||||
#include <linux/libata.h>
|
||||
|
||||
#define DRV_NAME "pata_mpiix"
|
||||
#define DRV_VERSION "0.7.1"
|
||||
#define DRV_VERSION "0.7.2"
|
||||
|
||||
enum {
|
||||
IDETIM = 0x6C, /* IDE control register */
|
||||
@ -54,11 +54,8 @@ static int mpiix_pre_reset(struct ata_port *ap)
|
||||
{ 0x6F, 1, 0x80, 0x80 }
|
||||
};
|
||||
|
||||
if (!pci_test_config_bits(pdev, &mpiix_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, &mpiix_enable_bits[ap->port_no]))
|
||||
return -ENOENT;
|
||||
ap->cbl = ATA_CBL_PATA40;
|
||||
return ata_std_prereset(ap);
|
||||
}
|
||||
|
@ -90,8 +90,7 @@ static const struct ata_port_operations netcell_ops = {
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
/* Timeout handling. Special recovery hooks here */
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
/* IRQ-related hooks */
|
||||
.irq_handler = ata_interrupt,
|
||||
.irq_clear = ata_bmdma_irq_clear,
|
||||
|
||||
|
@ -45,11 +45,8 @@ static int ns87410_pre_reset(struct ata_port *ap)
|
||||
{ 0x47, 1, 0x08, 0x08 }
|
||||
};
|
||||
|
||||
if (!pci_test_config_bits(pdev, &ns87410_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, &ns87410_enable_bits[ap->port_no]))
|
||||
return -ENOENT;
|
||||
ap->cbl = ATA_CBL_PATA40;
|
||||
return ata_std_prereset(ap);
|
||||
}
|
||||
@ -179,7 +176,7 @@ static struct ata_port_operations ns87410_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ns87410_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include <linux/ata.h>
|
||||
|
||||
#define DRV_NAME "pata_oldpiix"
|
||||
#define DRV_VERSION "0.5.1"
|
||||
#define DRV_VERSION "0.5.2"
|
||||
|
||||
/**
|
||||
* oldpiix_pre_reset - probe begin
|
||||
@ -42,11 +42,8 @@ static int oldpiix_pre_reset(struct ata_port *ap)
|
||||
{ 0x43U, 1U, 0x80UL, 0x80UL }, /* port 1 */
|
||||
};
|
||||
|
||||
if (!pci_test_config_bits(pdev, &oldpiix_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, &oldpiix_enable_bits[ap->port_no]))
|
||||
return -ENOENT;
|
||||
ap->cbl = ATA_CBL_PATA40;
|
||||
return ata_std_prereset(ap);
|
||||
}
|
||||
|
@ -34,7 +34,7 @@
|
||||
#include <linux/libata.h>
|
||||
|
||||
#define DRV_NAME "pata_opti"
|
||||
#define DRV_VERSION "0.2.4"
|
||||
#define DRV_VERSION "0.2.5"
|
||||
|
||||
enum {
|
||||
READ_REG = 0, /* index of Read cycle timing register */
|
||||
@ -59,11 +59,9 @@ static int opti_pre_reset(struct ata_port *ap)
|
||||
{ 0x40, 1, 0x08, 0x00 }
|
||||
};
|
||||
|
||||
if (!pci_test_config_bits(pdev, &opti_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, &opti_enable_bits[ap->port_no]))
|
||||
return -ENOENT;
|
||||
|
||||
ap->cbl = ATA_CBL_PATA40;
|
||||
return ata_std_prereset(ap);
|
||||
}
|
||||
@ -229,7 +227,7 @@ static struct ata_port_operations opti_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -33,7 +33,7 @@
|
||||
#include <linux/libata.h>
|
||||
|
||||
#define DRV_NAME "pata_optidma"
|
||||
#define DRV_VERSION "0.2.1"
|
||||
#define DRV_VERSION "0.2.2"
|
||||
|
||||
enum {
|
||||
READ_REG = 0, /* index of Read cycle timing register */
|
||||
@ -59,11 +59,9 @@ static int optidma_pre_reset(struct ata_port *ap)
|
||||
0x40, 1, 0x08, 0x00
|
||||
};
|
||||
|
||||
if (ap->port_no && !pci_test_config_bits(pdev, &optidma_enable_bits)) {
|
||||
ata_port_disable(ap);
|
||||
printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
|
||||
return 0;
|
||||
}
|
||||
if (ap->port_no && !pci_test_config_bits(pdev, &optidma_enable_bits))
|
||||
return -ENOENT;
|
||||
|
||||
ap->cbl = ATA_CBL_PATA40;
|
||||
return ata_std_prereset(ap);
|
||||
}
|
||||
@ -388,7 +386,7 @@ static struct ata_port_operations optidma_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -423,7 +421,7 @@ static struct ata_port_operations optiplus_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -87,7 +87,7 @@ static struct ata_port_operations pcmcia_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer_noirq,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -36,7 +36,7 @@
|
||||
#include <asm/io.h>
|
||||
|
||||
#define DRV_NAME "pata_pdc2027x"
|
||||
#define DRV_VERSION "0.74-ac3"
|
||||
#define DRV_VERSION "0.74-ac5"
|
||||
#undef PDC_DEBUG
|
||||
|
||||
#ifdef PDC_DEBUG
|
||||
@ -311,10 +311,8 @@ static inline int pdc2027x_port_enabled(struct ata_port *ap)
|
||||
static int pdc2027x_prereset(struct ata_port *ap)
|
||||
{
|
||||
/* Check whether port enabled */
|
||||
if (!pdc2027x_port_enabled(ap)) {
|
||||
printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
|
||||
return 0;
|
||||
}
|
||||
if (!pdc2027x_port_enabled(ap))
|
||||
return -ENOENT;
|
||||
pdc2027x_cbl_detect(ap);
|
||||
return ata_std_prereset(ap);
|
||||
}
|
||||
|
@ -184,7 +184,7 @@ static struct ata_port_operations qdi6500_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = qdi_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = qdi_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -212,7 +212,7 @@ static struct ata_port_operations qdi6580_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = qdi_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = qdi_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -255,8 +255,6 @@ static const struct ata_port_operations radisys_pata_ops = {
|
||||
.qc_issue = radisys_qc_issue_prot,
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
.irq_clear = ata_bmdma_irq_clear,
|
||||
|
||||
|
@ -112,7 +112,7 @@ static struct ata_port_operations rz1000_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.freeze = ata_bmdma_freeze,
|
||||
|
@ -217,7 +217,7 @@ static struct ata_port_operations sc1200_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = sc1200_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -41,7 +41,7 @@
|
||||
#include <linux/libata.h>
|
||||
|
||||
#define DRV_NAME "pata_serverworks"
|
||||
#define DRV_VERSION "0.3.6"
|
||||
#define DRV_VERSION "0.3.7"
|
||||
|
||||
#define SVWKS_CSB5_REVISION_NEW 0x92 /* min PCI_REVISION_ID for UDMA5 (A2.0) */
|
||||
#define SVWKS_CSB6_REVISION 0xa0 /* min PCI_REVISION_ID for UDMA4 (A1.0) */
|
||||
@ -128,7 +128,7 @@ static struct sv_cable_table cable_detect[] = {
|
||||
{ PCI_DEVICE_ID_SERVERWORKS_CSB5IDE, PCI_VENDOR_ID_DELL, dell_cable },
|
||||
{ PCI_DEVICE_ID_SERVERWORKS_CSB6IDE, PCI_VENDOR_ID_DELL, dell_cable },
|
||||
{ PCI_DEVICE_ID_SERVERWORKS_CSB5IDE, PCI_VENDOR_ID_SUN, sun_cable },
|
||||
{ PCI_DEVICE_ID_SERVERWORKS_OSB4, PCI_ANY_ID, osb4_cable },
|
||||
{ PCI_DEVICE_ID_SERVERWORKS_OSB4IDE, PCI_ANY_ID, osb4_cable },
|
||||
{ PCI_DEVICE_ID_SERVERWORKS_CSB5IDE, PCI_ANY_ID, csb_cable },
|
||||
{ PCI_DEVICE_ID_SERVERWORKS_CSB6IDE, PCI_ANY_ID, csb_cable },
|
||||
{ PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2, PCI_ANY_ID, csb_cable },
|
||||
@ -352,10 +352,12 @@ static struct ata_port_operations serverworks_osb4_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
.irq_clear = ata_bmdma_irq_clear,
|
||||
|
||||
.port_start = ata_port_start,
|
||||
.port_stop = ata_port_stop,
|
||||
.host_stop = ata_host_stop
|
||||
@ -385,10 +387,12 @@ static struct ata_port_operations serverworks_csb_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
.irq_clear = ata_bmdma_irq_clear,
|
||||
|
||||
.port_start = ata_port_start,
|
||||
.port_stop = ata_port_stop,
|
||||
.host_stop = ata_host_stop
|
||||
|
@ -251,7 +251,7 @@ static struct ata_port_operations sil680_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -34,7 +34,7 @@
|
||||
#include <linux/ata.h>
|
||||
|
||||
#define DRV_NAME "pata_sis"
|
||||
#define DRV_VERSION "0.4.3"
|
||||
#define DRV_VERSION "0.4.4"
|
||||
|
||||
struct sis_chipset {
|
||||
u16 device; /* PCI host ID */
|
||||
@ -74,11 +74,9 @@ static int sis_133_pre_reset(struct ata_port *ap)
|
||||
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)
|
||||
@ -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,
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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,
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
#include <linux/libata.h>
|
||||
|
||||
#define DRV_NAME "pata_sl82c105"
|
||||
#define DRV_VERSION "0.2.2"
|
||||
#define DRV_VERSION "0.2.3"
|
||||
|
||||
enum {
|
||||
/*
|
||||
@ -49,11 +49,8 @@ static int sl82c105_pre_reset(struct ata_port *ap)
|
||||
};
|
||||
struct pci_dev *pdev = to_pci_dev(ap->host->dev);
|
||||
|
||||
if (ap->port_no && !pci_test_config_bits(pdev, &sl82c105_enable_bits[ap->port_no])) {
|
||||
ata_port_disable(ap);
|
||||
dev_printk(KERN_INFO, &pdev->dev, "port disabled. ignoring.\n");
|
||||
return 0;
|
||||
}
|
||||
if (ap->port_no && !pci_test_config_bits(pdev, &sl82c105_enable_bits[ap->port_no]))
|
||||
return -ENOENT;
|
||||
ap->cbl = ATA_CBL_PATA40;
|
||||
return ata_std_prereset(ap);
|
||||
}
|
||||
@ -264,7 +261,7 @@ static struct ata_port_operations sl82c105_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -46,13 +46,13 @@
|
||||
#define DRV_VERSION "0.2.5"
|
||||
|
||||
/**
|
||||
* triflex_probe_init - probe begin
|
||||
* triflex_prereset - probe begin
|
||||
* @ap: ATA port
|
||||
*
|
||||
* Set up cable type and use generic probe init
|
||||
*/
|
||||
|
||||
static int triflex_probe_init(struct ata_port *ap)
|
||||
static int triflex_prereset(struct ata_port *ap)
|
||||
{
|
||||
static const struct pci_bits triflex_enable_bits[] = {
|
||||
{ 0x80, 1, 0x01, 0x01 },
|
||||
@ -61,11 +61,8 @@ static int triflex_probe_init(struct ata_port *ap)
|
||||
|
||||
struct pci_dev *pdev = to_pci_dev(ap->host->dev);
|
||||
|
||||
if (!pci_test_config_bits(pdev, &triflex_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, &triflex_enable_bits[ap->port_no]))
|
||||
return -ENOENT;
|
||||
ap->cbl = ATA_CBL_PATA40;
|
||||
return ata_std_prereset(ap);
|
||||
}
|
||||
@ -74,7 +71,7 @@ static int triflex_probe_init(struct ata_port *ap)
|
||||
|
||||
static void triflex_error_handler(struct ata_port *ap)
|
||||
{
|
||||
ata_bmdma_drive_eh(ap, triflex_probe_init, ata_std_softreset, NULL, ata_std_postreset);
|
||||
ata_bmdma_drive_eh(ap, triflex_prereset, ata_std_softreset, NULL, ata_std_postreset);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -221,7 +218,7 @@ static struct ata_port_operations triflex_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -60,7 +60,7 @@
|
||||
#include <linux/libata.h>
|
||||
|
||||
#define DRV_NAME "pata_via"
|
||||
#define DRV_VERSION "0.1.13"
|
||||
#define DRV_VERSION "0.1.14"
|
||||
|
||||
/*
|
||||
* The following comes directly from Vojtech Pavlik's ide/pci/via82cxxx
|
||||
@ -155,11 +155,8 @@ static int via_pre_reset(struct ata_port *ap)
|
||||
|
||||
struct pci_dev *pdev = to_pci_dev(ap->host->dev);
|
||||
|
||||
if (!pci_test_config_bits(pdev, &via_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, &via_enable_bits[ap->port_no]))
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
if ((config->flags & VIA_UDMA) >= VIA_UDMA_66)
|
||||
@ -325,7 +322,7 @@ static struct ata_port_operations via_port_ops = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
@ -360,7 +357,7 @@ static struct ata_port_operations via_port_ops_noirq = {
|
||||
|
||||
.qc_prep = ata_qc_prep,
|
||||
.qc_issue = ata_qc_issue_prot,
|
||||
.eng_timeout = ata_eng_timeout,
|
||||
|
||||
.data_xfer = ata_pio_data_xfer_noirq,
|
||||
|
||||
.irq_handler = ata_interrupt,
|
||||
|
@ -463,6 +463,7 @@ static const struct ata_port_operations mv_iie_ops = {
|
||||
|
||||
.qc_prep = mv_qc_prep_iie,
|
||||
.qc_issue = mv_qc_issue,
|
||||
.data_xfer = ata_mmio_data_xfer,
|
||||
|
||||
.eng_timeout = mv_eng_timeout,
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user