Commit Graph

19686 Commits

Author SHA1 Message Date
Rafal Jaworowski
000d6fb9d9 MFC r199580:
tsec: Use IFQ_DRV macros for managing interface packet queue.

This lets tsec(4) work with ALTQ.

Submitted by:	Marcin Ligenza
2009-11-27 13:38:59 +00:00
Attilio Rao
08742bd257 MFC r199260:
Add sysctls in ahd(4) in order to keep track of different classes of
errors. So far 3 different classes are present (correctable,
uncorrectable and fatal) but more can be added easilly.

Sponsored by:	Sandvine Incorporated
2009-11-27 02:47:49 +00:00
Alexander Motin
c68cd0c40d MFC r199043:
Introduce hw.hptrr.attach_generic loader tunable to deny hptrr driver
attach chips with generic Marvell (non-HighPoint) PCI identification.
These chips are also supported by ata(4). Some vendors, like Supermicro,
are using same chips without providing HPT RAID BIOS.

PR:		kern/120842, kern/136750
2009-11-26 15:16:03 +00:00
Alexander Motin
0264833689 MFC r199645, r199646:
Fix Intel PATA UDMA timings setting, affecting write performance.
Binary divider value 10 specified in datasheet is not a hex 0x10.
UDMA2 should be 33/2 instead of 66/4, which is documented as reverved,
UDMA4 should be 66/2 instead of 66/4, which is definitely wrong.
Release over-agressive WDMA0 mode timings as close to spec as chip can.
2009-11-26 14:56:58 +00:00
Alexander Motin
052c5232f5 MFC r199749:
Use only lower byte of sectors_intr IDENTIFY word as sector count.
This fixes SET_MULTI error during boot on devices supporting less then
16 sectors per interrupt.
2009-11-26 14:50:01 +00:00
Alexander Motin
70f426fe84 MFC r199717:
Do not attach JMicrons with single PCI function. They are not working as
AHCI for some reason, even when declaring so. Let atajmicron configure
them for us and provide PATA support.
2009-11-26 08:29:02 +00:00
Rui Paulo
6772a8e0d0 MFC r199491:
Add WorldB SKU.
2009-11-25 14:54:58 +00:00
Kip Macy
7d326ccdfc remove gratuitous comment 2009-11-25 01:51:07 +00:00
Kip Macy
0039b95019 MFC core dump support 2009-11-25 01:50:17 +00:00
Alexander Motin
506ef9edb8 MFC r199258:
Add more codec IDs.
2009-11-23 09:28:16 +00:00
Alexander Motin
2c5d7e80c6 MFC r197611, r197640:
- Add some bits of HDMI/DisplayPort support from later specification updates.
It may be not enough to make them work, but at least should give some
information about these beasts.
- Add Realtek ALC887 codec ID.
2009-11-23 09:26:30 +00:00
Alexander Motin
c1ebbbc962 MFC r197018:
Add NVidia MCP89 HDA controller IDs.
2009-11-23 09:22:38 +00:00
Alexander Motin
95eaf85a77 MFC r197017:
Add Intel 82801JD (one more ICH10) HDA controller ID.
2009-11-23 09:21:35 +00:00
Alexander Motin
510e0aaa49 MFC r196762:
Improve HDA controller capabilities logging.
2009-11-23 09:20:33 +00:00
Alexander Motin
8f51326c68 MFC r199259, r199262, r199322:
Change the way in which AHCI+PATA combined controllers, such as JMicron
are handled. Instead of trying to attach two different drivers to
single device, wrapping each call, make one of them (atajmicron)
attach do device solely, but create child device for AHCI driver,
passing it all required resources. It is quite easy, as none of
resources are shared, except IRQ.
Add support for AHCI SATA parts of alike SATA+PATA MArvell controllers.
Add IDs of Marvell 88SX6102, 88SX6111. 88SX6141 controllers.

As result, it:
- makes drivers operation more independent and straitforward,
- allows to use new ahci(4) driver with such devices, adding support for
new features, such as PMP and NCQ, same time keeping legacy PATA support,
- will allow to just drop old ataahci driver, when it's time come.
2009-11-23 08:56:17 +00:00
Alexander Motin
0cde70967f MFC r198752:
Allow SATA1 SiI chips to do full-sized DMA. Specification tells that we may
release DMA constrants even more, but it require some additional handling.
2009-11-23 08:46:26 +00:00
Alexander Motin
555a8009dd MFC r198717:
- Remove most of direct relations between ATA(4) peripherial and controller
levels. It makes logic more transparent and is a mandatory step to wrap
ATA(4) controller level into ATA-native CAM SIM.
- Tune AHCI and SATA2 SiI drivers memory allocation a bit to allow bigger
I/O transaction sizes without additional cost.
2009-11-23 08:45:17 +00:00
Alexander Motin
7c1a88d4f8 MFC r199333:
Do not require payload data to be aligned. It is not mentioned in datasheet
and works fine in practice.
2009-11-17 21:28:59 +00:00
Alexander Motin
c263e77659 MFC r199278:
Check SNCQ HBA capability bit when reporting NCQ support to CAM.
2009-11-17 21:27:21 +00:00
Alexander Motin
99695a07ce MFC r199178:
- Move tagged queueing control from ADA to ATA XPT. It allows to control
  device command queue length correctly. First step to support < 32 tags.
