media: lmedm04: Move interrupt buffer to priv buffer.

Interrupt is always present throughout life time of driver and
there is no dma element move this buffer to private area of driver.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
Malcolm Priestley 2018-12-05 14:14:31 -05:00 committed by Mauro Carvalho Chehab
parent 87bd0e034e
commit 8d31a499c6
1 changed files with 9 additions and 19 deletions

View File

@ -134,7 +134,7 @@ struct lme2510_state {
u8 stream_on; u8 stream_on;
u8 pid_size; u8 pid_size;
u8 pid_off; u8 pid_off;
void *buffer; u8 int_buffer[128];
struct urb *lme_urb; struct urb *lme_urb;
u8 usb_buffer[64]; u8 usb_buffer[64];
/* Frontend original calls */ /* Frontend original calls */
@ -388,20 +388,14 @@ static int lme2510_int_read(struct dvb_usb_adapter *adap)
if (lme_int->lme_urb == NULL) if (lme_int->lme_urb == NULL)
return -ENOMEM; return -ENOMEM;
lme_int->buffer = usb_alloc_coherent(d->udev, 128, GFP_ATOMIC,
&lme_int->lme_urb->transfer_dma);
if (lme_int->buffer == NULL)
return -ENOMEM;
usb_fill_int_urb(lme_int->lme_urb, usb_fill_int_urb(lme_int->lme_urb,
d->udev, d->udev,
usb_rcvintpipe(d->udev, 0xa), usb_rcvintpipe(d->udev, 0xa),
lme_int->buffer, lme_int->int_buffer,
128, sizeof(lme_int->int_buffer),
lme2510_int_response, lme2510_int_response,
adap, adap,
8); 8);
/* Quirk of pipe reporting PIPE_BULK but behaves as interrupt */ /* Quirk of pipe reporting PIPE_BULK but behaves as interrupt */
ep = usb_pipe_endpoint(d->udev, lme_int->lme_urb->pipe); ep = usb_pipe_endpoint(d->udev, lme_int->lme_urb->pipe);
@ -409,8 +403,6 @@ static int lme2510_int_read(struct dvb_usb_adapter *adap)
if (usb_endpoint_type(&ep->desc) == USB_ENDPOINT_XFER_BULK) if (usb_endpoint_type(&ep->desc) == USB_ENDPOINT_XFER_BULK)
lme_int->lme_urb->pipe = usb_rcvbulkpipe(d->udev, 0xa), lme_int->lme_urb->pipe = usb_rcvbulkpipe(d->udev, 0xa),
lme_int->lme_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
usb_submit_urb(lme_int->lme_urb, GFP_ATOMIC); usb_submit_urb(lme_int->lme_urb, GFP_ATOMIC);
info("INT Interrupt Service Started"); info("INT Interrupt Service Started");
@ -1225,10 +1217,8 @@ static void lme2510_exit(struct dvb_usb_device *d)
lme2510_kill_urb(&adap->stream); lme2510_kill_urb(&adap->stream);
} }
if (st->lme_urb != NULL) { if (st->lme_urb) {
usb_kill_urb(st->lme_urb); usb_kill_urb(st->lme_urb);
usb_free_coherent(d->udev, 128, st->buffer,
st->lme_urb->transfer_dma);
usb_free_urb(st->lme_urb); usb_free_urb(st->lme_urb);
info("Interrupt Service Stopped"); info("Interrupt Service Stopped");
} }