sc1200: convert to use ->host_priv

Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 1d76d9dc
...@@ -234,20 +234,10 @@ static int sc1200_suspend (struct pci_dev *dev, pm_message_t state) ...@@ -234,20 +234,10 @@ static int sc1200_suspend (struct pci_dev *dev, pm_message_t state)
* we only save state when going from full power to less * we only save state when going from full power to less
*/ */
if (state.event == PM_EVENT_ON) { if (state.event == PM_EVENT_ON) {
struct sc1200_saved_state *ss; struct ide_host *host = pci_get_drvdata(dev);
struct sc1200_saved_state *ss = host->host_priv;
unsigned int r; unsigned int r;
/*
* allocate a permanent save area, if not already allocated
*/
ss = (struct sc1200_saved_state *)pci_get_drvdata(dev);
if (ss == NULL) {
ss = kmalloc(sizeof(*ss), GFP_KERNEL);
if (ss == NULL)
return -ENOMEM;
pci_set_drvdata(dev, ss);
}
/* /*
* save timing registers * save timing registers
* (this may be unnecessary if BIOS also does it) * (this may be unnecessary if BIOS also does it)
...@@ -263,7 +253,8 @@ static int sc1200_suspend (struct pci_dev *dev, pm_message_t state) ...@@ -263,7 +253,8 @@ static int sc1200_suspend (struct pci_dev *dev, pm_message_t state)
static int sc1200_resume (struct pci_dev *dev) static int sc1200_resume (struct pci_dev *dev)
{ {
struct sc1200_saved_state *ss; struct ide_host *host = pci_get_drvdata(dev);
struct sc1200_saved_state *ss = host->host_priv;
unsigned int r; unsigned int r;
int i; int i;
...@@ -271,16 +262,12 @@ static int sc1200_resume (struct pci_dev *dev) ...@@ -271,16 +262,12 @@ static int sc1200_resume (struct pci_dev *dev)
if (i) if (i)
return i; return i;
ss = (struct sc1200_saved_state *)pci_get_drvdata(dev);
/* /*
* restore timing registers * restore timing registers
* (this may be unnecessary if BIOS also does it) * (this may be unnecessary if BIOS also does it)
*/ */
if (ss) { for (r = 0; r < 8; r++)
for (r = 0; r < 8; r++) pci_write_config_dword(dev, 0x40 + r * 4, ss->regs[r]);
pci_write_config_dword(dev, 0x40 + r * 4, ss->regs[r]);
}
return 0; return 0;
} }
...@@ -317,7 +304,19 @@ static const struct ide_port_info sc1200_chipset __devinitdata = { ...@@ -317,7 +304,19 @@ static const struct ide_port_info sc1200_chipset __devinitdata = {
static int __devinit sc1200_init_one(struct pci_dev *dev, const struct pci_device_id *id) static int __devinit sc1200_init_one(struct pci_dev *dev, const struct pci_device_id *id)
{ {
return ide_pci_init_one(dev, &sc1200_chipset, NULL); struct sc1200_saved_state *ss = NULL;
int rc;
#ifdef CONFIG_PM
ss = kmalloc(sizeof(*ss), GFP_KERNEL);
if (ss == NULL)
return -ENOMEM;
#endif
rc = ide_pci_init_one(dev, &sc1200_chipset, ss);
if (rc)
kfree(ss);
return rc;
} }
static const struct pci_device_id sc1200_pci_tbl[] = { static const struct pci_device_id sc1200_pci_tbl[] = {
......
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