- Limit queue for non-tagged devices by 2 slots for ahci(4) and siis(4).
- Implement quirk matching for ATA devices.
- Move xpt_schedule_dev_sendq() from header to source file.
- Move delayed queue shrinking to the more expected place - element freeing.
- Remove some SCSIsms in ATA.
2009-11-17 21:23:05 +00:00
Alexander Motin
4799e6b756 MFC r199176:
Add set of chip IDs, known to support AHCI.
2009-11-17 21:21:27 +00:00
Alexander Motin
f629df5749 MFC r199132:
Organize device IDs and add some more of them.
2009-11-17 21:20:19 +00:00
Alexander Motin
ecc2f2f455 MFC r198896:
Do not unarm callout on request completion and change slot selection
algorithm as done in ahci(4). This saves some CPU time on high request
rates.
2009-11-17 21:00:02 +00:00
Alexander Motin
d54c3c6363 MFC r198852:
- Rework timeout handling, to make it more graceful for devices sharing
controller port (with PMP). Wait for other commands completion/timeout
before initiating recovery.
- Handle timeouts and fatal errors with port hard-reset. The rest of
recovery will be done by XPT on receiving async event. More gracefull
per-device soft-reset recovery can be implemented later.
2009-11-17 20:59:00 +00:00
Alexander Motin
bf60b82344 MFC r198851:
- Handle timeouts and fatal errors with port hard-reset. The rest of
recovery will be done by XPT on receiving async event. More gracefull
per-device soft-reset recovery can be implemented later.
- Add workaround for ATI SB600/SB700 PMP probe related bug, to speedup boot.
2009-11-17 20:57:35 +00:00
Alexander Motin
e587ad07dc MFC r198426:
Reimplement device reset sequence in more controller-specific way.
2009-11-17 20:35:29 +00:00
Alexander Motin
47a0c6b476 MFC r198390:
Revert interrupt reason check order back.
ATAPI errors may set IF bit together with TFE.
2009-11-17 20:19:20 +00:00
Alexander Motin
2ab5a453f6 MFC r198321
Freeze device queue on error to permit periph driver to do proper recovery.
2009-11-17 19:42:06 +00:00
Alexander Motin
8f5dee240e MFC r198319:
On error, freeze device queue, to allow periph driver to do proper recovery.
Freeze SIM queue only in some cases, when it is needed to protect SIM.

Implement better command timeout detection logic for non-queued commands.
This fixes false positives when command with short timeout waiting for the
long one. For example, when hald tastes CD during burning process.

Read and clear SERR register on interrupt.
2009-11-17 19:40:39 +00:00
Alexander Motin
01007372f2 MFC r197838:
On command timeout handle frozen command first, to not run it inside
XXX_end_transaction().
2009-11-17 19:36:06 +00:00
Alexander Motin
db581aa0e3 MFC r198322:
Report real max_target = 15. SIM doesn't need to know that target 15 is PMP.
It is XPT business.
2009-11-17 14:49:35 +00:00
Alexander Motin
b06be4e00c MFC r196907:
To save small bit of CPU time, hide part of SNTF register read latency
behind other reads.
2009-11-17 14:47:40 +00:00
Bjoern A. Zeeb
422426a5f1 MFC r198049:
Immediately after clearing a pending callout that didn't make it due
  to the lock we hold, disable interrupts, and announce to the firmware
  that we are shutting down. Especially do this before disabling blocks.

  This makes some types of machines with asf enabled no longer hang upon
  boot, when we start configuring the interface.

PR:	i386/96382, kern/100410, kern/122252, kern/116328
2009-11-17 14:30:09 +00:00
Alexander Motin
b882e0398e MFC r199074:
Add more ICH10 chip IDs.
2009-11-17 12:30:06 +00:00
Alexander Motin
dfa1c364b8 MFC r198583:
Add some magic taken from OS X and Linux to support early revision K2
SATA controllers, like those found on the G5 Xserve.
2009-11-17 12:25:34 +00:00
Alexander Motin
3f2bdafd97 MFC r198582:
Turn off use of ATA_A_4BIT on modern hardware. This flag was already
obsoleted in 1996 by ATA-2, and crashes some modern hardware like some
revisions of the Serverworks K2 SATA controller. Even very ancient
hardware seems not to require it. In the unlikely event this causes
problems, the previous behavior can be re-enabled by defining
ATA_LEGACY_SUPPORT at the top of this file.
2009-11-17 12:23:14 +00:00
Alexander Motin
ba0e41c3cc MFC r198519:
Don't ignore the return value of g_modevent() in acd_modevent().
2009-11-17 12:18:14 +00:00
Andriy Gapon
7a04f19803 MFC r199015: ichwd: don't attach to isa pnp device(s) by accident 2009-11-17 09:35:13 +00:00
Jack F Vogel
95d8c74501 On a 32 bit kernel the igb driver may cause a page
fault panic due to a failed bounce page allocation
during RX mbuf setup. The large demand on bounce pages
is due to the alignment requirement in the tag. This
restriction was removed in the ixgbe driver with no
ill effects and so is being removed here also.
2009-11-16 18:58:45 +00:00
Stanislav Sedov
5b7c45037d - MFC r198320:
Introduce new option BCE_JUMBO_HDRSPLIT that allows user to enable header
  in bce(4) instead of (ab)using ZERO_COPY_SOCKETS that was not
  into if_bce.c anyway.  It is disabled by default.
