summaryrefslogtreecommitdiffstats
path: root/drivers/usb/musb/musb_host.h
diff options
context:
space:
mode:
authorVirupax Sadashivpetimath2012-08-07 11:16:20 +0200
committerFelipe Balbi2012-08-07 13:27:18 +0200
commit8e8a55165469c99af0c24a276d997f9473dc89ab (patch)
treed94102caf515a024cdd7a741cd0e5e539f6b9472 /drivers/usb/musb/musb_host.h
parentusb: musb: Fix bad call to kfree() in musb_free (diff)
downloadkernel-qcow2-linux-8e8a55165469c99af0c24a276d997f9473dc89ab.tar.gz
kernel-qcow2-linux-8e8a55165469c99af0c24a276d997f9473dc89ab.tar.xz
kernel-qcow2-linux-8e8a55165469c99af0c24a276d997f9473dc89ab.zip
usb: musb: host: Handle highmem in PIO mode
In case of USB bulk transfer, when himem page is received, the usb_sg_init function sets the urb transfer buffer to NULL. When such URB transfer is handled, kernel crashes in PIO mode. Handle this by mapping the highmem buffer in PIO mode. Signed-off-by: Virupax Sadashivpetimath <virupax.sadashivpetimath@stericsson.com> Signed-off-by: Praveena NADAHALLY <praveen.nadahally@stericsson.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/musb/musb_host.h')
-rw-r--r--drivers/usb/musb/musb_host.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/musb/musb_host.h b/drivers/usb/musb/musb_host.h
index 622d09fb9aba..5a9c8feec10c 100644
--- a/drivers/usb/musb/musb_host.h
+++ b/drivers/usb/musb/musb_host.h
@@ -35,6 +35,8 @@
#ifndef _MUSB_HOST_H
#define _MUSB_HOST_H
+#include <linux/scatterlist.h>
+
static inline struct usb_hcd *musb_to_hcd(struct musb *musb)
{
return container_of((void *) musb, struct usb_hcd, hcd_priv);
@@ -71,6 +73,7 @@ struct musb_qh {
u16 maxpacket;
u16 frame; /* for periodic schedule */
unsigned iso_idx; /* in urb->iso_frame_desc[] */
+ struct sg_mapping_iter sg_miter; /* for highmem in PIO mode */
};
/* map from control or bulk queue head to the first qh on that ring */