Commit 8c022fdd authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
  pata-rb532-cf: remove set_irq_type from finish_io
  [libata] pata_via: support VX855, future chips whose IDE controller use 0x0571
  sata_mv: no longer experimental (v2)
  sata_mv: msi masking fix (v2)
  sata_mv: Properly initialize main irq mask
  sata_mv: remove bogus nsect restriction
  sata_mv: don't read hc_irq_cause
  sata_mv: fix 8-port timeouts on 508x/6081 chips
  sata_nv: fix MCP5x reset
  sata_nv: rename nv_nf2_hardreset()
  libata: set NODEV_HINT for 0x7f status
  libata-sff: fix incorrect EH message
parents ff2bad5f b98f5046
Loading
Loading
Loading
Loading

arch/arm/mach-integrator/clock.h

deleted100644 → 0
+0 −0

Empty file deleted.

+3 −3
Original line number Original line Diff line number Diff line
@@ -112,11 +112,11 @@ config ATA_PIIX
	  If unsure, say N.
	  If unsure, say N.


config SATA_MV
config SATA_MV
	tristate "Marvell SATA support (HIGHLY EXPERIMENTAL)"
	tristate "Marvell SATA support"
	depends on EXPERIMENTAL
	help
	help
	  This option enables support for the Marvell Serial ATA family.
	  This option enables support for the Marvell Serial ATA family.
	  Currently supports 88SX[56]0[48][01] chips.
	  Currently supports 88SX[56]0[48][01] PCI(-X) chips,
	  as well as the newer [67]042 PCI-X/PCIe and SOC devices.


	  If unsure, say N.
	  If unsure, say N.


+11 −1
Original line number Original line Diff line number Diff line
@@ -1322,7 +1322,7 @@ int ata_sff_hsm_move(struct ata_port *ap, struct ata_queued_cmd *qc,
					 * condition.  Mark hint.
					 * condition.  Mark hint.
					 */
					 */
					ata_ehi_push_desc(ehi, "ST-ATA: "
					ata_ehi_push_desc(ehi, "ST-ATA: "
						"DRQ=1 with device error, "
						"DRQ=0 without device error, "
						"dev_stat 0x%X", status);
						"dev_stat 0x%X", status);
					qc->err_mask |= AC_ERR_HSM |
					qc->err_mask |= AC_ERR_HSM |
							AC_ERR_NODEV_HINT;
							AC_ERR_NODEV_HINT;
@@ -1358,6 +1358,16 @@ int ata_sff_hsm_move(struct ata_port *ap, struct ata_queued_cmd *qc,
					qc->err_mask |= AC_ERR_HSM;
					qc->err_mask |= AC_ERR_HSM;
				}
				}


				/* There are oddball controllers with
				 * status register stuck at 0x7f and
				 * lbal/m/h at zero which makes it
				 * pass all other presence detection
				 * mechanisms we have.  Set NODEV_HINT
				 * for it.  Kernel bz#7241.
				 */
				if (status == 0x7f)
					qc->err_mask |= AC_ERR_NODEV_HINT;

				/* ata_pio_sectors() might change the
				/* ata_pio_sectors() might change the
				 * state to HSM_ST_LAST. so, the state
				 * state to HSM_ST_LAST. so, the state
				 * is changed after ata_pio_sectors().
				 * is changed after ata_pio_sectors().
+0 −2
Original line number Original line Diff line number Diff line
@@ -63,8 +63,6 @@ static inline void rb532_pata_finish_io(struct ata_port *ap)
	   ata_sff_sync might be sufficient. */
	   ata_sff_sync might be sufficient. */
	ata_sff_dma_pause(ap);
	ata_sff_dma_pause(ap);
	ndelay(RB500_CF_IO_DELAY);
	ndelay(RB500_CF_IO_DELAY);

	set_irq_type(info->irq, IRQ_TYPE_LEVEL_HIGH);
}
}


