Commit d3a36fb8 authored by Linus Torvalds's avatar Linus Torvalds

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:
  sata_via: pcim_iomap_regions() conversion missed BAR5
  libata: remove libata.spindown_compat
  sata_nv: fix fallout of devres conversion
  drivers/ata: remove the wildcard from sata_nv driver
parents e94bd23f 8fd7d1b1
...@@ -328,21 +328,20 @@ Who: Adrian Bunk <bunk@stusta.de> ...@@ -328,21 +328,20 @@ Who: Adrian Bunk <bunk@stusta.de>
--------------------------- ---------------------------
What: libata.spindown_compat module parameter What: libata spindown skipping and warning
When: Dec 2008 When: Dec 2008
Why: halt(8) synchronizes caches for and spins down libata disks Why: Some halt(8) implementations synchronize caches for and spin
because libata didn't use to spin down disk on system halt down libata disks because libata didn't use to spin down disk on
(only synchronized caches). system halt (only synchronized caches).
Spin down on system halt is now implemented and can be tested Spin down on system halt is now implemented. sysfs node
using sysfs node /sys/class/scsi_disk/h:c:i:l/manage_start_stop. /sys/class/scsi_disk/h:c:i:l/manage_start_stop is present if
spin down support is available.
Because issuing spin down command to an already spun down disk Because issuing spin down command to an already spun down disk
makes some disks spin up just to spin down again, the old makes some disks spin up just to spin down again, libata tracks
behavior needs to be maintained till userspace tool is updated device spindown status to skip the extra spindown command and
to check the sysfs node and not to spin down disks with the warn about it.
node set to one. This is to give userspace tools the time to get updated and will
This module parameter is to give userspace tool the time to be removed after userspace is reasonably updated.
get updated and should be removed after userspace is
reasonably updated.
Who: Tejun Heo <htejun@gmail.com> Who: Tejun Heo <htejun@gmail.com>
--------------------------- ---------------------------
......
...@@ -101,12 +101,6 @@ int libata_noacpi = 1; ...@@ -101,12 +101,6 @@ int libata_noacpi = 1;
module_param_named(noacpi, libata_noacpi, int, 0444); module_param_named(noacpi, libata_noacpi, int, 0444);
MODULE_PARM_DESC(noacpi, "Disables the use of ACPI in suspend/resume when set"); MODULE_PARM_DESC(noacpi, "Disables the use of ACPI in suspend/resume when set");
int ata_spindown_compat = 1;
module_param_named(spindown_compat, ata_spindown_compat, int, 0644);
MODULE_PARM_DESC(spindown_compat, "Enable backward compatible spindown "
"behavior. Will be removed. More info can be found in "
"Documentation/feature-removal-schedule.txt\n");
MODULE_AUTHOR("Jeff Garzik"); MODULE_AUTHOR("Jeff Garzik");
MODULE_DESCRIPTION("Library module for ATA devices"); MODULE_DESCRIPTION("Library module for ATA devices");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
......
...@@ -893,7 +893,7 @@ int ata_scsi_change_queue_depth(struct scsi_device *sdev, int queue_depth) ...@@ -893,7 +893,7 @@ int ata_scsi_change_queue_depth(struct scsi_device *sdev, int queue_depth)
return queue_depth; return queue_depth;
} }
/* XXX: for ata_spindown_compat */ /* XXX: for spindown warning */
static void ata_delayed_done_timerfn(unsigned long arg) static void ata_delayed_done_timerfn(unsigned long arg)
{ {
struct scsi_cmnd *scmd = (void *)arg; struct scsi_cmnd *scmd = (void *)arg;
...@@ -901,7 +901,7 @@ static void ata_delayed_done_timerfn(unsigned long arg) ...@@ -901,7 +901,7 @@ static void ata_delayed_done_timerfn(unsigned long arg)
scmd->scsi_done(scmd); scmd->scsi_done(scmd);
} }
/* XXX: for ata_spindown_compat */ /* XXX: for spindown warning */
static void ata_delayed_done(struct scsi_cmnd *scmd) static void ata_delayed_done(struct scsi_cmnd *scmd)
{ {
static struct timer_list timer; static struct timer_list timer;
...@@ -966,8 +966,7 @@ static unsigned int ata_scsi_start_stop_xlat(struct ata_queued_cmd *qc) ...@@ -966,8 +966,7 @@ static unsigned int ata_scsi_start_stop_xlat(struct ata_queued_cmd *qc)
* removed. Read Documentation/feature-removal-schedule.txt * removed. Read Documentation/feature-removal-schedule.txt
* for more info. * for more info.
*/ */
if (ata_spindown_compat && if ((qc->dev->flags & ATA_DFLAG_SPUNDOWN) &&
(qc->dev->flags & ATA_DFLAG_SPUNDOWN) &&
(system_state == SYSTEM_HALT || (system_state == SYSTEM_HALT ||
system_state == SYSTEM_POWER_OFF)) { system_state == SYSTEM_POWER_OFF)) {
static unsigned long warned = 0; static unsigned long warned = 0;
...@@ -1395,7 +1394,7 @@ static void ata_scsi_qc_complete(struct ata_queued_cmd *qc) ...@@ -1395,7 +1394,7 @@ static void ata_scsi_qc_complete(struct ata_queued_cmd *qc)
} }
} }
/* XXX: track spindown state for spindown_compat */ /* XXX: track spindown state for spindown skipping and warning */
if (unlikely(qc->tf.command == ATA_CMD_STANDBY || if (unlikely(qc->tf.command == ATA_CMD_STANDBY ||
qc->tf.command == ATA_CMD_STANDBYNOW1)) qc->tf.command == ATA_CMD_STANDBYNOW1))
qc->dev->flags |= ATA_DFLAG_SPUNDOWN; qc->dev->flags |= ATA_DFLAG_SPUNDOWN;
......
...@@ -58,7 +58,6 @@ extern int atapi_enabled; ...@@ -58,7 +58,6 @@ extern int atapi_enabled;
extern int atapi_dmadir; extern int atapi_dmadir;
extern int libata_fua; extern int libata_fua;
extern int libata_noacpi; extern int libata_noacpi;
extern int ata_spindown_compat;
extern struct ata_queued_cmd *ata_qc_new_init(struct ata_device *dev); extern struct ata_queued_cmd *ata_qc_new_init(struct ata_device *dev);
extern int ata_build_rw_tf(struct ata_taskfile *tf, struct ata_device *dev, extern int ata_build_rw_tf(struct ata_taskfile *tf, struct ata_device *dev,
u64 block, u32 n_block, unsigned int tf_flags, u64 block, u32 n_block, unsigned int tf_flags,
......
...@@ -229,7 +229,6 @@ struct nv_host_priv { ...@@ -229,7 +229,6 @@ struct nv_host_priv {
#define NV_ADMA_CHECK_INTR(GCTL, PORT) ((GCTL) & ( 1 << (19 + (12 * (PORT))))) #define NV_ADMA_CHECK_INTR(GCTL, PORT) ((GCTL) & ( 1 << (19 + (12 * (PORT)))))
static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent); static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent);
static void nv_remove_one (struct pci_dev *pdev);
#ifdef CONFIG_PM #ifdef CONFIG_PM
static int nv_pci_device_resume(struct pci_dev *pdev); static int nv_pci_device_resume(struct pci_dev *pdev);
#endif #endif
...@@ -288,12 +287,6 @@ static const struct pci_device_id nv_pci_tbl[] = { ...@@ -288,12 +287,6 @@ static const struct pci_device_id nv_pci_tbl[] = {
{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA), GENERIC }, { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA), GENERIC },
{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA2), GENERIC }, { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA2), GENERIC },
{ PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA3), GENERIC }, { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA3), GENERIC },
{ PCI_VENDOR_ID_NVIDIA, PCI_ANY_ID,
PCI_ANY_ID, PCI_ANY_ID,
PCI_CLASS_STORAGE_IDE<<8, 0xffff00, GENERIC },
{ PCI_VENDOR_ID_NVIDIA, PCI_ANY_ID,
PCI_ANY_ID, PCI_ANY_ID,
PCI_CLASS_STORAGE_RAID<<8, 0xffff00, GENERIC },
{ } /* terminate list */ { } /* terminate list */
}; };
...@@ -306,7 +299,7 @@ static struct pci_driver nv_pci_driver = { ...@@ -306,7 +299,7 @@ static struct pci_driver nv_pci_driver = {
.suspend = ata_pci_device_suspend, .suspend = ata_pci_device_suspend,
.resume = nv_pci_device_resume, .resume = nv_pci_device_resume,
#endif #endif
.remove = nv_remove_one, .remove = ata_pci_remove_one,
}; };
static struct scsi_host_template nv_sht = { static struct scsi_host_template nv_sht = {
...@@ -1613,15 +1606,6 @@ static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -1613,15 +1606,6 @@ static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
IRQF_SHARED, ppi[0]->sht); IRQF_SHARED, ppi[0]->sht);
} }
static void nv_remove_one (struct pci_dev *pdev)
{
struct ata_host *host = dev_get_drvdata(&pdev->dev);
struct nv_host_priv *hpriv = host->private_data;
ata_pci_remove_one(pdev);
kfree(hpriv);
}
#ifdef CONFIG_PM #ifdef CONFIG_PM
static int nv_pci_device_resume(struct pci_dev *pdev) static int nv_pci_device_resume(struct pci_dev *pdev)
{ {
......
...@@ -441,7 +441,7 @@ static int vt6421_prepare_host(struct pci_dev *pdev, struct ata_host **r_host) ...@@ -441,7 +441,7 @@ static int vt6421_prepare_host(struct pci_dev *pdev, struct ata_host **r_host)
return -ENOMEM; return -ENOMEM;
} }
rc = pcim_iomap_regions(pdev, 0x1f, DRV_NAME); rc = pcim_iomap_regions(pdev, 0x3f, DRV_NAME);
if (rc) { if (rc) {
dev_printk(KERN_ERR, &pdev->dev, "failed to request/iomap " dev_printk(KERN_ERR, &pdev->dev, "failed to request/iomap "
"PCI BARs (errno=%d)\n", rc); "PCI BARs (errno=%d)\n", rc);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment