This patch provides another example of PIO API usage. In this case, there is no struct page information in the HCD driver and the pio_*_single() functions are used. Signed-off-by: Catalin Marinas <catalin.marinas@xxxxxxx> --- drivers/usb/host/isp1760-hcd.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/drivers/usb/host/isp1760-hcd.c b/drivers/usb/host/isp1760-hcd.c index 27b8f7c..e55cb90 100644 --- a/drivers/usb/host/isp1760-hcd.c +++ b/drivers/usb/host/isp1760-hcd.c @@ -17,6 +17,7 @@ #include <linux/debugfs.h> #include <linux/uaccess.h> #include <linux/io.h> +#include <linux/pio-mapping.h> #include <asm/unaligned.h> #include "../core/hcd.h" @@ -904,6 +905,10 @@ __acquires(priv->lock) status = 0; } + pio_unmap_single(urb->transfer_buffer, urb->transfer_buffer_length, + usb_pipein(urb->pipe) ? + PIO_FROM_DEVICE : PIO_TO_DEVICE); + /* complete() can reenter this HCD */ usb_hcd_unlink_urb_from_ep(priv_to_hcd(priv), urb); spin_unlock(&priv->lock); @@ -1536,7 +1541,9 @@ static struct list_head *qh_urb_transaction(struct isp1760_hcd *priv, /* * data transfer stage: buffer setup */ - buf = urb->transfer_buffer; + buf = pio_map_single(urb->transfer_buffer, urb->transfer_buffer_length, + usb_pipein(urb->pipe) ? + PIO_FROM_DEVICE : PIO_TO_DEVICE); if (is_input) token |= IN_PID; -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html