linux/drivers/gpu/drm/i915
Daniel Vetter 61168c53f5 drm/i915: extract gmbus_wait_hw_status
The gmbus interrupt generation is rather fiddly: We can only ever
enable one interrupt source (but we always want to check for NAK
in addition to the real bit). And the bits in the gmbus status
register don't map at all to the bis in the irq register.

To prepare for this mess, start by extracting the hw status wait
loop into it's own function, consolidate the NAK error handling a
bit. To keep things flexible, pass in the status bit we care about
(in addition to any NAK signalling).

v2: I've failed to notice that the sense of GMBUS_ACTIVE is inverted,
Chris Wilson gladly pointed that out for me. To keep things simple,
ignore that case for  now (we only need to idle the gmbus controller
at the end of an entire i2c transaction, not after every message).

Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-12-06 13:14:36 +01:00
..
dvo_ch7xxx.c drm/i915/dvo-ch7xxx: fix get_hw_state 2012-10-12 10:59:11 +02:00
dvo_ch7017.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ivch.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ns2501.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_sil164.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_tfp410.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
i915_debugfs.c drm/i915: Fix debugfs seqno info print to use uint 2012-12-05 17:17:50 +01:00
i915_dma.c drm/i915: reorder setup sequence to have irqs for output setup 2012-12-06 13:14:36 +01:00
i915_drv.c drm/i915: force restore on lid open 2012-11-29 11:43:52 +01:00
i915_drv.h drm/i915: reorder setup sequence to have irqs for output setup 2012-12-06 13:14:36 +01:00
i915_gem_context.c drm/i915: Preallocate next seqno before touching the ring 2012-11-29 11:43:52 +01:00
i915_gem_debug.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_gem_dmabuf.c drm/i915: Use a slab for object allocation 2012-11-30 23:44:05 +01:00
i915_gem_evict.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
i915_gem_execbuffer.c drm/i915: Remove check for conflicting relocation write-domains 2012-12-03 20:13:16 +01:00
i915_gem_gtt.c drm/i915: Avoid clearing preallocated regions from the GTT 2012-11-30 23:24:49 +01:00
i915_gem_stolen.c drm/i915: Use a slab for object allocation 2012-11-30 23:44:05 +01:00
i915_gem_tiling.c Merge branch 'drm-intel-fixes' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2012-10-07 21:13:54 +10:00
i915_gem.c drm/i915: Add intel_ring_handle_seqno wrap 2012-12-06 13:14:34 +01:00
i915_ioc32.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_irq.c drm/i915: reorder setup sequence to have irqs for output setup 2012-12-06 13:14:36 +01:00
i915_reg.h drm/i915: remove duplicate register #defines 2012-11-29 11:58:14 +01:00
i915_suspend.c drm/i915: Remove save/restore of physical HWS_PGA register 2012-11-21 17:45:02 +01:00
i915_sysfs.c drm/i915: protect RPS/RC6 related accesses (including PCU) with a new mutex 2012-11-11 23:51:41 +01:00
i915_trace_points.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
i915_trace.h drm/i915: Allow DRM_ROOT_ONLY|DRM_MASTER to submit privileged batchbuffers 2012-10-17 21:06:59 +02:00
intel_acpi.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
intel_bios.c drm/i915: Only check for valid PP_{ON, OFF}_DELAYS on pre ILK hardware 2012-11-21 17:45:01 +01:00
intel_bios.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
intel_crt.c drm/i915: add HAS_DDI check 2012-11-29 14:58:53 +01:00
intel_ddi.c drm/i915: fixup sparse warnings 2012-12-03 22:31:04 +01:00
intel_display.c drm/i915: fixup sparse warnings 2012-12-03 22:31:04 +01:00
intel_dp.c drm/i915: kill intel_dp_link_clock() 2012-11-29 15:00:38 +01:00
intel_drv.h drm/i915: move is_dual_link_lvds to intel_lvds.c 2012-11-29 12:25:06 +01:00
intel_dvo.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
intel_fb.c drm/i915: Allocate fbcon from stolen memory 2012-11-30 23:38:46 +01:00
intel_hdmi.c drm/i915: add HAS_DDI check 2012-11-29 14:58:53 +01:00
intel_i2c.c drm/i915: extract gmbus_wait_hw_status 2012-12-06 13:14:36 +01:00
intel_lvds.c drm/i915: enable intel_lvds->pre_pll_enable for ilk+, too 2012-11-29 12:51:37 +01:00
intel_modes.c drm/i915: drm_connector_property -> drm_object_property 2012-11-21 22:12:26 +01:00
intel_opregion.c Linux 3.7-rc2 2012-10-22 14:34:51 +02:00
intel_overlay.c drm/i915: Allocate overlay registers from stolen memory 2012-11-30 23:43:32 +01:00
intel_panel.c drm/i915: resurrect panel lid handling 2012-11-21 17:45:05 +01:00
intel_pm.c drm/i915: Delay allocation of stolen space for FBC 2012-11-30 23:29:59 +01:00
intel_ringbuffer.c drm/i915: Add intel_ring_handle_seqno wrap 2012-12-06 13:14:34 +01:00
intel_ringbuffer.h drm/i915: Add intel_ring_handle_seqno wrap 2012-12-06 13:14:34 +01:00
intel_sdvo_regs.h drm/i915: clear the entire sdvo infoframe buffer 2012-10-24 15:12:48 +02:00
intel_sdvo.c drm/i915: Increase the response time for slow SDVO devices 2012-11-29 11:42:38 +01:00
intel_sprite.c drm/i915: Bad pixel formats can't reach the sprite code 2012-11-11 23:51:14 +01:00
intel_tv.c drm/i915: drm_connector_property -> drm_object_property 2012-11-21 22:12:26 +01:00
Makefile drm/i915: Support for ns2501-DVO 2012-07-25 18:23:48 +02:00