summaryrefslogtreecommitdiffstats
path: root/sys/dev
Commit message (Collapse)AuthorAgeFilesLines
* Defer the rescheduling of TID -> TXQ frames in some instances.adrian2012-03-293-1/+37
| | | | | | | | | | | | | | | | | | Right now ath_txq_sched() is mainly called from the TX ath_tx_processq() routine, which is (mostly) done as part of the taskqueue. It shouldn't be called outside the taskqueue. But now that I'm about to flip back on BAR TX, I'm going to start stressing the ath_tx_tid_pause() and ath_tx_tid_resume() paths. What I don't want to have happen is a reschedule of the TID traffic _during_ the completion of TX frames. Ideally I'd like to have a way to flag back up to the processing code that the current hardware queue should be rechecked for software TID queue frames. But for now, this should suffice for the BAR TX case. I may eventually delete this code once I've brought some further sanity to the general TX queue/completion path.
* Move tty_opened_ns() into syscons.c which is currently thehselasky2012-03-291-0/+3
| | | | | | | only client of this macro. Suggested by: ed @ MFC after: 1 week
* Fix bug where isci(4) would report only 15 bytes of returned data on ajimharris2012-03-291-0/+4
| | | | | | | | | READ_CAP_16 command to a SATA target. Sponsored by: Intel Reviewed by: sbruno Approved by: sbruno MFC after: 3 days
* Fix for boot issue: Don't disable BARs on AGP devices. In general:hselasky2012-03-291-0/+21
| | | | | | | | | | | Don't disable BARs on any PCI display devices, because doing that can sometimes cause the main memory bus to stop working, causing all memory reads to return nothing but 0xFFFFFFFF, even though the memory location was previously written. After a while a privileged instruction fault will appear and then nothing more can be debugged. The reason for this behaviour is unknown. MFC after: 1 week
* Fix for NULL-pointer panic during boot, if keys are pressed too early.hselasky2012-03-291-10/+11
| | | | MFC after: 1 week
* Add software PMC support.fabient2012-03-2815-69/+802
| | | | | | | | | | | | | New kernel events can be added at various location for sampling or counting. This will for example allow easy system profiling whatever the processor is with known tools like pmcstat(8). Simultaneous usage of software PMC and hardware PMC is possible, for example looking at the lock acquire failure, page fault while sampling on instructions. Sponsored by: NETASQ MFC after: 1 month
* Ensure consistent target IDs for direct-attached devices.jimharris2012-03-283-9/+32
| | | | | | | | | Sponsored by: Intel Reported by: sbruno, <rpokala at panasas dot com> Tested by: <rpokala at panasas dot com> Reviewed by: scottl Approved by: scottl MFC after: 3 days
* Add a PNP ID for Japanese 106-key keyboard.jkim2012-03-281-0/+1
| | | | | PR: kern/166459 MFC after: 3 days
* Stop HDA controller polling callout on suspend and reset it on resume.mav2012-03-281-0/+3
| | | | | PR: kern/166382 MFC after: 1 week
* Remove unnecessary #if as the software workaround for PCI protocolyongari2012-03-281-8/+5
| | | | | | | | | violation should be activated unless the system is cold-booted after updating EEPROM. The PCI protocol violation happens only when established link is 10Mbps so the workaround should be updated whenever link state change is detected. Previously the workaround was activated only when user checks current media status with ifconfig(8).
* Load entire EEPROM contents in device attach time and verifyyongari2012-03-283-23/+59
| | | | | | | | | | | whether the checksum of EEPROM is valid or not. Because driver heavily relies on EEPROM information when it selectively enables features/workarounds, it would be helpful to know whether driver sees valid EEPROM. While I'm here remove all other EEPROM accesses since the entire EEPROM is loaded at device attach time. MFC after: 2 weeks
* Partially revert r223608 and selectively allow microcode loadingyongari2012-03-282-5/+18
| | | | | | | | | | | | | | | | | | for 82550C. For 82550 controllers this change restores CPUSaver microcode loading. Due to silicon bug on 82550 and 82550C with server extension, these controllers seem to require CPUSaver microcode to receive fragmented UDP datagrams. However the microcode shouldn't be used on client featured 82550C as it locks up the controller. In addition, client featured 82550C does not have the silicon bug. Also clear temporary memory used for microcode loading since the same memory area is used for other commands. While I'm here use 82550C in probe message instead of generic 82550. Reported by: Andreas Longwitz <longwitz <> incore de> Tested by: Andreas Longwitz <longwitz <> incore de> MFC after: 2 weeks
* - Do not clobber softc when psm(4) is reintialized.jkim2012-03-271-141/+124
| | | | | | | | | | | | - Make INITAFTERSUSPEND flag independent of HOOKRESUME flag. - Automatically set INITAFTERSUSPEND flag when ALPS GlidePoint is detected. - Always probe Synaptics Touchpad. Allow MOUSE_SYN_GETHWINFO ioctl and automatically set INITAFTERSUSPEND flag when a supported device is detected, regardless of "hw.psm.synaptics_support" tunable setting. - Update psm(4) to reflect the above changes. - Remove long-time defunct SYNCHACK flag while I am in the neighborhood. MFC after: 1 month
* Restore interrupt state after executing AcpiEnterSleepState().jkim2012-03-271-5/+10
|
* strip (R) to match manpage and pci_vendorsbschmidt2012-03-271-29/+29
| | | | MFC after: 1 week
* Fix crash on VirtualBox (and probably on some real hardware):gonzo2012-03-272-1/+8
| | | | | | | | - Do not cover error returned by pmc_core_initialize with the result of pmc_uncore_initialize, fail right away. - Give a user something to report instead failing silently Reported by: Alexandr Kovalenko <never@nevermind.kiev.ua>
* Add support for 6150 series devices.bschmidt2012-03-271-0/+2
| | | | | Tested by: Shane Riddle <sh4neriddle at yahoo dot com> MFC after: 1 week
* CFI fixes for big endian archs.jchandra2012-03-274-8/+36
| | | | | | | | | | The flash commands and responses are little-endian and have to be byte swapped on big-endian systems. However the raw read of data need not be swapped. Make the cfi_read and cfi_write do the swapping, and provide a cfi_read_raw which does not byte swap for reading data from flash.
* Fix random deadlock on pmcstat exit:fabient2012-03-271-2/+4
| | | | | | | | | | - Exit the thread when soft shutdown is requested - Wakeup owner thread. Reproduced/tested by looping pmcstat measurement: pmcstat -S instructions -O/tmp/test ls MFC after: 1 week
* Driver for OpenCores I2C controller.jchandra2012-03-272-0/+468
| | | | | | | Add a Simple polled driver iicoc for the OpenCores I2C controller. This is used in Netlogic XLP processors. Submitted by: Sreekanth M. S. (kanthms at netlogicmicro com)
* Move driver for DS1374 RTC to sys/dev/iicbusjchandra2012-03-271-0/+143
| | | | | | The earlier version of the driver is sys/mips/rmi/dev/iic/ds1374u.c Convert all references to ds1374u to ds1374, and use DEVMETHOD_END. Also update the license header as Netlogic is now Broadcom.
* Use the assigned sequence number when checking if a retried packet isadrian2012-03-262-5/+40
| | | | | | | | | | | | | | | | | | within the BAW. This regression was introduced in ane earlier commit by me to fix the BAW seqno allocation-but-not-insertion-into-BAW race. Since it was only ever using the to-be allocated sequence number, any frame retries with the first frame in the BAW still in the software queue would have constantly failed, as ni_txseqs[tid] would always be outside the BAW. TODO: * Extract out the mostly common code here in the agg and non-agg ADDBA case and stuff it into a single function. PR: kern/166357
* Add some more debugging to try and nail down exactly what's going on whenadrian2012-03-251-2/+9
| | | | | | | | | | | I see traffic stalls. It turns out that the bug isn't because the first and last frame in the BAW is in the software queue. It is more likely that it's because the first frame in the BAW is still in the software queue and thus there's no more room to allocate and do subsequent TX. PR: kern/166357
* Follow non-BSD case when GNU/Hurd is detected.rmh2012-03-251-1/+1
|
* Correct failure to attach the PV block front device on Citrixgibbs2012-03-251-15/+19
| | | | | | | | | | | | | | | | | | | | | | | XenServer configurations that advertise the multi-page ring extension, but only allow a single page of ring space. sys/dev/xen/blkfront/blkfront.c: If only one page of ring space is being used, do not publish in the XenStore the number of pages in use (1), via either of the supported multi-page ring extension schemes. Single page operation is the same with or without the ring-page extension being negotiated. Relying on the legacy behavior avoids an incompatible difference in how the two ring-page extension schemes that are out in the wild, deal with the base case of a single page. The Amazon/Red Hat drivers use the same XenStore variable as if the extension was not negotiated. The Citrix drivers assume the new ring reference XenStore variables will be available Reported by: Oliver Schonefeld <schonefeld@ids-mannheim.de> MFC after: 3 days
* Add the new channel width change field to the ath(4) driver.adrian2012-03-251-0/+27
| | | | | | | | | | | | | This is not entirely correct as it simply resets the channel, flushing whatever is in the TX/RX queue. This can and will break aggregation BAW tracking. But the alternative (HT40 frames being sent with the hardware in HT20 mode) is even worse. There's still a small window between the htinfo being received (and the ni_chw field being updated) which could cause problems. I'll look at fleshing this out in follow-up commits. PR: kern/166286
* Consistently update to the MPI header set version 01.05.20 after r224761.marius2012-03-2414-271/+569
| | | | | | Requested by: mjacob MFC after: 1 week
* Initialize the mutexes used for the NVM and the swflag as MTX_DUPOK inmarius2012-03-241-1/+2
| | | | | | | | | | | | | order to avoid otherwise harmless witness warnings when these are acquired at the same time and due to both using MTX_NETWORK_LOCK as their type. The right fix actually would be to use different, descriptive types for these. However, the latter would require undesirable changes to the shared code base. Another approach would be to just supply NULL as the type, which was deemed as less desirable though as it would cause the unique but cryptic name also to be used for the type and to diverge from the type used by other network device drivers. MFC after: 1 week
* As it turns out, mpi_cnfg.h already is included by mpt.h.marius2012-03-241-2/+0
|
* - Use the PCI ID macros from mpi_cnfg.h rather than duplicating them here.marius2012-03-242-151/+82
| | | | | | | | | | | | | | | | | | | | Note that this driver additionally probes some device IDs for the most part not know to other MPT drivers, if at all. So rename the macros not present in mpi_cnfg.h to match the naming scheme in the latter and but suffix them with a _FB in order to not cause conflicts. - Like mpt_set_config_regs(), comment out mpt_read_config_regs() as the content of the registers read isn't actually used and both functions aren't exactly up to date regarding the possible layouts of the BARs (these function might be helpful for debugging though, so don't remove them completely). - Use DEVMETHOD_END. - Use NULL rather than 0 for pointers. - Remove an unusual check for the softc being NULL. - Remove redundant zeroing of the softc. - Remove an overly banal and actually partly incorrect as well as partly outdated comment regarding the allocation of the memory resource. MFC after: 3 days
* Use suspend/resume methods provided by net80211. This ensures that thebschmidt2012-03-234-35/+16
| | | | | | | | | appropriate state handling takes place, not doing so results in the device doing nothing until manual intervention. Reviewed by: iwasaki Tested by: iwasaki (iwi) MFC after: 4 weeks
* Call xpt_bus_register during attach context, then freeze and do not releasejimharris2012-03-233-12/+43
| | | | | | | | | | until domain discovery is complete. This fixes an isci(4) bug on FreeBSD 7.x where devices weren't always appearing after boot without an explicit rescan. Sponsored by: Intel Reported and tested by: <rpokala at panasas dot com> Reviewed by: scottl Approved by: scottl
* Don't cast a bus address to a uint8_t pointer just to add an offset tojhb2012-03-231-1/+1
| | | | it. Instead, add the offset directly to the bus address.
* Add Octeon PMC hardware backendgonzo2012-03-231-0/+195
|
* Add list of Octeon's PMC counters obtained from cvmx-core.hgonzo2012-03-231-0/+63
|
* Add some further debugging to try and aid tracking down what the state ofadrian2012-03-221-0/+19
| | | | things were just before a full software queue is drained.
* Sprinkle some style(9) things around.adrian2012-03-221-6/+12
|
* Rework MIPS PMC code:gonzo2012-03-223-598/+561
| | | | | | | | - Replace MIPS24K-specific code with more generic framework that will make adding new CPU support easier - Add MIPS24K support for new framework - Limit backtrace depth to 1 for stability reasons and add option HWPMC_MIPS_BACKTRACE to override this limitation
* Add ACPI_LV_REPAIR debug level, available since ACPICA 20091214 (r200553).jkim2012-03-221-0/+1
| | | | MFC after: 3 days
* Load the firmware during init not attach, as a root filesystem mightbschmidt2012-03-211-8/+8
| | | | | | | not yet be available. While here, also print the firmware version. Submitted by: PseudoCylon MFC after: 3 days
* - First pass at const'ifying ata(4) as appropriate.marius2012-03-2132-124/+138
| | | | | | | - Use DEVMETHOD_END. - Use NULL instead of 0 for pointers MFC after: 1 week
* Remove remnants of ATA_LOCKING uses in the ATA_CAM case and wrap itmarius2012-03-216-7/+94
| | | | | | | | | | | | | | | along with functions, SYSCTLs and tunables that are not used with ATA_CAM in #ifndef ATA_CAM, similar to the existing #ifdef'ed ATA_CAM code for the other way around. This makes it easier to understand which parts of ata(4) actually are used in the new world order and to later on remove the !ATA_CAM bits. It also makes it obvious that there is something fishy with the C-bus front-end as well as in the ATP850 support, as these used ATA_LOCKING which is defunct in the ATA_CAM case. When fixing the former, ATA_LOCKING probably needs to be brought back in some form or other. Reviewed by: mav MFC after: 1 week
* Merge ACPICA 20120320.jkim2012-03-202-3/+16
|
* Delay sequence number allocation for A-MPDU until just before the frameadrian2012-03-205-50/+259
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | is queued to the hardware. Because multiple concurrent paths can execute ath_start(), multiple concurrent paths can push frames into the software/hardware TX queue and since preemption/interrupting can occur, there's the possibility that a gap in time will occur between allocating the sequence number and queuing it to the hardware. Because of this, it's possible that a thread will have allocated a sequence number and then be preempted by another thread doing the same. If the second thread sneaks the frame into the BAW, the (earlier) sequence number of the first frame will be now outside the BAW and will result in the frame being constantly re-added to the tail of the queue. There it will live until the sequence numbers cycle around again. This also creates a hole in the RX BAW tracking which can also cause issues. This patch delays the sequence number allocation to occur only just before the frame is going to be added to the BAW. I've been wanting to do this anyway as part of a general code tidyup but I've not gotten around to it. This fixes the PR. However, it still makes it quite difficult to try and ensure in-order queuing and dequeuing of frames. Since multiple copies of ath_start() can be run at the same time (eg one TXing process thread, one TX completion task/one RX task) the driver may end up having frames dequeued and pushed into the hardware slightly/occasionally out of order. And, to make matters more annoying, net80211 may have the same behaviour - in the non-aggregation case, the TX code allocates sequence numbers before it's thrown to the driver. I'll open another PR to investigate this and potentially introduce some kind of final-pass TX serialisation before frames are thrown to the hardware. It's also very likely worthwhile adding some debugging code into ath(4) and net80211 to catch when/if this does occur. PR: kern/166190
* Do not reuse the previous address when restoring linear frame buffer.jkim2012-03-191-4/+6
|
* Remove this - it's not needed as it's defined in ieee80211_freebsd.h.adrian2012-03-191-4/+0
|
* Do not change current media when driver is already running. Ifyongari2012-03-191-3/+3
| | | | | | | | | | | | driver is running driver would have already completed flow control configuration. This change removes unnecessary media changes in controller reconfiguration cases such that it does not trigger link reestablishment for configuration change requests like promiscuous mode change. Reported by: Many Tested by: Mike Tancsa <mike <> sentex dot net> MFC after: 1 week
* Save and restore linear frame buffer between suspend and resume.jkim2012-03-171-0/+19
| | | | MFC after: 1 week
* Remove unnecessary static variable initializations and duplicate codes.jkim2012-03-161-52/+42
| | | | Consistently use bcopy(9) over memcpy(9).
* Fix a couple of debugging outputs.adrian2012-03-161-4/+13
| | | | | | | | | * printf -> device_printf * print the buffer pointer and sequence number for any buffer that wasn't correctly tidied up before it was freed. This is to aid in some current SMP TX debugging stalls. PR: kern/166190
OpenPOWER on IntegriCloud