Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 250195
b: refs/heads/master
c: 2a596f8
h: refs/heads/master
i:
  250193: ec71470
  250191: 58f6d57
v: v3
  • Loading branch information
Florian Mickler authored and Mauro Carvalho Chehab committed May 20, 2011
1 parent 0dce5f6 commit 1ebcc2e
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 029461dbea04f4b6943bd24b6ae7906f28593a2f
refs/heads/master: 2a596f84e2e368a3167947b32c8ea51125f87c58
22 changes: 16 additions & 6 deletions trunk/drivers/media/dvb/dvb-usb/au6610.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,16 @@ static int au6610_usb_msg(struct dvb_usb_device *d, u8 operation, u8 addr,
{
int ret;
u16 index;
u8 usb_buf[6]; /* enough for all known requests,
read returns 5 and write 6 bytes */
u8 *usb_buf;

/*
* allocate enough for all known requests,
* read returns 5 and write 6 bytes
*/
usb_buf = kmalloc(6, GFP_KERNEL);
if (!usb_buf)
return -ENOMEM;

switch (wlen) {
case 1:
index = wbuf[0] << 8;
Expand All @@ -45,22 +53,24 @@ static int au6610_usb_msg(struct dvb_usb_device *d, u8 operation, u8 addr,
break;
default:
warn("wlen = %x, aborting.", wlen);
return -EINVAL;
ret = -EINVAL;
goto error;
}

ret = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), operation,
USB_TYPE_VENDOR|USB_DIR_IN, addr << 1, index,
usb_buf, sizeof(usb_buf), AU6610_USB_TIMEOUT);
usb_buf, 6, AU6610_USB_TIMEOUT);
if (ret < 0)
return ret;
goto error;

switch (operation) {
case AU6610_REQ_I2C_READ:
case AU6610_REQ_USB_READ:
/* requested value is always 5th byte in buffer */
rbuf[0] = usb_buf[4];
}

error:
kfree(usb_buf);
return ret;
}

Expand Down

0 comments on commit 1ebcc2e

Please sign in to comment.