Commit graph

19788 commits

Author SHA1 Message Date
Pyun YongHyeon
0fb14c6f0d MFC r203082:
Add initial support for RTL8103E PCIe fastethernet.

  PR:	kern/142974
2010-02-01 23:57:42 +00:00
John Baldwin
d362c2a208 MFC 203070:
Initialize the ifnet before calling mii_phy_probe() as some phy drivers
(e.g. e1000phy(4)) expect if_dname to be valid when they are probed.
2010-02-01 22:01:48 +00:00
Antoine Brodin
e2b36efde5 MFC r201145 to stable/8:
(S)LIST_HEAD_INITIALIZER takes a (S)LIST_HEAD as an argument.
  Fix some wrong usages.
  Note: this does not affect generated binaries as this argument is not used.

  PR:		137213
  Submitted by:	Eygene Ryabinkin (initial version)
2010-01-30 12:11:21 +00:00
Rui Paulo
b85fb2f79c MFC r202986:
o add more notification strings in iwn_intr_str()
  o sync with OpenBSD code

  Submitted by:	Bernhard Schmidt <bschmidt at techwires.net>
  MFC after:	3 days
2010-01-29 18:19:43 +00:00
Joerg Wunsch
1f9b7387d8 Merge of r202870,202898:
Overhaul of the pcii driver:

. Properly allocate all IO space resources.  These cards scatter their
  IO addresses over a range of 0x1600 bytes, and they require an
  additional address for "special interrupt handling".

. Implement the "special interrupt handling" per the GPIB-PCIIA
  Technical Reference Manual; this was apparently not declared for the
  clone card this driver has been originally implemented for, but it
  turned out to be needed for both, an original NI brand PCII/PCIIA
  card as well as the Axiom AX5488 clone.

. Add some diagnostic messages for various resource allocation etc.
  failures during probe.

. Add some comments about the structure of the IO address space that
  is used by these cards.
2010-01-27 10:32:02 +00:00
Gavin Atkinson
7ac856b829 Merge r202000 from head:
Don't panic on attach if we can't allocate ifp

Approved by:	ed (mentor, implicit)
2010-01-24 22:01:04 +00:00
Robert Noland
c79d8f1fb5 MFC r200764
Fix a handful of issues with via agp support.

  * Read the pci capability register to identify AGP 3 support
  * Add missing smaller aperture sizes for AGP3 chips.
  * Fix the aperture size calculation on AGP2 chips.
    All sizes between 32M and 256M reported as 256M.
  * Add \n to error string.
2010-01-23 16:29:04 +00:00
Navdeep Parhar
c78cb5e4f1 MFC r202863
Don't forget to release the adapter lock for a no-op.
2010-01-23 08:37:04 +00:00
Xin LI
11ad45c9ce MFC r202268:
o Add PCI ID for BCM 5756.
 o Don't enable BGE_FLAG_BER_BUG on both 5722 and 5756, and based
   on their PCI IDs rather than their chip IDs.