2009-11-15 11:30:59 +00:00
Navdeep Parhar
bbec3bb581 MFC r197791
cxgb(4) updates, including:
- support for the new Gen-2, BT, and LP-CR cards.
- T3 firmware 7.7.0
- shared "common code" updates.
2009-11-12 00:20:31 +00:00
Navdeep Parhar
585be673c5 MFC r197043 2009-11-11 22:31:02 +00:00
Andrew Thompson
41de786582 MFC r199058
Integrate lost interrupts patch from the old USB stack.

 Some EHCI chips from VIA / ATI seem to trigger interrupts before writing back
 the qTD status, or miss signalling occasionally under heavy load.  If the host
 machine is too fast, we can miss transaction completion - when we scan the
 active list the transaction still seems to be active. This generally exhibits
 itself as a umass stall that never recovers.

 We work around this behaviour by setting up this callback after any softintr
 that completes with transactions still pending, giving us another chance to
 check for completion after the writeback has taken place

Submitted by:	Alexander Nedotsuko
2009-11-11 01:33:06 +00:00
Alexander Motin
58ad43feb1 MFC r198486, r199050:
Increase ATA command timeouts. Introduce define and kernel option
ATA_REQUEST_TIMEOUT to control it.

PR:		kern/111023
2009-11-10 22:37:44 +00:00
Xin LI
ce5c80071f MFC revision 199069:
Initialize the whole message unit's DMA buffer to zero, this fixes a panic
during boot when ARC1200 is being used with certain motherboard models.

This commit brings the driver to the same state of vendor's 1.20.00.16
release.  Many thanks to Areca for their continued support to FreeBSD.

This instant MFC was requested by re@ (kensmith) in preparation for
8.0-RC3.

Reported by:	Jirka Mikulas <jiri mikulas com>
Submitted by:	Erich Chen (Areca)
2009-11-10 00:34:25 +00:00
Ken Smith
973e10a816 MFC r198719:
> While certain supported Symbios/LSI SCSI chips (532c896, 53c1000, 53c1010)
> do support 64bit addresses, the current SCRIPTS code supports only 32bit
> addresses causing data corruption for buffer addresses >4GB. This problem
> affects 64bit machines with more than 4GB RAM or amd64 with 4GB and
> memory hole remapping.
> Work-around this problem with a bus_dma tag that requests bounce-buffers
> for addresses >4GB. This causes some overhead, but given the maximum SCSI
> bus speed of 160MB/s compared, the effect should hardly be noticeable.
> The problem was reported by Mike Watters (mike at mwatters net) who also
> verified that this fix cures the problem.
>
> Since this change is a NOOP on systems with less than 4GB RAM and fixes
> data corruption (in RAM and on disk) on systems with more than 4GB, I hope
> that this change is accepted for 8.0.

Requested by:	Stefan Esser (se at freebsd dot org)[1]
Reviewed by:	jhb, scottl

[1] Stefan requested this be part of 8.0 but has been unavailable to do
    the MFC since submitting the request.  We want to get 8.0-RC3 started
    so I'm doing the merges with re@ hat on.
2009-11-09 18:09:10 +00:00
Ulf Lilleengen
6ab1fc9fb1 MFC r198475:
- Add support for Marvell Yukon 88E8042 device.

Submitted by:   Mario Lobo <mlobo -at- digiart.art.br>
2009-11-08 17:59:55 +00:00
Alexander Motin
7d767be8c7 MFC r198818:
Add IDs for nVidia MCP65/77/79/89 SATA conntrollers.
2009-11-08 14:06:15 +00:00
Alexander Motin
cf236d24db MFC r198700:
Add support for different request block format used by Gen-IIe Marvell SATA.
This adds support for Marvell 6042/7042 chips and Adaptec 1430SA controller.

MFC r198718:
Allow newly added controllers to use full I/O sizes.
2009-11-06 10:56:43 +00:00
Alexander Motin
cdcdbef48e MFC r198407:
Do not differentiate 12/16 bytes ATAPI CCB formats when it is not needed.
2009-11-06 10:48:44 +00:00
Alexander Motin
74c174b9a7 MFC r197783:
- Revert r191568 partially.  Forcing AHCI mode by changing device subclass
and progif is evil.  It doesn't work reliably[1] and we should honor BIOS
configuration by the user.
- If the SATA controller is enbled but combined mode is disabled, mask off
the emulated IDE channel on the legacy IDE controller.

Pointed out by:	mav[1]
2009-11-06 10:45:37 +00:00
Christian Brueffer
c4e480716d MFC: r198684
Add support for Adaptec 39320LPE adapters.
2009-11-06 06:50:45 +00:00
Ed Maste
12fbadae8a MFC r198525:
Whitespace fixup: 8 spaces -> tab
2009-11-05 18:34:01 +00:00
Matt Jacob
699050d8d5 Unbreak SBus cards which have been broken (apparently) for a while.
Most of the pieces came from Marius- correct settings for channels
and resource management. The one piece missing was that you cannot
for SBus cards replace 32 bit operations with A64 operations- not
supported. This is an MFC of r198822.
2009-11-05 18:25:26 +00:00
Pyun YongHyeon
0b333599d5 MFC r197586:
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-11-04 18:31:43 +00:00
John Baldwin
6fd3786837 MFC 197772:
When the timeout backoff hits the maximum value, leave it capped at the
maximum value rather than setting it to the result of a boolean expression
that is always true.
2009-11-04 16:58:26 +00:00
Christian Brueffer
efab19fed7 MFC: r198546
Remove spurious `)`
2009-11-04 12:35:35 +00:00
Andrew Thompson
b64689e0fb MFC r198775
Fix a corner case where usbd_transfer_drain() can return too early if the
 callback has dropped the mutex, leading to a panic.

