Commit 0a9f684d authored by Michel Ludwig's avatar Michel Ludwig Committed by Mauro Carvalho Chehab

V4L/DVB (12775): tm6000: fix usb_submit_urb to be called inside interrupt context

Signed-off-by: default avatarMichel Ludwig <michel.ludwig@gmail.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent b56d3a7b
...@@ -229,11 +229,15 @@ static int tm6000_usb_probe(struct usb_interface *interface, ...@@ -229,11 +229,15 @@ static int tm6000_usb_probe(struct usb_interface *interface,
/* Increment usage count */ /* Increment usage count */
tm6000_devused|=1<<nr; tm6000_devused|=1<<nr;
snprintf(dev->name, 29, "tm6000 #%d", nr);
dev->model=id->driver_info;
if ((card[nr]>=0) && (card[nr]<ARRAY_SIZE(tm6000_boards))) {
dev->model=card[nr];
}
INIT_LIST_HEAD(&dev->tm6000_corelist); INIT_LIST_HEAD(&dev->tm6000_corelist);
dev->udev= usbdev; dev->udev= usbdev;
dev->model=id->driver_info;
snprintf(dev->name, 29, "tm6000 #%d", nr);
dev->devno=nr; dev->devno=nr;
switch (usbdev->speed) { switch (usbdev->speed) {
......
...@@ -591,7 +591,7 @@ static int tm6000_start_thread( struct tm6000_dmaqueue *dma_q, ...@@ -591,7 +591,7 @@ static int tm6000_start_thread( struct tm6000_dmaqueue *dma_q,
/* submit urbs and enables IRQ */ /* submit urbs and enables IRQ */
for (i = 0; i < dev->isoc_ctl.num_bufs; i++) { for (i = 0; i < dev->isoc_ctl.num_bufs; i++) {
rc = usb_submit_urb(dev->isoc_ctl.urb[i], GFP_KERNEL); rc = usb_submit_urb(dev->isoc_ctl.urb[i], GFP_ATOMIC);
if (rc) { if (rc) {
tm6000_err("submit of urb %i failed (error=%i)\n", i, tm6000_err("submit of urb %i failed (error=%i)\n", i,
rc); rc);
......
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