[RFC PATCH 4/4] pio-mapping: Use the PIO mapping API in the ISP1760 HCD driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux