Skip to contentSkip to conversation

Docs: usb: Example code updates from usb-skeleton

PATCH Superseded Philipp Hortmann 2 participants 6 messages Oct 29, 2021 – Oct 30, 2021

Subsystems (2)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

cover Docs: usb: Example code updates from usb-skeleton

Example code updates from usb-skeleton.c

Philipp Hortmann (3):
Docs: usb: update err() to pr_err() and replace __FILE__
Docs: usb: update comment and code near increment usage count
Docs: usb: update writesize, copy_from_user, usb_fill_bulk_urb,
usb_submit_urb

 .../driver-api/usb/writing_usb_driver.rst     | 32 ++++++++++---------
 1 file changed, 17 insertions(+), 15 deletions(-)
Signature · 1 line
2.25.1
#1 lore raw

PATCH 1/3 Docs: usb: update err() to pr_err() and replace __FILE__

update err() to pr_err() and replace __FILE__

---
 Documentation/driver-api/usb/writing_usb_driver.rst | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Documentation/driver-api/usb/writing_usb_driver.rst +2 -2
index 2176297e5765..5c29e5bdbe88 100644
@@ -91,8 +91,8 @@ usually in the driver's init function, as shown here::
 	    /* register this driver with the USB subsystem */
 	    result = usb_register(&skel_driver);
 	    if (result < 0) {
-		    err("usb_register failed for the "__FILE__ "driver."
-			"Error number %d", result);
+		    pr_err("usb_register failed for the %s driver. "
+			   "Error number %d", skel_driver.name, result);
 		    return -1;
 	    }
 
Signature · 1 line
2.25.1
#2 lore raw

Re: [PATCH 1/3] Docs: usb: update err() to pr_err() and replace __FILE__

Quoted 12 lines · Philipp Hortmann

update err() to pr_err() and replace __FILE__

---
 Documentation/driver-api/usb/writing_usb_driver.rst | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Documentation/driver-api/usb/writing_usb_driver.rst +0 -0
index 2176297e5765..5c29e5bdbe88 100644

Documentation/driver-api/usb/writing_usb_driver.rst usually in the driver's init function, as shown here:: · line 94

Quoted 6 lines
Documentation/driver-api/usb/writing_usb_driver.rst +1 -2
@@ -91,8 +91,8 @@ usually in the driver's init function, as shown here::
 	    /* register this driver with the USB subsystem */
 	    result = usb_register(&skel_driver);
 	    if (result < 0) {
-		    err("usb_register failed for the "__FILE__ "driver."
-			"Error number %d", result);
+		    pr_err("usb_register failed for the %s driver. "

Don't break up the kernel message like this. The current code is a bad example --
high time to fix it. :-)

Documentation/driver-api/usb/writing_usb_driver.rst usually in the driver's init function, as shown here:: · line 98

Quoted 4 lines
Documentation/driver-api/usb/writing_usb_driver.rst +1 -0
+			   "Error number %d", skel_driver.name, result);
 		    return -1;
 	    }
 

MBR, Sergey

#3 lore raw

Re: [PATCH 1/3] Docs: usb: update err() to pr_err() and replace __FILE__

On 29.10.2021 23:33, Sergey Shtylyov wrote:

[...]

Quoted 22 lines
Quoted 12 lines

update err() to pr_err() and replace __FILE__

---
  Documentation/driver-api/usb/writing_usb_driver.rst | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
Documentation/driver-api/usb/writing_usb_driver.rst +0 -0
index 2176297e5765..5c29e5bdbe88 100644

Documentation/driver-api/usb/writing_usb_driver.rst usually in the driver's init function, as shown here:: · line 94

Quoted 6 lines
Documentation/driver-api/usb/writing_usb_driver.rst +1 -2
@@ -91,8 +91,8 @@ usually in the driver's init function, as shown here::
  	    /* register this driver with the USB subsystem */
  	    result = usb_register(&skel_driver);
  	    if (result < 0) {
-		    err("usb_register failed for the "__FILE__ "driver."
-			"Error number %d", result);
+		    pr_err("usb_register failed for the %s driver. "

Don't break up the kernel message like this. The current code is a bad example --
high time to fix it. :-)

Quoted 1 line

Documentation/driver-api/usb/writing_usb_driver.rst usually in the driver's init function, as shown here:: · line 95

Quoted 1 line
Documentation/driver-api/usb/writing_usb_driver.rst +1 -0
+			   "Error number %d", skel_driver.name, result);

Oh, and add `\n' at the end of message.

[...]

MBR, Sergey

#4 lore raw

PATCH 2/3 Docs: usb: update comment and code near increment usage count

In reply to Philipp Hortmann

update comment: increment our usage count ..
and code according to usb-skeleton.c

---
 Documentation/driver-api/usb/writing_usb_driver.rst | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Documentation/driver-api/usb/writing_usb_driver.rst +2 -2
index 5c29e5bdbe88..14eda0342649 100644
@@ -167,8 +167,8 @@ structure. This is done so that future calls to file operations will
 enable the driver to determine which device the user is addressing. All
 of this is done with the following code::
 
-    /* increment our usage count for the module */
-    ++skel->open_count;
+    /* increment our usage count for the device */
+    kref_get(&dev->kref);
 
     /* save our object in the file's private structure */
     file->private_data = dev;
Signature · 1 line
2.25.1
#5 lore raw

PATCH 3/3 Docs: usb: update writesize, copy_from_user, usb_fill_bulk_urb, usb_submit_urb

In reply to Philipp Hortmann

update code examples writesize, copy_from_user, usb_fill_bulk_urb, usb_submit_urb in skel_write() according to usb-skeleton.c

---
 .../driver-api/usb/writing_usb_driver.rst     | 24 ++++++++++---------
 1 file changed, 13 insertions(+), 11 deletions(-)
Documentation/driver-api/usb/writing_usb_driver.rst +13 -11
index 14eda0342649..02c28ee10b91 100644
@@ -185,24 +185,26 @@ space, points the urb to the data and submits the urb to the USB
 subsystem. This can be seen in the following code::
 
     /* we can only write as much as 1 urb will hold */
-    bytes_written = (count > skel->bulk_out_size) ? skel->bulk_out_size : count;
+    size_t writesize = min_t(size_t, count, MAX_TRANSFER);
 
     /* copy the data from user space into our urb */
-    copy_from_user(skel->write_urb->transfer_buffer, buffer, bytes_written);
+    copy_from_user(buf, user_buffer, writesize);
 
     /* set up our urb */
-    usb_fill_bulk_urb(skel->write_urb,
-		      skel->dev,
-		      usb_sndbulkpipe(skel->dev, skel->bulk_out_endpointAddr),
-		      skel->write_urb->transfer_buffer,
-		      bytes_written,
+    usb_fill_bulk_urb(urb,
+		      dev->udev,
+		      usb_sndbulkpipe(dev->udev, dev->bulk_out_endpointAddr),
+		      buf,
+		      writesize,
 		      skel_write_bulk_callback,
-		      skel);
+		      dev);
 
     /* send the data out the bulk port */
-    result = usb_submit_urb(skel->write_urb);
-    if (result) {
-	    err("Failed submitting write urb, error %d", result);
+    retval = usb_submit_urb(urb, GFP_KERNEL);
+    if (retval) {
+	    dev_err(&dev->interface->dev,
+                "%s - failed submitting write urb, error %d\n",
+                __func__, retval);
     }
 
 
Signature · 1 line
2.25.1