On Thu, Jul 06, 2006 at 10:56:33PM -0300, Manuel Naranjo wrote: > Greg: > >On Tue, Jul 04, 2006 at 09:46:09AM -0300, Manuel Naranjo wrote: > >>Here is the patch I generetaded using a kernel 2.6.16.18 (The one > >>included on the CD of drivers development). This is a working version, > >>that can handle transfers at to 180 bytes, the one i was asking is a > >>slight different. On the aircable_write there is a for next, and what i > >>did was sending the URB on every interaction. I can generate a diff > >>patch to show mi idea, but I'm sending this version because I know it > >>works quite well. > >> > >>Thanks, > >>Manuel > > > >A few small comments: > > > >You forgot a "Signed-off-by:" line. > > What I'm a little stupid, what do you mean? a line that ends with > Signed-off-by: Naranjo Manuel Francisco?.
Please read the file, Documentation/SubmittingPatches for what it signifies and the proper format of it. > >Your email client wrapped the patch :( > > > >Also, don't InterCap the file name, this should just be called > >"aircable.c". > This was my error, filename is too long, I will use the name you > suggested. I'm using Mozilla Thunderbird, which email client do you > suggest for sending patches?. I like mutt. > >>@@ -0,0 +1,309 @@ > >>+/* > >>+ * AIRcable USB Bluetooth dondgle Driver. > >>+ * > >>+ * This driver is a modified version of USB Serial Converter driver, > >>+ * that lets AIRcable devices work. > >>+ * > >>+ * The AIRcable USB Bluetooth Dongles has two interfaces, the first > >>+ * one is usless for serial working, I think it must be for firmware > >>+ * updating. > >>+ * The second interfaces has a bulk in and a bulk out, and is the one > >>+ * used for serial transactions. > >>+ * AIRcable USB Bluetooth Dongles uses a modified version of the standar > >>+ * USB serial generic protocol, it sends data in packages of 124 bytes, > >>+ * and adds at the begging of each package 4 bytes for header. See > >>+ * AIRcable-USB-serial.h for Header Information. > > > >There is no "usb serial generic protocol". > How do I call it then? Standard USB protocol? Or I can put it uses a > modified version of the USB protocol implemented on usb-serial.c. You don't really have to call it anything :) > >Don't put changelog info in .c files, that goes in the changelog > >information instead. > Great, I have a changelog too I will move all that to there. No, the kernel already has a changelog from git. You don't need to include your own. > >>+ > >>+/* All device info needed for AIRcable USB device */ > >>+static struct usb_serial_device_type aircable_device = { > >>+ .owner = THIS_MODULE, > >>+ .name = "AIRcable USB serial (device)", > > > >name should not have any spaces. > AIRcableUSB could be right? The (device) was for debugging, but I > forgotten to remove it then. All lowercase please. > >>+ .short_name = "aircable_device", > > > >And we always know this is a "device" :) > The same as before. I wanted to difference the usb_serial_device from > the usb_driver. Why? They really are different things and show up in different places in sysfs. Having the same name is just fine. > >>+ .id_table = id_table, > >>+ .num_ports = 1, > >>+ .probe= aircable_probe, > >>+ .write= aircable_write, > >>+ .read_bulk_callback= aircable_read_bulk_callback, > >>+}; > > > >What kernel did you build this against? 2.6.17 will not work with this. > 2.6.12, I have just taken a look at 2.6.17, and I have seen that > usb_serial_device_type is gone, I suppose it has changed to > usb_serial_driver. Yes. > >>+ > >>+ dbg("%s - port %d", __FUNCTION__, port->number); > >>+ > >>+ if (count == 0) { > >>+ dbg("%s - write request of 0 bytes", __FUNCTION__); > >>+ return (0); > >>+ } > >>+ > >>+ /* only do something if we have a bulk out endpoint */ > >>+ if (serial->num_bulk_out) { > >>+ if (port->write_urb->status == -EINPROGRESS) { > > > >Checking the status is not safe. Please use a flag instead. > Sorry but I can get what you want to mean with a flag. By a flag you > mean a variable that will be accessed from the hole module ? :P. Yes, see the current usb-serial drivers for how this is handled. > >>+ dbg("%s - already writing", __FUNCTION__); > >>+ return (0); > >>+ } > >>+ > >>+ dbg("Writting: %s", pSrcBuf); > >>+ > >>+ no_headers = (count / MAX_HCI_FRAMESIZE) + 1; > >>+ > >>+ pBuf = kmalloc(count + (no_headers *HCI_HEADER_LENGTH > >>),GFP_KERNEL); > >>+ memset (pBuf, 0, count + (no_headers *HCI_HEADER_LENGTH )); > > > >kzalloc() instead. > >And when do you free this memory? It looks like it leaks. > I have tried to release the pointer before calling the return statement, > and the hole thing crashed. No, free it in your urb callback, when you are done with the memory. > >Why not just divide up the writes into framesize urbs and send them all > >down that way? It would simpilify the logic a lot, and perhaps fix your > >bug. > I will try that, and see if it do not crashes. I guess you mean if I > have n frames, I generate n urbs and send them no? Yes. thanks, greg k-h ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel