From: Thomas R. <tre...@de...> - 2008-10-18 15:51:34
|
Hi, following up on my previous email, the patch was lacking an OR ('|') when modifying transfer_flags. The corrected version looks like: --- lirc-old/drivers/lirc_mceusb2/lirc_mceusb2.c 2008-10-17 00:06:30.000000000 +0200 +++ lirc/drivers/lirc_mceusb2/lirc_mceusb2.c 2008-10-17 00:29:40.000000000 +0200 @@ -1018,6 +1018,8 @@ mem_failure_switch: /* inbound data */ usb_fill_int_urb(ir->urb_in, dev, pipe, ir->buf_in, maxp, (usb_complete_t) usb_remote_recv, ir, ep_in->bInterval); + ir->urb_in->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; + ir->urb_in->transfer_dma = ir->dma_in; /* initialize device */ if (ir->flags.pinnacle) { Am Freitag, den 17.10.2008, 20:34 +0200 schrieb Thomas Reitmayr: > Hi, > I am in the process of moving services from an NSLU2 to a QNAP TS-109 > featuring a Marvel Orion5x SoC. However LIRC's mceusb2 driver crashes > the USB subsystem on that machine with an oops in dma_cache_maint called > from usb_hcd_submit_urb. > > According to > http://www.mail-archive.com/lin...@li.../msg28713.html > and > http://www.digipedia.pl/man/usb_buffer_alloc.9.html > the reason is that the URB's transfer_flags and transfer_dma are not > properly set. The patch below fixes this. Aside from the TS-109 I also > tested the patch on an Intel PC, works fine on both. > > Best regards, > -Thomas > > --- lirc-old/drivers/lirc_mceusb2/lirc_mceusb2.c-org 2008-10-17 00:06:30.000000000 +0200 > +++ lirc/drivers/lirc_mceusb2/lirc_mceusb2.c 2008-10-17 00:29:40.000000000 +0200 > @@ -1018,6 +1018,8 @@ mem_failure_switch: > /* inbound data */ > usb_fill_int_urb(ir->urb_in, dev, pipe, ir->buf_in, > maxp, (usb_complete_t) usb_remote_recv, ir, ep_in->bInterval); > + ir->urb_in->transfer_flags = URB_NO_TRANSFER_DMA_MAP; > + ir->urb_in->transfer_dma = ir->dma_in; > > /* initialize device */ > if (ir->flags.pinnacle) { > > > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > |