20789 Commits

Author SHA1 Message Date
yongari
af9841a11e It seems some 82559ER controllers do not support Rx checksum
offloading. Datasheet said nothing about the limitation of 82559ER
except WOL. Explicitly disable Rx checksum offloading for
controllers that is known to lack the capability.

PR:	kern/138135
Tested by:	Gooderum, Mark < mgooderum <> websense dot com >
2009-09-28 19:40:16 +00:00
yongari
4d695cf281 Remove unnecessary device reinitialization. 2009-09-28 19:33:52 +00:00
thompsa
ab04ac3fe9 Add back endpoint swap detection that was disabled in an earlier driver
conversion.

Submitted by:	Hans Petter Selasky
2009-09-28 08:18:14 +00:00
thompsa
f54adffeaf Add new FTDI IDs.
Submitted by:	Maks Verver, Arrigo Marchiori
2009-09-28 08:15:26 +00:00
thompsa
13d838412e Add experimental support for usb serial console and polled mode during DDB.
Submitted by:	Hans Petter Selasky
2009-09-28 08:13:50 +00:00
thompsa
d391f7f701 Add a config number quirk for the ELSA_MODEM1
Submitted by:	Stefan Bethke
2009-09-28 08:09:11 +00:00
thompsa
8a5af25984 add more device IDs
Reported by:	Mike Tancsa
Submitted by:	Hans Petter Selasky
2009-09-28 08:07:20 +00:00
thompsa
1115627740 Allow setting of MAC address for AXE based ethernet adapters.
Submitted by:	yongari
2009-09-28 08:05:14 +00:00
thompsa
7c784df5df Increase the rx buffer size to 16384 bytes, this increases RX performance from
50Mbps to 220Mbps on PLANEX GU-1000T.

Submitted by:	yongari
2009-09-28 08:03:52 +00:00
thompsa
225d046f41 - Remove SAMSUNG_YP_U2 now that it is in the cam layer
- Add quirk from Tobias Grosser for Western Mypassword

Submitted by:	Hans Petter Selasky
2009-09-28 08:00:17 +00:00
thompsa
f0ee409396 MFp4
Add new usbdev entries for Marvell, FTDI, Option and Western.
2009-09-28 07:57:23 +00:00
thompsa
fe6300971a Add basic support for USB Network Control Model (NCM) v1.0 to if_cdce.c.
http://www.usb.org/developers/devclass_docs/NCM10.zip

Submitted by:	Hans Petter Selasky
2009-09-28 07:53:55 +00:00
thompsa
f23c472dc2 Add extra safety locking when clobbering xfer->flags_int.started in start and
stop functions, because xfer->flags_int is also updated by the USB controller,
under the controller lock.

Submitted by:	Hans Petter Selasky
2009-09-28 07:46:22 +00:00
thompsa
0e8d1eea65 Correct buffer sizes used so that they match. The old code could give the
impression that a overflow situation existed but was not possible.

Reported by:	kib
Submitted by:	Hans Petter Selasky
2009-09-28 07:42:59 +00:00
thompsa
20d69c073b Add support for USB language selection.
PR:		usb/138563
Reported by:	Bruce Cran
Submitted by:	Hans Petter Selasky
2009-09-28 07:41:17 +00:00
thompsa
430f344730 Fix NULL-pointer dereference in usb_endpoint_foreach().
PR:		usb/138389
Submitted by:	Patroklos Argyroudis at census, inc
2009-09-28 07:39:51 +00:00
thompsa
af97dcb823 Add support for ChipHead 341 serial port adapter.
Submitted by:	Hans Petter Selasky
2009-09-28 07:32:11 +00:00
thompsa
313dce25ce Clear all interrupts rather than just SETUP packet.
Submitted by:	Hans Petter Selasky
2009-09-28 07:10:32 +00:00
thompsa
9566db332f Simplify logic around setting EHCI_QH_DTC and expand some htohc32(temp.sc, 0)
statements to zero.

Submitted by:	Hans Petter Selasky
2009-09-28 07:09:17 +00:00
thompsa
1e9eba768b Import two PCI quirks from Linux
- Add quirk for ATI SB600 and SB700 to free SMB controller
 - Correct schedule sleep time to 10us on the VIA ehci controller

Reported by:	Dorian B<FC>ttner, Andriy Gapon
Submitted by:	Hans Petter Selasky
2009-09-28 07:06:47 +00:00
thompsa
d0aa741310 MFp4 @ 168387
- clean up USB detach logic. There seems to be some problems detaching multiple
  USB HUBs connected in series from the root.

- after this patch the rule is:
  1) Always use device_detach() on the USB HUB first.
  2) Never just device_delete_child() on the USB HUB, because that function
  will traverse to all the device leaves and free them first, and then the USB
  stack will free the devices twice which doesn't work very well.

- make sure the did DMA delay gets set after the timeout has elapsed to make
  logic more clear. There is no functional difference.

