forked from Minki/linux
Merge branch 'for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata
Pull libata updates from Tejun Heo: "Nothing too interesting - another ahci platform driver variant, additional controller support, minor fixes and cleanups" * 'for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: ahci: Add Device ID for HighPoint RocketRaid 642L ata: ep93xx: use dmaengine_prep_slave_sg api instead of internal callback ahci: add PCI ID for Marvell 88SE91A0 SATA Controller sata_fsl: remove check for CONFIG_MPC8315_DS ahci: add support for Hisilicon sata libahci_platform: add host_flags parameter in ahci_platform_init_host() ata: ahci: append new hflag AHCI_HFLAG_NO_FBS ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers ata: ahci_mvebu: new driver for Marvell Armada 380 AHCI interfaces Documentation: dt-bindings: reformat and order list of ahci-platform compatibles libata-sff: remove dead code ata: SATL compliance for Inquiry Product Revision pata_octeon_cf: use devm_kzalloc() to allocate cf_port
This commit is contained in:
commit
6ea4fa70e4
@ -4,10 +4,16 @@ SATA nodes are defined to describe on-chip Serial ATA controllers.
|
||||
Each SATA controller should have its own node.
|
||||
|
||||
Required properties:
|
||||
- compatible : compatible list, one of "snps,spear-ahci",
|
||||
"snps,exynos5440-ahci", "ibm,476gtr-ahci",
|
||||
"allwinner,sun4i-a10-ahci", "fsl,imx53-ahci"
|
||||
"fsl,imx6q-ahci" or "snps,dwc-ahci"
|
||||
- compatible : compatible string, one of:
|
||||
- "allwinner,sun4i-a10-ahci"
|
||||
- "fsl,imx53-ahci"
|
||||
- "fsl,imx6q-ahci"
|
||||
- "hisilicon,hisi-ahci"
|
||||
- "ibm,476gtr-ahci"
|
||||
- "marvell,armada-380-ahci"
|
||||
- "snps,dwc-ahci"
|
||||
- "snps,exynos5440-ahci"
|
||||
- "snps,spear-ahci"
|
||||
- interrupts : <interrupt mapping for SATA IRQ>
|
||||
- reg : <registers mapping>
|
||||
|
||||
|
@ -123,6 +123,15 @@ config AHCI_IMX
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
config AHCI_MVEBU
|
||||
tristate "Marvell EBU AHCI SATA support"
|
||||
depends on ARCH_MVEBU
|
||||
help
|
||||
This option enables support for the Marvebu EBU SoC's
|
||||
onboard AHCI SATA.
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
config AHCI_SUNXI
|
||||
tristate "Allwinner sunxi AHCI SATA support"
|
||||
depends on ARCH_SUNXI
|
||||
|
@ -12,6 +12,7 @@ obj-$(CONFIG_SATA_DWC) += sata_dwc_460ex.o
|
||||
obj-$(CONFIG_SATA_HIGHBANK) += sata_highbank.o libahci.o
|
||||
obj-$(CONFIG_AHCI_DA850) += ahci_da850.o libahci.o libahci_platform.o
|
||||
obj-$(CONFIG_AHCI_IMX) += ahci_imx.o libahci.o libahci_platform.o
|
||||
obj-$(CONFIG_AHCI_MVEBU) += ahci_mvebu.o libahci.o libahci_platform.o
|
||||
obj-$(CONFIG_AHCI_SUNXI) += ahci_sunxi.o libahci.o libahci_platform.o
|
||||
obj-$(CONFIG_AHCI_ST) += ahci_st.o libahci.o libahci_platform.o
|
||||
obj-$(CONFIG_AHCI_XGENE) += ahci_xgene.o libahci.o libahci_platform.o
|
||||
|
@ -77,7 +77,7 @@ static bool acard_ahci_qc_fill_rtf(struct ata_queued_cmd *qc);
|
||||
static int acard_ahci_port_start(struct ata_port *ap);
|
||||
static int acard_ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int acard_ahci_pci_device_suspend(struct pci_dev *pdev, pm_message_t mesg);
|
||||
static int acard_ahci_pci_device_resume(struct pci_dev *pdev);
|
||||
#endif
|
||||
@ -118,13 +118,13 @@ static struct pci_driver acard_ahci_pci_driver = {
|
||||
.id_table = acard_ahci_pci_tbl,
|
||||
.probe = acard_ahci_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = acard_ahci_pci_device_suspend,
|
||||
.resume = acard_ahci_pci_device_resume,
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int acard_ahci_pci_device_suspend(struct pci_dev *pdev, pm_message_t mesg)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
|
@ -445,10 +445,14 @@ static const struct pci_device_id ahci_pci_tbl[] = {
|
||||
.driver_data = board_ahci_yes_fbs }, /* 88se9172 */
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9192),
|
||||
.driver_data = board_ahci_yes_fbs }, /* 88se9172 on some Gigabyte */
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a0),
|
||||
.driver_data = board_ahci_yes_fbs },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a3),
|
||||
.driver_data = board_ahci_yes_fbs },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9230),
|
||||
.driver_data = board_ahci_yes_fbs },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_TTI, 0x0642),
|
||||
.driver_data = board_ahci_yes_fbs },
|
||||
|
||||
/* Promise */
|
||||
{ PCI_VDEVICE(PROMISE, 0x3f20), board_ahci }, /* PDC42819 */
|
||||
|
@ -237,6 +237,7 @@ enum {
|
||||
error-handling stage) */
|
||||
AHCI_HFLAG_MULTI_MSI = (1 << 16), /* multiple PCI MSIs */
|
||||
AHCI_HFLAG_NO_DEVSLP = (1 << 17), /* no device sleep */
|
||||
AHCI_HFLAG_NO_FBS = (1 << 18), /* no FBS */
|
||||
|
||||
/* ap->flags bits */
|
||||
|
||||
|
@ -85,7 +85,8 @@ static int ahci_da850_probe(struct platform_device *pdev)
|
||||
|
||||
da850_sata_init(dev, pwrdn_reg, hpriv->mmio);
|
||||
|
||||
rc = ahci_platform_init_host(pdev, hpriv, &ahci_da850_port_info, 0, 0);
|
||||
rc = ahci_platform_init_host(pdev, hpriv, &ahci_da850_port_info,
|
||||
0, 0, 0);
|
||||
if (rc)
|
||||
goto disable_resources;
|
||||
|
||||
|
@ -432,7 +432,8 @@ static int imx_ahci_probe(struct platform_device *pdev)
|
||||
reg_val = clk_get_rate(imxpriv->ahb_clk) / 1000;
|
||||
writel(reg_val, hpriv->mmio + IMX_TIMER1MS);
|
||||
|
||||
ret = ahci_platform_init_host(pdev, hpriv, &ahci_imx_port_info, 0, 0);
|
||||
ret = ahci_platform_init_host(pdev, hpriv, &ahci_imx_port_info,
|
||||
0, 0, 0);
|
||||
if (ret)
|
||||
imx_sata_disable(hpriv);
|
||||
|
||||
|
128
drivers/ata/ahci_mvebu.c
Normal file
128
drivers/ata/ahci_mvebu.c
Normal file
@ -0,0 +1,128 @@
|
||||
/*
|
||||
* AHCI glue platform driver for Marvell EBU SOCs
|
||||
*
|
||||
* Copyright (C) 2014 Marvell
|
||||
*
|
||||
* Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
* Marcin Wojtas <mw@semihalf.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
* warranty of any kind, whether express or implied.
|
||||
*/
|
||||
|
||||
#include <linux/ahci_platform.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mbus.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include "ahci.h"
|
||||
|
||||
#define AHCI_VENDOR_SPECIFIC_0_ADDR 0xa0
|
||||
#define AHCI_VENDOR_SPECIFIC_0_DATA 0xa4
|
||||
|
||||
#define AHCI_WINDOW_CTRL(win) (0x60 + ((win) << 4))
|
||||
#define AHCI_WINDOW_BASE(win) (0x64 + ((win) << 4))
|
||||
#define AHCI_WINDOW_SIZE(win) (0x68 + ((win) << 4))
|
||||
|
||||
static void ahci_mvebu_mbus_config(struct ahci_host_priv *hpriv,
|
||||
const struct mbus_dram_target_info *dram)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
writel(0, hpriv->mmio + AHCI_WINDOW_CTRL(i));
|
||||
writel(0, hpriv->mmio + AHCI_WINDOW_BASE(i));
|
||||
writel(0, hpriv->mmio + AHCI_WINDOW_SIZE(i));
|
||||
}
|
||||
|
||||
for (i = 0; i < dram->num_cs; i++) {
|
||||
const struct mbus_dram_window *cs = dram->cs + i;
|
||||
|
||||
writel((cs->mbus_attr << 8) |
|
||||
(dram->mbus_dram_target_id << 4) | 1,
|
||||
hpriv->mmio + AHCI_WINDOW_CTRL(i));
|
||||
writel(cs->base, hpriv->mmio + AHCI_WINDOW_BASE(i));
|
||||
writel(((cs->size - 1) & 0xffff0000),
|
||||
hpriv->mmio + AHCI_WINDOW_SIZE(i));
|
||||
}
|
||||
}
|
||||
|
||||
static void ahci_mvebu_regret_option(struct ahci_host_priv *hpriv)
|
||||
{
|
||||
/*
|
||||
* Enable the regret bit to allow the SATA unit to regret a
|
||||
* request that didn't receive an acknowlegde and avoid a
|
||||
* deadlock
|
||||
*/
|
||||
writel(0x4, hpriv->mmio + AHCI_VENDOR_SPECIFIC_0_ADDR);
|
||||
writel(0x80, hpriv->mmio + AHCI_VENDOR_SPECIFIC_0_DATA);
|
||||
}
|
||||
|
||||
static const struct ata_port_info ahci_mvebu_port_info = {
|
||||
.flags = AHCI_FLAG_COMMON,
|
||||
.pio_mask = ATA_PIO4,
|
||||
.udma_mask = ATA_UDMA6,
|
||||
.port_ops = &ahci_platform_ops,
|
||||
};
|
||||
|
||||
static int ahci_mvebu_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct ahci_host_priv *hpriv;
|
||||
const struct mbus_dram_target_info *dram;
|
||||
int rc;
|
||||
|
||||
hpriv = ahci_platform_get_resources(pdev);
|
||||
if (IS_ERR(hpriv))
|
||||
return PTR_ERR(hpriv);
|
||||
|
||||
rc = ahci_platform_enable_resources(hpriv);
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
dram = mv_mbus_dram_info();
|
||||
if (!dram)
|
||||
return -ENODEV;
|
||||
|
||||
ahci_mvebu_mbus_config(hpriv, dram);
|
||||
ahci_mvebu_regret_option(hpriv);
|
||||
|
||||
rc = ahci_platform_init_host(pdev, hpriv, &ahci_mvebu_port_info,
|
||||
0, 0, 0);
|
||||
if (rc)
|
||||
goto disable_resources;
|
||||
|
||||
return 0;
|
||||
|
||||
disable_resources:
|
||||
ahci_platform_disable_resources(hpriv);
|
||||
return rc;
|
||||
}
|
||||
|
||||
static const struct of_device_id ahci_mvebu_of_match[] = {
|
||||
{ .compatible = "marvell,armada-380-ahci", },
|
||||
{ },
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, ahci_mvebu_of_match);
|
||||
|
||||
/*
|
||||
* We currently don't provide power management related operations,
|
||||
* since there is no suspend/resume support at the platform level for
|
||||
* Armada 38x for the moment.
|
||||
*/
|
||||
static struct platform_driver ahci_mvebu_driver = {
|
||||
.probe = ahci_mvebu_probe,
|
||||
.remove = ata_platform_remove_one,
|
||||
.driver = {
|
||||
.name = "ahci-mvebu",
|
||||
.owner = THIS_MODULE,
|
||||
.of_match_table = ahci_mvebu_of_match,
|
||||
},
|
||||
};
|
||||
module_platform_driver(ahci_mvebu_driver);
|
||||
|
||||
MODULE_DESCRIPTION("Marvell EBU AHCI SATA driver");
|
||||
MODULE_AUTHOR("Thomas Petazzoni <thomas.petazzoni@free-electrons.com>, Marcin Wojtas <mw@semihalf.com>");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_ALIAS("platform:ahci_mvebu");
|
@ -16,6 +16,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/pm.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/libata.h>
|
||||
#include <linux/ahci_platform.h>
|
||||
@ -33,6 +34,7 @@ static int ahci_probe(struct platform_device *pdev)
|
||||
struct device *dev = &pdev->dev;
|
||||
struct ahci_platform_data *pdata = dev_get_platdata(dev);
|
||||
struct ahci_host_priv *hpriv;
|
||||
unsigned long hflags = 0;
|
||||
int rc;
|
||||
|
||||
hpriv = ahci_platform_get_resources(pdev);
|
||||
@ -55,7 +57,11 @@ static int ahci_probe(struct platform_device *pdev)
|
||||
goto disable_resources;
|
||||
}
|
||||
|
||||
rc = ahci_platform_init_host(pdev, hpriv, &ahci_port_info, 0, 0);
|
||||
if (of_device_is_compatible(dev->of_node, "hisilicon,hisi-ahci"))
|
||||
hflags |= AHCI_HFLAG_NO_FBS;
|
||||
|
||||
rc = ahci_platform_init_host(pdev, hpriv, &ahci_port_info,
|
||||
hflags, 0, 0);
|
||||
if (rc)
|
||||
goto pdata_exit;
|
||||
|
||||
@ -76,6 +82,7 @@ static const struct of_device_id ahci_of_match[] = {
|
||||
{ .compatible = "snps,exynos5440-ahci", },
|
||||
{ .compatible = "ibm,476gtr-ahci", },
|
||||
{ .compatible = "snps,dwc-ahci", },
|
||||
{ .compatible = "hisilicon,hisi-ahci", },
|
||||
{},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, ahci_of_match);
|
||||
|
@ -166,7 +166,7 @@ static int st_ahci_probe(struct platform_device *pdev)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
err = ahci_platform_init_host(pdev, hpriv, &st_ahci_port_info, 0, 0);
|
||||
err = ahci_platform_init_host(pdev, hpriv, &st_ahci_port_info, 0, 0, 0);
|
||||
if (err) {
|
||||
ahci_platform_disable_resources(hpriv);
|
||||
return err;
|
||||
|
@ -157,8 +157,6 @@ static void ahci_sunxi_start_engine(struct ata_port *ap)
|
||||
}
|
||||
|
||||
static const struct ata_port_info ahci_sunxi_port_info = {
|
||||
AHCI_HFLAGS(AHCI_HFLAG_32BIT_ONLY | AHCI_HFLAG_NO_MSI |
|
||||
AHCI_HFLAG_NO_PMP | AHCI_HFLAG_YES_NCQ),
|
||||
.flags = AHCI_FLAG_COMMON | ATA_FLAG_NCQ,
|
||||
.pio_mask = ATA_PIO4,
|
||||
.udma_mask = ATA_UDMA6,
|
||||
@ -169,6 +167,7 @@ static int ahci_sunxi_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct device *dev = &pdev->dev;
|
||||
struct ahci_host_priv *hpriv;
|
||||
unsigned long hflags;
|
||||
int rc;
|
||||
|
||||
hpriv = ahci_platform_get_resources(pdev);
|
||||
@ -185,7 +184,11 @@ static int ahci_sunxi_probe(struct platform_device *pdev)
|
||||
if (rc)
|
||||
goto disable_resources;
|
||||
|
||||
rc = ahci_platform_init_host(pdev, hpriv, &ahci_sunxi_port_info, 0, 0);
|
||||
hflags = AHCI_HFLAG_32BIT_ONLY | AHCI_HFLAG_NO_MSI |
|
||||
AHCI_HFLAG_NO_PMP | AHCI_HFLAG_YES_NCQ;
|
||||
|
||||
rc = ahci_platform_init_host(pdev, hpriv, &ahci_sunxi_port_info,
|
||||
hflags, 0, 0);
|
||||
if (rc)
|
||||
goto disable_resources;
|
||||
|
||||
|
@ -303,7 +303,6 @@ static struct ata_port_operations xgene_ahci_ops = {
|
||||
};
|
||||
|
||||
static const struct ata_port_info xgene_ahci_port_info = {
|
||||
AHCI_HFLAGS(AHCI_HFLAG_NO_PMP | AHCI_HFLAG_YES_NCQ),
|
||||
.flags = AHCI_FLAG_COMMON | ATA_FLAG_NCQ,
|
||||
.pio_mask = ATA_PIO4,
|
||||
.udma_mask = ATA_UDMA6,
|
||||
@ -382,6 +381,7 @@ static int xgene_ahci_probe(struct platform_device *pdev)
|
||||
struct ahci_host_priv *hpriv;
|
||||
struct xgene_ahci_context *ctx;
|
||||
struct resource *res;
|
||||
unsigned long hflags;
|
||||
int rc;
|
||||
|
||||
hpriv = ahci_platform_get_resources(pdev);
|
||||
@ -450,7 +450,10 @@ static int xgene_ahci_probe(struct platform_device *pdev)
|
||||
goto disable_resources;
|
||||
}
|
||||
|
||||
rc = ahci_platform_init_host(pdev, hpriv, &xgene_ahci_port_info, 0, 0);
|
||||
hflags = AHCI_HFLAG_NO_PMP | AHCI_HFLAG_YES_NCQ;
|
||||
|
||||
rc = ahci_platform_init_host(pdev, hpriv, &xgene_ahci_port_info,
|
||||
hflags, 0, 0);
|
||||
if (rc)
|
||||
goto disable_resources;
|
||||
|
||||
|
@ -241,7 +241,7 @@ static struct pci_driver ata_generic_pci_driver = {
|
||||
.id_table = ata_generic,
|
||||
.probe = ata_generic_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -830,7 +830,7 @@ static bool piix_irq_check(struct ata_port *ap)
|
||||
return ap->ops->bmdma_status(ap) & ATA_DMA_INTR;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int piix_broken_suspend(void)
|
||||
{
|
||||
static const struct dmi_system_id sysids[] = {
|
||||
@ -1767,7 +1767,7 @@ static struct pci_driver piix_pci_driver = {
|
||||
.id_table = piix_pci_tbl,
|
||||
.probe = piix_init_one,
|
||||
.remove = piix_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = piix_pci_device_suspend,
|
||||
.resume = piix_pci_device_resume,
|
||||
#endif
|
||||
|
@ -464,6 +464,11 @@ void ahci_save_initial_config(struct device *dev,
|
||||
cap |= HOST_CAP_FBS;
|
||||
}
|
||||
|
||||
if ((cap & HOST_CAP_FBS) && (hpriv->flags & AHCI_HFLAG_NO_FBS)) {
|
||||
dev_info(dev, "controller can't do FBS, turning off CAP_FBS\n");
|
||||
cap &= ~HOST_CAP_FBS;
|
||||
}
|
||||
|
||||
if (force_port_map && port_map != force_port_map) {
|
||||
dev_info(dev, "forcing port_map 0x%x -> 0x%x\n",
|
||||
port_map, force_port_map);
|
||||
|
@ -283,6 +283,7 @@ EXPORT_SYMBOL_GPL(ahci_platform_get_resources);
|
||||
* @pdev: platform device pointer for the host
|
||||
* @hpriv: ahci-host private data for the host
|
||||
* @pi_template: template for the ata_port_info to use
|
||||
* @host_flags: ahci host flags used in ahci_host_priv
|
||||
* @force_port_map: param passed to ahci_save_initial_config
|
||||
* @mask_port_map: param passed to ahci_save_initial_config
|
||||
*
|
||||
@ -296,6 +297,7 @@ EXPORT_SYMBOL_GPL(ahci_platform_get_resources);
|
||||
int ahci_platform_init_host(struct platform_device *pdev,
|
||||
struct ahci_host_priv *hpriv,
|
||||
const struct ata_port_info *pi_template,
|
||||
unsigned long host_flags,
|
||||
unsigned int force_port_map,
|
||||
unsigned int mask_port_map)
|
||||
{
|
||||
@ -312,7 +314,8 @@ int ahci_platform_init_host(struct platform_device *pdev,
|
||||
}
|
||||
|
||||
/* prepare host */
|
||||
hpriv->flags |= (unsigned long)pi.private_data;
|
||||
pi.private_data = (void *)host_flags;
|
||||
hpriv->flags |= host_flags;
|
||||
|
||||
ahci_save_initial_config(dev, hpriv, force_port_map, mask_port_map);
|
||||
|
||||
|
@ -1993,7 +1993,11 @@ static unsigned int ata_scsiop_inq_std(struct ata_scsi_args *args, u8 *rbuf)
|
||||
memcpy(rbuf, hdr, sizeof(hdr));
|
||||
memcpy(&rbuf[8], "ATA ", 8);
|
||||
ata_id_string(args->id, &rbuf[16], ATA_ID_PROD, 16);
|
||||
ata_id_string(args->id, &rbuf[32], ATA_ID_FW_REV, 4);
|
||||
|
||||
/* From SAT, use last 2 words from fw rev unless they are spaces */
|
||||
ata_id_string(args->id, &rbuf[32], ATA_ID_FW_REV + 2, 4);
|
||||
if (strncmp(&rbuf[32], " ", 4) == 0)
|
||||
ata_id_string(args->id, &rbuf[32], ATA_ID_FW_REV, 4);
|
||||
|
||||
if (rbuf[32] == 0 || rbuf[32] == ' ')
|
||||
memcpy(&rbuf[32], "n/a ", 4);
|
||||
|
@ -2433,15 +2433,6 @@ int ata_pci_sff_activate_host(struct ata_host *host,
|
||||
mask = (1 << 2) | (1 << 0);
|
||||
if ((tmp8 & mask) != mask)
|
||||
legacy_mode = 1;
|
||||
#if defined(CONFIG_NO_ATA_LEGACY)
|
||||
/* Some platforms with PCI limits cannot address compat
|
||||
port space. In that case we punt if their firmware has
|
||||
left a device in compatibility mode */
|
||||
if (legacy_mode) {
|
||||
printk(KERN_ERR "ata: Compatibility mode ATA is not supported on this platform, skipping.\n");
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
if (!devres_open_group(dev, NULL, GFP_KERNEL))
|
||||
|
@ -265,7 +265,7 @@ static struct pci_driver pacpi_pci_driver = {
|
||||
.id_table = pacpi_pci_tbl,
|
||||
.probe = pacpi_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -589,7 +589,7 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
return ata_pci_bmdma_init_one(pdev, ppi, &ali_sht, NULL, 0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int ali_reinit_one(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
@ -616,7 +616,7 @@ static struct pci_driver ali_pci_driver = {
|
||||
.id_table = ali,
|
||||
.probe = ali_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ali_reinit_one,
|
||||
#endif
|
||||
|
@ -574,7 +574,7 @@ static int amd_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
return ata_pci_bmdma_init_one(pdev, ppi, &amd_sht, hpriv, 0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int amd_reinit_one(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
@ -625,7 +625,7 @@ static struct pci_driver amd_pci_driver = {
|
||||
.id_table = amd,
|
||||
.probe = amd_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = amd_reinit_one,
|
||||
#endif
|
||||
|
@ -422,7 +422,7 @@ static const struct pci_device_id artop_pci_tbl[] = {
|
||||
{ } /* terminate list */
|
||||
};
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int atp8xx_reinit_one(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
@ -444,7 +444,7 @@ static struct pci_driver artop_pci_driver = {
|
||||
.id_table = artop_pci_tbl,
|
||||
.probe = artop_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = atp8xx_reinit_one,
|
||||
#endif
|
||||
|
@ -298,7 +298,7 @@ static struct pci_driver atiixp_pci_driver = {
|
||||
.id_table = atiixp,
|
||||
.probe = atiixp_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.resume = ata_pci_device_resume,
|
||||
.suspend = ata_pci_device_suspend,
|
||||
#endif
|
||||
|
@ -530,7 +530,7 @@ err_out:
|
||||
return rc;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int atp867x_reinit_one(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
@ -558,7 +558,7 @@ static struct pci_driver atp867x_driver = {
|
||||
.id_table = atp867x_pci_tbl,
|
||||
.probe = atp867x_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = atp867x_reinit_one,
|
||||
#endif
|
||||
|
@ -1619,7 +1619,7 @@ static int bfin_atapi_remove(struct platform_device *pdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int bfin_atapi_suspend(struct platform_device *pdev, pm_message_t state)
|
||||
{
|
||||
struct ata_host *host = platform_get_drvdata(pdev);
|
||||
|
@ -231,7 +231,7 @@ static int cmd640_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
return ata_pci_sff_init_one(pdev, ppi, &cmd640_sht, NULL, 0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int cmd640_reinit_one(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
@ -256,7 +256,7 @@ static struct pci_driver cmd640_pci_driver = {
|
||||
.id_table = cmd640,
|
||||
.probe = cmd640_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = cmd640_reinit_one,
|
||||
#endif
|
||||
|
@ -487,7 +487,7 @@ static int cmd64x_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
return ata_pci_bmdma_init_one(pdev, ppi, &cmd64x_sht, NULL, 0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int cmd64x_reinit_one(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
@ -518,7 +518,7 @@ static struct pci_driver cmd64x_pci_driver = {
|
||||
.id_table = cmd64x,
|
||||
.probe = cmd64x_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = cmd64x_reinit_one,
|
||||
#endif
|
||||
|
@ -229,7 +229,7 @@ static int cs5520_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
return ata_host_register(host, &cs5520_sht);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
/**
|
||||
* cs5520_reinit_one - device resume
|
||||
* @pdev: PCI device
|
||||
@ -278,7 +278,7 @@ static int cs5520_pci_device_suspend(struct pci_dev *pdev, pm_message_t mesg)
|
||||
pci_save_state(pdev);
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_PM */
|
||||
#endif /* CONFIG_PM_SLEEP */
|
||||
|
||||
/* For now keep DMA off. We can set it for all but A rev CS5510 once the
|
||||
core ATA code can handle it */
|
||||
@ -295,7 +295,7 @@ static struct pci_driver cs5520_pci_driver = {
|
||||
.id_table = pata_cs5520,
|
||||
.probe = cs5520_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = cs5520_pci_device_suspend,
|
||||
.resume = cs5520_reinit_one,
|
||||
#endif
|
||||
|
@ -326,7 +326,7 @@ static int cs5530_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
return ata_pci_bmdma_init_one(pdev, ppi, &cs5530_sht, NULL, 0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int cs5530_reinit_one(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
@ -343,7 +343,7 @@ static int cs5530_reinit_one(struct pci_dev *pdev)
|
||||
ata_host_resume(host);
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_PM */
|
||||
#endif /* CONFIG_PM_SLEEP */
|
||||
|
||||
static const struct pci_device_id cs5530[] = {
|
||||
{ PCI_VDEVICE(CYRIX, PCI_DEVICE_ID_CYRIX_5530_IDE), },
|
||||
@ -356,7 +356,7 @@ static struct pci_driver cs5530_pci_driver = {
|
||||
.id_table = cs5530,
|
||||
.probe = cs5530_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = cs5530_reinit_one,
|
||||
#endif
|
||||
|
@ -200,7 +200,7 @@ static struct pci_driver cs5535_pci_driver = {
|
||||
.id_table = cs5535,
|
||||
.probe = cs5535_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -297,7 +297,7 @@ static struct pci_driver cs5536_pci_driver = {
|
||||
.id_table = cs5536,
|
||||
.probe = cs5536_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -151,7 +151,7 @@ static struct pci_driver cy82c693_pci_driver = {
|
||||
.id_table = cy82c693,
|
||||
.probe = cy82c693_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -288,7 +288,7 @@ static struct pci_driver efar_pci_driver = {
|
||||
.id_table = efar_pci_tbl,
|
||||
.probe = efar_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -708,8 +708,8 @@ static void ep93xx_pata_dma_start(struct ata_queued_cmd *qc)
|
||||
struct dma_chan *channel = qc->dma_dir == DMA_TO_DEVICE
|
||||
? drv_data->dma_tx_channel : drv_data->dma_rx_channel;
|
||||
|
||||
txd = channel->device->device_prep_slave_sg(channel, qc->sg,
|
||||
qc->n_elem, qc->dma_dir, DMA_CTRL_ACK, NULL);
|
||||
txd = dmaengine_prep_slave_sg(channel, qc->sg, qc->n_elem, qc->dma_dir,
|
||||
DMA_CTRL_ACK);
|
||||
if (!txd) {
|
||||
dev_err(qc->ap->dev, "failed to prepare slave for sg dma\n");
|
||||
return;
|
||||
|
@ -386,7 +386,7 @@ static int hpt36x_init_one(struct pci_dev *dev, const struct pci_device_id *id)
|
||||
return ata_pci_bmdma_init_one(dev, ppi, &hpt36x_sht, hpriv, 0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int hpt36x_reinit_one(struct pci_dev *dev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(dev);
|
||||
@ -411,7 +411,7 @@ static struct pci_driver hpt36x_pci_driver = {
|
||||
.id_table = hpt36x,
|
||||
.probe = hpt36x_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = hpt36x_reinit_one,
|
||||
#endif
|
||||
|
@ -249,7 +249,7 @@ static int hpt3x3_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
IRQF_SHARED, &hpt3x3_sht);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int hpt3x3_reinit_one(struct pci_dev *dev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(dev);
|
||||
@ -277,7 +277,7 @@ static struct pci_driver hpt3x3_pci_driver = {
|
||||
.id_table = hpt3x3,
|
||||
.probe = hpt3x3_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = hpt3x3_reinit_one,
|
||||
#endif
|
||||
|
@ -185,7 +185,7 @@ static int pata_imx_remove(struct platform_device *pdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int pata_imx_suspend(struct device *dev)
|
||||
{
|
||||
struct ata_host *host = dev_get_drvdata(dev);
|
||||
@ -244,7 +244,7 @@ static struct platform_driver pata_imx_driver = {
|
||||
.name = DRV_NAME,
|
||||
.of_match_table = imx_pata_dt_ids,
|
||||
.owner = THIS_MODULE,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.pm = &pata_imx_pm_ops,
|
||||
#endif
|
||||
},
|
||||
|
@ -283,7 +283,7 @@ static struct pci_driver it8213_pci_driver = {
|
||||
.id_table = it8213_pci_tbl,
|
||||
.probe = it8213_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -935,7 +935,7 @@ static int it821x_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
return ata_pci_bmdma_init_one(pdev, ppi, &it821x_sht, NULL, 0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int it821x_reinit_one(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
@ -965,7 +965,7 @@ static struct pci_driver it821x_pci_driver = {
|
||||
.id_table = it821x,
|
||||
.probe = it821x_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = it821x_reinit_one,
|
||||
#endif
|
||||
|
@ -157,7 +157,7 @@ static struct pci_driver jmicron_pci_driver = {
|
||||
.id_table = jmicron_pci_tbl,
|
||||
.probe = jmicron_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -845,8 +845,7 @@ static int pata_macio_slave_config(struct scsi_device *sdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int pata_macio_do_suspend(struct pata_macio_priv *priv, pm_message_t mesg)
|
||||
{
|
||||
int rc;
|
||||
@ -907,8 +906,7 @@ static int pata_macio_do_resume(struct pata_macio_priv *priv)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_PM */
|
||||
#endif /* CONFIG_PM_SLEEP */
|
||||
|
||||
static struct scsi_host_template pata_macio_sht = {
|
||||
ATA_BASE_SHT(DRV_NAME),
|
||||
@ -1208,8 +1206,7 @@ static int pata_macio_detach(struct macio_dev *mdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int pata_macio_suspend(struct macio_dev *mdev, pm_message_t mesg)
|
||||
{
|
||||
struct ata_host *host = macio_get_drvdata(mdev);
|
||||
@ -1223,8 +1220,7 @@ static int pata_macio_resume(struct macio_dev *mdev)
|
||||
|
||||
return pata_macio_do_resume(host->private_data);
|
||||
}
|
||||
|
||||
#endif /* CONFIG_PM */
|
||||
#endif /* CONFIG_PM_SLEEP */
|
||||
|
||||
#ifdef CONFIG_PMAC_MEDIABAY
|
||||
static void pata_macio_mb_event(struct macio_dev* mdev, int mb_state)
|
||||
@ -1316,8 +1312,7 @@ static void pata_macio_pci_detach(struct pci_dev *pdev)
|
||||
ata_host_detach(host);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int pata_macio_pci_suspend(struct pci_dev *pdev, pm_message_t mesg)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
@ -1331,8 +1326,7 @@ static int pata_macio_pci_resume(struct pci_dev *pdev)
|
||||
|
||||
return pata_macio_do_resume(host->private_data);
|
||||
}
|
||||
|
||||
#endif /* CONFIG_PM */
|
||||
#endif /* CONFIG_PM_SLEEP */
|
||||
|
||||
static struct of_device_id pata_macio_match[] =
|
||||
{
|
||||
@ -1360,7 +1354,7 @@ static struct macio_driver pata_macio_driver =
|
||||
},
|
||||
.probe = pata_macio_attach,
|
||||
.remove = pata_macio_detach,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = pata_macio_suspend,
|
||||
.resume = pata_macio_resume,
|
||||
#endif
|
||||
@ -1383,7 +1377,7 @@ static struct pci_driver pata_macio_pci_driver = {
|
||||
.id_table = pata_macio_pci_match,
|
||||
.probe = pata_macio_pci_attach,
|
||||
.remove = pata_macio_pci_detach,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = pata_macio_pci_suspend,
|
||||
.resume = pata_macio_pci_resume,
|
||||
#endif
|
||||
|
@ -171,7 +171,7 @@ static struct pci_driver marvell_pci_driver = {
|
||||
.id_table = marvell_pci_tbl,
|
||||
.probe = marvell_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -819,9 +819,7 @@ mpc52xx_ata_remove(struct platform_device *op)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int
|
||||
mpc52xx_ata_suspend(struct platform_device *op, pm_message_t state)
|
||||
{
|
||||
@ -847,10 +845,8 @@ mpc52xx_ata_resume(struct platform_device *op)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
static struct of_device_id mpc52xx_ata_of_match[] = {
|
||||
{ .compatible = "fsl,mpc5200-ata", },
|
||||
{ .compatible = "mpc5200-ata", },
|
||||
@ -861,7 +857,7 @@ static struct of_device_id mpc52xx_ata_of_match[] = {
|
||||
static struct platform_driver mpc52xx_ata_of_platform_driver = {
|
||||
.probe = mpc52xx_ata_probe,
|
||||
.remove = mpc52xx_ata_remove,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = mpc52xx_ata_suspend,
|
||||
.resume = mpc52xx_ata_resume,
|
||||
#endif
|
||||
|
@ -223,7 +223,7 @@ static struct pci_driver mpiix_pci_driver = {
|
||||
.id_table = mpiix,
|
||||
.probe = mpiix_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -92,7 +92,7 @@ static struct pci_driver netcell_pci_driver = {
|
||||
.id_table = netcell_pci_tbl,
|
||||
.probe = netcell_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -152,8 +152,7 @@ static int ninja32_init_one(struct pci_dev *dev, const struct pci_device_id *id)
|
||||
IRQF_SHARED, &ninja32_sht);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int ninja32_reinit_one(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
@ -183,7 +182,7 @@ static struct pci_driver ninja32_pci_driver = {
|
||||
.id_table = ninja32,
|
||||
.probe = ninja32_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ninja32_reinit_one,
|
||||
#endif
|
||||
|
@ -161,7 +161,7 @@ static struct pci_driver ns87410_pci_driver = {
|
||||
.id_table = ns87410,
|
||||
.probe = ns87410_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -385,7 +385,7 @@ static const struct pci_device_id ns87415_pci_tbl[] = {
|
||||
{ } /* terminate list */
|
||||
};
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int ns87415_reinit_one(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
@ -407,7 +407,7 @@ static struct pci_driver ns87415_pci_driver = {
|
||||
.id_table = ns87415_pci_tbl,
|
||||
.probe = ns87415_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ns87415_reinit_one,
|
||||
#endif
|
||||
|
@ -865,7 +865,7 @@ static int octeon_cf_probe(struct platform_device *pdev)
|
||||
if (node == NULL)
|
||||
return -EINVAL;
|
||||
|
||||
cf_port = kzalloc(sizeof(*cf_port), GFP_KERNEL);
|
||||
cf_port = devm_kzalloc(&pdev->dev, sizeof(*cf_port), GFP_KERNEL);
|
||||
if (!cf_port)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -881,10 +881,9 @@ static int octeon_cf_probe(struct platform_device *pdev)
|
||||
n_size = of_n_size_cells(node);
|
||||
|
||||
reg_prop = of_find_property(node, "reg", ®_len);
|
||||
if (!reg_prop || reg_len < sizeof(__be32)) {
|
||||
rv = -EINVAL;
|
||||
goto free_cf_port;
|
||||
}
|
||||
if (!reg_prop || reg_len < sizeof(__be32))
|
||||
return -EINVAL;
|
||||
|
||||
cs_num = reg_prop->value;
|
||||
cf_port->cs0 = be32_to_cpup(cs_num);
|
||||
|
||||
@ -901,16 +900,13 @@ static int octeon_cf_probe(struct platform_device *pdev)
|
||||
res_dma = platform_get_resource(dma_dev, IORESOURCE_MEM, 0);
|
||||
if (!res_dma) {
|
||||
of_node_put(dma_node);
|
||||
rv = -EINVAL;
|
||||
goto free_cf_port;
|
||||
return -EINVAL;
|
||||
}
|
||||
cf_port->dma_base = (u64)devm_ioremap_nocache(&pdev->dev, res_dma->start,
|
||||
resource_size(res_dma));
|
||||
|
||||
if (!cf_port->dma_base) {
|
||||
of_node_put(dma_node);
|
||||
rv = -EINVAL;
|
||||
goto free_cf_port;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
irq_handler = octeon_cf_interrupt;
|
||||
@ -921,41 +917,34 @@ static int octeon_cf_probe(struct platform_device *pdev)
|
||||
of_node_put(dma_node);
|
||||
}
|
||||
res_cs1 = platform_get_resource(pdev, IORESOURCE_MEM, 1);
|
||||
if (!res_cs1) {
|
||||
rv = -EINVAL;
|
||||
goto free_cf_port;
|
||||
}
|
||||
if (!res_cs1)
|
||||
return -EINVAL;
|
||||
|
||||
cs1 = devm_ioremap_nocache(&pdev->dev, res_cs1->start,
|
||||
resource_size(res_cs1));
|
||||
|
||||
if (!cs1)
|
||||
goto free_cf_port;
|
||||
return rv;
|
||||
|
||||
if (reg_len < (n_addr + n_size + 1) * sizeof(__be32))
|
||||
return -EINVAL;
|
||||
|
||||
if (reg_len < (n_addr + n_size + 1) * sizeof(__be32)) {
|
||||
rv = -EINVAL;
|
||||
goto free_cf_port;
|
||||
}
|
||||
cs_num += n_addr + n_size;
|
||||
cf_port->cs1 = be32_to_cpup(cs_num);
|
||||
}
|
||||
|
||||
res_cs0 = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
|
||||
if (!res_cs0) {
|
||||
rv = -EINVAL;
|
||||
goto free_cf_port;
|
||||
}
|
||||
if (!res_cs0)
|
||||
return -EINVAL;
|
||||
|
||||
cs0 = devm_ioremap_nocache(&pdev->dev, res_cs0->start,
|
||||
resource_size(res_cs0));
|
||||
|
||||
if (!cs0)
|
||||
goto free_cf_port;
|
||||
return rv;
|
||||
|
||||
/* allocate host */
|
||||
host = ata_host_alloc(&pdev->dev, 1);
|
||||
if (!host)
|
||||
goto free_cf_port;
|
||||
return rv;
|
||||
|
||||
ap = host->ports[0];
|
||||
ap->private_data = cf_port;
|
||||
@ -1020,17 +1009,12 @@ static int octeon_cf_probe(struct platform_device *pdev)
|
||||
|
||||
ata_port_desc(ap, "cmd %p ctl %p", base, ap->ioaddr.ctl_addr);
|
||||
|
||||
|
||||
dev_info(&pdev->dev, "version " DRV_VERSION" %d bit%s.\n",
|
||||
is_16bit ? 16 : 8,
|
||||
cf_port->is_true_ide ? ", True IDE" : "");
|
||||
|
||||
return ata_host_activate(host, irq, irq_handler,
|
||||
IRQF_SHARED, &octeon_cf_sht);
|
||||
|
||||
free_cf_port:
|
||||
kfree(cf_port);
|
||||
return rv;
|
||||
}
|
||||
|
||||
static void octeon_cf_shutdown(struct device *dev)
|
||||
|
@ -258,7 +258,7 @@ static struct pci_driver oldpiix_pci_driver = {
|
||||
.id_table = oldpiix_pci_tbl,
|
||||
.probe = oldpiix_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -184,7 +184,7 @@ static struct pci_driver opti_pci_driver = {
|
||||
.id_table = opti,
|
||||
.probe = opti_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -440,7 +440,7 @@ static struct pci_driver optidma_pci_driver = {
|
||||
.id_table = optidma,
|
||||
.probe = optidma_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -62,7 +62,7 @@ enum {
|
||||
};
|
||||
|
||||
static int pdc2027x_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int pdc2027x_reinit_one(struct pci_dev *pdev);
|
||||
#endif
|
||||
static int pdc2027x_prereset(struct ata_link *link, unsigned long deadline);
|
||||
@ -128,7 +128,7 @@ static struct pci_driver pdc2027x_pci_driver = {
|
||||
.id_table = pdc2027x_pci_tbl,
|
||||
.probe = pdc2027x_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = pdc2027x_reinit_one,
|
||||
#endif
|
||||
@ -761,7 +761,7 @@ static int pdc2027x_init_one(struct pci_dev *pdev,
|
||||
IRQF_SHARED, &pdc2027x_sht);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int pdc2027x_reinit_one(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
|
@ -377,7 +377,7 @@ static struct pci_driver pdc202xx_pci_driver = {
|
||||
.id_table = pdc202xx,
|
||||
.probe = pdc202xx_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -110,7 +110,7 @@ static struct pci_driver ata_tosh_pci_driver = {
|
||||
.id_table = ata_tosh,
|
||||
.probe = ata_tosh_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -237,7 +237,7 @@ static struct pci_driver radisys_pci_driver = {
|
||||
.id_table = radisys_pci_tbl,
|
||||
.probe = radisys_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -382,7 +382,7 @@ static struct pci_driver rdc_pci_driver = {
|
||||
.id_table = rdc_pci_tbl,
|
||||
.probe = rdc_init_one,
|
||||
.remove = rdc_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -101,7 +101,7 @@ static int rz1000_init_one (struct pci_dev *pdev, const struct pci_device_id *en
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int rz1000_reinit_one(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
@ -133,7 +133,7 @@ static struct pci_driver rz1000_pci_driver = {
|
||||
.id_table = pata_rz1000,
|
||||
.probe = rz1000_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = rz1000_reinit_one,
|
||||
#endif
|
||||
|
@ -619,7 +619,7 @@ static int __exit pata_s3c_remove(struct platform_device *pdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int pata_s3c_suspend(struct device *dev)
|
||||
{
|
||||
struct platform_device *pdev = to_platform_device(dev);
|
||||
@ -670,7 +670,7 @@ static struct platform_driver pata_s3c_driver = {
|
||||
.driver = {
|
||||
.name = DRV_NAME,
|
||||
.owner = THIS_MODULE,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.pm = &pata_s3c_pm_ops,
|
||||
#endif
|
||||
},
|
||||
|
@ -254,7 +254,7 @@ static struct pci_driver sc1200_pci_driver = {
|
||||
.id_table = sc1200,
|
||||
.probe = sc1200_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -1096,7 +1096,7 @@ static struct pci_driver scc_pci_driver = {
|
||||
.id_table = scc_pci_tbl,
|
||||
.probe = scc_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -64,7 +64,7 @@ static struct pci_driver sch_pci_driver = {
|
||||
.id_table = sch_pci_tbl,
|
||||
.probe = sch_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -436,7 +436,7 @@ static int serverworks_init_one(struct pci_dev *pdev, const struct pci_device_id
|
||||
return ata_pci_bmdma_init_one(pdev, ppi, &serverworks_sht, NULL, 0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int serverworks_reinit_one(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
@ -468,7 +468,7 @@ static struct pci_driver serverworks_pci_driver = {
|
||||
.id_table = serverworks,
|
||||
.probe = serverworks_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = serverworks_reinit_one,
|
||||
#endif
|
||||
|
@ -403,7 +403,7 @@ use_ioports:
|
||||
return ata_pci_bmdma_init_one(pdev, ppi, &sil680_sht, NULL, 0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int sil680_reinit_one(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
@ -429,7 +429,7 @@ static struct pci_driver sil680_pci_driver = {
|
||||
.id_table = sil680,
|
||||
.probe = sil680_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = sil680_reinit_one,
|
||||
#endif
|
||||
|
@ -869,7 +869,7 @@ static int sis_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
return ata_pci_bmdma_init_one(pdev, ppi, &sis_sht, chipset, 0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int sis_reinit_one(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
@ -899,7 +899,7 @@ static struct pci_driver sis_pci_driver = {
|
||||
.id_table = sis_pci_tbl,
|
||||
.probe = sis_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = sis_reinit_one,
|
||||
#endif
|
||||
|
@ -337,7 +337,7 @@ static int sl82c105_init_one(struct pci_dev *dev, const struct pci_device_id *id
|
||||
return ata_pci_bmdma_init_one(dev, ppi, &sl82c105_sht, NULL, 0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int sl82c105_reinit_one(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
@ -365,7 +365,7 @@ static struct pci_driver sl82c105_pci_driver = {
|
||||
.id_table = sl82c105,
|
||||
.probe = sl82c105_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = sl82c105_reinit_one,
|
||||
#endif
|
||||
|
@ -207,7 +207,7 @@ static const struct pci_device_id triflex[] = {
|
||||
{ },
|
||||
};
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int triflex_ata_pci_device_suspend(struct pci_dev *pdev, pm_message_t mesg)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
@ -233,7 +233,7 @@ static struct pci_driver triflex_pci_driver = {
|
||||
.id_table = triflex,
|
||||
.probe = triflex_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = triflex_ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -659,7 +659,7 @@ static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
return ata_pci_bmdma_init_one(pdev, ppi, &via_sht, (void *)config, 0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
/**
|
||||
* via_reinit_one - reinit after resume
|
||||
* @pdev; PCI device
|
||||
@ -704,7 +704,7 @@ static struct pci_driver via_pci_driver = {
|
||||
.id_table = via,
|
||||
.probe = via_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = via_reinit_one,
|
||||
#endif
|
||||
|
@ -774,20 +774,6 @@ static int sata_fsl_port_start(struct ata_port *ap)
|
||||
VPRINTK("HControl = 0x%x\n", ioread32(hcr_base + HCONTROL));
|
||||
VPRINTK("CHBA = 0x%x\n", ioread32(hcr_base + CHBA));
|
||||
|
||||
#ifdef CONFIG_MPC8315_DS
|
||||
/*
|
||||
* Workaround for 8315DS board 3gbps link-up issue,
|
||||
* currently limit SATA port to GEN1 speed
|
||||
*/
|
||||
sata_fsl_scr_read(&ap->link, SCR_CONTROL, &temp);
|
||||
temp &= ~(0xF << 4);
|
||||
temp |= (0x1 << 4);
|
||||
sata_fsl_scr_write(&ap->link, SCR_CONTROL, temp);
|
||||
|
||||
sata_fsl_scr_read(&ap->link, SCR_CONTROL, &temp);
|
||||
dev_warn(dev, "scr_control, speed limited to %x\n", temp);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1588,7 +1574,7 @@ static int sata_fsl_remove(struct platform_device *ofdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int sata_fsl_suspend(struct platform_device *op, pm_message_t state)
|
||||
{
|
||||
struct ata_host *host = platform_get_drvdata(op);
|
||||
@ -1644,7 +1630,7 @@ static struct platform_driver fsl_sata_driver = {
|
||||
},
|
||||
.probe = sata_fsl_probe,
|
||||
.remove = sata_fsl_remove,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = sata_fsl_suspend,
|
||||
.resume = sata_fsl_resume,
|
||||
#endif
|
||||
|
@ -785,7 +785,7 @@ static int init_controller(void __iomem *mmio_base, u16 hctl)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int inic_pci_device_resume(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
@ -898,7 +898,7 @@ static const struct pci_device_id inic_pci_tbl[] = {
|
||||
static struct pci_driver inic_pci_driver = {
|
||||
.name = DRV_NAME,
|
||||
.id_table = inic_pci_tbl,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = inic_pci_device_resume,
|
||||
#endif
|
||||
|
@ -4222,7 +4222,7 @@ static int mv_platform_remove(struct platform_device *pdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int mv_platform_suspend(struct platform_device *pdev, pm_message_t state)
|
||||
{
|
||||
struct ata_host *host = platform_get_drvdata(pdev);
|
||||
@ -4289,7 +4289,7 @@ static struct platform_driver mv_platform_driver = {
|
||||
#ifdef CONFIG_PCI
|
||||
static int mv_pci_init_one(struct pci_dev *pdev,
|
||||
const struct pci_device_id *ent);
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int mv_pci_device_resume(struct pci_dev *pdev);
|
||||
#endif
|
||||
|
||||
@ -4299,7 +4299,7 @@ static struct pci_driver mv_pci_driver = {
|
||||
.id_table = mv_pci_tbl,
|
||||
.probe = mv_pci_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = mv_pci_device_resume,
|
||||
#endif
|
||||
@ -4457,7 +4457,7 @@ static int mv_pci_init_one(struct pci_dev *pdev,
|
||||
IS_GEN_I(hpriv) ? &mv5_sht : &mv6_sht);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int mv_pci_device_resume(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
|
@ -295,7 +295,7 @@ struct nv_swncq_port_priv {
|
||||
#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);
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int nv_pci_device_resume(struct pci_dev *pdev);
|
||||
#endif
|
||||
static void nv_ck804_host_stop(struct ata_host *host);
|
||||
@ -379,7 +379,7 @@ static struct pci_driver nv_pci_driver = {
|
||||
.name = DRV_NAME,
|
||||
.id_table = nv_pci_tbl,
|
||||
.probe = nv_init_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = nv_pci_device_resume,
|
||||
#endif
|
||||
@ -2431,7 +2431,7 @@ static int nv_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
return ata_pci_sff_activate_host(host, ipriv->irq_handler, ipriv->sht);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int nv_pci_device_resume(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
|
@ -937,7 +937,7 @@ static int sata_rcar_remove(struct platform_device *pdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int sata_rcar_suspend(struct device *dev)
|
||||
{
|
||||
struct ata_host *host = dev_get_drvdata(dev);
|
||||
@ -991,7 +991,7 @@ static struct platform_driver sata_rcar_driver = {
|
||||
.name = DRV_NAME,
|
||||
.owner = THIS_MODULE,
|
||||
.of_match_table = sata_rcar_match,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.pm = &sata_rcar_pm_ops,
|
||||
#endif
|
||||
},
|
||||
|
@ -112,7 +112,7 @@ enum {
|
||||
};
|
||||
|
||||
static int sil_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int sil_pci_device_resume(struct pci_dev *pdev);
|
||||
#endif
|
||||
static void sil_dev_config(struct ata_device *dev);
|
||||
@ -166,7 +166,7 @@ static struct pci_driver sil_pci_driver = {
|
||||
.id_table = sil_pci_tbl,
|
||||
.probe = sil_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = sil_pci_device_resume,
|
||||
#endif
|
||||
@ -802,7 +802,7 @@ static int sil_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
&sil_sht);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int sil_pci_device_resume(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
|
@ -353,8 +353,10 @@ static void sil24_error_handler(struct ata_port *ap);
|
||||
static void sil24_post_internal_cmd(struct ata_queued_cmd *qc);
|
||||
static int sil24_port_start(struct ata_port *ap);
|
||||
static int sil24_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int sil24_pci_device_resume(struct pci_dev *pdev);
|
||||
#endif
|
||||
#ifdef CONFIG_PM
|
||||
static int sil24_port_resume(struct ata_port *ap);
|
||||
#endif
|
||||
|
||||
@ -375,7 +377,7 @@ static struct pci_driver sil24_pci_driver = {
|
||||
.id_table = sil24_pci_tbl,
|
||||
.probe = sil24_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = sil24_pci_device_resume,
|
||||
#endif
|
||||
@ -1350,7 +1352,7 @@ static int sil24_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
&sil24_sht);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int sil24_pci_device_resume(struct pci_dev *pdev)
|
||||
{
|
||||
struct ata_host *host = pci_get_drvdata(pdev);
|
||||
@ -1370,7 +1372,9 @@ static int sil24_pci_device_resume(struct pci_dev *pdev)
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
static int sil24_port_resume(struct ata_port *ap)
|
||||
{
|
||||
sil24_config_pmp(ap, ap->nr_pmp_links);
|
||||
|
@ -82,7 +82,7 @@ static struct pci_driver sis_pci_driver = {
|
||||
.id_table = sis_pci_tbl,
|
||||
.probe = sis_init_one,
|
||||
.remove = ata_pci_remove_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -103,7 +103,7 @@ static struct pci_driver svia_pci_driver = {
|
||||
.name = DRV_NAME,
|
||||
.id_table = svia_pci_tbl,
|
||||
.probe = svia_init_one,
|
||||
#ifdef CONFIG_PM
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
.suspend = ata_pci_device_suspend,
|
||||
.resume = ata_pci_device_resume,
|
||||
#endif
|
||||
|
@ -44,6 +44,7 @@ struct ahci_host_priv *ahci_platform_get_resources(
|
||||
int ahci_platform_init_host(struct platform_device *pdev,
|
||||
struct ahci_host_priv *hpriv,
|
||||
const struct ata_port_info *pi_template,
|
||||
unsigned long host_flags,
|
||||
unsigned int force_port_map,
|
||||
unsigned int mask_port_map);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user