summaryrefslogtreecommitdiff
path: root/recipes/pwc/pwc-10.0.6a/endian-fix.patch
blob: 29d689be20d0b3c433827ef4dd7e9635f7b584da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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. */