lkml.org 
[lkml]   [2005]   [Sep]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH 16/24] V4L: Some error treatment implemented at resume functions.
.
- Some error treatment implemented at resume functions.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>

linux/drivers/media/video/bttv-driver.c | 18 ++++++++++++++++--
linux/drivers/media/video/cx88/cx88-mpeg.c | 20 +++++++++++++++++---
linux/drivers/media/video/cx88/cx88-video.c | 20 ++++++++++++++++++--
3 files changed, 51 insertions(+), 7 deletions(-)

diff -u /tmp/dst.587 linux/drivers/media/video/bttv-driver.c
--- /tmp/dst.587 2005-09-05 11:43:02.000000000 -0300
+++ linux/drivers/media/video/bttv-driver.c 2005-09-05 11:43:02.000000000 -0300
@@ -4112,15 +4112,29 @@
{
struct bttv *btv = pci_get_drvdata(pci_dev);
unsigned long flags;
+ int err;

dprintk("bttv%d: resume\n", btv->c.nr);

/* restore pci state */
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;
}
- 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);

/* restore bt878 state */
diff -u /tmp/dst.587 linux/drivers/media/video/cx88/cx88-video.c
--- /tmp/dst.587 2005-09-05 11:43:02.000000000 -0300
+++ linux/drivers/media/video/cx88/cx88-video.c 2005-09-05 11:43:02.000000000 -0300
@@ -2005,12 +2005,28 @@
{
struct cx8800_dev *dev = pci_get_drvdata(pci_dev);
struct cx88_core *core = dev->core;
+ int err;

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;
}
- 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);

/* FIXME: re-initialize hardware */
diff -u /tmp/dst.587 linux/drivers/media/video/cx88/cx88-mpeg.c
--- /tmp/dst.587 2005-09-05 11:43:02.000000000 -0300
+++ linux/drivers/media/video/cx88/cx88-mpeg.c 2005-09-05 11:43:02.000000000 -0300
@@ -455,14 +455,28 @@

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;
+ int err;

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;
}
- 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);

/* FIXME: re-initialize hardware */
\
 
 \ /
  Last update: 2005-09-05 23:33    [W:0.037 / U:0.300 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site