Skip to content

Commit

Permalink
mfd: viperboard: Do version query in dma memory
Browse files Browse the repository at this point in the history
The query for the viperboard version was done with memory buffer
on the stack but usb transfers need dma capable memory buffer.
This is fixed now.

Signed-off-by: Lars Poeschel <poeschel@lemonage.de>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
  • Loading branch information
Lars Poeschel authored and Samuel Ortiz committed Nov 26, 2012
1 parent 3c39c9c commit 302b956
Showing 1 changed file with 4 additions and 5 deletions.
9 changes: 4 additions & 5 deletions drivers/mfd/viperboard.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ static int vprbrd_probe(struct usb_interface *interface,

u16 version = 0;
int pipe, ret;
unsigned char buf[1];

/* allocate memory for our device state and initialize it */
vb = kzalloc(sizeof(*vb), GFP_KERNEL);
Expand All @@ -76,17 +75,17 @@ static int vprbrd_probe(struct usb_interface *interface,
/* get version information, major first, minor then */
pipe = usb_rcvctrlpipe(vb->usb_dev, 0);
ret = usb_control_msg(vb->usb_dev, pipe, VPRBRD_USB_REQUEST_MAJOR,
VPRBRD_USB_TYPE_IN, 0x0000, 0x0000, buf, 1,
VPRBRD_USB_TYPE_IN, 0x0000, 0x0000, vb->buf, 1,
VPRBRD_USB_TIMEOUT_MS);
if (ret == 1)
version = buf[0];
version = vb->buf[0];

ret = usb_control_msg(vb->usb_dev, pipe, VPRBRD_USB_REQUEST_MINOR,
VPRBRD_USB_TYPE_IN, 0x0000, 0x0000, buf, 1,
VPRBRD_USB_TYPE_IN, 0x0000, 0x0000, vb->buf, 1,
VPRBRD_USB_TIMEOUT_MS);
if (ret == 1) {
version <<= 8;
version = version | buf[0];
version = version | vb->buf[0];
}

dev_info(&interface->dev,
Expand Down

0 comments on commit 302b956

Please sign in to comment.