Skip to content

Commit

Permalink
[PATCH] remove non-cleanroom pwc driver compression
Browse files Browse the repository at this point in the history
The original pwc author raised some questions about the reverse
engineering of the decompressor algorithms used in the pwc driver.
Having done some detailed investigation it appears those concerns that
clean room policy was not followed are reasonable.  I've also had a
friendly discussion with Philips to ask their view on this.

This removes the problem items of code which reduces the pwc
functionality in the kernel a little but leaves all the framework for
setup that will be needed for decompressors in user space (where they
eventually belong).  This change set is designed to be the minimal risk
change set given that 2.6.12 is hopefully close to hand, with a view to
merging the much updated pwc code in 2.6.13 series kernels.

Someone else can then redo the decompressors properly (clean room) in
user space.

Note that while its easy to say that it should have been caught earlier,
but the violation was really only obvious to someone who had access to
both the proprietary source and the 'GPL' source.
  • Loading branch information
Alan Cox authored and Linus Torvalds committed May 27, 2005
1 parent 5d9e4ea commit 88c1834
Show file tree
Hide file tree
Showing 10 changed files with 14 additions and 2,473 deletions.
2 changes: 1 addition & 1 deletion drivers/usb/media/pwc/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
ifneq ($(KERNELRELEASE),)

pwc-objs := pwc-if.o pwc-misc.o pwc-ctrl.o pwc-uncompress.o pwc-dec1.o pwc-dec23.o pwc-kiara.o pwc-timon.o
pwc-objs := pwc-if.o pwc-misc.o pwc-ctrl.o pwc-uncompress.o pwc-timon.o pwc-kiara.o

obj-$(CONFIG_USB_PWC) += pwc.o

Expand Down
12 changes: 6 additions & 6 deletions drivers/usb/media/pwc/pwc-ctrl.c
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ static inline int set_video_mode_Nala(struct pwc_device *pdev, int size, int fra
switch(pdev->type) {
case 645:
case 646:
pwc_dec1_init(pdev->type, pdev->release, buf, pdev->decompress_data);
/* pwc_dec1_init(pdev->type, pdev->release, buf, pdev->decompress_data); */
break;

case 675:
Expand All @@ -256,7 +256,7 @@ static inline int set_video_mode_Nala(struct pwc_device *pdev, int size, int fra
case 730:
case 740:
case 750:
pwc_dec23_init(pdev->type, pdev->release, buf, pdev->decompress_data);
/* pwc_dec23_init(pdev->type, pdev->release, buf, pdev->decompress_data); */
break;
}
}
Expand Down Expand Up @@ -318,8 +318,8 @@ static inline int set_video_mode_Timon(struct pwc_device *pdev, int size, int fr
if (ret < 0)
return ret;

if (pChoose->bandlength > 0 && pdev->vpalette != VIDEO_PALETTE_RAW)
pwc_dec23_init(pdev->type, pdev->release, buf, pdev->decompress_data);
/* if (pChoose->bandlength > 0 && pdev->vpalette != VIDEO_PALETTE_RAW)
pwc_dec23_init(pdev->type, pdev->release, buf, pdev->decompress_data); */

pdev->cmd_len = 13;
memcpy(pdev->cmd_buf, buf, 13);
Expand Down Expand Up @@ -397,8 +397,8 @@ static inline int set_video_mode_Kiara(struct pwc_device *pdev, int size, int fr
if (ret < 0)
return ret;

if (pChoose->bandlength > 0 && pdev->vpalette != VIDEO_PALETTE_RAW)
pwc_dec23_init(pdev->type, pdev->release, buf, pdev->decompress_data);
/* if (pChoose->bandlength > 0 && pdev->vpalette != VIDEO_PALETTE_RAW)
pwc_dec23_init(pdev->type, pdev->release, buf, pdev->decompress_data); */

pdev->cmd_len = 12;
memcpy(pdev->cmd_buf, buf, 12);
Expand Down
42 changes: 0 additions & 42 deletions drivers/usb/media/pwc/pwc-dec1.c

This file was deleted.

36 changes: 0 additions & 36 deletions drivers/usb/media/pwc/pwc-dec1.h

This file was deleted.

Loading

0 comments on commit 88c1834

Please sign in to comment.