In case anyone else runs into this before 2.5.22 ...
I accidentally relied on something gcc 2.95.3 doesn't
support.
-------- Original Message --------
Subject: [PATCH] Fix 2.5.x recent OHCI updates
Date: Sat, 08 Jun 2002 17:02:28 -0700
From: "David S. Miller" <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Using anonymous union/struct like this ups the compiler requirements
further than specified in init/main.c, so we can't use them
just yet.
Please apply, thanks.
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#
ChangeSet 1.465 -> 1.466
#
drivers/usb/host/ohci-hcd.c
1.12 -> 1.13
#
drivers/usb/host/ohci-q.c
1.8 -> 1.9
#
drivers/usb/host/ohci.h
1.5 -> 1.6
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/06/06 [EMAIL PROTECTED] 1.466
# OHCI build fix: Do not use nameless struct/union.
# --------------------------------------------
#
diff -Nru a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
--- a/drivers/usb/host/ohci-hcd.c Sat Jun 8 17:00:58 2002
+++ b/drivers/usb/host/ohci-hcd.c Sat Jun 8 17:00:58 2002
@@ -226,7 +226,7 @@
case PIPE_ISOCHRONOUS:
if (urb->transfer_flags & USB_ISO_ASAP) {
urb->start_frame = ( (ed->state == ED_OPER)
-
? (ed->last_iso + 1)
+
? (ed->u.last_iso + 1)
: (le16_to_cpu (ohci->hcca->frame_no)
+ 10)) & 0xffff;
}
diff -Nru a/drivers/usb/host/ohci-q.c b/drivers/usb/host/ohci-q.c
--- a/drivers/usb/host/ohci-q.c Sat Jun 8 17:00:58 2002
+++ b/drivers/usb/host/ohci-q.c Sat Jun 8 17:00:58 2002
@@ -236,11 +236,11 @@
break;
case PIPE_INTERRUPT:
-
load = ed->int_load;
-
interval = ep_2_n_interval (ed->int_period);
+
load = ed->u.i.int_load;
+
interval = ep_2_n_interval (ed->u.i.int_period);
ed->interval = interval;
int_branch = ep_int_balance (ohci, interval, load);
-
ed->int_branch = int_branch;
+
ed->u.i.int_branch = int_branch;
for (i = 0; i < ep_rev (6, interval); i += inter) {
inter = 1;
@@ -355,9 +355,9 @@
break;
case PIPE_INTERRUPT:
-
periodic_unlink (ohci, ed, ed->int_branch, ed->interval);
-
for (i = ed->int_branch; i < NUM_INTS; i += ed->interval)
-
ohci->ohci_int_load [i] -= ed->int_load;
+
periodic_unlink (ohci, ed, ed->u.i.int_branch, ed->interval);
+
for (i = ed->u.i.int_branch; i < NUM_INTS; i += ed->interval)
+
ohci->ohci_int_load [i] -= ed->u.i.int_load;
#ifdef OHCI_VERBOSE_DEBUG
ohci_dump_periodic (ohci, "UNLINK_INT");
#endif
@@ -466,8 +466,8 @@
<< 16);
if (ed->type == PIPE_INTERRUPT && ed->state == ED_UNLINK) {
- ed->int_period = interval;
- ed->int_load = load;
+ ed->u.i.int_period = interval;
+ ed->u.i.int_load = load;
}
spin_unlock_irqrestore (&ohci->lock, flags);
@@ -563,7 +563,7 @@
td->hwINFO = cpu_to_le32 (info);
if ((td->ed->type) == PIPE_ISOCHRONOUS) {
td->hwCBP = cpu_to_le32 (data & 0xFFFFF000);
-
td->ed->last_iso = info & 0xffff;
+
td->ed->u.last_iso = info & 0xffff;
} else {
td->hwCBP = cpu_to_le32 (data);
}
diff -Nru a/drivers/usb/host/ohci.h b/drivers/usb/host/ohci.h
--- a/drivers/usb/host/ohci.h Sat Jun 8 17:00:58 2002
+++ b/drivers/usb/host/ohci.h Sat Jun 8 17:00:58 2002
@@ -37,9 +37,9 @@
u8 int_period;
u8 int_branch;
u8 int_load;
-
};
+
} i;
u16
last_iso; /* isochronous */
-
};
+
} u;
u8
state; /* ED_{NEW,UNLINK,OPER} */
#define ED_NEW 0x00 /* unused, no dummy td */
_______________________________________________________________
Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas -
http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel