[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3b794ef1936eb410b60cb536e47a0a00e36611d4.1638771720.git.philipp.g.hortmann@gmail.com>
Date: Mon, 6 Dec 2021 21:57:52 +0100
From: Philipp Hortmann <philipp.g.hortmann@...il.com>
To: corbet@....net, linux-doc@...r.kernel.org,
linux-kernel@...r.kernel.org
Cc: linux-usb@...r.kernel.org, gregkh@...uxfoundation.org
Subject: [PATCH v3 1/5] Docs: usb: update usb_bulk_msg receiving example
Clarification that this example is not in the driver template anymore.
Update code example so that it fits best to usb-skeleton.c
Signed-off-by: Philipp Hortmann <philipp.g.hortmann@...il.com>
---
V1 -> V2: Added "Update format of function names" to patch description
Corrected format of function names like the following example:
"`usb_bulk_msg` function" to "usb_bulk_msg()"
V2 -> V3: Moved corrections of the function name to an own patch in this
patch series
Took back change of variable from retval to rv
---
.../driver-api/usb/writing_usb_driver.rst | 20 +++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/Documentation/driver-api/usb/writing_usb_driver.rst b/Documentation/driver-api/usb/writing_usb_driver.rst
index b43e1ce49f0e..1fd7bf1dbdb0 100644
--- a/Documentation/driver-api/usb/writing_usb_driver.rst
+++ b/Documentation/driver-api/usb/writing_usb_driver.rst
@@ -218,7 +218,7 @@ do very much processing at that time. Our implementation of
``skel_write_bulk_callback`` merely reports if the urb was completed
successfully or not and then returns.
-The read function works a bit differently from the write function in
+This read function works a bit differently from the write function in
that we do not use an urb to transfer data from the device to the
driver. Instead we call the :c:func:`usb_bulk_msg` function, which can be used
to send or receive data from a device without having to create urbs and
@@ -229,25 +229,25 @@ receiving any data from the device, the function will fail and return an
error message. This can be shown with the following code::
/* do an immediate bulk read to get data from the device */
- retval = usb_bulk_msg (skel->dev,
- usb_rcvbulkpipe (skel->dev,
- skel->bulk_in_endpointAddr),
- skel->bulk_in_buffer,
- skel->bulk_in_size,
- &count, 5000);
+ retval = usb_bulk_msg(dev->udev,
+ usb_rcvbulkpipe (dev->udev,
+ dev->bulk_in_endpointAddr),
+ dev->bulk_in_buffer,
+ dev->bulk_in_size,
+ &len, 5000);
/* if the read was successful, copy the data to user space */
if (!retval) {
- if (copy_to_user (buffer, skel->bulk_in_buffer, count))
+ if (copy_to_user (buffer, dev->bulk_in_buffer, len))
retval = -EFAULT;
else
- retval = count;
+ retval = len;
}
The :c:func:`usb_bulk_msg` function can be very useful for doing single reads
or writes to a device; however, if you need to read or write constantly to
a device, it is recommended to set up your own urbs and submit them to
-the USB subsystem.
+the USB subsystem. The template uses urbs for read and write.
When the user program releases the file handle that it has been using to
talk to the device, the release function in the driver is called. In
--
2.25.1
Powered by blists - more mailing lists