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

Commit 23eb3b64 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: (54 commits)
  Revert "pata_sis: Implement MWDMA for the UDMA 133 capable chips"
  libata: Clarify ata_set_lba_range_entries function
  libata: Report zeroed read after TRIM and max discard size
  pata_hpt3x2n: fix overclocked MWDMA0 timing
  pata_it8213: MWDMA0 is unsupported
  [libata] MWDMA0 is unsupported on PIIX-like PATA controllers
  pata_via: clear UDMA transfer mode bit for PIO and MWDMA
  pata_sis: Power Management fix
  pata_rz1000: Power Management fix
  pata_radisys: fix UDMA handling
  pata_ns87415: Power Management fix
  pata_marvell: fix marvell_pre_reset() documentation
  pata_legacy: add pointers to QDI65x0 documentation
  pata_legacy: fix access to control register for QDI6580
  pata_legacy: fix QDI6580DP support
  pata_it8213: fix it8213_pre_reset() documentation
  pata_it8213: fix wrong MWDMA timings being programmed
  pata_it8213: fix PIO2 underclocking
  pata_it8213: fix wrong PIO timings being programmed
  pata_it8213: fix UDMA handling
  ...
parents 1c496784 1b52f2a4
Loading
Loading
Loading
Loading
+25 −16
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@
#

menuconfig ATA
	tristate "Serial ATA (prod) and Parallel ATA (experimental) drivers"
	tristate "Serial ATA and Parallel ATA drivers"
	depends on HAS_IOMEM
	depends on BLOCK
	depends on !(M32R || M68K) || BROKEN
@@ -374,8 +374,8 @@ config PATA_HPT366
	  If unsure, say N.

config PATA_HPT37X
	tristate "HPT 370/370A/371/372/374/302 PATA support (Experimental)"
	depends on PCI && EXPERIMENTAL
	tristate "HPT 370/370A/371/372/374/302 PATA support"
	depends on PCI
	help
	  This option enables support for the majority of the later HPT
	  PATA controllers via the new ATA layer.
@@ -383,8 +383,8 @@ config PATA_HPT37X
	  If unsure, say N.

config PATA_HPT3X2N
	tristate "HPT 372N/302N PATA support (Experimental)"
	depends on PCI && EXPERIMENTAL
	tristate "HPT 372N/302N PATA support"
	depends on PCI
	help
	  This option enables support for the N variant HPT PATA
	  controllers via the new ATA layer
@@ -401,7 +401,7 @@ config PATA_HPT3X3
	  If unsure, say N.

config PATA_HPT3X3_DMA
	bool "HPT 343/363 DMA support (Experimental)"
	bool "HPT 343/363 DMA support"
	depends on PATA_HPT3X3
	help
	  This option enables DMA support for the HPT343/363
@@ -510,8 +510,8 @@ config PATA_NETCELL
	  If unsure, say N.

config PATA_NINJA32
	tristate "Ninja32/Delkin Cardbus ATA support (Experimental)"
	depends on PCI && EXPERIMENTAL
	tristate "Ninja32/Delkin Cardbus ATA support"
	depends on PCI
	help
	  This option enables support for the Ninja32, Delkin and
	  possibly other brands of Cardbus ATA adapter
@@ -573,6 +573,14 @@ config PATA_PCMCIA

	  If unsure, say N.

config PATA_PDC2027X
	tristate "Promise PATA 2027x support"
	depends on PCI
	help
	  This option enables support for Promise PATA pdc20268 to pdc20277 host adapters.

	  If unsure, say N.

config PATA_PDC_OLD
	tristate "Older Promise PATA controller support"
	depends on PCI
@@ -643,14 +651,6 @@ config PATA_SERVERWORKS

	  If unsure, say N.

config PATA_PDC2027X
	tristate "Promise PATA 2027x support"
	depends on PCI
	help
	  This option enables support for Promise PATA pdc20268 to pdc20277 host adapters.

	  If unsure, say N.

config PATA_SIL680
	tristate "CMD / Silicon Image 680 PATA support"
	depends on PCI
@@ -667,6 +667,15 @@ config PATA_SIS

	  If unsure, say N.

config PATA_TOSHIBA
	tristate "Toshiba Piccolo support (Experimental)"
	depends on PCI && EXPERIMENTAL
	help
	  Support for the Toshiba Piccolo controllers. Currently only the
	  primary channel is supported by this driver.

	  If unsure, say N.

config PATA_VIA
	tristate "VIA PATA support"
	depends on PCI
+1 −0
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ obj-$(CONFIG_PATA_RZ1000) += pata_rz1000.o
obj-$(CONFIG_PATA_SC1200)	+= pata_sc1200.o
obj-$(CONFIG_PATA_SERVERWORKS)	+= pata_serverworks.o
obj-$(CONFIG_PATA_SIL680)	+= pata_sil680.o
obj-$(CONFIG_PATA_TOSHIBA)	+= pata_piccolo.o
obj-$(CONFIG_PATA_VIA)		+= pata_via.o
obj-$(CONFIG_PATA_WINBOND)	+= pata_sl82c105.o
obj-$(CONFIG_PATA_WINBOND_VLB)	+= pata_winbond.o
+26 −2
Original line number Diff line number Diff line
@@ -113,6 +113,7 @@ enum {
	board_ahci_mcp65	= 6,
	board_ahci_nopmp	= 7,
	board_ahci_yesncq	= 8,
	board_ahci_nosntf	= 9,

	/* global controller registers */
	HOST_CAP		= 0x00, /* host capabilities */
@@ -235,6 +236,7 @@ enum {
	AHCI_HFLAG_NO_SUSPEND		= (1 << 10), /* don't suspend */
	AHCI_HFLAG_SRST_TOUT_IS_OFFLINE	= (1 << 11), /* treat SRST timeout as
							link offline */
	AHCI_HFLAG_NO_SNTF		= (1 << 12), /* no sntf */

	/* ap->flags bits */

@@ -508,7 +510,7 @@ static const struct ata_port_info ahci_port_info[] = {
		.udma_mask	= ATA_UDMA6,
		.port_ops	= &ahci_ops,
	},
	/* board_ahci_yesncq */
	[board_ahci_yesncq] =
	{
		AHCI_HFLAGS	(AHCI_HFLAG_YES_NCQ),
		.flags		= AHCI_FLAG_COMMON,
@@ -516,6 +518,14 @@ static const struct ata_port_info ahci_port_info[] = {
		.udma_mask	= ATA_UDMA6,
		.port_ops	= &ahci_ops,
	},
	[board_ahci_nosntf] =
	{
		AHCI_HFLAGS	(AHCI_HFLAG_NO_SNTF),
		.flags		= AHCI_FLAG_COMMON,
		.pio_mask	= ATA_PIO4,
		.udma_mask	= ATA_UDMA6,
		.port_ops	= &ahci_ops,
	},
};

static const struct pci_device_id ahci_pci_tbl[] = {
@@ -531,7 +541,7 @@ static const struct pci_device_id ahci_pci_tbl[] = {
	{ PCI_VDEVICE(INTEL, 0x2683), board_ahci }, /* ESB2 */
	{ PCI_VDEVICE(INTEL, 0x27c6), board_ahci }, /* ICH7-M DH */
	{ PCI_VDEVICE(INTEL, 0x2821), board_ahci }, /* ICH8 */
	{ PCI_VDEVICE(INTEL, 0x2822), board_ahci }, /* ICH8 */
	{ PCI_VDEVICE(INTEL, 0x2822), board_ahci_nosntf }, /* ICH8 */
	{ PCI_VDEVICE(INTEL, 0x2824), board_ahci }, /* ICH8 */
	{ PCI_VDEVICE(INTEL, 0x2829), board_ahci }, /* ICH8M */
	{ PCI_VDEVICE(INTEL, 0x282a), board_ahci }, /* ICH8M */
@@ -849,6 +859,12 @@ static void ahci_save_initial_config(struct pci_dev *pdev,
		cap &= ~HOST_CAP_PMP;
	}

	if ((cap & HOST_CAP_SNTF) && (hpriv->flags & AHCI_HFLAG_NO_SNTF)) {
		dev_printk(KERN_INFO, &pdev->dev,
			   "controller can't do SNTF, turning off CAP_SNTF\n");
		cap &= ~HOST_CAP_SNTF;
	}

	if (pdev->vendor == PCI_VENDOR_ID_JMICRON && pdev->device == 0x2361 &&
	    port_map != 1) {
		dev_printk(KERN_INFO, &pdev->dev,
@@ -2988,6 +3004,14 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
	if (pdev->vendor == PCI_VENDOR_ID_MARVELL && !marvell_enable)
		return -ENODEV;

	/* Promise's PDC42819 is a SAS/SATA controller that has an AHCI mode.
	 * At the moment, we can only use the AHCI mode. Let the users know
	 * that for SAS drives they're out of luck.
	 */
	if (pdev->vendor == PCI_VENDOR_ID_PROMISE)
		dev_printk(KERN_INFO, &pdev->dev, "PDC42819 "
			   "can only drive SATA devices with this driver\n");

	/* acquire resources */
	rc = pcim_enable_device(pdev);
	if (rc)
+4 −1
Original line number Diff line number Diff line
@@ -168,9 +168,12 @@ static struct pci_device_id ata_generic[] = {
	{ PCI_DEVICE(PCI_VENDOR_ID_VIA,    PCI_DEVICE_ID_VIA_82C561), },
	{ PCI_DEVICE(PCI_VENDOR_ID_OPTI,   PCI_DEVICE_ID_OPTI_82C558), },
	{ PCI_DEVICE(PCI_VENDOR_ID_CENATEK,PCI_DEVICE_ID_CENATEK_IDE), },
	{ PCI_DEVICE(PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO), },
#if !defined(CONFIG_PATA_TOSHIBA) && !defined(CONFIG_PATA_TOSHIBA_MODULE)
	{ PCI_DEVICE(PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_1), },
	{ PCI_DEVICE(PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_2),  },
	{ PCI_DEVICE(PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_3),  },
	{ PCI_DEVICE(PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_5),  },
#endif	
	/* Must come last. If you add entries adjust this table appropriately */
	{ PCI_ANY_ID,		PCI_ANY_ID,			   PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE << 8, 0xFFFFFF00UL, 1},
	{ 0, },
+3 −3
Original line number Diff line number Diff line
@@ -869,11 +869,11 @@ static void do_pata_set_dmamode(struct ata_port *ap, struct ata_device *adev, in
				(timings[pio][1] << 8);
		}

		if (ap->udma_mask) {
		if (ap->udma_mask)
			udma_enable &= ~(1 << devid);

		pci_write_config_word(dev, master_port, master_data);
	}
	}
	/* Don't scribble on 0x48 if the controller does not support UDMA */
	if (ap->udma_mask)
		pci_write_config_byte(dev, 0x48, udma_enable);
Loading