Submitted by:	HPS
2009-11-04 01:50:25 +00:00
Ed Maste
55dd54d73f MFC r197011:
Increase AAC_CMD_TIMEOUT from 30s to 120s to help avoid spurious
  "COMMAND 0x........ TIMEOUT AFTER .. SECONDS" messages.  Any commands
  that get truly stuck will still trigger the warning and the hardware
  health check, just a little bit later.
2009-11-02 16:54:23 +00:00
Ed Maste
af8e9d942c MFC r198541:
Do first controller time sync after 1 minute, as in Adaptec's vendor
  driver.
2009-11-02 16:22:59 +00:00
Robert Noland
de546efdad MFC 198696
Cleanup in r600_blit

     - Don't bother to assign vb until we know we have enough space
     - Add variables for sx2, sy2, dx2, dy2 so that these aren't
       calculated over and over, also reduce chance of errors.
     - Use switch to assign color/format
2009-11-02 16:02:16 +00:00
Robert Noland
1a4d349290 MFC 198695
A bit of cleanup work on radeon_freelist_get()

 * Fix the main loop to search all buffers before sleeping.
 * Remove dead code
2009-11-02 15:59:55 +00:00
Robert Noland
6400e3ac8c MFC 198692
Use system specified memory barriers rather than rolling our own.
2009-11-02 15:57:03 +00:00
Robert Noland
1675ae3b86 MFC 198691
Fix blitter support for RS880 chips
2009-11-02 15:53:32 +00:00
Andriy Gapon
ea9b1909f6 MFC 197450: number of cleanups in i386 and amd64 pci md code 2009-11-01 18:39:26 +00:00
Ed Schouten
f36e7051c7 MFC various commits back to stable/8:
SVN r197174:
  Make sure we never place the cursor outside the screen.

  For some vague reason, it may be possible that scp->cursor_pos exceeds
  scp->ysize * scp->xsize. This means that teken_set_cursor() may get
  called with an invalid position. Just ignore the old cursor position in
  this case.

  Reported by:  Paul B. Mahol <onemda gmail com>

SVN r198213:
  Make lock devices work properly.

  It turned out I did add the code to use the init state devices to set
  the termios structure when opening the device, but it seems I totally
  forgot to add the bits required to force the actual locking of flags
  through the lock state devices.

  Reported by:	ru

SVN r198215, r198217:
  Fix a typo in the jail(8) manpage.

  Submitted by: Jille Timmermans <jille quis cx>

SVN r198216:
  Fix qouting in a comment, to make it look more consistent

  Submitted by: Jille Timmermans <jille quis cx>

SVN r198223:
  Properly set the low watermarks when reducing the baud rate.

  Now that buffers are deallocated lazily, we should not use
  tty*q_getsize() to obtain the buffer size to calculate the low
  watermarks. Doing this may cause the watermark to be placed outside the
  typical buffer size.

  This caused some regressions after my previous commit to the TTY code,
  which allows pseudo-devices to resize the buffers as well.

  Reported by:  yongari, dougb
2009-11-01 10:30:30 +00:00
Christian Brueffer
b7ef6e29a5 MFC: r198327
Add a missing free() call.
2009-10-31 10:59:53 +00:00
Robert Noland
5a3d86c297 MFC r197950
Add pci id's for Intel G41 chipset
2009-10-30 16:43:28 +00:00
Robert Noland
6137518b87 MFC r197951
Add support for Intel G41 chipset
2009-10-30 16:37:58 +00:00
Robert Noland
357a8e800b MFC r196470-196471,197154-197155,197603-197606
Sync radeon drm support

This adds kernel support for r6/7xx 3D.
2009-10-30 16:32:35 +00:00
Robert Noland
d84490b532 MFC r196466
Add a read only sysctl tracking the hw.drm.msi tunable.
2009-10-30 16:14:17 +00:00
Robert Noland
1587b7fc87 MFC r196465
Clean up the handling of device minors
2009-10-30 16:12:28 +00:00
Robert Noland
e7d8e24d0a MFC r196464
Clean up the locking in drm_alloc_resource()
2009-10-30 16:06:32 +00:00
Andrew Thompson
bfa1f203df MFC r198373
Allow dumping the USB mouse reports via 'sysctl -b dev.ums.N.parseinfo',
 previously only available via bootverbose.

PR:		usb/137191
2009-10-29 23:28:48 +00:00
Andrew Thompson
906c96039d MFC r198257
Add support for newer WinChipHead CH341 chips, previously in the uch341 driver.
2009-10-29 23:27:40 +00:00
Andrew Thompson
83c0f67853 MFC r198153
Correct offset calcluation for the NCM implementation.
2009-10-29 23:27:00 +00:00
Andrew Thompson
6a8d0ac969 MFC r198152
Only poll ukbd if KDB is active.
2009-10-29 23:26:29 +00:00
Andrew Thompson
1ea6a20c73 MFC r198151
Workaround buggy BIOS code in USB regard. By doing the BIOS to OS handover for
 all host controllers at the same time, we avoid problems where the BIOS will
 actually write to the USB registers of all the USB host controllers every time
 we handover one of them, and consequently reset the OS programmed values.
