Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ac7f6b5e authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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
parents 1f9bd4c9 bda30288
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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.

+1 −1
Original line number Diff line number Diff line
@@ -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,

+3 −5
Original line number Diff line number Diff line
@@ -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);
}
+5 −0
Original line number Diff line number Diff line
@@ -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);
+5 −1
Original line number Diff line number Diff line
@@ -1515,6 +1515,10 @@ static int ata_eh_reset(struct ata_port *ap, int classify,
	if (prereset) {
		rc = prereset(ap);
		if (rc) {
			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;
Loading