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

Commit 132a4edb 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:
  sata_fsl,mv,nv: prepare for NCQ command completion update
  ata: Convert pci_table entries to PCI_VDEVICE (if PCI_ANY_ID is used)
  libata: more PCI IDs for jmicron controllers
  ata_piix: fix locking around SIDPR access
  [libata] update blacklist for new hyphenated pattern ranges (v2)
  libata: allow hyphenated pattern ranges
  ata_generic: drop hard coded DMA force logic for CENATEK
  [libata] ahci: Fix warning: comparison between 'enum <anonymous>' and 'enum <anonymous>'
  [libata] add ATA_CMD_DSM to ata_get_cmd_descript
  [libata] Add Samsung PATA controller driver, pata_samsung_cf
  [libata] Add 460EX on-chip SATA driver, sata_dwc_460ex
  libata: reduce blacklist size even more (v2)
  libata: reduce blacklist size (v2)
  libata: glob_match for ata_device_blacklist (v2)
  ahci_platform: Remove unneeded ahci_driver.probe assignment
  ahci_platform: Provide for vendor specific init
parents e6da54d8 752e386c
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -187,6 +187,15 @@ config ATA_PIIX

	  If unsure, say N.

config SATA_DWC
	tristate "DesignWare Cores SATA support"
	depends on 460EX
	help
	  This option enables support for the on-chip SATA controller of the
	  AppliedMicro processor 460EX.

	  If unsure, say N.

config SATA_MV
	tristate "Marvell SATA support"
	help
@@ -796,6 +805,15 @@ config PATA_RZ1000

	  If unsure, say N.

config PATA_SAMSUNG_CF
	tristate "Samsung SoC PATA support"
	depends on SAMSUNG_DEV_IDE
	help
	  This option enables basic support for Samsung's S3C/S5P board
	  PATA controllers via the new ATA layer

	  If unsure, say N.

config PATA_WINBOND_VLB
	tristate "Winbond W83759A VLB PATA support (Experimental)"
	depends on ISA && EXPERIMENTAL
+2 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ obj-$(CONFIG_SATA_AHCI_PLATFORM) += ahci_platform.o libahci.o
obj-$(CONFIG_SATA_FSL)		+= sata_fsl.o
obj-$(CONFIG_SATA_INIC162X)	+= sata_inic162x.o
obj-$(CONFIG_SATA_SIL24)	+= sata_sil24.o
obj-$(CONFIG_SATA_DWC)		+= sata_dwc_460ex.o

# SFF w/ custom DMA
obj-$(CONFIG_PDC_ADMA)		+= pdc_adma.o
@@ -87,6 +88,7 @@ obj-$(CONFIG_PATA_OF_PLATFORM) += pata_of_platform.o
obj-$(CONFIG_PATA_QDI)		+= pata_qdi.o
obj-$(CONFIG_PATA_RB532)	+= pata_rb532_cf.o
obj-$(CONFIG_PATA_RZ1000)	+= pata_rz1000.o
obj-$(CONFIG_PATA_SAMSUNG_CF)	+= pata_samsung_cf.o
obj-$(CONFIG_PATA_WINBOND_VLB)	+= pata_winbond.o

# Should be last but two libata driver
+1 −1
Original line number Diff line number Diff line
@@ -1042,7 +1042,7 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)

	VPRINTK("ENTER\n");

	WARN_ON(ATA_MAX_QUEUE > AHCI_MAX_CMDS);
	WARN_ON((int)ATA_MAX_QUEUE > AHCI_MAX_CMDS);

	if (!printed_version++)
		dev_printk(KERN_DEBUG, &pdev->dev, "version " DRV_VERSION "\n");
+15 −11
Original line number Diff line number Diff line
@@ -54,19 +54,13 @@ static int __init ahci_probe(struct platform_device *pdev)
		return -EINVAL;
	}

	if (pdata && pdata->init) {
		rc = pdata->init(dev);
		if (rc)
			return rc;
	}

	if (pdata && pdata->ata_port_info)
		pi = *pdata->ata_port_info;

	hpriv = devm_kzalloc(dev, sizeof(*hpriv), GFP_KERNEL);
	if (!hpriv) {
		rc = -ENOMEM;
		goto err0;
		dev_err(dev, "can't alloc ahci_host_priv\n");
		return -ENOMEM;
	}

	hpriv->flags |= (unsigned long)pi.private_data;
@@ -74,8 +68,19 @@ static int __init ahci_probe(struct platform_device *pdev)
	hpriv->mmio = devm_ioremap(dev, mem->start, resource_size(mem));
	if (!hpriv->mmio) {
		dev_err(dev, "can't map %pR\n", mem);
		rc = -ENOMEM;
		goto err0;
		return -ENOMEM;
	}

	/*
	 * Some platforms might need to prepare for mmio region access,
	 * which could be done in the following init call. So, the mmio
	 * region shouldn't be accessed before init (if provided) has
	 * returned successfully.
	 */
	if (pdata && pdata->init) {
		rc = pdata->init(dev, hpriv->mmio);
		if (rc)
			return rc;
	}

	ahci_save_initial_config(dev, hpriv,
@@ -166,7 +171,6 @@ static int __devexit ahci_remove(struct platform_device *pdev)
}

static struct platform_driver ahci_driver = {
	.probe = ahci_probe,
	.remove = __devexit_p(ahci_remove),
	.driver = {
		.name = "ahci",
+0 −4
Original line number Diff line number Diff line
@@ -54,7 +54,6 @@ static int generic_set_mode(struct ata_link *link, struct ata_device **unused)
	const struct pci_device_id *id = ap->host->private_data;
	int dma_enabled = 0;
	struct ata_device *dev;
	struct pci_dev *pdev = to_pci_dev(ap->host->dev);

	if (id->driver_data & ATA_GEN_FORCE_DMA) {
		dma_enabled = 0xff;
@@ -63,9 +62,6 @@ static int generic_set_mode(struct ata_link *link, struct ata_device **unused)
		dma_enabled = ioread8(ap->ioaddr.bmdma_addr + ATA_DMA_STATUS);
	}

	if (pdev->vendor == PCI_VENDOR_ID_CENATEK)
		dma_enabled = 0xFF;

	ata_for_each_dev(dev, link, ENABLED) {
		/* We don't really care */
		dev->pio_mode = XFER_PIO_0;
Loading