Submitted by:	Hans Petter Selasky
2009-09-28 07:01:54 +00:00
ed
9ed9beeb2c Add support for VT200-style mouse input.
Right now if applications want to use the mouse on the command line,
they use sysmouse(4) and install a signal handler in the kernel to
deliver signals when mouse events arrive. This conflicts with my plan to
change to TERM=xterm, so implement proper VT200-style mouse input.

Because mouse input is now streamed through the TTY, it means you can
now SSH to another system on the console and use the mouse there as
well. The disadvantage of the VT200 mouse protocol, is that it doesn't
seem to generate events when moving the cursor. Only when pressing and
releasing mouse buttons.

There are different protocols as well, but this one seems to be most
commonly supported.

Reported by:	Paul B. Mahol <onemda gmail com>
Tested with:	vim(1)
2009-09-27 18:19:41 +00:00
jkim
6f26f72e08 Copy apm(4) emulation from sys/i386/acpica/acpi_machdep.c and
install apm(8) and apm_bios.h on amd64.
2009-09-27 14:00:16 +00:00
ed
b69a48a63f Add 256 color support.
It is quite inconvenient that if an application for xterm uses 256 color
mode, text suddenly starts to blink (because of ;5; in the middle).
We'd better just implement 256 color mode and add a conversion routine
from 256 to 8 color mode, which doesn't seem to be too bad in practice.

Remapping colors is done quite simple. If one of the channels is most
actively represented, primary colors are used. If two channels are most
actively represented, secondary colors are used. If all three channels
are equal (gray), it picks between black and white.

Reported by:	Paul B. Mahol <onemda gmail com>
2009-09-26 15:26:32 +00:00
bz
4c721eede8 lindev(4) [1] is supposed to be a collection of linux-specific pseudo
devices that we also support, just not by default (thus only LINT or
module builds by default).

While currently there is only "/dev/full" [2], we are planning to see more
in the future.  We may decide to change the module/dependency logic in the
future should the list grow too long.

This is not part of linux.ko as also non-linux binaries like kFreeBSD
userland or ports can make use of this as well.

Suggested by:	rwatson [1] (name)
Submitted by:	ed [2]
Discussed with:	markm, ed, rwatson, kib (weeks ago)
Reviewed by:	rwatson, brueffer (prev. version)
PR:		kern/68961
MFC after:	6 weeks
2009-09-26 12:45:28 +00:00
jkim
ecf0add58c Fix couple of style nits missed in the previous commit. 2009-09-25 20:06:31 +00:00
jkim
1e05d21cdd - Use x86bios_offset() instead of BIOS_PADDRTOVADDR() macro.[1]
- Clear all registers before calling real mode interrupt handlers as we did
for dpms and vesa and re-enable the function as it should be fixed by this.
- Tidy up register access.  For example, when we call INT 0x15, AH=0xc0,
we used to initialize AX=0xc000 to clear AL at the same time but it is
very confusing.  We don't have to do this any more because we are explicitly
clearing all registers now.
- Check size of system configuration table although it is almost always 8.
This is to make sure we are not reading some random low physical memory.
Hopefully it is just zero in that case. :-)
- Fix some style nits and add more comments.

Submitted by:	paradox (ddkprog yahoo com)[1]
2009-09-25 19:49:07 +00:00
jkim
730c4fcb79 Reject some VESA graphics modes if the controller does not have enough
memory to support them.  Some adapters have expansible memory slots but
video mode table is static.  In this case, unusable modes may be reported.

Submitted by:	paradox (ddkprog yahoo com) (initial patch)
2009-09-25 18:08:38 +00:00
delphij
3459978671 Fix LINT build. 2009-09-25 02:19:57 +00:00
jkim
3bdf7a1c80 Initialize registers to zero before calling the interrupt handlers inside
emulator as we did in r197424 for vesa.

Submitted by:	paradox (ddkprog yahoo com)
2009-09-24 20:23:24 +00:00
jkim
f5566212dc Some broken VESA BIOSes, e.g., IBM T23, return wrong value from
vesa_bios_get_line_length() in graphics mode.  Always calculate the value
from known video info instead.

Submitted by:	paradox (ddkprog yahoo com)
2009-09-24 20:10:00 +00:00
jkim
54c804074e - Use FreeBSD function naming convention.
- Change x86biosCall() to more appropriate x86bios_intr().[1]

Discussed with:	delphij, paradox (ddkprog yahoo com)
Submitted by:	paradox (ddkprog yahoo com)[1]
2009-09-24 19:24:42 +00:00
yongari
15d9d0a9d2 Align Tx/Rx descriptors on 32 bytes boundary instead of PAGE_SIZE.
Also align setup descriptor on 32 bytes boundary. Tx buffer have no
alignment limitation so create dmamap without alignment
restriction[1]. Rx buffer still seems to require 4 bytes alignment
limitation but we can simply use MCLBYTES for size to map the
buffer instead of TULIP_DATA_PER_DESC as the buffer is allocated
with m_getcl(9).
de(4) supports up to TULIP_MAX_TXSEG segments for Tx buffers,
increase maximum dma segment size to TULIP_MAX_TXSEG * MCLBYTES.
While I'm here remove TULIP_DATA_PER_DESC as it is not used anymore.

This should fix de(4) breakage introduced after r176206.

Submitted by:	jhb [1]
Reported by:	WATANABE Kazuhiro < CQG00620 <> nifty dot ne dot jp >
Tested by:	WATANABE Kazuhiro < CQG00620 <> nifty dot ne dot jp >,
		Takahashi Yoshihiro < nyan <> jp dot freebsd dot org >
2009-09-24 17:53:00 +00:00
yongari
39fa231fbd Destroy dmamap in dma cleanup. 2009-09-24 17:11:41 +00:00
yongari
e2f2d3f5c5 Consistently use bus_addr_t. 2009-09-24 17:07:04 +00:00
yongari
2109203e5b Use __NO_STRICT_ALIGNMENT to determine whether de(4) have to apply
alignment fixup code for received frames on strict alignment
architectures.
2009-09-24 16:57:35 +00:00
jhb
5744bc1d8c Remove unnecessary locking from attach(). This fixes a LOR between the
acpi_ibm lock and the sysctl lock.

MFC after:	3 days
2009-09-24 16:51:56 +00:00
avg
96f7c01c8c number of cleanups in i386 and amd64 pci md code
o introduce PCIE_REGMAX and use it instead of ad-hoc constant
o where 'reg' parameter/variable is not already unsigned, cast it to
  unsigned before comparison with maximum value to cut off negative
  values
o use PCI_SLOTMAX in several places where 31 or 32 were explicitly used
o drop redundant check of 'bytes' in i386 pciereg_cfgread() - valid
  values are already checked in the subsequent switch

Reviewed by:	jhb
MFC after:	1 week
2009-09-24 07:11:23 +00:00
jkim
4f6b75d358 Move sys/dev/x86bios to sys/compat/x86bios.
It may not be optimal but it is clearly better than the old place.

OK'ed by:	delphij, paradox (ddkprog yahoo com)
2009-09-23 20:49:14 +00:00
jkim
8f4cddf2f3 - Use spin lock instead of default mutex for safety. INT/IRET instructions
save/clear/restore flags but emulated flags have no effect on the host.
I believe BIOS writers never meant to run their code in emulated
environment with interrupt enabled. :-)
- Use memcpy(3) instead of copying individual members.  I believe struct
x86regs was intentionally copied from the first half of struct x86emu_regs
for this very purpose.
- Fix some style nits and consistencies.

Reviewed by:	delphij, paradox (ddkprog yahoo com)
2009-09-23 20:13:36 +00:00
rpaulo
0ac2765e98 Replace 'can not' with 'cannot' so that we use 'cannot' everywhere. 2009-09-23 17:48:16 +00:00
jhb
3f9fa059d7 Extract the code to find and map the MADT ACPI table during early kernel
startup and genericize it so it can be reused to map other tables as well:
- Add a routine to walk a list of ACPI subtables such as those used in the
  APIC and SRAT tables in the MI acpi(4) driver.
- Move the routines for mapping and unmapping an ACPI table as well as
  mapping the RSDT or XSDT and searching for a table with a given signature
  out into acpica_machdep.c for both amd64 and i386.
2009-09-23 15:42:35 +00:00
jhb
db54026572 Uninline an instance of STAILQ_FOREACH_SAFE(). 2009-09-23 15:39:54 +00:00
delphij
5f1ec7efd7 Initialize registers to zero before calling the interrupt handlers inside
emulator.  This fixes VESA related freeze observed on some systems.

Submitted by:	paradox <ddkprog yahoo com>
2009-09-23 02:45:02 +00:00
mav
d58971bf9a Lock bus scan. 2009-09-22 22:20:43 +00:00
delphij
9258fa96c6 Temporarily disable typematic retrieving code until we get a real fix,
which currently causes hangs in some configurations.

Reported by:	joel
Submitted by:	swell.k at gmail.com
2009-09-22 20:12:10 +00:00
jhb
aefeeea8bf The elements in the component arrays may be direct Package objects rather
than references to objects.  In that case, simply use the Package directly.

I think a recent change to ACPI-CA is causing the interpreter to
automatically expand these references.

Reported by:	Olivier Smedts  olivier gid0 org
MFC after:	3 days
2009-09-22 18:34:23 +00:00
rpaulo
4d7a22b3ee Reserve events for XScale.
Reviewed by:	jkoshy, gnn
MFC after:	1 week
2009-09-22 17:45:28 +00:00
rdivacky
28435a4f36 Change the command argument to ioctl routines to u_long to avoid
truncating the command to 32bit on 64bit archs where int is 32bit
(ie. amd64).

Approved by:	scottl
Approved by:	ed (mentor, implicit)
2009-09-22 16:28:07 +00:00
jhb
335809a00b Don't reread the command register to see if enabling I/O or memory
decoding "took".  Other OS's that I checked do not do this and it breaks
some amdpm(4) devices.  Prior to 7.2 we did not honor the error returned
when this failed anyway, so this in effect restores previous behavior.

PR:		kern/137668
Tested by:	Aurelien Mere  aurelien.mere  amc-os.com
MFC after:	3 days
2009-09-22 15:43:03 +00:00