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

Commit 6f366c1c 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: (51 commits)
  [libata] bump versions
  [libata] Trim trailing whitespace.
  [libata] sata_mv: Fix 50xx irq mask
  [libata] sata_mv: don't touch reserved bits in EDMA config register
  libata: Use new id_to_dma_mode function to tidy reporting in more drivers (minimally tested)
  pata_pcmcia: Fix oops in 2.6.21-rc1
  Add id_to_dma_mode function for printing DMA modes
  sata_promise: simplify port setup
  sata_promise: fix 20619 new EH merge error
  [libata] ACPI: remove needless ->qc_issue hook existence test
  sata_vsc: refactor vsc_sata_interrupt and hook up error handling
  sata_sil: ignore and clear spurious IRQs while executing commands by polling
  sata_mv: fix pci_enable_msi() error handling
  pata_amd: fix an obvious bug in cable detection
  [libata] ata_piix: remove duplicate PCI IDs
  sata_nv: complain on spurious completion notifiers
  libata: test major version in ata_id_is_sata()
  sata_nv: kill old private BMDMA helper functions
  libata: fix remaining ap->id
  ahci: consider SDB FIS containing spurious NCQ completions HSM violation (regenerated)
  ...
parents 221dee28 cb48cab7
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -562,6 +562,15 @@ config PATA_IXP4XX_CF

	  If unsure, say N.

config PATA_SCC
	tristate "Toshiba's Cell Reference Set IDE support"
	depends on PCI && PPC_IBM_CELL_BLADE
	help
	  This option enables support for the built-in IDE controller on
	  Toshiba Cell Reference Board.

	  If unsure, say N.

endif
endmenu
+1 −0
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ obj-$(CONFIG_PATA_WINBOND_VLB) += pata_winbond.o
obj-$(CONFIG_PATA_SIS)		+= pata_sis.o
obj-$(CONFIG_PATA_TRIFLEX)	+= pata_triflex.o
obj-$(CONFIG_PATA_IXP4XX_CF)	+= pata_ixp4xx_cf.o
obj-$(CONFIG_PATA_SCC)		+= pata_scc.o
obj-$(CONFIG_PATA_PLATFORM)	+= pata_platform.o
# Should be last but one libata driver
obj-$(CONFIG_ATA_GENERIC)	+= ata_generic.o
+15 −15
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@
#include <linux/libata.h>

#define DRV_NAME	"ahci"
#define DRV_VERSION	"2.0"
#define DRV_VERSION	"2.1"


enum {
@@ -198,7 +198,6 @@ struct ahci_port_priv {
	void			*rx_fis;
	dma_addr_t		rx_fis_dma;
	/* for NCQ spurious interrupt analysis */
	int			ncq_saw_spurious_sdb_cnt;
	unsigned int		ncq_saw_d2h:1;
	unsigned int		ncq_saw_dmas:1;
};
@@ -1160,23 +1159,24 @@ static void ahci_host_intr(struct ata_port *ap)
		known_irq = 1;
	}

	if (status & PORT_IRQ_SDB_FIS &&
		   pp->ncq_saw_spurious_sdb_cnt < 10) {
	if (status & PORT_IRQ_SDB_FIS) {
		/* SDB FIS containing spurious completions might be
		 * dangerous, we need to know more about them.  Print
		 * more of it.
		 * dangerous, whine and fail commands with HSM
		 * violation.  EH will turn off NCQ after several such
		 * failures.
  		 */
		const __le32 *f = pp->rx_fis + RX_FIS_SDB;

		ata_port_printk(ap, KERN_INFO, "Spurious SDB FIS during NCQ "
				"issue=0x%x SAct=0x%x FIS=%08x:%08x%s\n",
		ata_ehi_push_desc(ehi, "spurious completion during NCQ "
				  "issue=0x%x SAct=0x%x FIS=%08x:%08x",
				  readl(port_mmio + PORT_CMD_ISSUE),
				  readl(port_mmio + PORT_SCR_ACT),
				le32_to_cpu(f[0]), le32_to_cpu(f[1]),
				pp->ncq_saw_spurious_sdb_cnt < 10 ?
				"" : ", shutting up");
				  le32_to_cpu(f[0]), le32_to_cpu(f[1]));

		ehi->err_mask |= AC_ERR_HSM;
		ehi->action |= ATA_EH_SOFTRESET;
		ata_port_freeze(ap);

		pp->ncq_saw_spurious_sdb_cnt++;
		known_irq = 1;
	}

+3 −3
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@
#include <linux/libata.h>

#define DRV_NAME "ata_generic"
#define DRV_VERSION "0.2.10"
#define DRV_VERSION "0.2.11"

/*
 *	A generic parallel ATA driver using libata
@@ -90,10 +90,10 @@ static int generic_set_mode(struct ata_port *ap, struct ata_device **unused)
			/* We do need the right mode information for DMA or PIO
			   and this comes from the current configuration flags */
			if (dma_enabled & (1 << (5 + i))) {
				dev->xfer_mode = XFER_MW_DMA_0;
				dev->xfer_shift = ATA_SHIFT_MWDMA;
				ata_id_to_dma_mode(dev, XFER_MW_DMA_0);
				dev->flags &= ~ATA_DFLAG_PIO;
			} else {
				ata_dev_printk(dev, KERN_INFO, "configured for PIO\n");
				dev->xfer_mode = XFER_PIO_0;
				dev->xfer_shift = ATA_SHIFT_PIO;
				dev->flags |= ATA_DFLAG_PIO;
+1 −3
Original line number Diff line number Diff line
@@ -93,7 +93,7 @@
#include <linux/libata.h>

#define DRV_NAME	"ata_piix"
#define DRV_VERSION	"2.00ac7"
#define DRV_VERSION	"2.10"

enum {
	PIIX_IOCFG		= 0x54, /* IDE I/O configuration register */
@@ -169,8 +169,6 @@ static const struct pci_device_id piix_pci_tbl[] = {
	/* Intel PIIX4 for the 430TX/440BX/MX chipset: UDMA 33 */
	/* Also PIIX4E (fn3 rev 2) and PIIX4M (fn3 rev 3) */
	{ 0x8086, 0x7111, PCI_ANY_ID, PCI_ANY_ID, 0, 0, piix_pata_33 },
	{ 0x8086, 0x24db, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },
	{ 0x8086, 0x25a2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },
	/* Intel PIIX4 */
	{ 0x8086, 0x7199, PCI_ANY_ID, PCI_ANY_ID, 0, 0, piix_pata_33 },
	/* Intel PIIX4 */
Loading