public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/9] drm/i915/intel_i2c: fix gmbus writes and related issues
@ 2012-03-07 11:50 Daniel Kurtz
  2012-03-07 11:50 ` [PATCH 1/9] drm/i915/intel_i2c: cleanup Daniel Kurtz
                   ` (8 more replies)
  0 siblings, 9 replies; 23+ messages in thread
From: Daniel Kurtz @ 2012-03-07 11:50 UTC (permalink / raw)
  To: Keith Packard, David Airlie, dri-devel, linux-kernel
  Cc: Benson Leung, Yufeng Shen, Sameer Nanda, Daniel Kurtz

This patchset addresses a couple of issues with the i915 gmbus implementation:
  * fixes misassigned pin port pair for HDMI-D
  * fixes write transactions when they are the only transaction requested
    (including large >4-byte writes)
  * returns -ENXIO and -ETIMEDOUT as appropriate so upper layers can handled
    i2c transaction failures
  * optimizes the typical read transaction case by using the INDEX cycle

The patchset should apply cleanly onto linus/master.
It is inspired by, but completely supercedes, a similar patch submitted
recently by Benson Leung (bleung@chromium.org).
I'd be happy to rebase on a different tree if necessary.

Note: 
There is one more patch in the set which I have not included here.  It enables
the PCH GMBUS interrupt and makes use of it to eliminate the very slow
'wait_for' polling loop.  This patch was not included, however, because there
is at least one case I have discovered where the i915 driver issues a GMBUS
transaction AFTER its interrupts have been initialized, but BEFORE it they have
been enabled.  Both the gmbus transaction and irq initialization occur during
i915_load_modeset_init(), but the gmbus transaction happens first, during:
  intel_modeset_init()
    intel_setup_outputs()
      intel_lvds_init()
        drm_get_edid()
Is there a way to switch the order of these to events?
Or does it make more sense for the gmbus driver to check a "bool irq_enabled",
and choose whether to poll or use the GMBUS interrupt?
... or both?


Daniel Kurtz (9):
  drm/i915/intel_i2c: cleanup
  drm/i915/intel_i2c: assign HDMI port D to pin pair 6
  drm/i915/intel_i2c: refactor using intel_gmbus_get_bus
  drm/i915/intel_i2c: cleanup gmbus/gpio pin assignments
  drm/i915/intel_i2c: add locking around i2c algorithm accesses
  drm/i915/intel_i2c: return -ENXIO for device NAK
  drm/i915/intel_i2c: use WAIT cycle, not STOP
  drm/i915/intel_i2c: use INDEX cycles for i2c read transactions
  drm/i915/intel_i2c: reuse GMBUS2 value read in polling loop

 drivers/gpu/drm/i915/i915_drv.h    |    5 +-
 drivers/gpu/drm/i915/i915_reg.h    |    5 +-
 drivers/gpu/drm/i915/intel_bios.c  |   10 ++-
 drivers/gpu/drm/i915/intel_crt.c   |   13 ++--
 drivers/gpu/drm/i915/intel_drv.h   |    3 +-
 drivers/gpu/drm/i915/intel_dvo.c   |    4 +-
 drivers/gpu/drm/i915/intel_hdmi.c  |   29 +++---
 drivers/gpu/drm/i915/intel_i2c.c   |  175 +++++++++++++++++++++++++-----------
 drivers/gpu/drm/i915/intel_lvds.c  |    2 +-
 drivers/gpu/drm/i915/intel_modes.c |    6 +-
 drivers/gpu/drm/i915/intel_sdvo.c  |   10 +--
 11 files changed, 165 insertions(+), 97 deletions(-)

-- 
1.7.7.3


^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2012-03-18 18:18 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-07 11:50 [PATCH 0/9] drm/i915/intel_i2c: fix gmbus writes and related issues Daniel Kurtz
2012-03-07 11:50 ` [PATCH 1/9] drm/i915/intel_i2c: cleanup Daniel Kurtz
2012-03-07 11:58   ` Chris Wilson
2012-03-07 11:50 ` [PATCH 2/9] drm/i915/intel_i2c: assign HDMI port D to pin pair 6 Daniel Kurtz
2012-03-07 13:23   ` Chris Wilson
2012-03-07 18:03     ` Daniel Kurtz
     [not found]     ` <CAGS+omDvcmfVAh_Tx64SdC0Ys8FOgZXjbYmPO8SrgQW_1aPOJg@mail.gmail.com>
2012-03-07 18:07       ` Chris Wilson
2012-03-07 11:50 ` [PATCH 3/9] drm/i915/intel_i2c: refactor using intel_gmbus_get_bus Daniel Kurtz
2012-03-07 12:02   ` Chris Wilson
2012-03-07 12:15   ` Chris Wilson
2012-03-07 11:50 ` [PATCH 4/9] drm/i915/intel_i2c: cleanup gmbus/gpio pin assignments Daniel Kurtz
2012-03-07 12:17   ` Chris Wilson
2012-03-07 12:44     ` Daniel Kurtz
2012-03-07 11:50 ` [PATCH 5/9] drm/i915/intel_i2c: add locking around i2c algorithm accesses Daniel Kurtz
2012-03-18 18:19   ` Daniel Vetter
2012-03-07 11:50 ` [PATCH 6/9] drm/i915/intel_i2c: return -ENXIO for device NAK Daniel Kurtz
2012-03-07 12:12   ` Chris Wilson
2012-03-07 12:41     ` Daniel Kurtz
2012-03-07 12:53       ` Chris Wilson
2012-03-07 11:50 ` [PATCH 7/9] drm/i915/intel_i2c: use WAIT cycle, not STOP Daniel Kurtz
2012-03-07 11:50 ` [PATCH 8/9] drm/i915/intel_i2c: use INDEX cycles for i2c read transactions Daniel Kurtz
2012-03-07 11:50 ` [PATCH 9/9] drm/i915/intel_i2c: reuse GMBUS2 value from polling loop Daniel Kurtz
2012-03-07 12:09   ` Chris Wilson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox