117 Commits

Author SHA1 Message Date
shiba
6b05eb1b3f Fixed an issue which transfer no packets in combination with aue driver.
Submitted by Hiroyuki Aizu <eyes@navi.org>
                (refer to [FreeBSD-users-jp 65061])
Tested by    Hiroharu Tamaru <tamaru@myn.rcast.u-tokyo.ac.jp>
                (refer to [bsd-usb:689])
2003-03-05 13:17:15 +00:00
dillon
5102bb345b Fix two bugs in the DMA chaining code for OHCI. The first bug is that
the dataphysend calculation could only possibly work if the virtual buffer
is also physically contiguous.  Calculate dataphysend by calculating the
ending virtual address first, then converting to a physical address.

The second bug applies only to NetBSD and OpenBSD and involves the curlen
calculation in the two-contiguous-physical-pages case (which we don't support).

Also cleanup the use of the OHIC_PAGE() macro on dataphysend and add a panic
if len goes negative (meaning we lost the physical page translation
representing the end of the buffer).

IMHO the dataphysend is still bokered since it might be misrepresented
by shared userland page mappings.  The whole section needs to be rewritten
to use the virtual address range.

MFC after:	3 days
2002-12-20 18:47:39 +00:00
joe
4e69cf34a4 MFNetBSD: (partial 1.133)
- In ohci_close_pipe, wait 1ms after removing an ED to avoid possible race
  condition.

Approved by:	re (rwatson)
2002-12-09 01:41:24 +00:00
joe
0732397245 MFNetBSD:
date: 2002/09/29 20:59:30;  author: augustss;  state: Exp;  lines: +2 -7
    Remove extra call to ohci_rem_ed().  From kern/18448, Takeshi Nakayama.

Approved by:	re (rwatson)
2002-12-09 01:39:32 +00:00
joe
be86fd2558 Don't corrupt the ED list whilst removing an entry.
Submitted by:	Bernd Walter <ticso@cicely8.cicely.de>
Approved by:	re (rwatson)
2002-12-09 00:55:50 +00:00
joe
9b80ac7383 In rev 1.51 of usb_port.h I switched over to using the USB_USE_SOFTINTR
code path to fix a bug in the non USB_USE_SOFTINTR path that caused
the usb bus to hang and generally misbehave when devices were unplugged.
In the process though it also reduced the throughput of usb devices because
of a less than optimal implementation under FreeBSD.

This commit fixes the non USB_USE_SOFTINTR code in uhci and ohci
so that it works again, and switches back to using this code path.

The uhci code has been tested, but the ohci code hasn't.  It's
essentially the same anyway and so I don't envisage any difficulties.

Code for uhci submitted by:	Maksim Yevmenkin <myevmenk@exodus.net>
2002-09-30 17:50:18 +00:00
joe
e8b4bb966f MFNetBSD:
revision 1.127
	date: 2002/08/07 20:03:19;  author: augustss;  lines: +4 -8
	Fix some braindead calls to free memory (only encountered
	under low memory conditions).  From OpenBSD.
2002-08-16 09:10:43 +00:00
joe
2925e337b8 Use the hw.usb sysctl tree instead of debug.usb.
Requested by:	imp
2002-08-08 12:05:51 +00:00
joe
9f844c45b8 Replace the FOO_DEBUG definitions with USB_DEBUG, and switch the
debugging levels to off by default.  Now that debug levels can be
tweaked by sysctl we don't need to go through hoops to get the
different usb parts to produce debug data.
2002-07-31 14:34:36 +00:00
joe
03e965b480 Get bored with hard coded debug level variables and introduce a debug.usb
sysctl tree for tweaking them real-time.

Reviewed by:	iedowse
2002-07-31 13:33:55 +00:00
joe
b02de3a56c NetBSD have adopted our usage of the DMAADDR macro:
date: 2002/05/28 12:42:39;  author: augustss;
    Change DMAADDR macro slightly.

Update the $NetBSD$ tags to reflect this and make slight changes to
usb_mem.h so that we're in sync with each other.
2002-05-28 20:51:43 +00:00
joe
334090e937 Correct the usage of DMAADDR in a piece of '#if 0'd code. (The compiler
didn't pick it up.)
2002-05-26 22:13:09 +00:00
joe
514cd97aa3 MFNetBSD:
revision 1.124
    date: 2002/05/26 03:10:02;  author: minoura;  state: Exp;  lines: +3 -3
    Clear done_head in the HCCA *before* acknoledging the interrupt.
    Driver lost some completed transfers under heavy loads.
2002-05-26 22:11:34 +00:00
joe
7a6410c018 MFNetBSD: ohci.c (1.124), uhci.c (1.159), usbdi.c (1.100)
date: 2002/05/19 06:24:31;  author: augustss;  state: Exp;
    Update dma memory access API a little.

NetBSD have adopted our way of using the KERNADDR macro.  Update
the revision tags to show that we're in sync, and remove the casts
that they did in their adaptation.
2002-05-26 22:00:06 +00:00
joe
adc3315c17 Some non-functional changes to make the differences between NetBSD's
and our version clear to see.
2002-04-29 16:23:14 +00:00
mike
99e543a853 Move the new byte order function prototypes from <sys/param.h> to
<sys/endian.h>.  This puts us in line with NetBSD and OpenBSD.
2002-04-26 22:48:23 +00:00
joe
f7712cdcf5 Remove the overt differences between ours and NetBSD's version of this file. 2002-04-07 16:36:30 +00:00
joe
607521b72e Re-add the definitions of htole32(x) and le32toh(x) for OpenBSD. 2002-04-07 15:41:45 +00:00
joe
848ccc6bb4 MFNetBSD:
revision 1.121
    date: 2002/03/16 16:11:18;  author: tsutsui;  state: Exp;  lines: +4 -4
    Fix a couple of typo:
    - s/ehci/ohci/ (in unused arg of macro)
    - s/uhci/ohci/ (in debug message)
2002-04-07 15:18:00 +00:00
joe
942f573c8c MFNetBSD: ohci.c (1.119), ohcivar.h (1.30)
date: 2001/12/31 12:20:35;  author: augustss;
    Change xfer abort to wait for the softintr to run.
2002-04-07 15:16:31 +00:00
joe
4e8d2719f4 MFNetBSD:
revision 1.118
    date: 2001/12/27 18:48:28;  author: augustss;  state: Exp;  lines: +24 -5
    Add some DIAGNOSTIC stuf that I forgot.  From Nate Williams.
2002-04-07 15:12:07 +00:00
joe
8e37b24dea MFNetBSD:
revision 1.117
    date: 2001/12/27 11:27:11;  author: augustss;  state: Exp;  lines: +5 -3
    Update a comment.
2002-04-07 15:08:39 +00:00
joe
f8500fe758 MFNetBSD:
revision 1.116
    date: 2001/11/21 08:18:40;  author: augustss;  state: Exp;  lines: +30 -3
    Pay more attention to if the HC is being unplugged.
2002-04-07 15:07:23 +00:00
joe
82d02ca76b MFNetBSD: ohci.c (1.114), ohcivar.h (1.29)
date: 2001/11/21 02:41:18;  author: augustss;
    Use a task to perform the timeout abort so we have a process context when
    sleeping.
2002-04-07 14:57:31 +00:00
joe
5d748e8d74 MFNetBSD:
revision 1.113
    date: 2001/11/21 02:39:31;  author: augustss;  state: Exp;  lines: +10 -4
    Some more debug stuff.
2002-04-07 14:53:52 +00:00
joe
6ef5bd233e MFNetBSD: ohci.c (1.112), uhci.c (1.147)
date: 2001/11/21 02:38:35;  author: augustss;
    Cast some args to bitmask_snprintf().
2002-04-07 14:49:14 +00:00
joe
2b474c9f53 MFNetBSD: ohci.c (1.111), uhci.c (1.146)
date: 2001/11/20 21:12:46;  author: augustss;
    Don't bother with interrupts when being disconnected.
2002-04-07 14:45:38 +00:00
joe
ee793d97cc MFNetBSD: ohci.c (1.101), ohcivar.h (1.26)
revision 1.101
    date: 2001/02/20 15:20:32;  author: minoura;
    Re-initialize some registers after resuming from suspend.
    Some APM BIOSes do not restore them.
    Reviewd by augustss.
2002-04-07 14:40:15 +00:00
joe
e8fee4ec6a MFNetBSD:
revision 1.97
    date: 2000/12/31 14:29:54;  author: augustss;  state: Exp;  lines: +17 -3
    Make the controller survive suspend/resume.  Thanks to Steve Woodford
    <steve@mctavish.co.uk> for testing.
2002-04-07 14:34:23 +00:00
joe
f4e30c6cd6 MFNetBSD:
revision 1.95
    date: 2000/12/13 03:09:06;  author: augustss;  state: Exp;  lines: +19 -3
    Make the ohci driver not hang suspend/resume.  It still doesn't resume
    correctly.  From itohy@netbsd.org (ITOH Yasufumi) PR kern/11714.
2002-04-07 14:31:03 +00:00
joe
15941fbd97 MFNetBSD: ohci.c (1.100), ohcivar.h (1.25)
ohci.c
    revision 1.100
    date: 2001/01/28 16:18:09;  author: augustss;  state: Exp;  lines: +7 -2
    Put a rate limiter on the scheduling overrun message.

ohcivar.h:
    revision 1.25
    date: 2001/01/28 19:01:20;  author: augustss;  state: Exp;  lines: +4 -1
    Commit second half of rate limit change.
2002-04-07 14:25:02 +00:00
joe
2432878dc3 MFNetBSD:
revision 1.110
    date: 2001/11/20 16:08:10;  author: augustss;  state: Exp;  lines: +5 -4
    Use longer reset for root hubs (as told in the spec).
2002-04-07 11:42:39 +00:00
joe
ca6fcfb6a4 MFNetBSD: ohci.c (1.109), uhci.c (1.144), uhub.c (1.56), usb.c (1.57),
usbdi.c (1.86), usbdivar.h (1.66)
	  [Some partial, because most of this was merged in a while ago]

    date: 2001/11/20 13:48:03;  author: augustss;
    Keep track of device speed for USB 2.0.
2002-04-07 11:19:05 +00:00
joe
f74fcb3feb MFNetBSD:
revision 1.107
    date: 2001/11/10 17:09:28;  author: augustss;  state: Exp;  lines: +31 -26
    Improve dump routines.
2002-04-07 10:24:52 +00:00
joe
ee5b0edc36 MFNetBSD:
revision 1.106
    date: 2001/11/09 15:01:57;  author: augustss;  state: Exp;  lines: +73 -57
    Fix a bug in xfer abort processing when the HC executes ahead of what
    the driver aborts.
    Don't block RHSC interrupts.
2002-04-07 10:21:16 +00:00
joe
adeacffe3b MFNetBSD:
revision 1.105
    date: 2001/11/07 02:55:04;  author: augustss;  state: Exp;  lines: +17 -3
    Improve some debug messages.
2002-04-07 10:12:40 +00:00
joe
6a645c6e26 MFNetBSD: ohci.c (1.104), ohcireg.h (1.28)
date: 2001/09/28 23:57:21;  author: augustss;
    Reenable RHSC interrupt after one second so hot plugging works.
    (From OpenBSD.)
2002-04-07 10:09:23 +00:00
joe
f502b9b788 MFNetBSD:
revision 1.103
    date: 2001/09/11 07:00:19;  author: augustss;  state: Exp;  lines: +4 -1
    Don't go top mode OPERATIONAL (before reset) on startup even
    if BIOS claims to have initialized the controller.
2002-04-07 10:04:16 +00:00
joe
c7075e245c MFNetBSD:
revision 1.102
    date: 2001/04/01 15:00:29;  author: augustss;  state: Exp;  lines: +3 -1
    Add two missing splx() (inside DIAGNOSTIC).  From OpenBSD.
2002-04-07 10:02:45 +00:00
phk
beae6a9ce5 Make LINT compile again. 2002-04-05 17:45:47 +00:00
joe
0ddcf62ed5 MFNetBSD: ohci.c (1.99), uhci.c (1.133), usb.c (1.49), usb_port.h
(1.39), usbdi.c (1.79), usbdi.h (1.47), usbdivar.h (1.62)

    date: 2001/01/21 02:39:52;  author: augustss;
    Add code to use soft interrupt to handle USB interrupt processing.
    Don't enable the code since it doesn't work with the kludgy Ethernet
    drivers.
2002-04-01 21:34:01 +00:00
joe
c043732a32 MFNetBSD: Update many URLs. 2002-04-01 21:13:22 +00:00
joe
610d83202b MFNetBSD: ohci.c rev 1.94, uhci.c rev 1.126
date: 2000/11/10 14:11:49;  author: augustss;
    Update frlengths after a isoc transfer.
    Suggested by Yuri <yuri@tsoft.com>
2002-04-01 20:01:41 +00:00
joe
a489313841 MFNetBSD: ohci.c rev 1.92, uhci.c rev 1.122 (part)
date: 2000/08/08 19:51:46;  author: tv;  state: Exp;  lines: +24 -13
    %b -> bitmask_snprintf()

    Because this code is shared, add a macro for bitmask_snprintf()
    that should expand to the equivalent snprintf() on non-NetBSD
    systems. This is only used in ?HCI_DEBUG cases anyway.
2002-04-01 19:42:51 +00:00
joe
a8d3735e78 Use ANSI prototypes and declarations.
Update $NetBSD$ idents to better reflect reality.
2002-04-01 19:01:09 +00:00
joe
44891868e6 Merge from NetBSD:
----------------------------
	revision 1.90
	date: 2000/05/08 18:28:46;  author: thorpej;  lines: +8 -3
	Quiet some uninitialized variable warnings that do in fact
	look legitimate.
	----------------------------
2002-04-01 13:28:49 +00:00
joe
72fef638b5 Add a clarifying comment (from NetBSD).
Update the $NetBSD$ ident to reflect reality.
2002-04-01 13:26:27 +00:00
joe
cf854fb3af Merge from NetBSD:
ohci.c (1.85), ohcireg.h (1.17):

	----------------------------
	date: 2000/04/01 09:27:35;  author: augustss;
	Add a delay before reading the number of ports from the controller to
	avoid getting 0 from it.
	----------------------------
2002-04-01 13:21:43 +00:00
joe
e7a842df9f Merge from NetBSD:
ohci.c (1.83), ohcireg.h (1.16), ohcivar.h (1.21)

	===================================================================
	date: 2000/03/29 01:46:26;  author: augustss;
	A first stab at support for isochronous transfers.
	===================================================================
2002-04-01 13:18:11 +00:00
joe
6c63fbbb0c Merge from NetBSD:
ohcivar.h (1.22), uhcivar.h (1.29):
	============================================================
	date: 2000/04/25 09:20:55;  author: augustss;
	Move the size of the mapped bus_space region into the bus
	independent softc.
	============================================================

ohci.c (1.88), uhci.c (1.112):
	============================================================
	date: 2000/04/25 14:28:13;  author: augustss;
	Insert (very conservative!) bus_space_barrier() calls at
	all register accesses.
	The bus_space(9) man page says you've gotta have them...
	============================================================
2002-03-16 12:44:21 +00:00