Hi, A few months ago, VIA quietly released the source for their VT6656 USB WiFi chip. The original VIA archive can be downloaded here: http://www.viaarena.com/Driver/vt6656-linux-x86-src-v113.rar As I work with VIA hardware regularly as part of my job and some of our customers would find this driver useful, I spent a little bit of time looking at it. With a slight tweak, it compiled against my 2.6.20 kernel, and seemed to be working fine. The attached patch illustrates the changes I made to make the driver compile, however, I'm not much of a kernel hacker, so I can't guarantee its correctness. Now, I expect that the kernel developers will want this driver to be worked over before it could be accepted into the kernel tree, however, the most critical remaining issue is that of license. Most of the source files contain the following notice: * Copyright (c) 2003 VIA Networking, Inc. All rights reserved. * * This software is copyrighted by and is the sole property of * VIA Networking, Inc. This software may only be used in accordance * with the corresponding license agreement. Any unauthorized use, * duplication, transmission, distribution, or disclosure of this * software is expressly forbidden. * * This software is provided by VIA Networking, Inc. "as is" and any * express or implied warranties, including, but not limited to, the * implied warranties of merchantability and fitness for a particular * purpose are disclaimed. In no event shall VIA Networking, Inc. be * liable for any direct, indirect, incidental, special, exemplary, or * consequential damages. This doesn't sound very GPL to me, however, the twist is in main_usb.c: MODULE_LICENSE("GPL"); I am not sure how legally binding this declaration could be. My guess is that it's not. I have sent some messages to VIA asking for clarification, however, I've not gotten much of a response. I can possibly push this harder, but I thought I'd send it this way first to see if it is worth pursuing in the minds of the people that would know these things. What do you think? Thanks, Forest -- Forest Bond http://www.alittletooquiet.net
diff -Naur vt6656.old/driver/main_usb.c vt6656/driver/main_usb.c --- vt6656.old/driver/main_usb.c 2007-01-18 15:26:04.000000000 -0500 +++ vt6656/driver/main_usb.c 2007-08-21 14:31:11.000000000 -0400 @@ -798,7 +798,9 @@ netdev->set_multicast_list = device_set_multi; netdev->do_ioctl = device_ioctl; #ifdef WIRELESS_EXT +#if WIRELESS_EXT < 13 netdev->get_wireless_stats = iwctl_get_wireless_stats; +#endif #if WIRELESS_EXT > 12 netdev->wireless_handlers = (struct iw_handler_def *)&iwctl_handler_def; // netdev->wireless_handlers = NULL;
Attachment:
signature.asc
Description: Digital signature