mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-26 09:20:54 +07:00
[media] stk-webcam: don't use stack for DMA
The USB control messages require DMA to work. We cannot pass a stack-allocated buffer, as it is not warranted that the stack would be into a DMA enabled area. Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
db65c49e44
commit
b5f93cb513
@ -147,20 +147,26 @@ int stk_camera_write_reg(struct stk_camera *dev, u16 index, u8 value)
|
||||
int stk_camera_read_reg(struct stk_camera *dev, u16 index, int *value)
|
||||
{
|
||||
struct usb_device *udev = dev->udev;
|
||||
unsigned char *buf;
|
||||
int ret;
|
||||
|
||||
buf = kmalloc(sizeof(u8), GFP_KERNEL);
|
||||
if (!buf)
|
||||
return -ENOMEM;
|
||||
|
||||
ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0),
|
||||
0x00,
|
||||
USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
|
||||
0x00,
|
||||
index,
|
||||
(u8 *) value,
|
||||
buf,
|
||||
sizeof(u8),
|
||||
500);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
else
|
||||
return 0;
|
||||
if (ret >= 0)
|
||||
memcpy(value, buf, sizeof(u8));
|
||||
|
||||
kfree(buf);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int stk_start_stream(struct stk_camera *dev)
|
||||
|
Loading…
Reference in New Issue
Block a user