Back in November of last year, I wrote about how SiLabs were distributing a binary only version of a usb-serial driver for Linux that was violating the GPL <http://thread.gmane.org/gmane.linux.kernel/256403> Well, it looks like SiLabs and MCCI have finally released the source code to their driver, but in obfuscated form. I've attached the .zip file to this message so that everyone can see this horrible nightmare of a "driver". As per the GPL, they are still violating the license as obfuscated code releases is not allowed. And as such, they are still violating my copyright, and the copyrights of a few other kernel developers. So, just to re-iterate, I very soundly do not recommend ever buying any devices from this company, as if this is the way they treat well established legal issues, who know what else they have done... Oh, and if you don't want to go through the trouble of opening up the zip file, I've included inline their header file, in all of it's glory, with no changes made by me at all, below. And yes, if you notice the 2.6 kernel does now support this device, but that is because of some people reverse engineering the device. It was by no help of the company involved (when seeing this code, those developers just laughed and said it would be more work to try to read it than to finish up the driver itself.) thanks, greg k-h -------------------- actual .h file is below ------- #ifndef \ O1001101000 #define \ O1001101000 \ #define \ l1001101001 \ \ 0200 #define \ l1001101010 \ \ 0x00 #define \ l1001101011 \ \ 0201 #define \ O1001101100 \ \ 0x01 #define \ l1001101101 \ \ 0x82 #define \ l1001101110 \ \ 0x02 #define \ O1001101111 \ \ 0x83 #define \ l1001110000 \ \ 0x03 #define \ O1001110001 \ \ 0xa0 #define \ O1001110010 \ \ 0x20 #define \ O1001110011 \ \ 0xa1 #define \ O1001110100 \ \ 0x21 #define \ O1001110101 \ \ 0242 #define \ O1001110110 \ \ 0x22 #define \ O1001110111 \ \ 0243 #define \ l1001111000 \ \ 043 #define \ O1001111001 \ \ 0300 #define \ O1001111010 \ \ 0100 #define \ O1001111011 \ \ 0xc1 #define \ l1001111100 \ \ 0x41 #define \ O1001111101 \ \ 0302 #define \ O1001111110 \ \ 0102 #define \ l1001111111 \ \ 0xc3 #define \ l1010000000 \ \ 0x43 #define \ l1010000001 \ \ (7) #define \ l1010000010 \ \ (1 << l1010000001) #define \ O1010000011 \ \ (0 << l1010000001) #define \ O1010000100 \ \ (1 << l1010000001) #define \ O1010000101 \ \ (5) #define \ O1010000110 \ \ (3 << O1010000101) #define \ l1010000111 \ \ (0 << O1010000101) #define \ l1010001000 \ \ (1 << O1010000101) #define \ O1010001001 \ \ (2 << O1010000101) #define \ l1010001010 \ \ (3 << O1010000101) #define \ O1010001011 \ \ (0) #define \ O1010001100 \ \ (0x1f << O1010001011) #define \ l1010001101 \ \ (0x00 << O1010001011) #define \ O1010001110 \ \ (0x01 << O1010001011) #define \ l1010001111 \ \ (0x02 << O1010001011) #define \ O1010010000 \ \ (0x03 << O1010001011) #define \ O1010010001 \ \ 0 #define \ l1010010010 \ \ 1 #define \ l1010010011 \ \ 3 #define \ l1010010100 \ \ 5 #define \ l1010010101 \ \ 6 #define \ l1010010110 \ \ 7 #define \ O1010010111 \ \ 8 #define \ l1010011000 \ \ 011 #define \ O1010011001 \ \ 0xa #define \ O1010011010 \ \ 0xb #define \ l1010011011 \ \ 0xc #define \ l1010011100 \ \ 1 #define \ O1010011101 \ \ 2 #define \ l1010011110 \ \ 3 #define \ l1010011111 \ \ 4 #define \ l1010100000 \ \ 5 #define \ l1010100001 \ \ 0 #define \ l1010100010 \ \ 1 #define \ O1010100011 \ \ 2 #define \ l1010100100 \ \ 3 #define \ O1010100101 \ \ 0 #define \ l1010100110 \ \ 1 #define \ O1010100111 \ \ 0x80 #define \ l1010101000 \ \ 0x0f #define \ O1010101001 \ \ (1 << 0) #define \ O1010101010 \ \ (1 << 1) #define \ O1010101011 \ \ (1 << 0) #endif
Attachment:
Linux.zip.gz
Description: application/gunzip
- Follow-Ups:
- Re: Linux support for SiLabs CP210x devices
- From: Stefan Smietanowski <[email protected]>
- Re: Linux support for SiLabs CP210x devices
- Prev by Date: Re: linux.bkbits.net question: mapping cset to kernel version?
- Next by Date: Re: [PATCH] NUMA aware allocation of transmit and receive buffers for e1000
- Previous by thread: [patch 0/4] x86-64 sparsemem support
- Next by thread: Re: Linux support for SiLabs CP210x devices
- Index(es):