ChangeSet 1.1760.26.8, 2004/06/24 10:41:32-07:00, stern@rowland.harvard.edu [PATCH] USB: Use 64-bit IO addresses in UHCI driver Thanks to Ludovic Aubry for this patch. It changes some local variables used by the UHCI driver to store IO addresses from unsigned int to unsigned long. This is vitally necessary on 64-bit platforms. From: Ludovic Aubry Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/host/uhci-debug.c | 2 +- drivers/usb/host/uhci-hcd.c | 14 +++++++------- drivers/usb/host/uhci-hub.c | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff -Nru a/drivers/usb/host/uhci-debug.c b/drivers/usb/host/uhci-debug.c --- a/drivers/usb/host/uhci-debug.c 2004-06-29 16:26:16 -07:00 +++ b/drivers/usb/host/uhci-debug.c 2004-06-29 16:26:16 -07:00 @@ -248,7 +248,7 @@ static int uhci_show_status(struct uhci_hcd *uhci, char *buf, int len) { char *out = buf; - unsigned int io_addr = uhci->io_addr; + unsigned long io_addr = uhci->io_addr; unsigned short usbcmd, usbstat, usbint, usbfrnum; unsigned int flbaseadd; unsigned char sof; diff -Nru a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c --- a/drivers/usb/host/uhci-hcd.c 2004-06-29 16:26:16 -07:00 +++ b/drivers/usb/host/uhci-hcd.c 2004-06-29 16:26:16 -07:00 @@ -1762,7 +1762,7 @@ static irqreturn_t uhci_irq(struct usb_hcd *hcd, struct pt_regs *regs) { struct uhci_hcd *uhci = hcd_to_uhci(hcd); - unsigned int io_addr = uhci->io_addr; + unsigned long io_addr = uhci->io_addr; unsigned short status; struct list_head *tmp, *head; unsigned int age; @@ -1835,7 +1835,7 @@ static void reset_hc(struct uhci_hcd *uhci) { - unsigned int io_addr = uhci->io_addr; + unsigned long io_addr = uhci->io_addr; /* Turn off PIRQ, SMI, and all interrupts. This also turns off * the BIOS's USB Legacy Support. @@ -1856,7 +1856,7 @@ static void suspend_hc(struct uhci_hcd *uhci) { - unsigned int io_addr = uhci->io_addr; + unsigned long io_addr = uhci->io_addr; dev_dbg(uhci_dev(uhci), "%s\n", __FUNCTION__); uhci->state = UHCI_SUSPENDED; @@ -1866,7 +1866,7 @@ static void wakeup_hc(struct uhci_hcd *uhci) { - unsigned int io_addr = uhci->io_addr; + unsigned long io_addr = uhci->io_addr; switch (uhci->state) { case UHCI_SUSPENDED: /* Start the resume */ @@ -1906,7 +1906,7 @@ static int ports_active(struct uhci_hcd *uhci) { - unsigned int io_addr = uhci->io_addr; + unsigned long io_addr = uhci->io_addr; int connection = 0; int i; @@ -1918,7 +1918,7 @@ static int suspend_allowed(struct uhci_hcd *uhci) { - unsigned int io_addr = uhci->io_addr; + unsigned long io_addr = uhci->io_addr; int i; if (to_pci_dev(uhci_dev(uhci))->vendor != PCI_VENDOR_ID_INTEL) @@ -1983,7 +1983,7 @@ static void start_hc(struct uhci_hcd *uhci) { - unsigned int io_addr = uhci->io_addr; + unsigned long io_addr = uhci->io_addr; int timeout = 1000; /* diff -Nru a/drivers/usb/host/uhci-hub.c b/drivers/usb/host/uhci-hub.c --- a/drivers/usb/host/uhci-hub.c 2004-06-29 16:26:16 -07:00 +++ b/drivers/usb/host/uhci-hub.c 2004-06-29 16:26:16 -07:00 @@ -36,7 +36,7 @@ static int uhci_hub_status_data(struct usb_hcd *hcd, char *buf) { struct uhci_hcd *uhci = hcd_to_uhci(hcd); - unsigned int io_addr = uhci->io_addr; + unsigned long io_addr = uhci->io_addr; int i; *buf = 0; @@ -69,7 +69,7 @@ { struct uhci_hcd *uhci = hcd_to_uhci(hcd); int status, retval = 0, len = 0; - unsigned int port_addr = uhci->io_addr + USBPORTSC1 + 2 * (wIndex-1); + unsigned long port_addr = uhci->io_addr + USBPORTSC1 + 2 * (wIndex-1); __u16 wPortChange, wPortStatus; switch (typeReq) {