Re: Licensing of IS89C35 WLAN USB driver [was Re: rt73usb: support for wireless in Kohjinsha subnotebook]

Previous thread: Re: 2.6.23-git Kconfig regression by Jan Beulich on Saturday, October 20, 2007 - 11:27 am. (1 message)

Next thread: Potential regression in -git15: can't resume stopped root shell? by Theodore Tso on Saturday, October 20, 2007 - 11:58 am. (2 messages)
From: Pavel Machek
Date: Saturday, October 20, 2007 - 11:41 am

Hi!

Kohjinsha subnotebook seems to contain wifi with USB IDs 0x18e8,
0x6206... I hope that to be compatible with
net/wireless/rt2x00/rt73usb.c .

[Sidenote: could we add some real author info into rt73usb.c?]

I did this on 2.6.23-rc8-mm1 kernel (The RT hack may not be
neccessary), but then it oopses somewhere in softmac layer. I'll try
to play with it some more.

If you have any ideas, let me know.
								Pavel

--- clean-mm/drivers/net/wireless/rt2x00/rt73usb.c	2007-10-09 09:32:08.000000000 +0200
+++ linux-mm/drivers/net/wireless/rt2x00/rt73usb.c	2007-10-19 22:19:45.000000000 +0200
@@ -1580,7 +1580,6 @@
 
 	if (!rt2x00_rev(&rt2x00dev->chip, 0x25730)) {
 		ERROR(rt2x00dev, "Invalid RT chipset detected.\n");
-		return -ENODEV;
 	}
 
 	if (!rt2x00_rf(&rt2x00dev->chip, RF5226) &&
@@ -1588,7 +1587,6 @@
 	    !rt2x00_rf(&rt2x00dev->chip, RF5225) &&
 	    !rt2x00_rf(&rt2x00dev->chip, RF2527)) {
 		ERROR(rt2x00dev, "Invalid RF chipset detected.\n");
-		return -ENODEV;
 	}
 
 	/*
@@ -2080,6 +2078,7 @@
 	{ USB_DEVICE(0x148f, 0x2671), USB_DEVICE_DATA(&rt73usb_ops) },
 	/* Qcom */
 	{ USB_DEVICE(0x18e8, 0x6196), USB_DEVICE_DATA(&rt73usb_ops) },
+	{ USB_DEVICE(0x18e8, 0x6206), USB_DEVICE_DATA(&rt73usb_ops) },
 	{ USB_DEVICE(0x18e8, 0x6229), USB_DEVICE_DATA(&rt73usb_ops) },
 	{ USB_DEVICE(0x18e8, 0x6238), USB_DEVICE_DATA(&rt73usb_ops) },
 	/* Senao */

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-

From: Ivo van Doorn
Date: Saturday, October 20, 2007 - 3:12 pm

Is there any reason you assume it is a rt73usb device,

You mean expanding the project name to the full list of developers in

Both removals of -ENODEV are completely wrong. If the device does not pass the above
2 checks it is _not_ a rt73usb device. And forcing the driver to work with the device will
result in all kinds of problems.

If rt2x00 is loaded and detected the device, it should print out a debug message that starts with:
"Chipset detected - " What is in your case the complete line?

Ivo
-

From: Pavel Machek
Date: Sunday, October 21, 2007 - 2:20 am

Ok, I guess I should include more complete debug output.

phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x09 failed for offset 0x0000 with error -32
phy0 -> rt73usb_validate_eeprom: EEPROM recover - MAC: 66:76:2b:e8:68:e7
phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x07 failed for offset 0x3000 with error -32
phy0 -> rt2x00_set_chip: Info - Chipset detected - rt: 1300, rf: 0000, rev: c03c0ae0
phy0 -> rt73usb_init_eeprom: Error - Invalid RF chipset detected

...so, I think hardware is indeed quite similar to what rt73usb driver
expects...?

									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-

From: Ivo van Doorn
Date: Sunday, October 21, 2007 - 6:56 am

- A incorrect RF chipset. (valid values are: 1, 2, 3 or 4). Another indication of a incorrect device.
- A completely bogus chipset revision. A valid rt73 device has the revision "2573X" Where only the

No. You can assume you are forcing rt73 to control a non-rt73 device.
The fact that you had to hack to bypass the RT and RF chipset validation also confirms that,
those checks were there for a reason. Namely to make sure the corect driver was being used for the device.

Ivo
-

From: Pavel Machek
Date: Sunday, October 21, 2007 - 2:21 am

At least put name and email of lead developer there, or something.

I do not think "copyright sourceforge project" is okay thing to do --
unless the sf project legaly exists and you did some paperwork.
								Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-

From: Ivo van Doorn
Date: Sunday, October 21, 2007 - 6:49 am

Thats an incorrect assumption. USB ID's listed in rt73usb don't even
guarentee that the device contains a rt73usb chipset since some manufacturers
produce cards with different chipsets while keeping the USB ID the same.
So the case that the card false in the 6xxx range says absolutely _nothing_.

Ivo
-

From: Pavel Machek
Date: Sunday, October 21, 2007 - 4:38 am

Well, see the other mail, it seems like rt73usb partially communicates
with the card.

What info would be useful in determining what is this card similar to?
Boot windows and look for driver name?
								Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-

From: Ivo van Doorn
Date: Sunday, October 21, 2007 - 7:09 am

If you add a USB ID to the driver, then you are telling it to communciate to

Looking at the name of the windows driver is indeed usually a good start,
but you don't need to boot to windows to check that. How about looking
at the driver name on the driver CD, or on the support website of the
manufacturer.

Ivo
-

From: Luis Correia
Date: Sunday, October 21, 2007 - 4:58 am

Hi


I'm currently going throught the manufacturer's website (in Japanese)
to try and figure out which wireless chipset it is.

Only one driver to go and I'm not even sure it is the wireless driver...

Luis Correia
-

From: Luis Correia
Date: Sunday, October 21, 2007 - 8:02 am

Hi


This device is NOT a Ralink USB wifi adapter!

Get the windows driver in this link and see for yourself.
http://www.conitech.it/conitech/ita/risorse.asp?cod=CN402USB
(ISSC W89C35 802.11bg WLAN USB Adapters (Native Wifi driver))

Case Closed.

Luis Correia
rt2x00 project administrator
-

From: Pavel Machek
Date: Sunday, October 21, 2007 - 1:04 pm

You are right, sorry for confusion.

Now, the strange part comes. They have linux sources on their web
pages... for 2.6.9 and 2.6.11. If anyone ported them forward, please
let me know, otherwise I'll take a look at porting them.
								Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-

From: Pavel Machek
Date: Sunday, October 21, 2007 - 5:09 pm

Thanks a lot. With some patches, I got driver from conitech.it to
compile and partly work on 2.6.23. I can now transmit packets but not
yet receive them.

(use Makefile.26 instead of Makefile)

								Pavel

--- hal_142_o.ofic/linux/sysdef.h	2006-11-29 11:12:10.000000000 +0100
+++ hal_142_o/linux/sysdef.h	2007-10-21 22:21:13.000000000 +0200
@@ -7,7 +7,7 @@
 // The definition WB_LINUX is a keyword for this OS
 //=============================================================================
 #define WB_LINUX
-#define WB_LINUX_WPA_PSK
+//#define WB_LINUX_WPA_PSK
 //#define _WPA_PSK_DEBUG
 
 //#define _IBSS_BEACON_SEQ_STICK_
