aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichel Ludwig <michel.ludwig@gmail.com>2007-06-17 16:12:32 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-05-17 23:39:28 -0400
commit2cd4fd1e57cb6897612ead8a3d39ecb444920a1a (patch)
tree1062e49acaddbfcf8201ec44cbf733d07a51915b
parent7c3f53ec491b64b3c3fa339e4e77e49782b0be9f (diff)
V4L/DVB (12775): tm6000: fix usb_submit_urb to be called inside interrupt context
Signed-off-by: Michel Ludwig <michel.ludwig@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/staging/tm6000/tm6000-cards.c8
-rw-r--r--drivers/staging/tm6000/tm6000-video.c2
2 files changed, 7 insertions, 3 deletions
diff --git a/drivers/staging/tm6000/tm6000-cards.c b/drivers/staging/tm6000/tm6000-cards.c
index da2348e1c048..df973c0cc46a 100644
--- a/drivers/staging/tm6000/tm6000-cards.c
+++ b/drivers/staging/tm6000/tm6000-cards.c
@@ -229,11 +229,15 @@ static int tm6000_usb_probe(struct usb_interface *interface,
229 229
230 /* Increment usage count */ 230 /* Increment usage count */
231 tm6000_devused|=1<<nr; 231 tm6000_devused|=1<<nr;
232 snprintf(dev->name, 29, "tm6000 #%d", nr);
233
234 dev->model=id->driver_info;
235 if ((card[nr]>=0) && (card[nr]<ARRAY_SIZE(tm6000_boards))) {
236 dev->model=card[nr];
237 }
232 238
233 INIT_LIST_HEAD(&dev->tm6000_corelist); 239 INIT_LIST_HEAD(&dev->tm6000_corelist);
234 dev->udev= usbdev; 240 dev->udev= usbdev;
235 dev->model=id->driver_info;
236 snprintf(dev->name, 29, "tm6000 #%d", nr);
237 dev->devno=nr; 241 dev->devno=nr;
238 242
239 switch (usbdev->speed) { 243 switch (usbdev->speed) {
diff --git a/drivers/staging/tm6000/tm6000-video.c b/drivers/staging/tm6000/tm6000-video.c
index 68002a14ef3d..5697be06ddd7 100644
--- a/drivers/staging/tm6000/tm6000-video.c
+++ b/drivers/staging/tm6000/tm6000-video.c
@@ -591,7 +591,7 @@ static int tm6000_start_thread( struct tm6000_dmaqueue *dma_q,
591 591
592 /* submit urbs and enables IRQ */ 592 /* submit urbs and enables IRQ */
593 for (i = 0; i < dev->isoc_ctl.num_bufs; i++) { 593 for (i = 0; i < dev->isoc_ctl.num_bufs; i++) {
594 rc = usb_submit_urb(dev->isoc_ctl.urb[i], GFP_KERNEL); 594 rc = usb_submit_urb(dev->isoc_ctl.urb[i], GFP_ATOMIC);
595 if (rc) { 595 if (rc) {
596 tm6000_err("submit of urb %i failed (error=%i)\n", i, 596 tm6000_err("submit of urb %i failed (error=%i)\n", i,
597 rc); 597 rc);