2009-10-29 23:25:52 +00:00
Andrew Thompson
b0deb9099b MFC r197999 (hrs)
Fix the 106/109 USB Japanese keyboard "underscore" issue.
 Sun Type 6 USB keyboard support added in rev 1.46 conflicted with
 some scan codes used in Japanese keyboards because the scan code
 conversion routine was ambiguous for the overlapped codes.

PR:		ports/134005
2009-10-29 23:25:13 +00:00
Andrew Thompson
48bd741396 MFC r197573
Add back endpoint swap detection that was disabled in an earlier driver
 conversion.
2009-10-29 23:24:41 +00:00
Andrew Thompson
b56d97e2af MFC r197572
Add new FTDI IDs.
2009-10-29 23:24:10 +00:00
Andrew Thompson
e792954dba MFC r197570
Add experimental support for usb serial console and polled mode during DDB.
2009-10-29 23:23:34 +00:00
Andrew Thompson
6b48cd2444 MFC r197569
Add a config number quirk for the ELSA_MODEM1
2009-10-29 23:22:54 +00:00
Andrew Thompson
589c414bdf MFC r197568
add more device IDs
2009-10-29 23:22:23 +00:00
Andrew Thompson
9d2344fb86 MFC r197567
Allow setting of MAC address for AXE based ethernet adapters.
2009-10-29 23:21:52 +00:00
Andrew Thompson
381882bf15 MFC r197566
Increase the rx buffer size to 16384 bytes, this increases RX performance from
 50Mbps to 220Mbps on PLANEX GU-1000T.
2009-10-29 23:21:20 +00:00
Andrew Thompson
c21bee0c36 MFC r197565
- Remove SAMSUNG_YP_U2 now that it is in the cam layer
 - Add quirk from Tobias Grosser for Western Mypassword
2009-10-29 23:20:47 +00:00
Andrew Thompson
078da83100 MFC r197564
Add new usbdev entries for Marvell, FTDI, Option and Western.
2009-10-29 23:20:15 +00:00
Andrew Thompson
d66897e03e MFC r197563
Add basic support for USB Network Control Model (NCM) v1.0 to if_cdce.c.
2009-10-29 23:19:41 +00:00
Andrew Thompson
57866e6c93 MFC r197562
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.
2009-10-29 23:18:59 +00:00
Andrew Thompson
d81c7ac0fa MFC r197561
Correct buffer sizes used so that they match. The old code could give the
 impression that a overflow situation existed but was not possible.
2009-10-29 23:18:27 +00:00
Andrew Thompson
88f788a6c5 MFC r197559
Add support for USB language selection.

PR:		usb/138563
2009-10-29 23:17:54 +00:00
Andrew Thompson
9d168176f5 MFC r197558
Fix NULL-pointer dereference in usb_endpoint_foreach().

PR:		usb/138389
2009-10-29 23:17:23 +00:00
Andrew Thompson
f23c09d0b0 MFC r197556
Clear all interrupts rather than just SETUP packet.
2009-10-29 23:16:39 +00:00
Andrew Thompson
320dbc0942 MFC r197555
Simplify logic around setting EHCI_QH_DTC and expand some htohc32(temp.sc, 0)
 statements to zero.
2009-10-29 23:16:00 +00:00
Andrew Thompson
ffa540b752 MFC r197554
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
2009-10-29 23:15:26 +00:00
Andrew Thompson
1063b450cd MFC r197553
- clean up USB detach logic. There seems to be some problems detaching multiple
   USB HUBs connected in series from the root.
2009-10-29 23:14:39 +00:00
Andrew Thompson
6333b36c43 MFC r196826
Make umass(4) pass device USB serial number to CAM, making it possible
 to e.g. retrieve it using camcontrol(8).
2009-10-29 23:14:06 +00:00
Andrew Thompson
6536a23656 MFC r196497
Remove redundant locking.
2009-10-29 23:13:36 +00:00
Andrew Thompson
f18778a473 MFC r196496
Add a reminder comment to optimize bus_dmamap_sync calls.
2009-10-29 23:13:02 +00:00
Andrew Thompson
edd4ee99cf MFC r196495
Add mass storage quirks.

PR:             usb/137138,usb/137226,usb/137789,usb/135372
2009-10-29 23:12:29 +00:00
Andrew Thompson
d92f7ea655 MFC r196494
- fix uvisor support, mostly correct buffer sizes used.
 - correct device info flag for SONY Cli NR70V
2009-10-29 23:11:48 +00:00
Andrew Thompson
d51a8c13ea MFC r196493
- Fix false positive uipaq probe
2009-10-29 23:11:13 +00:00
Andrew Thompson
2bb2691018 MFC r196492
- fix CDC ethernet matching order so that the match flags get correct.
2009-10-29 23:10:41 +00:00
Andrew Thompson
0627fc1870 MFC r196491
We used force all of the GPIO pins low first and then
 enable the ones we want. This has been changed to better
 match the ADMtek's reference design to avoid setting the
 power-down configuration line of the PHY at the same time
 it is reset.
2009-10-29 23:10:11 +00:00
Andrew Thompson
9fd6caea70 MFC r196490
- FIFO's are always opened separately in read and write direction even if the
   actual device is opened for read and write. Fix fflags check so that the UFM
   and URIO drivers work.