Only in hal_142_o/linux: w35und.ko
Only in hal_142_o/linux: w35und.mod.c
--- hal_142_o.ofic/linux/wb35reg.c	2006-11-29 11:43:58.000000000 +0100
+++ hal_142_o/linux/wb35reg.c	2007-10-21 22:19:27.000000000 +0200
@@ -879,6 +879,7 @@
 	if( (pHwData->phy_type == RF_WB_242) ||
 		(pHwData->phy_type == RF_WB_242_1) ) // 20060619.5 Add
 	{
+		extern void phy_calibration_winbond(hw_data_t *phw_data, u32 frequency);
 		phy_calibration_winbond ( pHwData, 2412 ); // Sync operation
 		Wb35Reg_ReadSync( pHwData, 0x103c, &BB3c );
 		Wb35Reg_ReadSync( pHwData, 0x1054, &BB54 );
--- hal_142_o.ofic/linux/wbusb.c	2006-11-29 11:02:54.000000000 +0100
+++ hal_142_o/linux/wbusb.c	2007-10-21 22:16:19.000000000 +0200
@@ -28,7 +28,6 @@
 	};
 #else
 	static struct usb_driver wb35_driver = {
-			.owner =	THIS_MODULE,
 			.name =		"w35und",
 			.probe =	wb35_probe,
 			.disconnect = wb35_disconnect,
--- hal_142_o.ofic/wblinux.c	2006-11-29 10:39:54.000000000 +0100
+++ hal_142_o/wblinux.c	2007-10-21 23:49:07.000000000 +0200
@@ -98,7 +98,8 @@
 			BufSize = pRxLayer1->BufferQueue[i].BufferSize;
 			BufAddr = pRxLayer1->BufferQueue[i].pBufferAddress;
 			//DataDmp(BufAddr, BufSize, 0);
-	        eth_copy_and_sum( skb, BufAddr, BufSize, 0 );
+			//	        eth_io_copy_and_sum( skb, BufAddr, BufSize, 0 );
+		skb_copy_from_linear_data(skb, BufAddr, BufSize);
 	        skb_put( ...
From: Dan Williams
Date: Monday, October 22, 2007 - 8:44 am

I couldn't find any license info immediately visible; are you sure it's
GPL?


-

From: Pavel Machek
Date: Monday, October 22, 2007 - 2:13 pm

Yes, I'm quite sure. There's MODULE_LICENCE("GPL"), IIRC.
								Pavel

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-

From: Ivo van Doorn
Date: Monday, October 22, 2007 - 2:52 pm

That doesn't say much, some manufacturers add that line to their driver
 just to prevent the module loader complaining about a non-GPL driver...

There should be a copyright notice or a license file accompanied with
the driver that clearly states the license of the driver.

Ivo
-

From: Daniel Hazelton
Date: Monday, October 22, 2007 - 2:42 pm

Lacking an explicitly stated license it can be argued that, since the 
MODULE_LICENSE() macro is meant to define the actual license on the code, 
this code is GPL. No, it isn't an explicit definition, but lacking any other 
signs of the license, the implicit declaration of it being GPL is (or should 
be) enough to deflect charges of copyright infringement.

DRH

-- 
Dialup is like pissing through a pipette. Slow and excruciatingly painful.
-

From: Pavel Machek
Date: Monday, October 22, 2007 - 3:00 pm

Yep, I believe this driver is GPLed. They published the source and
there's nothing to suggest otherwise, and there's explicit:

#define DRIVER_AUTHOR                   "Jeff Lee<YY_Lee@issc.com.tw>"
#define DRIVER_DESC                             "IS89C35 802.11bg WLAN USB Driver"
MODULE_LICENSE("GPL");

 
									Pavel

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-

From: Christoph Hellwig
Date: Tuesday, October 23, 2007 - 2:08 am

So what about contacting the vendor and asking?
-

From: Luis Correia
Date: Tuesday, October 23, 2007 - 2:11 am

Hi!


this is no longer a rt2x00 issue, maybe we all could keep it away from
the rt2400-devel list?

thanks,
Luis Correia
rt2x00 project administrator
-

From: Pavel Machek
Date: Tuesday, October 30, 2007 - 4:22 am

Hi!

You are listed as author of IS89C35 802.11bg WLAN USB Driver. That
driver has clear MODULE_LICENSE("GPL") tag, but not other notices.

Is it safe to assume whole sources are to be distributed under GPLv2?
(Or is it GPLv2 or later?)

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-

From: Dan Williams
Date: Tuesday, October 30, 2007 - 8:11 am

Pavel,

I sent mail as you requested on Sunday to Jeff Lee but haven't heard
back yet.  I can't find any generic contact email addresses for ISSC
Taiwan or the Italian company that produced the adapter in question,
unfortunately.


-

From: Pavel Machek
Date: Tuesday, October 30, 2007 - 5:25 pm

http://www.issc.com.tw/contact.htm seems to be web based form. I
clicked something into it, lets see what happens.

(They ask for details like my fax number/phone number, and they can't
even spell :-().
								Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-

From: Pavel Machek
Date: Sunday, November 4, 2007 - 12:00 pm

Okay, I posted note to my blog, perhaps someone speaks up.
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-

From: Dan Williams
Date: Tuesday, October 23, 2007 - 7:05 am

If there isn't an explicit COPYING or LICENSE file or something
distributed with the driver, and if there aren't copyright/license
headers at the top of the files in question, I have a hard time agreeing
that MODULE_LICENSE("GPL") _definitely_ means that the author has GPL-ed
the driver intentionally.  Of course that's the way it's supposed to
work, but to me this doesn't pass sufficient muster to be definitely
called GPL without additional clarification.

Dan


-

From: Daniel Hazelton
Date: Tuesday, October 23, 2007 - 10:07 am

Lacking any other indication MODULE_LICENSE is supposed to mark the license 
that the code is being distributed under. If companies are intentionally 
mis-using this to get around the "internal interfaces" limitations (where 
some interfaces are not available unless the module is GPL'd) and the warning 
message printed in the logs when the module is not GPL'd then they are 
(technically) in violation of the law. (interfaces that are GPL only are 
considered so internal to the kernel that using them makes your code GPL 
because of the inclusion of GPL'd code. And no - I am not going to get into 
that discussion - it's pointless)

In the end, using MODULE_LICENSE for any purpose other than declaring the 
chosen license for the code is deceptive. So it is easily arguable that by 
not including any license with the code other than the MODULE_LICENSE 
statement and then trying to prosecute because MODULE_LICENSE doesn't 
accurately state the license on the code is entrapment and illegal.

DRH

-- 
Dialup is like pissing through a pipette. Slow and excruciatingly painful.
-

From: Dan Williams
Date: Tuesday, October 23, 2007 - 11:54 am

Step 1: Ask the author.

Step 2: if the author doesn't reply, then we can have this discussion

MODULE_LICENSE is just a random string that could have been added by
anybody, not necessarily the author.  Unless you can determine the
intent of the author explicitly, a single MODULE_LICENSE is not
sufficient to concretely determine the license of the code.  It's only
in one file.  There is nothing to explicitly state the overall license
of the whole work unless each file has a header referring to the license
or unless there is a license document distributed with the code as a
whole.

In the absence of any other indication, MODULE_LICENSE doesn't not
concretely determine the license of the code.  You can assume it does,

Just because the module may be loading illegally says _nothing_ about

"deceptive" is also not "this code code is definitely GPL".  Doesn't
matter whether it's deceptive or not.  We do not know that the code is

Arguable doesn't mean that it's concrete enough to pass legal muster.  I
am not a lawyer, but this just doesn't pass the bar.

Dan


-

From: Daniel Hazelton
Date: Tuesday, October 23, 2007 - 12:41 pm

The intent of MODULE_LICENSE is to mark the license on the code. This is 

No, but it is a mis-use of MODULE_LICENSE, which is supposed to state the 

Deception in order to create a situation whereby you can prosecute people for 
violation of the law is illegal. Therefore not distributing the code with any 
indication as to the license other than MODULE_LICENSE and attempting to 
prosecute afterwards is illegal. QED: even if the code is not GPL'd (and such 
could be learned by contacting the author), the fact that it ships without 
any indication of the license other than MODULE_LICENSE implies that the 
license is what is stated and prosecution on the grounds that it isn't 

I know several and have asked one that is a very good friend. He agreed with 
my interpretation of the presented facts - that since the only indication of 
what the license on the code might be is MODULE_LICENSE it can be safely 
assumed that the license is what that states. Any attempt to later prosecute 
because the license is not what is stated would constitute entrapment - which 
is illegal.

DRH

PS: note that all legal information contained here-in is only known to be 
valid in the US.

-- 
Dialup is like pissing through a pipette. Slow and excruciatingly painful.
-

From: Dan Williams
Date: Tuesday, October 23, 2007 - 2:27 pm

I asked Tom Callaway, who heads up all the legal/licensing issues for
Fedora.  He said essentially "it won't be in Fedora" on just the basis
of MODULE_LICENSE.  I can run it past Red Hat lawyers too.  It's just
not clear with only MODULE_LICENSE, and not clear pretty much means
Don't Touch until it becomes clear.


-

From: Daniel Hazelton
Date: Tuesday, October 23, 2007 - 3:19 pm

I have to agree with this. There are better ways to determine the license - 
including contacting the author. However, in the lack of any other source of 
information about the license MODULE_LICENSE can be used as a (somewhat) 
defensible position. It'd cost a lot of money and be a very hard fight, 
though - which is one reason why no company would (or should) take the 
chance. Nor should any person, unless they happen to have the money to fight 
the battle.




-- 
Dialup is like pissing through a pipette. Slow and excruciatingly painful.
-

From: Arjan van de Ven
Date: Tuesday, October 23, 2007 - 9:13 am

On Mon, 22 Oct 2007 23:52:57 +0200

no they don't.. nobody is that stupid.
-

Previous thread: Re: 2.6.23-git Kconfig regression by Jan Beulich on Saturday, October 20, 2007 - 11:27 am. (1 message)

Next thread: Potential regression in -git15: can't resume stopped root shell? by Theodore Tso on Saturday, October 20, 2007 - 11:58 am. (2 messages)