mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-06 13:15:13 +07:00
[PATCH] sata_nv: kill struct nv_host_desc and nv_host
nv_host_desc and nv_host are used to discern different generations of nv controllers. Kill those. New EH/hotplug implementation will use standard port_info/ata_port_operations for that. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
638ebcc81f
commit
e6faf082cd
@ -89,7 +89,6 @@ static irqreturn_t nv_interrupt (int irq, void *dev_instance,
|
|||||||
struct pt_regs *regs);
|
struct pt_regs *regs);
|
||||||
static u32 nv_scr_read (struct ata_port *ap, unsigned int sc_reg);
|
static u32 nv_scr_read (struct ata_port *ap, unsigned int sc_reg);
|
||||||
static void nv_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val);
|
static void nv_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val);
|
||||||
static void nv_host_stop (struct ata_host_set *host_set);
|
|
||||||
|
|
||||||
enum nv_host_type
|
enum nv_host_type
|
||||||
{
|
{
|
||||||
@ -137,30 +136,6 @@ static const struct pci_device_id nv_pci_tbl[] = {
|
|||||||
{ 0, } /* terminate list */
|
{ 0, } /* terminate list */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct nv_host_desc
|
|
||||||
{
|
|
||||||
enum nv_host_type host_type;
|
|
||||||
};
|
|
||||||
static struct nv_host_desc nv_device_tbl[] = {
|
|
||||||
{
|
|
||||||
.host_type = GENERIC,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.host_type = NFORCE2,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.host_type = NFORCE3,
|
|
||||||
},
|
|
||||||
{ .host_type = CK804,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
struct nv_host
|
|
||||||
{
|
|
||||||
struct nv_host_desc *host_desc;
|
|
||||||
unsigned long host_flags;
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct pci_driver nv_pci_driver = {
|
static struct pci_driver nv_pci_driver = {
|
||||||
.name = DRV_NAME,
|
.name = DRV_NAME,
|
||||||
.id_table = nv_pci_tbl,
|
.id_table = nv_pci_tbl,
|
||||||
@ -208,7 +183,7 @@ static const struct ata_port_operations nv_ops = {
|
|||||||
.scr_write = nv_scr_write,
|
.scr_write = nv_scr_write,
|
||||||
.port_start = ata_port_start,
|
.port_start = ata_port_start,
|
||||||
.port_stop = ata_port_stop,
|
.port_stop = ata_port_stop,
|
||||||
.host_stop = nv_host_stop,
|
.host_stop = ata_pci_host_stop,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* FIXME: The hardware provides the necessary SATA PHY controls
|
/* FIXME: The hardware provides the necessary SATA PHY controls
|
||||||
@ -287,19 +262,9 @@ static void nv_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val)
|
|||||||
iowrite32(val, (void __iomem *)ap->ioaddr.scr_addr + (sc_reg * 4));
|
iowrite32(val, (void __iomem *)ap->ioaddr.scr_addr + (sc_reg * 4));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void nv_host_stop (struct ata_host_set *host_set)
|
|
||||||
{
|
|
||||||
struct nv_host *host = host_set->private_data;
|
|
||||||
|
|
||||||
kfree(host);
|
|
||||||
|
|
||||||
ata_pci_host_stop(host_set);
|
|
||||||
}
|
|
||||||
|
|
||||||
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 int printed_version = 0;
|
static int printed_version = 0;
|
||||||
struct nv_host *host;
|
|
||||||
struct ata_port_info *ppi;
|
struct ata_port_info *ppi;
|
||||||
struct ata_probe_ent *probe_ent;
|
struct ata_probe_ent *probe_ent;
|
||||||
int pci_dev_busy = 0;
|
int pci_dev_busy = 0;
|
||||||
@ -341,19 +306,10 @@ static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||||||
if (!probe_ent)
|
if (!probe_ent)
|
||||||
goto err_out_regions;
|
goto err_out_regions;
|
||||||
|
|
||||||
host = kmalloc(sizeof(struct nv_host), GFP_KERNEL);
|
|
||||||
if (!host)
|
|
||||||
goto err_out_free_ent;
|
|
||||||
|
|
||||||
memset(host, 0, sizeof(struct nv_host));
|
|
||||||
host->host_desc = &nv_device_tbl[ent->driver_data];
|
|
||||||
|
|
||||||
probe_ent->private_data = host;
|
|
||||||
|
|
||||||
probe_ent->mmio_base = pci_iomap(pdev, 5, 0);
|
probe_ent->mmio_base = pci_iomap(pdev, 5, 0);
|
||||||
if (!probe_ent->mmio_base) {
|
if (!probe_ent->mmio_base) {
|
||||||
rc = -EIO;
|
rc = -EIO;
|
||||||
goto err_out_free_host;
|
goto err_out_free_ent;
|
||||||
}
|
}
|
||||||
|
|
||||||
base = (unsigned long)probe_ent->mmio_base;
|
base = (unsigned long)probe_ent->mmio_base;
|
||||||
@ -373,8 +329,6 @@ static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||||||
|
|
||||||
err_out_iounmap:
|
err_out_iounmap:
|
||||||
pci_iounmap(pdev, probe_ent->mmio_base);
|
pci_iounmap(pdev, probe_ent->mmio_base);
|
||||||
err_out_free_host:
|
|
||||||
kfree(host);
|
|
||||||
err_out_free_ent:
|
err_out_free_ent:
|
||||||
kfree(probe_ent);
|
kfree(probe_ent);
|
||||||
err_out_regions:
|
err_out_regions:
|
||||||
|
Loading…
Reference in New Issue
Block a user