2009-10-29 23:09:37 +00:00
Andrew Thompson
61908699b5 MFC r196488
- allow disabling "root_mount_hold()" by setting a sysctl/tunable at boot
 - remove some redundant initial explore code
2009-10-29 23:09:02 +00:00
John Baldwin
ff5bfa3ef6 MFC 197439:
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-10-29 16:00:27 +00:00
John Baldwin
983998573b MFC 197649:
Do not hold the ACPI A/C adapter lock when changing the power profile.
2009-10-29 15:28:05 +00:00
John Baldwin
9ad4b9fbd2 MFC 197648:
Split the 'video' ACPI lock up into two locks to resolve a LOR with the
sysctl lock.  The 'video' lock now protects the 'bus' of video output
devices attached to a graphics adapter.  It is used when iterating over
the list of outputs, etc.  The 'video_output' lock is used to lock the
output-specific data similar to a driver lock for the individual video
outputs.
2009-10-29 15:24:57 +00:00
John Baldwin
9e14139d9b MFC 196840:
Fill the reverse RSS map with 0xff's so that the subsequent loop to
calculate the values will work properly.
2009-10-29 15:17:59 +00:00
John Baldwin
50d356311a MFC 197460:
Remove unnecessary locking from attach().  This fixes a LOR between the
acpi_ibm lock and the sysctl lock.
2009-10-29 15:13:36 +00:00
Alexander Motin
f39d3da87e MFC rev. 198487:
Round timeout up when converting CAM milliseconds to ATA seconds.
2009-10-29 10:38:17 +00:00
Alexander Motin
963069c15e MFC rev. 198488:
Report SATA speeds to CAM, to not confuse users with low numbers logged.
2009-10-29 10:35:50 +00:00
Alexander Motin
e180821780 MFC rev. 198481, 198482:
Add two more VIA SATA chip IDs.

PR:		kern/135057
2009-10-29 10:05:08 +00:00
Alexander Motin
9149cb69ab Fix SATA on nVidia MCP55 chipset. It needs some short time to allow BAR(5)
memory access.

PR:		amd64/128686, amd64/132372, amd64/139156
2009-10-29 09:45:48 +00:00
Andrew Thompson
b1c3c31d58 MFC r198307
Change from CAM_TID_INVALID to CAM_SEL_TIMEOUT error code when the usb device
 has been yanked, this works around a cam recounting bug when
 CAM_DEV_UNCONFIGURED is set late in the detach. In certain conditions the
 reference to the XPT device would not be released which would cause the usb
 explore thread to sleep forever on "simfree", preventing any new usb devices to
 be found/ejected on the bus.

Approved by:	re (kib)
2009-10-21 19:48:27 +00:00
Weongyo Jeong
6fb7173c2b MFC r198098:
fixes a TX hang bug that it could happen when if_start callback didn't
  be restarted by full of the output queue.

  Tested by:      bsduser <bsd at acd.homelinux.org>

MFC r198099:
  fixes a TX hang that could be possible to happen when the trasfers are
  in the high speed that some drivers don't call if_start callback after
  marking ~IFF_DRV_OACTIVE.

Approved by:	re (kib)
2009-10-20 17:50:36 +00:00
Stanislav Sedov
ea95296ce8 - Disable ASF by default in STABLE_8. This causes a lot
of problems on non-DELL branded machines with IPMI
  support.  The proposed fix was committed to HEAD but has
  not received much test coverage yet.

Discussed with:	bz
Approved by:	re (kensmith)
2009-10-20 16:41:23 +00:00
Marcel Moolenaar
879632020a MFC change 197721:
Fix RTS/CTS flow control, broken by the TTY overhaul.  The new TTY
interface is fairly simple WRT dealing with flow control, but
needed 2 new RX buffer functions with "get-char-from-buf" separated
from "advance-buf-pointer" so that the pointer could be advanced
only when ttydisc_rint() succeeded.

Approved by:	re (kib)
2009-10-10 18:24:54 +00:00
Coleman Kane
4718640084 MFC: r197403, r197644, r197654, and r197659
Fix some unexpected potential NULL de-references in kernel mode due to
usage of pre-8.0 wifi operations with the ndis driver wrapping a Win32/64
wifi driver.

Submitted by:	Paul B Mahol <onemda@gmail.com>
Approved by:	re
2009-10-06 16:05:06 +00:00
Pyun YongHyeon
0baf4d9450 MFC r197461:
Use __NO_STRICT_ALIGNMENT to determine whether de(4) have to apply
  alignment fixup code for received frames on strict alignment
  architectures.

MFC r197463:
  Consistently use bus_addr_t.

MFC r197464:
  Destroy dmamap in dma cleanup.

MFC r197465:
  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 >
Approved by:	re (kib)
2009-10-05 19:29:25 +00:00
Andrew Gallatin
c005a51c4e MFC:197645
Two more mxge watchdog fixes

1) Restore the PCI Express control register after a watchdog
   reset.  This is required because the device will come out
   of watchdog reset with the pectl reg at its default state,
   and important BIOS configuration (like max payload size)
   could be lost.

2) Call mxge_start_locked() for every tx queue before dropping
   the lock in the watchdog handler.   This is required, as
   the queue's buf ring may have filled during the reset.

