summaryrefslogtreecommitdiffstats
path: root/sys/dev/pci/drm/drm_linux.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Improve Linux PCI compatibility code.kettenis2016-02-051-1/+12
|
* Provide a minimal implementation of the Linux vga_get/vga_put API and use itkettenis2015-12-311-1/+7
| | | | | | | | | | | | | in inteldrm(4). The Intel integrated graphics device has a major design flaw where it needs legacy VGA io access to disable VGA mode completely. This only works if legacy VGA io routing is setup such that it actually reaches the IGD. This typically isn't the case if the primary VGA device is a discrete graphics device. To make sure we don't whack that device we have to temporarily route legacy VGA io access to the IGD. Fixes the "black screen" issue reported by Timo Myrra and others.
* Fix the code that sets up the MCH BAR on systems where the (buggy) BIOSkettenis2015-10-171-1/+5
| | | | | | | | | | | | doesn't do this for us. The code was poking registers on the wrong PCI device. We were just lucky that it worked on most systems. This should fix machines such as the Asus EeePC 701 and get rid of the error: [drm:pid0:i915_gem_detect_bit_6_swizzle] *ERROR* Couldn't read from MC HBAR. Disabling tiling. messages on that machine.
* Enable monitor hot plugging for the framebuffer console.kettenis2015-09-271-1/+13
| | | | | Tested on the VGA port of a Radeon 7500 and Radeon 9250 (aka 9200 PRO). Hopefully this works on Intel Graphics as well.
* Switch remaining users of the FreeBSD refcount apis back to the originaljsg2015-09-271-5/+75
| | | | | | linux kref/kobject use. ok kettenis@
* Try a little bit harder to clean up if attaching inteldrm(4) fails.kettenis2015-09-261-1/+14
| | | | | | | | | | 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-261-1/+38
| | | | | | 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.
* Make the PPGTT code work. Seems to fix the caching issues on Broadwell.kettenis2015-09-261-1/+46
| | | | | | 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.
* 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.
* Properly implement waitqueue_active(). Gets rid of spuriouskettenis2015-09-241-3/+11
| | | | | | *ERROR* Hangcheck timer elapsed... xxx ring idle messages.
* Update inteldrm to the code from Linux 3.14.52 (which corresponds tokettenis2015-09-231-17/+262
| | | | | | | | | | | | | | | | | 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.
* Introduce a Linux compatible wait_event API and use it in the inteldrm code.kettenis2015-07-161-1/+71
| | | | ok jsg@, guenther@
* Make use of recent drm_linux.h additions to further reduce thejsg2015-07-111-4/+5
| | | | | | diff to linux. ok kettenis@
* Add Linux completion API and use it.kettenis2015-06-261-1/+41
| | | | ok jsg@
* #undef HZ before defining it such that compiling a kernel with -DHZ=xxx works.kettenis2015-06-241-1/+2
|
* Linux jiffies and OpenBSD ticks are the same thing.kettenis2015-06-241-1/+3
| | | | ok jsg@
* Introduce Linux work queue APIs and use them. As a side-effect, this willkettenis2015-06-241-1/+96
| | | | | | | move some of the work from the system task queue to the driver-specific task queue. ok jsg@
* another round of reducing the diff to linuxjsg2015-04-181-1/+29
|
* define and use trace macrosjsg2015-04-181-1/+12
| | | | discussed with kettenis
* add and use module param macrosjsg2015-04-181-1/+5
|
* Add a few missing trace functions, and "use" them. Add back the WATCH_GTTkettenis2015-04-121-1/+13
| | | | | code (that isn't actually compiled in). Use dev_priv->dev in one more place now that we have it, and add set_normalized_timespec() and use it.
* change back to linux style pci vendor/device definesjsg2015-04-121-1/+12
|
* Switch back to ioread32 and iowrite32 for cases where bus_space_vaddr isjsg2015-04-121-1/+15
| | | | used instead of bus_space_read/bus_space_write.
* make wait_queue_head a struct with a mutexjsg2015-04-121-2/+12
| | | | better matches linux behaviour
* rename i915 interrupt handlers from *_intr back to *_irq_handlerjsg2015-04-111-1/+2
|
* change back to spinlock_t/DEFINE_SPINLOCKjsg2015-04-111-1/+2
|
* add/use max_t()jsg2015-04-111-1/+6
|
* Move irqs_disabled() and in_dbg_master() out of the i386/amd64 ifdef blockjsg2015-04-101-16/+16
| | | | | | and change drm_can_sleep() to only use in_atomic() on i386/amd64 as it isn't defined for other archs currently. Unbreaks the sparc64 build. Found the hard way by benoit@
* add irqs_disabled() and in_dbg_master() using cold and db_is_activejsg2015-04-101-1/+16
|
* change back to memcpy_toio/memcpy_fromio/memset_iojsg2015-04-081-2/+4
|
* ttm has it's own version of kmap/kunmap that usesjsg2015-04-081-1/+10
| | | | | | | | | | | kernel_map/uvm_km_valloc and i915 has a version that uses phys_map/uvm_km_valloc_wait as calling code assumes kmap would sleep if no memory is available. Move these and ttm's vmap/vunmap into the linux compat files and make them all use phys_map/uvm_km_valloc_wait. looks good kettenis@
* Move almost all of the linux compat from drmP.h to drm_linux.h.jsg2015-04-061-2/+250
| | | | | | | The exception being the barrier defines that are implemented in terms of DRM_* defines. ok kettenis@
* move some inline linux compat into the dedicated filesjsg2015-04-061-1/+89
|
* Add get_user() and put_user() compatibility interfaces and use them.kettenis2015-04-061-1/+4
| | | | ok jsg@
* add and use macros for wake_up/wake_up_all/wake_up_all_lockedjsg2015-04-061-1/+4
|
* Another round of reducing diffs with Linux. This one moves the variouskettenis2015-04-051-1/+95
| | | | | | | | | | copy_to_user and copy_from_user functions into drm_linux.h and uses them instead of copyin/copyout and DRM_COPY_*. Also move the timespec functions, and put i915_gem_object_is_purgable() where it belongs. Uncovered a bug where the arguments to copyout() were in the wrong order. ok jsg@
* resync i915_drv.h to make it diffable to linuxjsg2015-04-031-1/+10
| | | | ok kettenis@
* switch back to IRQ_NONE/IRQ_HANDLEDjsg2015-02-121-1/+4
|
* switch MUTEX_ASSERT_LOCKED calls back to assert_spin_lockedjsg2015-02-121-1/+2
|
* Add mutex_is_locked and use it wherever linux uses it.kettenis2015-02-121-1/+2
|
* Switch most printf style functions calls back to linux function namesjsg2015-02-111-1/+53
| | | | and move DRM_INFO/pr_info/dev_info messages under DRMDEBUG.
* add definitions for linux style locksjsg2015-02-101-1/+27
|
* Make another fast path properly atomic.kettenis2014-09-201-1/+3
|
* Move some duplicated code implementing Linux compatibility APIs and stick itkettenis2014-04-011-0/+65
in a seperate header file. This will become a dumping ground for similar code. ok jsg@