aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/pwc/pwc-10.0.6a/endian-fix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/pwc/pwc-10.0.6a/endian-fix.patch')
-rw-r--r--recipes/pwc/pwc-10.0.6a/endian-fix.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/recipes/pwc/pwc-10.0.6a/endian-fix.patch b/recipes/pwc/pwc-10.0.6a/endian-fix.patch
new file mode 100644
index 0000000000..29d689be20
--- /dev/null
+++ b/recipes/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. */