Approved by:	re (kib)
2009-10-05 14:28:23 +00:00
Andrew Thompson
3a3dfbf8c4 MFC r197682
EHCI Hardware BUG workaround

 The EHCI HW can use the qtd_next field instead of qtd_altnext when a short
 packet is received. This contradicts what is stated in the EHCI datasheet.
 Also the total-bytes field in the status field of the following TD gets
 corrupted upon reception of a short packet!  We work this around in software by
 not queueing more than one job/TD at a time of up to 16Kbytes! The bug has been
 seen on multiple INTEL based EHCI chips.  Other vendors have not been tested
 yet.

 - Applications using /dev/usb/X.Y.Z, where Z is non-zero are affected, but not
   applications using LibUSB v0.1, v1.2 and v2.0.
 - Mass Storage (umass) is affected.

Approved by:	re (kib)
2009-10-04 19:03:32 +00:00
Andrew Gallatin
264d14d30d MFC 197395: Improve mxge watchdog routine's ability to reliably reset a failed NIC
Approved by: re (kib)
2009-09-28 23:48:16 +00:00
Marius Strobl
238bc19306 MFC: r197401
- According to Linux, the ALi M5451 can do 31-bit DMA instead of just
  30-bit like the reset of the controllers supported by this driver.
  Actually ALi M5451 can be setup up to generate 32-bit addresses by
  setting the 31st bit via the accompanying ISA bridge, which allows
  it to work in sparc64 machines whose IOMMU require at least 32-bit
  DMA. Even though other architectures would also benefit from 32-bit
  DMA, enabling this bit is limited to sparc64 as bus_dma(9) doesn't
  generally guarantee that a low address of BUS_SPACE_MAXADDR_32BIT
  results in a buffer in the 32-bit range.
- According to Tatsuo YOKOGAWA's ali(4), the the DMA transfer size of
  ALi M5451 is fixed to 64k and in fact using the default size of 4k
  causes the chip to overrun the mapping, triggering uncorrectable
  DMA errors on sparc64.
- The 4DWAVE DX and NX require the recording buffer to be 8-byte
  aligned so adjust the bus_dma_tag_create(9) accordingly.
- Unlike the rest of the controllers supported by this driver, the
  ALi M5451 only has 32 hardware channels instead of 64 so limit the
  loop in tr_intr() accordingly. [1]

Submitted by:	yongari [1]
Reviewed by:	yongari (superset of what is committed)
Approved by:	re (kib)
2009-09-25 19:59:18 +00:00
Alexander Motin
b8b5722c5d Remove constraint, requiring request data to fulfill controller's
alignment requirements. It is busdma task, to manage proper alignment by
loading data to bounce buffers.

PR:		kern/127316
Reviewed by:	current@
Tested by:	Ryan Rogers
Approved by:	re (kib)
2009-09-25 18:07:23 +00:00
Marius Strobl
54577e2314 - Add missing bus_dmamap_sync(9) calls for the work DMA map. Previously
the work area was totally unsynchronized which means this driver only
  had a chance of working on x86 when no bounce buffers were involved,
  which isn't that likely given that support for 64-bit DMA is currently
  broken throughout ata(4).
- Add necessary little-endian conversion of accesses to the work area,
  making this driver work on big-endian hosts. While at it, use the
  alignment-agnostic byte order encoders in order to be on the safe side.
- Clear the reserved member of the SG list entries in order to be on the
  safe side. [1]

Submitted by:	yongari [1]
Reviewed by:	yongari
Approved by:	re (kib)
2009-09-25 16:45:27 +00:00
John Baldwin
424b2e64a2 MFC 197415:
The elements in the component arrays may be direct Package objects rather
than references to objects.  In that case, simply use the Package directly.

Approved by:	re (kib)
2009-09-25 15:14:11 +00:00
John Baldwin
b10d205de2 MFC 197406:
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.

Approved by:	re (kib)
2009-09-25 14:58:00 +00:00
John Baldwin
4e36c32793 MFC 197350:
Re-remove the IBM0057 ID used for PS/2 mouse controllers.  The asl for the
61p includes the hotkey device as IBM0068 and the mouse as IBM0057 similar
to other systems.

Approved by:	re (kensmith)
2009-09-23 15:56:09 +00:00
Rui Paulo
d414bb00bb MFC 197190:
Make the sudden motion sensor work on older models and add a bit of
 debugging.

 Submitted by:	Christoph Langguth <christoph at rosenkeller.org>

Approved by:	re (kib)
2009-09-22 20:31:32 +00:00
Andriy Gapon
1a7268649b MFC r197099: pci(4): don't perform maximum register number check
Different sub-kinds of PCI buses may have different rules and
thus it is up for the bus backends to do proper input checks.
For example, PCIe allows configuration register numbers < 0x1000,
while for PCI proper the limit is 0x100.
And, in fact, the buses already do the checks.

Reviewed by:	jhb
Approved by:	re (kib)
2009-09-19 08:13:10 +00:00
Andriy Gapon
04793894d4 MFC r197077: pci: remove definitions of duplicate constants
Suggested by:	jhb
Reviewed by:	jhb
Approved by:	re (kib)
2009-09-17 12:41:27 +00:00
Scott Long
24048b0cb3 Merge rev 197263:
- Enable MSI support (MSIX support was already present)
- Performance improvements

Approved by:	re
Obtained from:	Yahoo!
2009-09-17 05:30:55 +00:00
Scott Long
053351cec3 Merge r197260, r197261, r197262
- Prevent a panic on modern controllers by increasing CISS_MAX_PHYSTGT to 256
- Fix MSI and PERFORMANT interrupt programming.  Fixes hang on boot.
- Fix locking bugs in ioctl handler

