An error occurred fetching the project authors.
- 04 Sep, 2009 1 commit
-
-
Shaohua Li authored
In the event that any one of the DAC analog outputs (R,G,B) were driven at full-scale (white video) or some analog level close to full-scale voltage, and if the video cable were then disconnected, the analog video voltage level would exceed the maximum electrical overstress limit of the native (thin-oxide) transistors thus causing a long-term reliability concern. The electrical overstress condition occurs in this particular case. This patch address the IGD EOS (electrical overstress condition) issue. When the EOS interrupt occurs, OS should disable DAC and then disable EOS, then the normal hotplug operation follows. TODO: it appears the normal unplug interrupt is missed as reported by Li Peng, need more checks here. Signed-off-by:
Shaohua Li <shaohua.li@intel.com> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 09 Aug, 2009 1 commit
-
-
Frans Pop authored
these errors are pretty pointless Reviewed-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
- 05 Aug, 2009 1 commit
-
-
Eric Anholt authored
Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 13 Jul, 2009 1 commit
-
-
Jesse Barnes authored
This patch refactors the existing error detection and collection code, placing most of it in i915_handle_error(). Additionally, we introduce a work queue for scheduling post-crash tasks such as generating a uevent. Using the uevent facility, userspace should be able to capture a post-mortem dump for diagnostics. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Ben Gamari <bgamari.foss@gmail.com> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 01 Jul, 2009 2 commits
-
-
Shaohua Li authored
This patch from jbarnes and myself adds FIFO watermark control to the driver. This is needed for both power saving features on new platforms with the so-called "big FIFO" and for controlling FIFO allocation between pipes in multi-head configurations. It's also necessary infrastructure to support things like framebuffer compression and configuration supportability checks (i.e. checking a configuration against available bandwidth). Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Shaohua Li <shaohua.li@intel.com> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
Jesse Barnes authored
This patch enables error detection by enabling several types of error interrupts. When an error interrupt is received, the interrupt handler captures the error state; hopefully resulting in an accurate set of error data (error type, active head pointer, etc.). The new record is then available from sysfs. The current code will also dump the error state to the system log. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 18 Jun, 2009 1 commit
-
-
Keith Packard authored
This allows each output to deal with plug/unplug events as needed. Signed-off-by:
Keith Packard <keithp@keithp.com>
-
- 09 Jun, 2009 1 commit
-
-
Zhenyu Wang authored
Update interrupt handling methods for IGDNG with new registers for display and graphics interrupt functions. As we won't use irq-based vblank sync in dri2, so display interrupt on new chip will be used for hotplug only in future. Signed-off-by:
Zhenyu Wang <zhenyuw@linux.intel.com> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 05 Jun, 2009 2 commits
-
-
Jesse Barnes authored
All G4x and newer chips use the new style frame count register, with a full 32 bit frame count. Update the code to reflect this. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
Zhenyu Wang authored
Disable OpRegion support for now until verified on new chipsets. Signed-off-by:
Zhenyu Wang <zhenyuw@linux.intel.com> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 17 Apr, 2009 1 commit
-
-
Eric Anholt authored
Userland is broken if it's trying this, but we also shouldn't allow oopses. Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 01 Apr, 2009 1 commit
-
-
Jesse Barnes authored
Add VGA port hotplug detection to the i915 driver. When KMS is enabled, plugging in or removing a VGA cable from the VGA connector will generate a uevent, which indicates to userspace that it should re-probe outputs on this device (to determine modes, etc.). Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> [anholt: dropped extra PORT_HOTPLUG_STAT clear with ack from jbarnes] Signed-off-by:
Eric Anholt <eric@anholt.net>
-
- 02 Mar, 2009 1 commit
-
-
Eric Anholt authored
This could be triggered by a client asking to emit an irq when the device wasn't initialized. Signed-off-by:
Eric Anholt <eric@anholt.net> Signed-off-by:
Dave Airlie <airlied@linux.ie>
-
- 08 Feb, 2009 1 commit
-
-
Jesse Barnes authored
As discussed in the long thread about vblank related timeouts, it turns out GM45 has different frame count registers than previous chips. This patch adds support for them, which prevents us from waiting on really stale sequence values in drm_wait_vblank (which rather than returning immediately ends up timing out or getting interrupted). Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Dave Airlie <airlied@linux.ie>
-
- 10 Jan, 2009 1 commit
-
-
Jesse Barnes authored
In some cases userland may be confused and try to wait on vblank events from pipes that aren't actually enabled. We shouldn't allow this, so return -EINVAL if the pipe isn't on. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Eric Anholt <eric@anholt.net> Signed-off-by:
Dave Airlie <airlied@linux.ie>
-
- 29 Dec, 2008 2 commits
-
-
Jesse Barnes authored
This commit adds i915 driver support for the DRM mode setting APIs. Currently, VGA, LVDS, SDVO DVI & VGA, TV and DVO LVDS outputs are supported. HDMI, DisplayPort and additional SDVO output support will follow. Support for the mode setting code is controlled by the new 'modeset' module option. A new config option, CONFIG_DRM_I915_KMS controls the default behavior, and whether a PCI ID list is built into the module for use by user level module utilities. Note that if mode setting is enabled, user level drivers that access display registers directly or that don't use the kernel graphics memory manager will likely corrupt kernel graphics memory, disrupt output configuration (possibly leading to hangs and/or blank displays), and prevent panic/oops messages from appearing. So use caution when enabling this code; be sure your user level code supports the new interfaces. A new SysRq key, 'g', provides emergency support for switching back to the kernel's framebuffer console; which is useful for testing. Co-authors: Dave Airlie <airlied@linux.ie>, Hong Liu <hong.liu@intel.com> Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Eric Anholt <eric@anholt.net> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Dave Airlie authored
This is step one towards having multiple masters sharing a drm device in order to get fast-user-switching to work. It splits out the information associated with the drm master into a separate kref counted structure, and allocates this when a master opens the device node. It also allows the current master to abdicate (say while VT switched), and a new master to take over the hardware. It moves the Intel and radeon drivers to using the sarea from within the new master structures. Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
- 02 Dec, 2008 1 commit
-
-
Andrew Morton authored
drivers/gpu/drm/i915/i915_irq.c: In function 'i915_disable_pipestat': drivers/gpu/drm/i915/i915_irq.c:101: warning: control may reach end of non-void function 'i915_pipestat' being inlined Cc: Dave Airlie <airlied@linux.ie> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
- 24 Nov, 2008 4 commits
-
-
Keith Packard authored
drm vblank initialization keeps track of the changes in driver-supplied frame counts across vt switch and mode setting, but only if you let it by not tearing down the drm vblank structure. Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Keith Packard authored
Because we write pipestat before iir, it's possible that a pipestat interrupt will occur between the pipestat write and the iir write. This leaves pipestat with an interrupt status not visible in iir. This may cause an interrupt flood as we never clear the pipestat event. Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Eric Anholt <eric@anholt.net> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Eric Anholt authored
The IMR masking was a technique recommended for avoiding getting stuck with no interrupts generated again in MSI mode. It kept new IIR bits from getting set between the IIR read and the IIR write, which would have otherwise prevented an MSI from ever getting generated again. However, this caused a problem for vblank as the IMR mask would keep the pipe event interrupt from getting reflected in IIR, even after the IMR mask was brought back down. Instead, just check the state of IIR after we ack the interrupts we're going to handle, and restart if we didn't get IIR all the way to zero. Signed-off-by:
Eric Anholt <eric@anholt.net> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Keith Packard authored
The pipestat fields affect reporting of all vblank-related interrupts, so we have to reset them during the irq_handler, and while enabling vblank interrupts. Otherwise, if a pipe status field had been set to non-zero before enabling reporting, we would never see an interrupt again. This patch adds i915_enable_pipestat and i915_disable_pipestat to abstract out the steps needed to change the reported interrupts. Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Eric Anholt <eric@anholt.net> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
- 11 Nov, 2008 2 commits
-
-
Keith Packard authored
Addresses in the hardware status page below index 0x20 are reserved for use by the hardware. The legacy breadcrumb was sitting at index 5. Move it to index 0x21, and make sure everyone uses the defined value instead of hard-coded constants. Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Dave Airlie <airlied@linux.ie>
-
Eric Anholt authored
When userland detected that this ioctl was supported (by version number check), it used it in a racy way -- dispatch delayed swap, wait for vblank, continue rendering. As there was no mechanism for it to wait for the swap to finish, sometimes it would render before the swap and garbage would be displayed on the screen. By removing the ioctl and returning -EINVAL, userland returns to its previous, correct rendering path of waiting for a vblank then dispatching a swap. The only path that could have used this ioctl correctly was page flipping, which relied on only one client running and emitting wait-for-vblank-before-rendering in the command stream. That path also falls back correctly, at the performance cost of not being able to queue up rendering before the flip occurs. Signed-off-by:
Eric Anholt <eric@anholt.net> Signed-off-by:
Dave Airlie <airlied@linux.ie>
-
- 23 Oct, 2008 5 commits
-
-
Keith Packard authored
vblank in the kernel is far simpler if it deals with pipes instead of planes, so we're changing both user and kernel side. Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Eric Anholt <eric@anholt.net> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Keith Packard authored
To synchronize clip lists with the X server, the DRM lock must be held while looking at drawable clip lists. To synchronize with other ring access, the ring mutex must be held while inserting commands into the ring. Failure to do the first resulted in easy visual corruption when moving windows, and the second could have corrupted the ring with DRI2. Grabbing the DRM lock involves using the DRM tasklet mechanism, grabbing the ring mutex means potentially sleeping. Deal with both of these by always running the tasklet from a work handler. Also, protect from clip list changes since the vblank request was queued by making sure the window has at least one rectangle while looking inside, preventing oopses . Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Eric Anholt <eric@anholt.net> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Eric Anholt authored
Otherwise, if we lost the race, the pipestat bit would be set without being reflected in IIR, and we would never clear the pipestat bit so the pipe event would never be generated again, and all vblank waits would time out. Signed-off-by:
Eric Anholt <eric@anholt.net> Acked-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Eric Anholt authored
If the failing paths were hit, the vblank IRQ would never get turned off again. Signed-off-by:
Eric Anholt <eric@anholt.net> Acked-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Keith Packard authored
This uses the same spinlock as the user_irq code as it shares the same register, ensuring that interrupt registers are updated atomically. Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Eric Anholt <eric@anholt.net> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
- 17 Oct, 2008 8 commits
-
-
Eric Anholt authored
Signed-off-by:
Eric Anholt <eric@anholt.net> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Kristian Høgsberg authored
We fail ioctls that depend on the sarea_priv with EINVAL. Signed-off-by:
Kristian Høgsberg <krh@redhat.com> Signed-off-by:
Eric Anholt <eric@anholt.net> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Eric Anholt authored
In the conversion for GEM, we had stopped using the hardware lock to protect ring usage, since it was all internal to the DRM now. However, some paths weren't converted to using struct_mutex to prevent multiple threads from concurrently working on the ring, in particular between the vblank swap handler and ioctls. Signed-off-by:
Eric Anholt <eric@anholt.net> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Eric Anholt authored
GEM allows the creation of persistent buffer objects accessible by the graphics device through new ioctls for managing execution of commands on the device. The userland API is almost entirely driver-specific to ensure that any driver building on this model can easily map the interface to individual driver requirements. GEM is used by the 2d driver for managing its internal state allocations and will be used for pixmap storage to reduce memory consumption and enable zero-copy GLX_EXT_texture_from_pixmap, and in the 3d driver is used to enable GL_EXT_framebuffer_object and GL_ARB_pixel_buffer_object. Signed-off-by:
Eric Anholt <eric@anholt.net> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Jesse Barnes authored
Previously, drivers supporting vblank interrupt waits would run the interrupt all the time, or all the time that any 3d client was running, preventing the CPU from sleeping for long when the system was otherwise idle. Now, interrupts are disabled any time that no client is waiting on a vblank event. The new method uses vblank counters on the chipsets when the interrupts are turned off, rather than counting interrupts, so that we can continue to present accurate vblank numbers. Co-author: Michel Dänzer <michel@tungstengraphics.com> Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Eric Anholt <eric@anholt.net> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Matthew Garrett authored
This adds the support necessary for allowing ACPI backlight control to work on some newer Intel-based graphics systems. Tested on Thinkpad T61 and HP 2510p hardware. Signed-off-by:
Matthew Garrett <mjg@redhat.com> Signed-off-by:
Dave Airlie <airlied@linux.ie>
-
Eric Anholt authored
Previous attempts at interrupt mitigation had been foiled by i915_wait_irq's failure to update the sarea seqno value when the status page indicated that the seqno had already been passed. MSI support has been seen to cut CPU costs by up to 40% in some workloads by avoiding other expensive interrupt handlers for frequent graphics interrupts. Signed-off-by:
Eric Anholt <eric@anholt.net> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Jesse Barnes authored
Signed-off-by:
Eric Anholt <eric@anholt.net> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
- 14 Jul, 2008 1 commit
-
-
Dave Airlie authored
With the coming of kernel based modesetting and the memory manager stuff, the everything in one directory approach was getting very ugly and starting to be unmanageable. This restructures the drm along the lines of other kernel components. It creates a drivers/gpu/drm directory and moves the hw drivers into subdirectores. It moves the includes into an include/drm, and sets up the unifdef for the userspace headers we should be exporting. Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
- 03 Jul, 2008 1 commit
-
-
Jesse Barnes authored
When scheduled swaps occur, we need to blit between front & back buffers. If the buffers are tiled, we need to set the appropriate XY_SRC_COPY tile bit, but only on 965 chips, since it will cause corruption on pre-965 (e.g. 945). Bug reported by and fix tested by Tomas Janousek <tomi@nomi.cz>. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Acked-by:
Dave Airlie <airlied@linux.ie> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
- 07 May, 2008 1 commit
-
-
Dave Airlie authored
This reverts commit ac741ab7. Okay this looks like wasn't as fully baked as I'd led myself to believe. Revert for now for further baking. Signed-off-by:
Dave Airlie <airlied@redhat.com>
-