static void rb532_pata_exec_command(struct ata_port *ap,
static void rb532_pata_exec_command(struct ata_port *ap,
+17 −5
Original line number Original line Diff line number Diff line
@@ -86,6 +86,10 @@ enum {
	VIA_SATA_PATA	= 0x800, /* SATA/PATA combined configuration */
	VIA_SATA_PATA	= 0x800, /* SATA/PATA combined configuration */
};
};


enum {
	VIA_IDFLAG_SINGLE = (1 << 0), /* single channel controller) */
};

/*
/*
 * VIA SouthBridge chips.
 * VIA SouthBridge chips.
 */
 */
@@ -97,8 +101,12 @@ static const struct via_isa_bridge {
	u8 rev_max;
	u8 rev_max;
	u16 flags;
	u16 flags;
} via_isa_bridges[] = {
} via_isa_bridges[] = {
	{ "vx855",	PCI_DEVICE_ID_VIA_VX855,    0x00, 0x2f,
	  VIA_UDMA_133 | VIA_BAD_AST | VIA_SATA_PATA },
	{ "vx800",	PCI_DEVICE_ID_VIA_VX800,    0x00, 0x2f, VIA_UDMA_133 |
	{ "vx800",	PCI_DEVICE_ID_VIA_VX800,    0x00, 0x2f, VIA_UDMA_133 |
	VIA_BAD_AST | VIA_SATA_PATA },
	VIA_BAD_AST | VIA_SATA_PATA },
	{ "vt8261",	PCI_DEVICE_ID_VIA_8261,     0x00, 0x2f,
	  VIA_UDMA_133 | VIA_BAD_AST },
	{ "vt8237s",	PCI_DEVICE_ID_VIA_8237S,    0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
	{ "vt8237s",	PCI_DEVICE_ID_VIA_8237S,    0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
	{ "vt8251",	PCI_DEVICE_ID_VIA_8251,     0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
	{ "vt8251",	PCI_DEVICE_ID_VIA_8251,     0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
	{ "cx700",	PCI_DEVICE_ID_VIA_CX700,    0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST | VIA_SATA_PATA },
	{ "cx700",	PCI_DEVICE_ID_VIA_CX700,    0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST | VIA_SATA_PATA },
@@ -122,6 +130,8 @@ static const struct via_isa_bridge {
	{ "vt82c586",	PCI_DEVICE_ID_VIA_82C586_0, 0x00, 0x0f, VIA_UDMA_NONE | VIA_SET_FIFO },
	{ "vt82c586",	PCI_DEVICE_ID_VIA_82C586_0, 0x00, 0x0f, VIA_UDMA_NONE | VIA_SET_FIFO },
	{ "vt82c576",	PCI_DEVICE_ID_VIA_82C576,   0x00, 0x2f, VIA_UDMA_NONE | VIA_SET_FIFO | VIA_NO_UNMASK },
	{ "vt82c576",	PCI_DEVICE_ID_VIA_82C576,   0x00, 0x2f, VIA_UDMA_NONE | VIA_SET_FIFO | VIA_NO_UNMASK },
	{ "vt82c576",	PCI_DEVICE_ID_VIA_82C576,   0x00, 0x2f, VIA_UDMA_NONE | VIA_SET_FIFO | VIA_NO_UNMASK | VIA_BAD_ID },
	{ "vt82c576",	PCI_DEVICE_ID_VIA_82C576,   0x00, 0x2f, VIA_UDMA_NONE | VIA_SET_FIFO | VIA_NO_UNMASK | VIA_BAD_ID },
	{ "vtxxxx",	PCI_DEVICE_ID_VIA_ANON,    0x00, 0x2f,
	  VIA_UDMA_133 | VIA_BAD_AST },
	{ NULL }
	{ NULL }
};
};


@@ -460,6 +470,7 @@ static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
	static int printed_version;
	static int printed_version;
	u8 enable;
	u8 enable;
	u32 timing;
	u32 timing;
	unsigned long flags = id->driver_data;
	int rc;
	int rc;


	if (!printed_version++)
	if (!printed_version++)
@@ -469,9 +480,13 @@ static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
	if (rc)
	if (rc)
		return rc;
		return rc;


	if (flags & VIA_IDFLAG_SINGLE)
		ppi[1] = &ata_dummy_port_info;

	/* To find out how the IDE will behave and what features we
	/* To find out how the IDE will behave and what features we
	   actually have to look at the bridge not the IDE controller */
	   actually have to look at the bridge not the IDE controller */
	for (config = via_isa_bridges; config->id; config++)
	for (config = via_isa_bridges; config->id != PCI_DEVICE_ID_VIA_ANON;
	     config++)
		if ((isa = pci_get_device(PCI_VENDOR_ID_VIA +
		if ((isa = pci_get_device(PCI_VENDOR_ID_VIA +
			!!(config->flags & VIA_BAD_ID),
			!!(config->flags & VIA_BAD_ID),
			config->id, NULL))) {
			config->id, NULL))) {
@@ -482,10 +497,6 @@ static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
			pci_dev_put(isa);
			pci_dev_put(isa);
		}
		}


	if (!config->id) {
		printk(KERN_WARNING "via: Unknown VIA SouthBridge, disabling.\n");
		return -ENODEV;
	}
	pci_dev_put(isa);
	pci_dev_put(isa);


	if (!(config->flags & VIA_NO_ENABLES)) {
	if (!(config->flags & VIA_NO_ENABLES)) {
@@ -587,6 +598,7 @@ static const struct pci_device_id via[] = {
	{ PCI_VDEVICE(VIA, 0x1571), },
	{ PCI_VDEVICE(VIA, 0x1571), },
	{ PCI_VDEVICE(VIA, 0x3164), },
	{ PCI_VDEVICE(VIA, 0x3164), },
	{ PCI_VDEVICE(VIA, 0x5324), },
	{ PCI_VDEVICE(VIA, 0x5324), },
	{ PCI_VDEVICE(VIA, 0xC409), VIA_IDFLAG_SINGLE },


	{ },
	{ },
};
};
Loading