aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/gspca/finepix.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/gspca/finepix.c')
-rw-r--r--drivers/media/video/gspca/finepix.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/drivers/media/video/gspca/finepix.c b/drivers/media/video/gspca/finepix.c
index d0befe981098..6e26c93b4656 100644
--- a/drivers/media/video/gspca/finepix.c
+++ b/drivers/media/video/gspca/finepix.c
@@ -94,7 +94,11 @@ static void dostream(struct work_struct *work)
94 94
95 /* loop reading a frame */ 95 /* loop reading a frame */
96again: 96again:
97 while (!gspca_dev->frozen && gspca_dev->dev && gspca_dev->streaming) { 97 while (gspca_dev->dev && gspca_dev->streaming) {
98#ifdef CONFIG_PM
99 if (gspca_dev->frozen)
100 break;
101#endif
98 102
99 /* request a frame */ 103 /* request a frame */
100 mutex_lock(&gspca_dev->usb_lock); 104 mutex_lock(&gspca_dev->usb_lock);
@@ -102,8 +106,11 @@ again:
102 mutex_unlock(&gspca_dev->usb_lock); 106 mutex_unlock(&gspca_dev->usb_lock);
103 if (ret < 0) 107 if (ret < 0)
104 break; 108 break;
105 if (gspca_dev->frozen || !gspca_dev->dev || 109#ifdef CONFIG_PM
106 !gspca_dev->streaming) 110 if (gspca_dev->frozen)
111 break;
112#endif
113 if (!gspca_dev->dev || !gspca_dev->streaming)
107 break; 114 break;
108 115
109 /* the frame comes in parts */ 116 /* the frame comes in parts */
@@ -118,8 +125,11 @@ again:
118 * error. Just restart. */ 125 * error. Just restart. */
119 goto again; 126 goto again;
120 } 127 }
121 if (gspca_dev->frozen || !gspca_dev->dev || 128#ifdef CONFIG_PM
122 !gspca_dev->streaming) 129 if (gspca_dev->frozen)
130 goto out;
131#endif
132 if (!gspca_dev->dev || !gspca_dev->streaming)
123 goto out; 133 goto out;
124 if (len < FPIX_MAX_TRANSFER || 134 if (len < FPIX_MAX_TRANSFER ||
125 (data[len - 2] == 0xff && 135 (data[len - 2] == 0xff &&