Commit 08adb9e2 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab Committed by Linus Torvalds

[PATCH] v4l: some error treatment implemented at resume functions.

- Some error treatment implemented at resume functions.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 4c93b07a
...@@ -4111,15 +4111,29 @@ static int bttv_resume(struct pci_dev *pci_dev) ...@@ -4111,15 +4111,29 @@ static int bttv_resume(struct pci_dev *pci_dev)
{ {
struct bttv *btv = pci_get_drvdata(pci_dev); struct bttv *btv = pci_get_drvdata(pci_dev);
unsigned long flags; unsigned long flags;
int err;
dprintk("bttv%d: resume\n", btv->c.nr); dprintk("bttv%d: resume\n", btv->c.nr);
/* restore pci state */ /* restore pci state */
if (btv->state.disabled) { if (btv->state.disabled) {
pci_enable_device(pci_dev); err=pci_enable_device(pci_dev);
if (err) {
printk(KERN_WARNING "bttv%d: Can't enable device.\n",
btv->c.nr);
return err;
}
btv->state.disabled = 0; btv->state.disabled = 0;
} }
pci_set_power_state(pci_dev, PCI_D0); err=pci_set_power_state(pci_dev, PCI_D0);
if (err) {
pci_disable_device(pci_dev);
printk(KERN_WARNING "bttv%d: Can't enable device.\n",
btv->c.nr);
btv->state.disabled = 1;
return err;
}
pci_restore_state(pci_dev); pci_restore_state(pci_dev);
/* restore bt878 state */ /* restore bt878 state */
......
...@@ -455,14 +455,28 @@ int cx8802_suspend_common(struct pci_dev *pci_dev, pm_message_t state) ...@@ -455,14 +455,28 @@ int cx8802_suspend_common(struct pci_dev *pci_dev, pm_message_t state)
int cx8802_resume_common(struct pci_dev *pci_dev) int cx8802_resume_common(struct pci_dev *pci_dev)
{ {
struct cx8802_dev *dev = pci_get_drvdata(pci_dev); struct cx8802_dev *dev = pci_get_drvdata(pci_dev);
struct cx88_core *core = dev->core; struct cx88_core *core = dev->core;
int err;
if (dev->state.disabled) { if (dev->state.disabled) {
pci_enable_device(pci_dev); err=pci_enable_device(pci_dev);
if (err) {
printk(KERN_ERR "%s: can't enable device\n",
dev->core->name);
return err;
}
dev->state.disabled = 0; dev->state.disabled = 0;
} }
pci_set_power_state(pci_dev, PCI_D0); err=pci_set_power_state(pci_dev, PCI_D0);
if (err) {
printk(KERN_ERR "%s: can't enable device\n",
dev->core->name);
pci_disable_device(pci_dev);
dev->state.disabled = 1;
return err;
}
pci_restore_state(pci_dev); pci_restore_state(pci_dev);
/* FIXME: re-initialize hardware */ /* FIXME: re-initialize hardware */
......
...@@ -2005,12 +2005,28 @@ static int cx8800_resume(struct pci_dev *pci_dev) ...@@ -2005,12 +2005,28 @@ static int cx8800_resume(struct pci_dev *pci_dev)
{ {
struct cx8800_dev *dev = pci_get_drvdata(pci_dev); struct cx8800_dev *dev = pci_get_drvdata(pci_dev);
struct cx88_core *core = dev->core; struct cx88_core *core = dev->core;
int err;
if (dev->state.disabled) { if (dev->state.disabled) {
pci_enable_device(pci_dev); err=pci_enable_device(pci_dev);
if (err) {
printk(KERN_ERR "%s: can't enable device\n",
core->name);
return err;
}
dev->state.disabled = 0; dev->state.disabled = 0;
} }
pci_set_power_state(pci_dev, PCI_D0); err= pci_set_power_state(pci_dev, PCI_D0);
if (err) {
printk(KERN_ERR "%s: can't enable device\n",
core->name);
pci_disable_device(pci_dev);
dev->state.disabled = 1;
return err;
}
pci_restore_state(pci_dev); pci_restore_state(pci_dev);
/* FIXME: re-initialize hardware */ /* FIXME: re-initialize hardware */
......
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