summaryrefslogtreecommitdiffstats
path: root/sys/dev/pci (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Always initialise the index into iwm's tx queue array, fixing astsp2015-10-121-3/+2
| | | | | | potential crash. This must have somehow been working by magic. Fruther cleanup of QoS support in this driver is very much needed. ok mpi@
* Add a symbolic name for the special '-1' value of iwm's sc_wantresp.stsp2015-10-112-6/+9
| | | | ok phessler
* In iwm(4), set mbuf pointers to NULL after freeing mbufs.stsp2015-10-101-1/+3
| | | | ok phessler mpi zhuk
* Remove evil hack. I've never seen the printf fire, and xenocara no longerkettenis2015-10-091-16/+2
| | | | | | contains any code that can manipulate the affected register directly. ok jsg@
* Implement set_pages_array_wb() and set_pages_array_wc() for powerpc. Sincekettenis2015-10-081-5/+7
| | | | | | | powerpc doesn't actually implement write-combining fall back to uncached mappings. ok mpi@, jsg@
* Call em_start() when we detect a link state change such that packets startkettenis2015-10-081-1/+3
| | | | | | | | flowing again even if the send queue is currently full. Restores the fix made by makeb@ in rev 1.263 which was lost in making the tx completion path mpsafe. ok mikeb@
* In i915_gem_fault(), move the "out" label after the switch state such that wekettenis2015-10-071-2/+3
| | | | | | | don't interpret one of the VM_PAGER_XXX return values as an unhandled errno value and return the intended code instead of VM_PAGER_ERROR. ok jsg@
* Make sure that tx_buffer->next_eop is properly set before we bump the numberkettenis2015-10-061-7/+13
| | | | | | | | | of available descriptors, such that the interrupt handler doesn't attempt to complete partially initialized descriptors. Seems to fix the watchdog timeouts reported by various people. Tested by Mattieu Baptiste and Gregor Best. ok mikeb@
* Make iwm(4) set the MAC address the same way other wireless drivers do.stsp2015-10-061-7/+6
| | | | ok mpi@
* Simplify iwm(4) newstate task by only queuing one state transitionstsp2015-10-052-53/+26
| | | | | | | | | | | | at a time. The newstate task now always transitions to the most recently requested state, rather than hopping along with every request. This allows us get rid of the silly newstate generation counter, and we can now task_del() a pending transition when the interface goes down. While several issues with this driver remain, I believe this change does not introduce new problems. Tested by myself, jasper@, and zhuk@
* Run the tx completion path without the kernel held. This makes thekettenis2015-09-302-47/+29
| | | | | | | | | | | "fast path" through the interrupt handler not grab the kernel lock anymore. This removes the code that attempts to reclaim tx descriptors from em_start(). Keeping that code would have complicated the locking. The need to reclaim tx descriptors that way should have largely disappeared now that the interrupt handler doesn't have to wait on the kernel lock. ok mpi@ tested by many
* I missed an #ifdef notyet when enabling the aliasing ppgtt code.kettenis2015-09-301-3/+1
| | | | | Hopefully this fixes the stability problems people have been seeing on sandybridge and up after the ppgtt code got enabled.
* Unlock interrupt handler rx path with intr_barrierchris2015-09-291-3/+15
| | | | ok mikeb@
* get rid of the mutex between access to the status block and myx_downdlg2015-09-291-65/+44
| | | | | | | | | | | | myx is unusual in that it has an explicit command to shut down the chip that gets an interrupt when it's done. so myx_down sends the command and has to sleep until it gets that interrupt. this moves to using a single int to represent that state (so loads and stores are atomic), and sleep_setup/sleep_finish in myx_down to wait for it to change. this has been running in production at work for a few months now tested by chris@
* The Linux code that handles the DPMS mode for inteldrm(4) can sleep now.kettenis2015-09-282-8/+26
| | | | | | | Adopt the approach taken by radeondrm(4) and hand the "burner" work off to a task. Avoids the panic reported by Gerald Hanuer, who also tested this fix.
* remove duplicate entry caused by the "Quanta Transcode" devicejsg2015-09-281-1/+0
|
* Remove the "Quanta Transcode" device from the list of supported hardware.kettenis2015-09-281-12/+1
| | | | | | | | | | | It's only supposed to match certain subvendor/subdevice IDs, but our code doesn't check those. The result is that it (incorrectly) overrides the generic match for the HD Graphics P4000 as found on some Xeon E3 CPUs. This device is supposedly a castrated version of that device with the display output parts fused off. According to the original Linux commit it is "some HW being used for a demo", and there have been proposals to remove it from the Linux tree as well. It is unlikely that OpenBSD will ever run on this particular hardware.
* Enable monitor hot plugging for the framebuffer console.kettenis2015-09-274-37/+25
| | | | | Tested on the VGA port of a Radeon 7500 and Radeon 9250 (aka 9200 PRO). Hopefully this works on Intel Graphics as well.
* Fix bsd.rd upgrades over iwm(4), and fix `ifconfig iwm0 lladdr random`.stsp2015-09-271-6/+18
| | | | | | | | | | | The bsd.rd problems happened because of the net80211 detach/attach hack which ran when the firmware is loaded for the first time. Do the minimum of what needs to be done instead. To fix lladdr random pick up a changing MAC address in the ioctl handler and don't overwrite a custom MAC address while loading the firmware. ok kettenis@
* Align the way iwm(4) adds the MAC context with how it's done in Linux iwlwifi.stsp2015-09-271-7/+10
| | | | | Noted by Adrian Chadd (FreeBSD). ok kettenis@
* Use drm_fb_helper_restore_fbdev_mode() to restore the wscons framebufferkettenis2015-09-271-5/+5
| | | | | | whenever we need to. Apologies for the ugly cast. Should fix the locking warnings reported by tobiasu@
* regenkettenis2015-09-272-5/+10
|
* Add another AMD RS780 PCIE found in a dmesg from tobiasu@kettenis2015-09-271-3/+4
|
* Switch remaining users of the FreeBSD refcount apis back to the originaljsg2015-09-2716-212/+250
| | | | | | linux kref/kobject use. ok kettenis@
* Try a little bit harder to clean up if attaching inteldrm(4) fails.kettenis2015-09-263-50/+87
| | | | | | | | | | The crucial bit is that we now clear dev->dev_priv, which prevents the X server from opening /dev/drmN and crashing the kernel because the driver isn't fully initialized. While there, try a little bit harder to print error messages the proper way. Things will still look ugly though if the failure is somewhere in the Linux code.
* Update drm_irq.c to the version from Linux 3.14.52.kettenis2015-09-269-363/+452
| | | | | | Disable the DRM_IOCTL_IRQ_BUSID and DRM_IOCTL_CONTROL ioctls. These are legacy ioctls for DRI1 support, which we no longer support on OpenBSD.
* Apparently Valleyview / Bay Trail has 32-bit BARs, so fetch the type insteadkettenis2015-09-261-7/+11
| | | | of hardcoding them to be 64-bit. Figured out by sthen@
* Make the PPGTT code work. Seems to fix the caching issues on Broadwell.kettenis2015-09-264-16/+151
| | | | | | Comments on some of the later Broadwell-related commits in the Linux tree seem to say that the PPAT flags in for the (global) GTT are simply broken in the hardware.
* Make iwm(4) DPRINTFs show states by name instead of number.stsp2015-09-261-4/+9
|
* Apparently 0 is not a power of 2 (despite <sys/param.h> claiming that it is).kettenis2015-09-251-2/+2
| | | | Fixes inteldrm(4) on the GM45 chipset.
* 3.14 backports of some Broadwell fixes fromjsg2015-09-256-28/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | http://lists.freedesktop.org/archives/intel-gfx/2014-March/042121.html Ben Widawsky drm/i915/bdw: Restore PPAT on thaw a2319c08bfd849ea32b4f890ce92df86074c5731 Ville Syrjala drm/i915: We implement WaDisableAsyncFlipPerfMode:bdw 8285222c487b61c48b9b955b82598544c3c06050 Ben Widawsky drm/i915/bdw: Use scratch page table for GEN8 PPGTT 8407bb9129da95fc4099b84cdbbc23e6d4f66aee Jani Nikula drm/i915: don't flood the logs about bdw semaphores c923facd535b97972b5bb7d3df4fcafd61a63a5e Ville Syrjala drm/i915: Implement WaDisableSDEUnitClockGating:bdw 4f1ca9e94057de098d65bc7477e8f89dd51609aa Ville Syrjala drm/i915: Don't clobber CHICKEN_PIPESL_1 on BDW c7c656226842679bcd9f39dc24441b4ff398a850 Kenneth Graunke drm/i915: Add a partial instruction shootdown workaround on Broadwell. c8966e1058e1e8ae2eec4211157847032829697a Damien Lespiau drm/i915/bdw: The TLB invalidation mechanism has been removed from INSTPM dc616b89dbc4bb6a99884d214bd1ed1e0eef59a0 Kenneth Graunke drm/i915: Add thread stall DOP clock gating workaround on Broadwell. 1411e6a57a1836ba8a3d4f17c8733b2fbaf0f005 Ville Syrjala drm/i915: Disable semaphore wait event idle message on BDW 295e8bb73a4785b65db6655fbf6ad57c4177b551 Mika Kuoppala drm/i915: Do forcewake reset on gen8 0a089e3355d77f758e46db54a0a81d4b58a28cc3 Mika Kuoppala drm/i915: Fix forcewake counts for gen8 e9dbd2b20201b49b04476d2e5763faa822967913 ok kettenis@
* Disable IPS for now. Identified by jsg@ as the cause for the unsynchedkettenis2015-09-251-2/+2
| | | | | display after waking it from standby or after VT switches. Can't seem to get him to commit this workaround while he his hunting for a proper fix.
* Now that waitqueue_active() actually works, enable the WARN_ON that uses it.kettenis2015-09-251-2/+2
|
* Enable MSIs on hardware that supports it. On the Thinkpad X1, the APIC pinkettenis2015-09-241-7/+8
| | | | | is shared with the disk, which results in noticable latency during heavy disk activity.
* Properly implement waitqueue_active(). Gets rid of spuriouskettenis2015-09-242-4/+15
| | | | | | *ERROR* Hangcheck timer elapsed... xxx ring idle messages.
* regenjsg2015-09-242-5/+75
|
* Add some more Broadwell graphics ids.jsg2015-09-241-3/+17
|
* The devlist awk script didn't pickup the broadwell ids as they arejsg2015-09-241-52/+71
| | | | | | | encoded with shifts. Switch to a file constructed by iterating through i915_drv.c pciidlist so these will be included. ok kettenis@
* Update inteldrm to the code from Linux 3.14.52 (which corresponds tokettenis2015-09-2388-15202/+36346
| | | | | | | | | | | | | | | | | commit 48f8f36a6c8018c2b36ea207aaf68ef5326c5075 on the linux-3.14.y branch of the linux-stable tree). This brings preliminary support for the GPU on Intel's Broadwell CPUs. Don't expect these to work perfectly yet. There are some remaining issues with older hardware as well, but no significant regressions have been uncovered. This also updates some of drm core code. The radeondrm code remains based on Linux 3.8 with some minimal canges to adjust to changes in the core drm APIs. Joint effort with jsg@, who did the initial update of the relevant drm core bits. Committing this early to make sure it gets more testing and make it possible for others to help getting the remaining wrinkles straightened out.
* In iwm(4), properly reset the RX ring by clearing RX buffer status memory.stsp2015-09-231-1/+7
| | | | Found by Matthew Dillon (Dragonfly). DMA sync hint from tedu@, ok mpi@
* In iwm(4), while not associated, pass the broadcast ethernet address tostsp2015-09-231-2/+2
| | | | | | the firmware, rather than zeros. Matches what Linux iwlwifi does. Spotted by Adrian Chadd (FreeBSD). ok mpi@
* regenjasper2015-09-222-2/+7
|
* add (unsupported) realtek wireless card as found in rpointel@'s x250, thoughjasper2015-09-221-1/+2
| | | | | | it could be supported by rtwn(4) eventualy ok stsp@
* brad points out i need bpf_mtap_ether to reconstruct vlan headersdlg2015-09-201-2/+2
|
* need to keep bpf in the tx path. got a bit ahead of myself there...dlg2015-09-201-1/+6
| | | | noticed by brad
* Avoid using a mutex in the rx completion path. Instead rely onkettenis2015-09-192-30/+14
| | | | | | | | intr_barrier(9) to avoid having the interrupt handler touch the rx data structures while we're brining down the interface. This actually reverts many of the changes in rev. 1.300. ok mikeb@
* make vmx(4) interrupts mpsafe.dlg2015-09-181-63/+97
| | | | | | | | | | | | | | | the vmx rx path is only touched in the interrupt handler, so it is already guaranteed to be accessed by only one cpu at a time. the tx path has been massaged so the the producer is only touched by the start routine, and the consumer is only touched by the interrupt path, and can therefore be run concurrently. the only interlock is a count of the free descriptors. if txintr clears IFF_OACTIVE, it takes the kernel lock before running the start routine. other interrupts, eg, link state handling, take the kernel lock.
* Fix more ifmedia64 fallout in the kernel. It's hiding everywhere...stsp2015-09-141-3/+3
|
* More ifmedia64 fallout; that should be the last.miod2015-09-122-5/+6
|
* Add support for the 88E1512/88E1514 phys using the 1512 init sequencejsg2015-09-122-4/+111
| | | | | | from the Intel code in FreeBSD. Tested by Paul Levlin on a machine with I354.