summaryrefslogtreecommitdiffstats
path: root/sys/dev
Commit message (Collapse)AuthorAgeFilesLines
* Use the new xpt_rescan function to truly now have dynamicmjacob2007-02-233-13/+76
| | | | | | | | | | attachment of new devices that arrive (and we notice them via async Fibre Channel events). We've always had the right thing (of sorts) happen when devices go away- this is the corollary function that makes multipath failover actually work. MFC after: 2 weeks
* There is a problem in setting/getting 'options'- if we check thingsmjacob2007-02-231-111/+133
| | | | | | | | | | | early, we haven't set board type, so we can't correctly check for some options. Fix this by splitting option setting/getting into generic, pci and then later board specific, option setting/getting. This was noticed when setting 'iid' (or 'hard loop id') didn't work all of a sudden. Noticed by: Mike Drangula (thanks!) via Jung-uk Kim (thanks!)
* Be a bit more restrictive about printing out 'bad' pdb entriesmjacob2007-02-231-9/+11
| | | | | during loop rescans. They're not bad so much as unstable, so don't print this stuff out unless ISP_LOGSANCFG is set.
* Improve readability of the version string.njl2007-02-221-1/+1
|
* Update copyright headers.sos2007-02-2119-19/+19
|
* Try again with supporting AHCI chipsets with partly implemented ports.sos2007-02-212-5/+16
|
* Restore support for the 5706C bce(4) phy that was broken during thejhb2007-02-212-2/+54
| | | | | | | | | | | | | addition of SerDes support. According to the docs, the 5706C and 5708C phys are supposed to use the same MII model that is separate from the SerDes parts, but the 5706C actually uses the MII model of the SerDes parts. To fix this, readd the old 5706C entry to miidevs and add a special check in brgphy_probe() for phys that match the 5706C ID. If the phy is supported by the gentbi(4) driver, then it's a SerDes phy, so we fail the probe and let gentbi(4) grab it. Otherwise, it's a 5706C phy, so we let brgphy(4) grab it. In coordination with: dwhite
* Work around a firmware bug where broadcast frames would be incorrectlygallatin2007-02-212-5/+27
| | | | | | | treated as multicast frames and filtered, but when only when "adopting" running firmware. By "adopting", I mean using pre-existing firmware loaded from eeprom at PCI reset, rather than firmware loaded by the driver.
* Be a little less stringent in getting progress report data.sos2007-02-211-1/+2
|
* Temporarily disable the support for some incarnations of the ICH8 chip that hassos2007-02-211-17/+7
| | | | | | | non consecutively numbered ports. This should fix current SATA problems. Support AHCI chips where the ports are not consecutively numbered as in some incarnations of the ICH8 chip.
* Optimize set_origin() use in some screensavers to stop them eatingphilip2007-02-214-12/+40
| | | | | | | | cpu power when the origin hasn't changed. PR: kern/100683 Submitted by: Gareth McCaughan <gareth -dot- mccaughan -at- pobox.com> MFC after: 3 days
* Complete the support for altq(4).brueffer2007-02-211-1/+3
| | | | | | | Tested by: J.R. Oldroyd Reviewed by: mlaier Approved by: rwatson (mentor) MFC after: 1 week
* Initialise {transport,protocol}{,_version} fields during a PATH_INQ to avoid an_hibma2007-02-211-1/+5
| | | | warning message.
* Rename IWI_LOCK_ASSERT to IWI_LOCK_CHECK per Sam's suggestion,luigi2007-02-202-25/+21
| | | | | | | | | | | | | | | | | | | | | | | | and make it print under debug.iwi control same as other debugging stuff. Remove the device_printf() in iwi_ioctl() and replace with this: /* * wait until pending iwi_cmd() are completed, to avoid races * that could cause problems. */ while (sc->flags & IWI_FLAG_BUSY) msleep(sc, &sc->sc_mtx, 0, "iwiioctl", hz); This at least prevents what has become an almost systematic failure for my system, presumably due to a previous iwi_cmd() not complete yet by the time iwi_ioctl() is called. It has been pointed to my attention that the real problem could be calling ieee80211_ioctl() with the lock held. If that is true, there might still be a possibility for a race condition e.g. an interrupt coming while the ioctl is sleeping. Need to investigate further on what changes are required to release the lock before calling ieee80211_ioctl
* Address a few issues with the iwi driver, namely:luigi2007-02-202-78/+147
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + do not release the dma-ble region used for downloading firmware. This should fix the problems that some people were seeing, due to memory becoming too fragmented which prevented subsequent allocations of a suitable contiguous region of memory; + document the firmware format and usage in if_iwivar.h + use a loop to allocate the four tx rings, instead of replicating the body of the loop. + add debugging code IWI_LOCK_ASSERT() to detect missing locks. These only do a printf, and should go away once we figure out why the driver sometimes freezes the system due to a (yet unidentified) race condition. + add a device_printf() in iwi_ioctl() in certain conditions (see comment in the code). This helps preventing the race condition mentioned above, and makes the system survive. This printf will also go away once fixing this bug is completed. + change iwi_getfw() to return 0 on success, 1 on error, consistently with other functions. + fix the argument of a sizeof() in iwi_get_firmware() + use le32toh() to access little-endian fields + simplify error handling in iwi_load_firmware() and iwi_init_locked() The bugs fixed by this commit (the freezing one especially) are serious enough to call for a quick MFC MFC after: 3 days
* Document the endiannes of firmware headersluigi2007-02-201-1/+9
| | | | (in preparation for changes in the C code).
* Correct typos containing my login name (plus one more in expr.y).ceri2007-02-181-1/+1
| | | | Found courtesy of a recursive grep in the wrong directory.
* Add support for chipsets that has NULL'd BAR's for legacy ports.sos2007-02-172-10/+12
| | | | | | | This allows DMA to be used on a fine little geode system I got here and most like on lots of older systems like that. HW donated by: Paul Ghering
* Add codec id for Sigmatel STAC9271D.ariff2007-02-161-2/+4
| | | | Submitted by: Michael Fuckner <michael@fuckner.net>
* CompUSA mutli-format pcmica flash reader/writerimp2007-02-161-0/+2
|
* Updated tuple list, kindaimp2007-02-161-1/+1
|
* Add poitner to JEDEC publication 106imp2007-02-161-0/+4
|
* Two changes:imp2007-02-161-1/+4
| | | | | | | | | | | | | | (1) change debounce period from 1s to 250ms. This appears to be fine and speeds things up a little. (2) In the middle of cbb_pcic_power_disable_socket we write 0 to the EXCA_INTR register to put the card into reset. However, this turns off CSC interrupts for TI bridges (and maybe others). So no further card insertion events would be noticed. To compensate, after we've gone through the entire power down sequence, turn on EXCA_INTR_ENABLE so that CSC events happen. #2 should fix the 'dead slot' problem that has been reported after card ejection (but only 16-bit cards).
* Fix typo in commentimp2007-02-161-1/+1
|
* Support AHCI chips where the ports are not consecutively numbered as insos2007-02-152-76/+126
| | | | | some incarnations of the ICH8 chip. Also fix the panic introduced by the last commit.
* Cleanup and document the implementation of firmware(9) based onluigi2007-02-156-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a version that i posted earlier on the -current mailing list, and subsequent feedback received. The core of the change is just in sys/firmware.h and kern/subr_firmware.c, while other files are just adaptation of the clients to the ABI change (const-ification of some parameters and hiding of internal info, so this is fully compatible at the binary level). In detail: - reduce the amount of information exported to clients in struct firmware, and constify the pointer; - internally, document and simplify the implementation of the various functions, and make sure error conditions are dealt with properly. The diffs are large, but the code is really straightforward now (i hope). Note also that there is a subtle issue with the implementation of firmware_register(): currently, as in the previous version, we just store a reference to the 'imagename' argument, but we should rather copy it because there is no guarantee that this is a static string. I realised this while testing this code, but i prefer to fix it in a later commit -- there is no regression with respect to the past. Note, too, that the version in RELENG_6 has various bugs including missing locks around the module release calls, mishandling of modules loaded by /boot/loader, and so on, so an MFC is absolutely necessary there. I was just postponing it until this cleanup to avoid doing things twice. MFC after: 1 week
* Fix spurious I/O errors when under high load.scottl2007-02-152-2/+6
| | | | Submitted by: Erich Chen
* It turns out that it is easier to not NULL out pccard and cardbusimp2007-02-152-15/+7
| | | | | | | | device pointers. They don't change as the children device drivers come and go. Rather, check to see if the device is attached where we would have checked ! NULL. This solves many asymmetries in the code that likely could lead to crashes when loading/unloading cbb without one or more of the expected children's driver not present.
* Fix three bugs:imp2007-02-151-6/+25
| | | | | | | | | | o When detaching all children, try really hard to get all the children list before giving up. This is based on an observation by hans petter selasky in his usb p4 branch. o When rescanning devices after a driver is added, abort if we can't get the child list with a message. o when rescanning devices, if the reprobe/attach is successful, save the device for cardbus/pccard.
* Unbreak non-H/W VLAN extraction case.yongari2007-02-151-2/+4
| | | | | | | | | | | | Unlike other GigEs Yukon II always set VLAN bit when it detects VLAN tagged packet regardless of H/W VLAN processing configuration state. So it need to check IFCAP_VLAN_HWTAGGING bit to know whether driver is configured to take advantage of H/W VLAN processing. If H/W VLAN processing was disabled don't adjust received packet length such that subsequent validation logic works for software VLAN processing. Reported by: bms Tested by: bms
* Adjust the global MSI blacklisting strategy so we don't have to explicitlyjhb2007-02-141-0/+26
| | | | | | | | | blacklist a bunch of old chipsets. If a system contains a PCI-PCI bridge that supports PCI-X, assume the chipset supports PCI-X. If a system contains a PCI-express root port, assume the chipset supports PCI-express. If the chipset doesn't support either PCI-X or PCI-express, then blacklist it by default. We should now only need to explicitly blacklist PCI-X or PCI-express chipsets that don't properly handle MSI.
* - Fix an off by one error in pci_remap_msix_method() that effectivelyjhb2007-02-141-2/+10
| | | | | | broke the method as all the MSI-X table indices were off by one in the backend MD code. - Fix a cosmetic nit in the bootverbose printf in pci_alloc_msix_method().
* Catch up to MSI-X API changes. Tested with both MSI and MSI-X.jhb2007-02-141-8/+23
|
* Use bge_writereg_ind() to do global reset as we did before 1.159 for certainjkim2007-02-141-1/+1
| | | | | | | chipsets. It was causing 'firmware handshake timed out' errors for some chips. Discussed with: scottl
* Fix two typos in comments.jkim2007-02-141-2/+2
|
* Fix a typo from the previous commit.jkim2007-02-141-1/+1
| | | | Pointed out by: brad@openbsd.org
* Add missing 'break' that in this case is harmless.jhb2007-02-141-0/+1
|
* Fix compilation for statically linked snd_envy24{ht}/spicds. Use explicitariff2007-02-143-3/+3
| | | | | | struct mtx rather than void pointer. PR: kern/109147
* The return value of aac_alloc_command() was misinterpreted in aac_ioctl_event().luoqi2007-02-141-1/+1
| | | | | | | Once triggered this would leak away all available commands and starve the rest of the driver. Reviewed by: scottl
* Fix typos in comments while I am here.jkim2007-02-132-28/+29
|
* Add BCM5701 A0/B0 CRC bug workaround. Magic values taken from Linux driver.jkim2007-02-123-0/+26
|
* Fix style(9).jkim2007-02-124-1845/+1848
| | | | Pointed out by: many
* Add PHY DSP code for BCM5755M.jkim2007-02-124-1/+32
| | | | Obtained from: OpenBSD
* BCM5701 PHY cannot read-modify-write. Just re-use the magic number from DSPjkim2007-02-121-4/+9
| | | | init code.
* Replace magic numbers with corresponding definitions.jkim2007-02-121-8/+8
|
* Rearrange the SATA connect logic so that we so that we pickup ATAPI devices.sos2007-02-121-12/+4
| | | | The rest of the logic should be in place for most supporting chipsets.
* add a missing piece for 2432mjacob2007-02-101-0/+1
|
* Putative untested 2432 (PCI-E) support.mjacob2007-02-101-1/+12
|
* Add support for Huawei Technologies Mobile card (3G).le2007-02-092-0/+6
| | | | | Submitted by: Thorsten Schroeder <ths_AT_dev.io> MFC in: 3 days
* Fix problem with RTL8201L PHY. From submitter:imp2007-02-081-2/+17
| | | | | | | | | | | | | | | | | | | | | | | Bugfix for the Realtek PHY driver... an RTL8201L standalone PHY needs different handling than the integrated ones in terms of speed detection. There was a bogus test based on the parent device driver name string controlling which speed register to query. That test began failing when the rl driver was split into separate rl and re drivers some time ago. Apparently nobody ever noticed because the buggy code only executes if NWAY negotiation failed. Since we happen to be testing with an ancient dumb hub rather than a modern switch, we found it. To fix it all, have the attach() routine notice whether we're dealing with an integrated PHY or an RTL8201L and store that info in a struct accessible to the status() routine that needs to know which register to query. I touched up the fixes because they were relative to RELENG_6 and to bring a few nits into line with style(9). MFC After: 2 weeks Submitted by: Ian Lepore
OpenPOWER on IntegriCloud