[PATCH] Eagle and ADI 930 usb adsl modem driver

matthieu castet castet.matthieu at free.fr
Wed Nov 2 15:15:58 EST 2005


Hi Greg,

thanks for your review.

Greg KH wrote:
> On Sun, Oct 30, 2005 at 12:37:41AM +0200, matthieu castet wrote:
> 
>>Please comment and consider for inclusion.
> 
> 
> I need a "Signed-off-by:" line in order to be able to add it.  Care to
> redo things based on the comments you have had and resend it with this
> line?
> 
> 
no problem ;)
>>+ *
>>+ * This software is available to you under a choice of one of two
>>+ * licenses. You may choose to be licensed under the terms of the GNU
>>+ * General Public License (GPL) Version 2, available from the file
>>+ * COPYING in the main directory of this source tree, or the
>>+ * BSD license below:
>>+ *
>>+ * Redistribution and use in source and binary forms, with or without
>>+ * modification, are permitted provided that the following conditions
>>+ * are met:
> 
> 
> <snip>  You don't need the whole GPL 2 copy here, just put the first
> paragraph you have before this one in.
> 
The paragraph you quote is the BSD licence, and point 1 is :
Redistributions of source code must retain the above copyright
  *    notice unmodified, this list of conditions, and the following
  *    disclaimer

So could I remove it ?


>>+/*
>>+ * sometime hotplug don't have time to give the firmware the
>>+ * first time, retry it.
>>+ */
>>+static int sleepy_request_firmware(const struct firmware **fw, 
>>+		const char *name, struct device *dev)
>>+{
>>+	if (request_firmware(fw, name, dev) == 0)
>>+		return 0;
>>+	msleep(1000);
>>+	return request_firmware(fw, name, dev);
>>+}
> 
> 
> No, use the async firmware download mode instead of this.  That will
> solve all of your problems.
> 
> 
Thanks, but does userspace will retry if it fails the first time ?
The device needs the firmware quickly and after 3-5 seconds without it, 
it goes berserk.


>>+/* we need to use semaphore until sysfs and removable devices is fixed
>>+ * the problem is explained on http://marc.theaimsgroup.com/?t=112006484100003
>>+ */
> 
> 
> This is the proper fix, why do you think it should be fixed in the
> driver core?
> 
I don't remember, but aren't any possible race in sysfs code ?
In the read, after the up, the usb_disconnect is scheduled, and call 
device_remove_file. Is that ok for the sysfs code to be still in the 
read code ?
An other case : a process open a file, and start a read. Before the down 
, the usb_disconnect is scheduled and the module is removed.
What will do the read, run code from the removed code ?



> 
>>diff -rNu -x '*.ko*' -x '*.mod*' -x '*.o*' linux-2.6.14/drivers/usb/atm.old/ueagle-atm.h linux-2.6.14/drivers/usb/atm/ueagle-atm.h
>>--- linux-2.6.14/drivers/usb/atm.old/ueagle-atm.h	1970-01-01 01:00:00.000000000 +0100
>>+++ linux-2.6.14/drivers/usb/atm/ueagle-atm.h	2005-10-30 00:25:27.000000000 +0200
> 
> 
> Why do you need a header file for a single .c file?
> 
I think it makes things cleaner. I even like the bsd style where there 
is an header for reg (hardware values) and an other for val (driver 
structures).

 >>+#define PACKED __attribute__ ((packed))
 >
 >
 > No, spell it out please.
 >
 >
 >>+/* structure describing a block within a DSP page */
 >>+typedef struct {
 >>+	__le16 wHdr;
 >>+#define UEA_BIHDR 0xabcd
 >>+	__le16 wAddress;
 >>+	__le16 wSize;
 >>+	__le16 wOvlOffset;
 >>+	__le16 wOvl;		/* overlay */
 >>+	__le16 wLast;
 >>+} PACKED block_info_t;
 >
 >
 > Do not create new typedefs.  Please get rid of all of them.
It comes from bsd driver, it will be cleaned.

thanks,

Matthieu





More information about the Usbatm mailing list