Reported by:    several PC-BSD users via kmoore
Reviewed by:    yongari, imp, jhb, davidch
Sponsored by:   iXsystems, Inc.
2010-01-23 01:25:09 +00:00
Brooks Davis
2ca586a5ac MFC r201261:
Add missing `void' keywords.
2010-01-22 20:24:55 +00:00
Alexander Motin
320cdf733e MFC r202127, r202156:
Add multichannel (4.0, 5.1 and 7.1) playback support.

Stereo stream is no more duplicated to all ports. If you loose sound, check
you are using right connectors. Front speakers connector is usually green,
center/LFE - orange, rear - black, side - gray.
2010-01-22 11:37:19 +00:00
Alexander Motin
858bc163b7 MFC r202267:
Hide from default sndstat some information not used on daily basis,
to make it readable by average user with average screen size.
2010-01-22 11:31:49 +00:00
Alexander Motin
c6ce452791 MFC r202166:
Make default recording source choosing more intelligent.
Change default recording level from 0 to 75.
It should increase chances for things to work just out of the box.
2010-01-22 11:30:32 +00:00
Alexander Motin
d871d872fa MFC r197420:
Lock bus scan.
2010-01-22 11:16:46 +00:00
Andriy Gapon
83279a93f5 MFC r202567: acpi_ec: remove redundant acpi_disabled check 2010-01-22 09:41:09 +00:00
Andriy Gapon
773425fade MFC r202558: acpi_ec: clean up 'private' ivar when freeing memory 2010-01-22 09:34:57 +00:00
Marcel Moolenaar
4b5ab11113 MFC rev. 202097:
Use io(4) for I/O port access on ia64, rather than through sysarch(2).
2010-01-22 03:50:43 +00:00
Navdeep Parhar
e0d8d4df28 MFC r201907,202671,202678
r201907:
Extra parantheses to keep certain compilers happy.

r202671:
Fix for a cxgb(4) panic.  cxgb_ioctl can be called by the IP and IPv6
layers with non-sleepable locks held.  Don't (potentially) sleep in
those situations.

r202678:
Complain if freelist queue sizes are significantly less than desired.
2010-01-21 03:06:52 +00:00
Pyun YongHyeon
eac2bf0ee0 MFC r202406:
Don't free mbuf chains when bge(4) fails to collapse the mbuf
  chains. This part of code is to enhance performance so failing the
  collapsing should not free TX frames. Otherwise bge(4) will
  unnecessarily drop frames which in turn can freeze the network
  connection.

  Reported by:	Igor Sysoev (is <> rambler-co dot ru)
  Tested by:	Igor Sysoev (is <> rambler-co dot ru)
2010-01-21 00:53:00 +00:00
Pyun YongHyeon
85f51ebea9 MFC r202294:
Add check for fiber mode for BCM5714 PHY. This PHY supports both
  copper and fiber interfaces over GMII so an explicit check is
  necessary to know whether it was configured for fiber interface.
  This change make BCM5715S work.

  Tested by:	olli
  PR:	kern/122551
2010-01-21 00:49:14 +00:00
Pyun YongHyeon
29a6686087 MFC r202293:
For controllers that has dual mode PHY(copper or fiber) interfaces
  over GMII, make sure to enable GMII. With this change brgphy(4) is
  used to handle the dual mode PHY. Since we still don't have a sane
  way to pass PHY specific information to mii(4) layer special
  handling is needed in brgphy(4) to determine which mode of PHY was
  configured in parent interface.
  This change make BCM5715S work.

  Tested by:	olli
  Obtained from:	OpenBSD
  PR:	kern/122551
2010-01-21 00:45:12 +00:00
Pyun YongHyeon
d92c7395bf MFC r202269:
Add BCM5754 PHY id that is found on Dell Studio XPS 16.
2010-01-21 00:37:14 +00:00
Konstantin Belousov
dc657f6117 MFC r198429, r198439, r198468, r201209, r201822, r201882:
Syncronize iwn(4) driver in stable/8 with HEAD.

Approved by:	rpaulo
2010-01-20 15:22:34 +00:00
Alexander Motin
6c35bbee61 MFC r201222:
Usually these controllers are able to automatically decode command code to
get required command protocol. But they have no idea about new commands,
such as DATA SET MANAGEMENT (TRIM). As soon as this info any way provided
by CAM, give controller specific instructions.
2010-01-19 13:36:12 +00:00
Alexander Motin
f288580266 MFC r200814:
Clear all ports interrupt status bits in single write. Clearing one by one
causes additional MSIs messages sent if several ports asked for attention
same time. Time window before clearing is not important, as these interrupts
are level triggered by interrupt source.
2010-01-19 13:33:31 +00:00
Alexander Motin
89dbf1bfd5 MFC r201993:
Report which of IXP700 legacy ATA channels are SATA.
2010-01-19 13:27:54 +00:00
Alexander Motin
4c75a1d302 MFC r200857:
Add support for Intel SCH PATA controller.

PR:             kern/140251
2010-01-19 13:26:45 +00:00
Alexander Motin
44f39e7d59 MFC r200817:
Spell AMD properly.
2010-01-19 13:25:31 +00:00
Alexander Motin
f59a7ba7ba MFC r200754:
Add VIA CX700/VX800 chipsets SATA/PATA support.

PR:             kern/121521
2010-01-19 13:24:11 +00:00
Alexander Motin
1c2e876f53 MFC r200753:
Fairly set master/slave shared PIO/WDMA timings on ITE 821x controllers.
Previous implementation could only limit mode, but not rise it back.
2010-01-19 13:21:25 +00:00
Alexander Motin
928e4114fe MFC r200655:
Serverworks OSB4 has no 0x4a (piomode) register, do not touch it.
Also OSB4 has some problems with UDMA transfers, limit it to WDMA2.
2010-01-19 13:07:25 +00:00
Alexander Motin
b136f43d44 MFC r201990:
- Report SATA in legacy emulation mode still as SATA.
- Make ATA XPT able to handle such case.
2010-01-19 13:00:33 +00:00
Andrew Thompson
300db511e2 MFC r202054
Add the Globetrotter GE40x.
2010-01-17 18:36:22 +00:00
Andrew Thompson
ebd4481685 MFC r201766
Remove unneeded includes.
2010-01-17 18:33:47 +00:00
Andrew Thompson
dd079737f0 MFC r201714
Fix debug printf on 64bit arches.
2010-01-17 18:33:05 +00:00
Andrew Thompson
09a54b8e79 MFC r201701
Add new umass quirks for Western Digital MYBook and JMicron JM20337.

PR:		usb/142225, usb/142228
Submitted by:	Thomas Ward, Yoshikazu GOTO
2010-01-17 18:32:20 +00:00
Andrew Thompson
9d25e8387f MFC r201681
Improve u3g device ejecting by providing additional methods for the eject
 command in the usb_msctest routines, as well as a general tidyup.
2010-01-17 18:31:27 +00:00
Andrew Thompson
6b5b582259 MFC r201680
scratch_size was incorrectly passed as language ID when retrieving the language
 ID table, this broke string retrieval on some devices.

Submitted by:	Hans Petter Selasky
Reported by:	Renato Botelho
2010-01-17 18:30:37 +00:00
Andrew Thompson
e8f0a2d170 MFC r201318
Add new device ID to uipaq driver

PR:		usb/141936
Submitted by:	HASHI Hiroaki
2010-01-17 18:29:30 +00:00
Andrew Thompson
bc4acc704f MFC r202181,202243,202270
Add a driver by Fredrik Lindberg for Option HSDPA USB devices. These differ
 from standard 3G wireless units by supplying a raw IP/IPv6 endpoint rather than
 using PPP over serial. uhsoctl(1) is used to initiate and close the WAN
 connection.

Obtained from:	Fredrik Lindberg <fli@shapeshifter.se>
2010-01-17 18:22:42 +00:00
Mitsuru IWASAKI
d077836245 MFC r201605: Update acpi_ibm syctl nodes on resume. 2010-01-17 06:24:09 +00:00
Alexander Motin
ea0c5a5936 Partially revert r202428. There is no bus_describe_intr() on RELENG_8. 2010-01-16 07:55:46 +00:00
Alexander Motin
392777822f MFC r202011:
While AHCI specification tells that multi-vector MSI doesn't use global IS
register, nVidia chipsets have different oppinion, requiring every interrupt
to be acknowledged there.

While there, add interrupt descriptions in multi-vector MSI mode.
2010-01-15 23:58:37 +00:00
Marius Strobl
5896e2fa27 MFC: r201009
Remove clause 3 from Izumi Tsutsui's licenses.

Obtained from:	NetBSD
2010-01-15 16:29:40 +00:00
Marius Strobl
b70d493910 MFC: r201008
Style changes

Obtained from:	NetBSD (mc146818reg.h)
2010-01-15 16:27:57 +00:00
Marius Strobl
2a2cbae7cb MFC: r201005, r201371
- Take advantage of bus_{read,write}_*(9).
- Set dow = -1 in mk48txx_gettime() because some drivers (for example
  the NetBSD and OpenBSD mk48txx(4)) don't set it correctly.
2010-01-15 15:47:31 +00:00
Marius Strobl
1051ec0b8a MFC: r201004
Remove clause 3 and 4 from TNF licenses.

Obtained from:	NetBSD
2010-01-15 15:42:14 +00:00
Marius Strobl
3425abf549 MFC: r201003
Style changes
2010-01-15 15:40:44 +00:00
Pyun YongHyeon
6b15d2af78 MFC r200950,200955,200965-200966,201767-201768
r200950:
  Implement RX interrupt moderation using one-shot timer interrupt.
  Unlike TX interrupt, ST201 does not provide any mechanism to
  suppress RX interrupts. ste(4) can generate more than 70k RX
  interrupts under heavy RX traffics such that these excessive
  interrupts make system useless to process other useful things.
  Maybe this was the major reason why polling support code was
  introduced to ste(4).
  The STE_COUNTDOWN register provides a programmable counter that
  will generate an interrupt upon its expiration. We program
  STE_DMACTL register to use 3.2us clock rate to drive the counter
  register. Whenever ste(4) serves RX interrupt, the driver rearm
  the timer to expire after STE_IM_RX_TIMER_DEFAULT time and disables
  further generation of RX interrupts. This trick seems to work well
  and ste(4) generates less than 8k RX interrupts even under 64 bytes
  UDP torture test. Combined with TX interrupts, the total number of
  interrupts are less than 10k which looks reasonable on heavily
  loaded controller.

  The default RX interrupt moderation time is 150us. Users can change
  the value at any time with dev.ste.%d.int_rx_mod sysctl node.
  Setting it 0 effectively disables the RX interrupt moderation
  feature. Now we have both TX/RX interrupt moderation code so remove
  loop of interrupt handler which resulted in sub-optimal performance
  as well as more register accesses.

r200955:
  Add suspend/resume support as well as basic WOL.
  While I'm here simplify SIOCSIFCAP handler.

r200965:
  Update if_iqdrops in case of RX buffer allocation failure.

r200966:
  ether_ifattach sets if_mtu, remove unnecessary code.

r201767:
  Fix EEPROM access code to return data in host byte order.
  EEPROM on ST201 always returns 16bits data with little endian
  format so conversion to host order is required.
  This change fixes inversed ethernet address on sparc64.

r201768:
  Make sure to store dma address of RX buffer in little endian form.
  This fixes the last bug which keeps ste(4) from working on sparc64.
2010-01-14 22:26:52 +00:00
Pyun YongHyeon
812b4b875d MFC r200904-200908,200910-200913
r200904:
  Don't reinitialize controller if driver is already running. This
  reduces number of link state UP/DOWN changes.

r200905:
  Reimplement controller reset. Datasheet says full reset takes about
  1ms. Since we switched to memory register mapping make sure to
  flush PCI posted write by reading the register again.
  While I'm here add additional delays in loop while driver waits the
  completion of the reset.

r200906:
  Overhaul RX filter programming.
   o Let RX filter handler program promiscuous/multicast filter as
     well as broadcasting.
   o Remove unnecessary register access.
   o Simplify ioctl handler and have set_rxfilter to handle
     IFF_PROMISC and IFF_ALLMULTI change instead of directly
     programming the controller.
   o Removed unnecessary error variable reinitialization in ioctl
     handler.
   o Add IFF_DRV_RUNNING check before programming multicast filter.
   o Configure maximum allowed frame length before enabling MAC.
     Datasheet didn't say the exact ordering of programming sequence
     but it looks more natural to set maximum allowed frame length
     first prior to enabling controller.

r200907:
  Don't report link status if driver is not running.

r200908:
  Report the correct result of mii_mediachg(). Previously it always
  used to return success without respect to the result.
  While I'm here use mii_mediachg() in ste_init_locked which allows
  driver to use currently configured media. ste_ifmedia_upd() is
  supposed to be called whenever user changes current media settings.

r200910:
  Implement hardware MAC statistics counter support. The counters
  could be accessed with dev.ste.0.stats sysctl node.

r200911:
  Remove unused duplicated register definition. It seems the
  definition was made to access STE_ASICCTL register as 16bits but
  ste(4) always access the register as 32bits so it was never used
  before.

r200912:
  Correct STE_COUNTDOWN register offset. The datasheet was wrong.

r200913:
  We don't need to generate DMA complete interrupt for every
  transmitted frames. So request interrupt for every 16th frames. Due
  to the limitation of hardware we can't suppress the interrupt as
  driver should have to check TX status register. The TX status
  register can store up to 31 TX status so driver can't send more
  than 31 frames without reading TX status register.
  With this change controller would not generate TX completion
  interrupt for every frame, so reclaim transmitted frames in
  ste_tick().
2010-01-14 22:15:51 +00:00