diff options
author | Rene Wagner <rw@handhelds.org> | 2006-05-13 15:42:03 +0200 |
---|---|---|
committer | Rene Wagner <rw@handhelds.org> | 2006-05-13 15:42:03 +0200 |
commit | 5a5346dfbec459c10d9e61e16e125b83975a1ef1 (patch) | |
tree | 342e16f3fe790d03b93294344e6154459888939f /org.handhelds.familiar/packages/pwc/pwc-10.0.6a |
OE tree imported from monotone branch org.openembedded.oz354fam083 at revision 8b12e35772d79306d1d9de19c12b23681618532d.
Diffstat (limited to 'org.handhelds.familiar/packages/pwc/pwc-10.0.6a')
-rw-r--r-- | org.handhelds.familiar/packages/pwc/pwc-10.0.6a/Makefile | 12 | ||||
-rw-r--r-- | org.handhelds.familiar/packages/pwc/pwc-10.0.6a/endian-fix.patch | 47 |
2 files changed, 59 insertions, 0 deletions
diff --git a/org.handhelds.familiar/packages/pwc/pwc-10.0.6a/Makefile b/org.handhelds.familiar/packages/pwc/pwc-10.0.6a/Makefile new file mode 100644 index 0000000..8e2334e --- /dev/null +++ b/org.handhelds.familiar/packages/pwc/pwc-10.0.6a/Makefile @@ -0,0 +1,12 @@ +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 + +obj-m += pwc.o + +else +KDIR := /lib/modules/$(shell uname -r)/build +PWD := $(shell pwd) + +default modules: + $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules +endif diff --git a/org.handhelds.familiar/packages/pwc/pwc-10.0.6a/endian-fix.patch b/org.handhelds.familiar/packages/pwc/pwc-10.0.6a/endian-fix.patch new file mode 100644 index 0000000..29d689b --- /dev/null +++ b/org.handhelds.familiar/packages/pwc/pwc-10.0.6a/endian-fix.patch @@ -0,0 +1,47 @@ +--- pwc-10.0.6a.orig/pwc-if.c 2005-03-31 22:17:29.000000000 +0200 ++++ pwc-10.0.6a/pwc-if.c.new 2005-04-01 09:31:39.099541224 +0200 +@@ -846,7 +846,7 @@ + pdev->vmax_packet_size = -1; + for (i = 0; i < idesc->desc.bNumEndpoints; i++) + if ((idesc->endpoint[i].desc.bEndpointAddress & 0xF) == pdev->vendpoint) { +- pdev->vmax_packet_size = idesc->endpoint[i].desc.wMaxPacketSize; ++ pdev->vmax_packet_size = le16_to_cpu(idesc->endpoint[i].desc.wMaxPacketSize); + break; + } + +@@ -1689,9 +1689,14 @@ + int video_nr = -1; /* default: use next available device */ + char serial_number[30], *name; + ++ /* added le16_to_cpu to fix big endian issues */ ++ vendor_id = le16_to_cpu(udev->descriptor.idVendor); ++ product_id = le16_to_cpu(udev->descriptor.idProduct); ++ + /* Check if we can handle this device */ ++ + Trace(TRACE_PROBE, "probe() called [%04X %04X], if %d\n", +- udev->descriptor.idVendor, udev->descriptor.idProduct, ++ vendor_id, product_id, + intf->altsetting->desc.bInterfaceNumber); + + /* the interfaces are probed one by one. We are only interested in the +@@ -1701,9 +1706,7 @@ + if (intf->altsetting->desc.bInterfaceNumber > 0) + return -ENODEV; + +- vendor_id = udev->descriptor.idVendor; +- product_id = udev->descriptor.idProduct; +- ++ + if (vendor_id == 0x0471) { + switch (product_id) { + case 0x0302: +@@ -1954,7 +1957,7 @@ + pdev->vdev->owner = THIS_MODULE; + video_set_drvdata(pdev->vdev, pdev); + +- pdev->release = udev->descriptor.bcdDevice; ++ pdev->release = le16_to_cpu(udev->descriptor.bcdDevice); + Trace(TRACE_PROBE, "Release: %04x\n", pdev->release); + + /* Now search device_hint[] table for a match, so we can hint a node number. */ |