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

Commit fb2c922b 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:
  pata_platform: don't use generic ata_port_start
  Use menuconfig objects: libata
  add the ATI SB700 SATA controller device id to AHCI pci table
  Add the combined mode for ATI SB700
  pata_pcmcia: recognize 2GB CompactFlash from Transcend
  git-libata-all: sata_via build fix
  libata-acpi: clean up parameters and misc stuff
  libata-acpi: s/CONFIG_SATA_ACPI/CONFIG_ATA_ACPI/
  libata: give devices one last chance even if recovery failed with -EINVAL
  libata: fallback to the other IDENTIFY on device error, take#2
  libata: ignore EH scheduling during initialization
  libata: clean up SFF init mess
  libata: implement libata.spindown_compat
  libata: reimplement suspend/resume support using sdev->manage_start_stop
parents 9ce3075c b9a3b4d1
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -328,3 +328,22 @@ Who: Adrian Bunk <bunk@stusta.de>

---------------------------

What: libata.spindown_compat module parameter
When: Dec 2008
Why:  halt(8) synchronizes caches for and spins down libata disks
      because libata didn't use to spin down disk on system halt
      (only synchronized caches).
      Spin down on system halt is now implemented and can be tested
      using sysfs node /sys/class/scsi_disk/h:c:i:l/manage_start_stop.
      Because issuing spin down command to an already spun down disk
      makes some disks spin up just to spin down again, the old
      behavior needs to be maintained till userspace tool is updated
      to check the sysfs node and not to spin down disks with the
      node set to one.
      This module parameter is to give userspace tool the time to
      get updated and should be removed after userspace is
      reasonably updated.
Who:  Tejun Heo <htejun@gmail.com>

---------------------------
+16 −20
Original line number Diff line number Diff line
@@ -2,11 +2,9 @@
# SATA/PATA driver configuration
#

menu "Serial ATA (prod) and Parallel ATA (experimental) drivers"
menuconfig ATA
	tristate "Serial ATA (prod) and Parallel ATA (experimental) drivers"
	depends on HAS_IOMEM

config ATA
	tristate "ATA device support"
	depends on BLOCK
	depends on !(M32R || M68K) || BROKEN
	depends on !SUN4 || BROKEN
@@ -24,6 +22,19 @@ config ATA_NONSTANDARD
       bool
       default n

config ATA_ACPI
	bool
	depends on ACPI && PCI
	default y
	help
	  This option adds support for ATA-related ACPI objects.
	  These ACPI objects add the ability to retrieve taskfiles
	  from the ACPI BIOS and write them to the disk controller.
	  These objects may be related to performance, security,
	  power management, or other areas.
	  You can disable this at kernel boot time by using the
	  option libata.noacpi=1

config SATA_AHCI
	tristate "AHCI SATA support"
	depends on PCI
@@ -157,19 +168,6 @@ config SATA_INIC162X
	help
	  This option enables support for Initio 162x Serial ATA.

config SATA_ACPI
	bool
	depends on ACPI && PCI
	default y
	help
	  This option adds support for SATA-related ACPI objects.
	  These ACPI objects add the ability to retrieve taskfiles
	  from the ACPI BIOS and write them to the disk controller.
	  These objects may be related to performance, security,
	  power management, or other areas.
	  You can disable this at kernel boot time by using the
	  option libata.noacpi=1

config PATA_ALI
	tristate "ALi PATA support (Experimental)"
	depends on PCI && EXPERIMENTAL
@@ -585,6 +583,4 @@ config PATA_SCC

	  If unsure, say N.

endif
endmenu
endif # ATA
+1 −1
Original line number Diff line number Diff line
@@ -69,4 +69,4 @@ obj-$(CONFIG_ATA_GENERIC) += ata_generic.o
obj-$(CONFIG_PATA_LEGACY)	+= pata_legacy.o

libata-objs	:= libata-core.o libata-scsi.o libata-sff.o libata-eh.o
libata-$(CONFIG_SATA_ACPI) += libata-acpi.o
libata-$(CONFIG_ATA_ACPI)	+= libata-acpi.o
+1 −4
Original line number Diff line number Diff line
@@ -250,10 +250,6 @@ static struct scsi_host_template ahci_sht = {
	.slave_configure	= ata_scsi_slave_config,
	.slave_destroy		= ata_scsi_slave_destroy,
	.bios_param		= ata_std_bios_param,
#ifdef CONFIG_PM
	.suspend		= ata_scsi_device_suspend,
	.resume			= ata_scsi_device_resume,
#endif
};

static const struct ata_port_operations ahci_ops = {
@@ -400,6 +396,7 @@ static const struct pci_device_id ahci_pci_tbl[] = {

	/* ATI */
	{ PCI_VDEVICE(ATI, 0x4380), board_ahci_sb600 }, /* ATI SB600 */
	{ PCI_VDEVICE(ATI, 0x4390), board_ahci_sb600 }, /* ATI SB700 */

	/* VIA */
	{ PCI_VDEVICE(VIA, 0x3349), board_ahci_vt8251 }, /* VIA VT8251 */
+4 −8
Original line number Diff line number Diff line
@@ -54,7 +54,7 @@ static int generic_set_mode(struct ata_port *ap, struct ata_device **unused)

	for (i = 0; i < ATA_MAX_DEVICES; i++) {
		struct ata_device *dev = &ap->device[i];
		if (ata_dev_ready(dev)) {
		if (ata_dev_enabled(dev)) {
			/* We don't really care */
			dev->pio_mode = XFER_PIO_0;
			dev->dma_mode = XFER_MW_DMA_0;
@@ -90,10 +90,6 @@ static struct scsi_host_template generic_sht = {
	.slave_configure	= ata_scsi_slave_config,
	.slave_destroy		= ata_scsi_slave_destroy,
	.bios_param		= ata_std_bios_param,
#ifdef CONFIG_PM
	.resume			= ata_scsi_device_resume,
	.suspend		= ata_scsi_device_suspend,
#endif
};

static struct ata_port_operations generic_port_ops = {
@@ -145,7 +141,7 @@ static int all_generic_ide; /* Set to claim all devices */
static int ata_generic_init_one(struct pci_dev *dev, const struct pci_device_id *id)
{
	u16 command;
	static struct ata_port_info info = {
	static const struct ata_port_info info = {
		.sht = &generic_sht,
		.flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SRST,
		.pio_mask = 0x1f,
@@ -153,7 +149,7 @@ static int ata_generic_init_one(struct pci_dev *dev, const struct pci_device_id
		.udma_mask = 0x3f,
		.port_ops = &generic_port_ops
	};
	static struct ata_port_info *port_info[2] = { &info, &info };
	const struct ata_port_info *ppi[] = { &info, NULL };

	/* Don't use the generic entry unless instructed to do so */
	if (id->driver_data == 1 && all_generic_ide == 0)
@@ -179,7 +175,7 @@ static int ata_generic_init_one(struct pci_dev *dev, const struct pci_device_id
	if (dev->vendor == PCI_VENDOR_ID_AL)
	    	ata_pci_clear_simplex(dev);

	return ata_pci_init_one(dev, port_info, 2);
	return ata_pci_init_one(dev, ppi);
}

static struct pci_device_id ata_generic[] = {
Loading