X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/159377985a06e06657d113687835f82f46a2c437..cda7b5ae8cc180350cfdade79f0cd0bd9ee9afe6:/target/linux/generic-2.4/patches/228-more_usb_fixes.patch diff --git a/target/linux/generic-2.4/patches/228-more_usb_fixes.patch b/target/linux/generic-2.4/patches/228-more_usb_fixes.patch index 40b24cac0..16b554a80 100644 --- a/target/linux/generic-2.4/patches/228-more_usb_fixes.patch +++ b/target/linux/generic-2.4/patches/228-more_usb_fixes.patch @@ -1,7 +1,6 @@ -diff -ur linux.old/drivers/scsi/hosts.c linux.dev/drivers/scsi/hosts.c ---- linux.old/drivers/scsi/hosts.c 2003-06-13 16:51:36.000000000 +0200 -+++ linux.dev/drivers/scsi/hosts.c 2006-07-30 12:34:30.000000000 +0200 -@@ -107,8 +107,21 @@ +--- a/drivers/scsi/hosts.c ++++ b/drivers/scsi/hosts.c +@@ -107,8 +107,21 @@ scsi_unregister(struct Scsi_Host * sh){ if (shn) shn->host_registered = 0; /* else {} : This should not happen, we should panic here... */ @@ -24,10 +23,9 @@ diff -ur linux.old/drivers/scsi/hosts.c linux.dev/drivers/scsi/hosts.c kfree((char *) sh); } -diff -ur linux.old/drivers/usb/hcd.c linux.dev/drivers/usb/hcd.c ---- linux.old/drivers/usb/hcd.c 2004-04-14 15:05:32.000000000 +0200 -+++ linux.dev/drivers/usb/hcd.c 2006-07-30 11:49:06.000000000 +0200 -@@ -1105,7 +1105,8 @@ +--- a/drivers/usb/hcd.c ++++ b/drivers/usb/hcd.c +@@ -1105,7 +1105,8 @@ static int hcd_submit_urb (struct urb *u break; case PIPE_BULK: allowed |= USB_DISABLE_SPD | USB_QUEUE_BULK @@ -37,7 +35,7 @@ diff -ur linux.old/drivers/usb/hcd.c linux.dev/drivers/usb/hcd.c break; case PIPE_INTERRUPT: allowed |= USB_DISABLE_SPD; -@@ -1212,7 +1213,8 @@ +@@ -1212,7 +1213,8 @@ static int hcd_submit_urb (struct urb *u urb->setup_packet, sizeof (struct usb_ctrlrequest), PCI_DMA_TODEVICE); @@ -47,10 +45,9 @@ diff -ur linux.old/drivers/usb/hcd.c linux.dev/drivers/usb/hcd.c urb->transfer_dma = pci_map_single ( hcd->pdev, urb->transfer_buffer, -diff -ur linux.old/drivers/usb/host/ehci-hcd.c linux.dev/drivers/usb/host/ehci-hcd.c ---- linux.old/drivers/usb/host/ehci-hcd.c 2006-07-30 11:31:57.000000000 +0200 -+++ linux.dev/drivers/usb/host/ehci-hcd.c 2006-07-30 11:48:14.000000000 +0200 -@@ -399,6 +399,27 @@ +--- a/drivers/usb/host/ehci-hcd.c ++++ b/drivers/usb/host/ehci-hcd.c +@@ -399,6 +399,27 @@ static int ehci_start (struct usb_hcd *h ehci_mem_cleanup (ehci); return retval; } @@ -78,10 +75,9 @@ diff -ur linux.old/drivers/usb/host/ehci-hcd.c linux.dev/drivers/usb/host/ehci-h writel (INTR_MASK, &ehci->regs->intr_enable); writel (ehci->periodic_dma, &ehci->regs->frame_list); -diff -ur linux.old/drivers/usb/host/ehci-q.c linux.dev/drivers/usb/host/ehci-q.c ---- linux.old/drivers/usb/host/ehci-q.c 2006-07-30 11:31:57.000000000 +0200 -+++ linux.dev/drivers/usb/host/ehci-q.c 2006-07-30 12:10:15.000000000 +0200 -@@ -791,6 +791,8 @@ +--- a/drivers/usb/host/ehci-q.c ++++ b/drivers/usb/host/ehci-q.c +@@ -791,6 +791,8 @@ static void qh_link_async (struct ehci_h writel (cmd, &ehci->regs->command); ehci->hcd.state = USB_STATE_RUNNING; /* posted write need not be known to HC yet ... */ @@ -90,19 +86,9 @@ diff -ur linux.old/drivers/usb/host/ehci-q.c linux.dev/drivers/usb/host/ehci-q.c } } -diff -ur linux.old/drivers/usb/host/usb-uhci.c linux.dev/drivers/usb/host/usb-uhci.c ---- linux.old/drivers/usb/host/usb-uhci.c 2004-11-17 12:54:21.000000000 +0100 -+++ linux.dev/drivers/usb/host/usb-uhci.c 2006-07-30 12:10:16.000000000 +0200 -@@ -2491,7 +2491,7 @@ - ((urb_priv_t*)urb->hcpriv)->flags=0; - } - -- if ((urb->status != -ECONNABORTED) && (urb->status != ECONNRESET) && -+ if ((urb->status != -ECONNABORTED) && (urb->status != -ECONNRESET) && - (urb->status != -ENOENT)) { - - urb->status = -EINPROGRESS; -@@ -3034,6 +3034,21 @@ +--- a/drivers/usb/host/usb-uhci.c ++++ b/drivers/usb/host/usb-uhci.c +@@ -3034,6 +3034,21 @@ uhci_pci_probe (struct pci_dev *dev, con pci_set_master(dev); @@ -124,9 +110,8 @@ diff -ur linux.old/drivers/usb/host/usb-uhci.c linux.dev/drivers/usb/host/usb-uh /* Search for the IO base address.. */ for (i = 0; i < 6; i++) { -diff -ur linux.old/drivers/usb/storage/transport.c linux.dev/drivers/usb/storage/transport.c ---- linux.old/drivers/usb/storage/transport.c 2005-04-04 03:42:19.000000000 +0200 -+++ linux.dev/drivers/usb/storage/transport.c 2006-07-30 12:22:56.000000000 +0200 +--- a/drivers/usb/storage/transport.c ++++ b/drivers/usb/storage/transport.c @@ -54,6 +54,22 @@ #include #include @@ -150,7 +135,7 @@ diff -ur linux.old/drivers/usb/storage/transport.c linux.dev/drivers/usb/storage /*********************************************************************** * Helper routines -@@ -554,6 +570,543 @@ +@@ -554,6 +570,543 @@ int usb_stor_transfer_partial(struct us_ return US_BULK_TRANSFER_SHORT; } @@ -694,7 +679,7 @@ diff -ur linux.old/drivers/usb/storage/transport.c linux.dev/drivers/usb/storage /* * Transfer an entire SCSI command's worth of data payload over the bulk * pipe. -@@ -569,6 +1122,8 @@ +@@ -569,6 +1122,8 @@ void usb_stor_transfer(Scsi_Cmnd *srb, s struct scatterlist *sg; unsigned int total_transferred = 0; unsigned int transfer_amount; @@ -703,7 +688,7 @@ diff -ur linux.old/drivers/usb/storage/transport.c linux.dev/drivers/usb/storage /* calculate how much we want to transfer */ transfer_amount = usb_stor_transfer_length(srb); -@@ -585,23 +1140,34 @@ +@@ -585,23 +1140,34 @@ void usb_stor_transfer(Scsi_Cmnd *srb, s * make the appropriate requests for each, until done */ sg = (struct scatterlist *) srb->request_buffer; @@ -755,10 +740,9 @@ diff -ur linux.old/drivers/usb/storage/transport.c linux.dev/drivers/usb/storage } } else -diff -ur linux.old/drivers/usb/storage/transport.h linux.dev/drivers/usb/storage/transport.h ---- linux.old/drivers/usb/storage/transport.h 2003-08-25 13:44:42.000000000 +0200 -+++ linux.dev/drivers/usb/storage/transport.h 2006-07-30 12:10:16.000000000 +0200 -@@ -127,6 +127,16 @@ +--- a/drivers/usb/storage/transport.h ++++ b/drivers/usb/storage/transport.h +@@ -127,6 +127,16 @@ struct bulk_cs_wrap { #define US_BULK_TRANSFER_ABORTED 3 /* transfer canceled */ /* @@ -775,10 +759,9 @@ diff -ur linux.old/drivers/usb/storage/transport.h linux.dev/drivers/usb/storage * Transport return codes */ -diff -ur linux.old/drivers/usb/storage/usb.h linux.dev/drivers/usb/storage/usb.h ---- linux.old/drivers/usb/storage/usb.h 2005-04-04 03:42:20.000000000 +0200 -+++ linux.dev/drivers/usb/storage/usb.h 2006-07-30 12:11:06.000000000 +0200 -@@ -111,6 +111,60 @@ +--- a/drivers/usb/storage/usb.h ++++ b/drivers/usb/storage/usb.h +@@ -111,6 +111,60 @@ typedef int (*trans_reset)(struct us_dat typedef void (*proto_cmnd)(Scsi_Cmnd*, struct us_data*); typedef void (*extra_data_destructor)(void *); /* extra data destructor */ @@ -839,7 +822,7 @@ diff -ur linux.old/drivers/usb/storage/usb.h linux.dev/drivers/usb/storage/usb.h /* we allocate one of these for every device that we remember */ struct us_data { struct us_data *next; /* next device */ -@@ -171,6 +225,7 @@ +@@ -171,6 +225,7 @@ struct us_data { struct urb *current_urb; /* non-int USB requests */ struct completion current_done; /* the done flag */ unsigned int tag; /* tag for bulk CBW/CSW */ @@ -847,10 +830,9 @@ diff -ur linux.old/drivers/usb/storage/usb.h linux.dev/drivers/usb/storage/usb.h /* the semaphore for sleeping the control thread */ struct semaphore sema; /* to sleep thread on */ -diff -ur linux.old/include/linux/usb.h linux.dev/include/linux/usb.h ---- linux.old/include/linux/usb.h 2004-11-17 12:54:22.000000000 +0100 -+++ linux.dev/include/linux/usb.h 2006-07-30 12:19:19.000000000 +0200 -@@ -483,6 +483,8 @@ +--- a/include/linux/usb.h ++++ b/include/linux/usb.h +@@ -483,6 +483,8 @@ struct usb_driver { #define URB_NO_INTERRUPT 0x0080 /* HINT: no non-error interrupt needed */ /* ... less overhead for QUEUE_BULK */ #define USB_TIMEOUT_KILLED 0x1000 // only set by HCD!