From: Chris Wilson <chris@chris-wilson.co.uk> To: intel-gfx@lists.freedesktop.org Subject: [PATCH 15/21] drm/i915/gmbus: Reset the controller on initialisation Date: Sat, 16 Apr 2011 10:17:39 +0100 Message-ID: <1302945465-32115-16-git-send-email-chris@chris-wilson.co.uk> (raw) In-Reply-To: <1302945465-32115-1-git-send-email-chris@chris-wilson.co.uk> Toggle the Software Clear Interrupt bit which resets the controller to clear any prior BUS_ERROR condition before we begin to use the controller in earnest. Suggested-by: Ben Widawsky <ben@bwidawsk.net> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> --- drivers/gpu/drm/i915/intel_i2c.c | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_i2c.c b/drivers/gpu/drm/i915/intel_i2c.c index ed11523..bf1c72c 100644 --- a/drivers/gpu/drm/i915/intel_i2c.c +++ b/drivers/gpu/drm/i915/intel_i2c.c @@ -60,10 +60,14 @@ void intel_i2c_reset(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; - if (HAS_PCH_SPLIT(dev)) - I915_WRITE(PCH_GMBUS0, 0); - else - I915_WRITE(GMBUS0, 0); + int reg = intel_gmbus_reg0(dev); + + /* First reset the controller by toggling the Sw Clear Interrupt. */ + I915_WRITE(reg + 1, GMBUS_SW_CLR_INT); + I915_WRITE(reg + 1, 0); + + /* Then mark the controller as disabled. */ + I915_WRITE(reg + 0, 0); } static void intel_i2c_quirk_set(struct drm_i915_private *dev_priv, bool enable) -- 1.7.4.1
next prev parent reply index Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-04-16 9:17 i915 next, post-llc Chris Wilson 2011-04-16 9:17 ` [PATCH 01/21] drm/i915: Cache GT fifo count for SandyBridge Chris Wilson 2011-04-16 9:17 ` [PATCH 02/21] drm/i915: Refactor pwrite/pread to use single copy of get_user_pages Chris Wilson 2011-04-16 9:17 ` [PATCH 03/21] drm/i915: s/addr & ~PAGE_MASK/offset_in_page(addr)/ Chris Wilson 2011-04-16 9:17 ` [PATCH 04/21] drm/i915: Maintain fenced gpu access until we flush the fence Chris Wilson 2011-04-16 9:17 ` [PATCH 05/21] drm/i915: Invalidate fenced read domains upon flush Chris Wilson 2011-04-16 9:17 ` [PATCH 06/21] drm/i915: Pass the fence register number to be written Chris Wilson 2011-04-16 9:17 ` [PATCH 07/21] drm/i915: Track fence setup separately from fenced object lifetime Chris Wilson 2011-04-16 13:20 ` Daniel Vetter 2011-04-16 9:17 ` [PATCH 08/21] drm/i915: Only print out the actual number of fences for i915_error_state Chris Wilson 2011-04-16 9:17 ` [PATCH 09/21] drm/i915: Implement direct support for 24 bit LVDS pixel format Chris Wilson 2011-04-16 9:17 ` [PATCH 10/21] drm/i915: Implement manual override of LVDS single/dual channel mode Chris Wilson 2011-04-16 9:17 ` [PATCH 11/21] drm/i915/tv: Use a direct pointer for tv_mode Chris Wilson 2011-04-16 9:17 ` [PATCH 12/21] drm/i915: Replace ironlake_compute_wm0 with g4x_compute_wm0 Chris Wilson 2011-04-16 9:17 ` [PATCH 13/21] drm/i915/crt: Explicitly return false if connected to a digital monitor Chris Wilson 2011-04-16 9:17 ` [PATCH 14/21] drm/i915/i2c: Convert from using GMBUS1 + reg_offset idiom to reg + 0 Chris Wilson 2011-04-16 9:17 ` Chris Wilson [this message] 2011-04-16 9:17 ` [PATCH 16/21] drm/i915: Retire requests before disabling pagefaults Chris Wilson 2011-04-16 13:44 ` Daniel Vetter 2011-04-16 9:17 ` [PATCH 17/21] drm/i915: Repeat retiring of requests until the seqno is stable Chris Wilson 2011-04-16 13:45 ` Daniel Vetter 2011-04-16 9:17 ` [PATCH 18/21] drm/i915: Split out i915_gem_object_move_to_ring() from execbuffer Chris Wilson 2011-04-16 13:54 ` Daniel Vetter 2011-04-16 14:18 ` Chris Wilson 2011-04-16 14:24 ` Daniel Vetter 2011-04-16 9:17 ` [PATCH 19/21] drm/i915: Enable the use of GPU semaphores whilst page-flipping Chris Wilson 2011-04-16 13:58 ` Daniel Vetter 2011-04-16 14:20 ` Chris Wilson 2011-04-16 9:17 ` [PATCH 20/21] drm/i915: Use a slab for object allocation Chris Wilson 2011-04-16 14:07 ` Daniel Vetter 2011-04-16 9:17 ` [PATCH 21/21] drm/i915: Introduce vmap (mapping of user pages into video memory) ioctl Chris Wilson 2011-04-18 14:58 ` Daniel Vetter 2011-04-19 6:20 ` Chris Wilson
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1302945465-32115-16-git-send-email-chris@chris-wilson.co.uk \ --to=chris@chris-wilson.co.uk \ --cc=intel-gfx@lists.freedesktop.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Intel-GFX Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/intel-gfx/0 intel-gfx/git/0.git git clone --mirror https://lore.kernel.org/intel-gfx/1 intel-gfx/git/1.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 intel-gfx intel-gfx/ https://lore.kernel.org/intel-gfx \ intel-gfx@lists.freedesktop.org public-inbox-index intel-gfx Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.freedesktop.lists.intel-gfx AGPL code for this site: git clone https://public-inbox.org/public-inbox.git