Most of this has been soaking at Yahoo for several months, if not longer.  The
quick MFC is due to the impending 8.0-RC1 build.

Approved by:	re
Obtained from:	Yahoo!
2009-09-17 05:27:32 +00:00
Rafal Jaworowski
e9667e8ff1 MFC r196531-196534,196536
Clean up Marvell platform code.

Introduce SheevaPlug support.

   - The device is based on Marvell 88F6281 system on chip.
   - More info about the platform at http://www.plugcomputer.org

   - To build the FreeBSD kernel:
     make buildkernel TARGET_ARCH=arm KERNCONF=SHEEVAPLUG

   - Installation notes at: http://wiki.freebsd.org/FreeBSDMarvell

Submitted by:	Michal Hajduk
Approved by:	re (kib)
Obtained from:	Semihalf
2009-09-16 12:07:58 +00:00
Pawel Jakub Dawidek
6bd6f55621 MFC r196822, r196823, r196824:
Remove 'ad:' prefix from disk serial number. We don't want serial number
to change when we reconnect the disk in a way that it is accessible through
CAM for example.

Discussed with:	trasz

Simplify g_disk_ident_adjust() function and allow any printable character
in serial number.

Discussed with:	trasz
Obtained from:	Wheel Sp. z o.o. (http://www.wheel.pl)

Make serial numbers of daX disks visible by GEOM.

No objections from:	scottl
Obtained from:	Wheel Sp. z o.o. (http://www.wheel.pl)

Approved by:	re (kib)
2009-09-15 11:23:59 +00:00
John Baldwin
3c31e305c0 MFC 197062:
Don't malloc a buffer while holding the prison0 mutex.  Instead, use a loop
where we figure out the hostname length under the lock, malloc the buffer
with the lock dropped, then recheck the length under the lock and loop again
if the buffer is now too small.

Approved by:	re (kib)
2009-09-14 16:13:12 +00:00
Norikatsu Shigemura
87c120a67a MFC r196889:
Change 'dev.cpu.N.temperature', sysctl I (degC) to IK (Kelvin),
to match acpi_thermal(4) and amdtemp(4).

Approved by:	re (rwatson)
Reviewed by:	rpaulo
Suggested by:	ume
2009-09-13 10:04:08 +00:00
Jack F Vogel
b9a65dadc2 This fixes kern/138516, an mbuf leak in both the em
and igb driver, when a transmit fails the packet/mbuf
was not being requeued. Thanks to those that pointed
this problem out.

Approved by:  re
2009-09-11 16:53:12 +00:00
Sam Leffler
d53c6c91b1 MFC r196717:
fix beacon timers on resume in sta mode so raoming works

Approved by:	re (kensmith)
2009-09-07 16:41:18 +00:00
Alexander Motin
b89c161793 MFC r196777, r196796:
ATI SB600 can't handle 256 sectors transfers with FPDMA (NCQ).

Approved by:	re (ATA-CAM blanket)
2009-09-05 06:24:28 +00:00
Jack F Vogel
0bb40ca3e0 This patch seperates the control of header split from LRO (which it
was previously dependent on), LRO gets turned off when bridging but
its been found that header split is still a performance win in that case.

Secondly, there was some interface specific control in stats code that
has been missing, and a logic error that resulted in bogus reporting.
Thanks to Manish and John of LineRateSystems for the report and help in
this code.

Approved by: re
2009-09-04 22:37:03 +00:00
Pyun YongHyeon
b3d8f9c3fc MFC r196721:
Make sure rx descriptor ring align on 16 bytes. I guess the
  alignment requirement could be multiple of 4 bytes but I think
  using descriptor size would make intention clearer.
  Previously the size of rx descriptor was not power of 2 so it
  caused panic in bus_dmamem_alloc(9).

  Reported by:	Jeff Blank (jb000003 <> mr-happy dot com)
Approved by:	re (kib)
2009-09-04 16:41:17 +00:00
Weongyo Jeong
fa0dc8bb62 MFC r196809:
fix a TX issue on big endian machines like powerpc or sparc64.  Now
  zyd(4) should work on all architectures.

  Obtained from:	OpenBSD

Approved by:	re (kib)
2009-09-04 05:37:49 +00:00
Alfred Perlstein
42a66b539d MFC: r196489,196498
Critical USB bugfixes for 8.0

Approved by:    re
2009-09-02 02:12:07 +00:00
Alexander Motin
84a08f606f MFC r196656, r196660:
Update ahci driver:
 - Add Command Completion Coalescing support.
 - Add SNTF support.
 - Add two more power management modes (4, 5), implemented on driver level.
 - Fix interface mode setting.
 - Reduce interface reset time.
 - Do not report meaningless protocol/transport versions.
 - Report CAP2 register content.
 - Some performance optimizations.

Approved by:	re (ATA-CAM blanket)
2009-09-01 11:44:30 +00:00
Alexander Motin
088705a89e MFC r196655:
Update siis driver:
 - Add SNTF support.
 - Do not report meaningless transport/protocol versions.

Approved by:	re (ATA-CAM blanket)
2009-09-01 11:13:31 +00:00
Rui Paulo
de3a9cf126 MFC r196455:
Make dev.asmc.N.light.control writable by everyone.

Submitted by:	Patrick Lamaiziere <patfbsd at davenulle.org>
Approved by:	re (rwatson)
2009-08-31 12:25:04 +00:00