All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wolfram Sang <w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
To: Shubhrajyoti D <shubhrajyoti-l0cyMroinI0@public.gmane.org>
Cc: linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org,
	tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org,
	Vikram Pandita <vikram.pandita-l0cyMroinI0@public.gmane.org>,
	Jon Hunter <jon-hunter-l0cyMroinI0@public.gmane.org>
Subject: Re: [PATCHv11 6/6] i2c: omap: Recover from Bus Busy condition
Date: Thu, 12 Jul 2012 14:22:08 +0200	[thread overview]
Message-ID: <20120712122208.GF2194@pengutronix.de> (raw)
In-Reply-To: <1340896292-12112-7-git-send-email-shubhrajyoti-l0cyMroinI0@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 1972 bytes --]

On Thu, Jun 28, 2012 at 08:41:32PM +0530, Shubhrajyoti D wrote:
> From: Vikram Pandita <vikram.pandita-l0cyMroinI0@public.gmane.org>
> 
> In case a peripheral is driving SDA bus low (ie. a start condition), provide
> a constant clock output using the test mode of the OMAP I2C controller to
> try and clear the bus. Soft reset I2C controller after attempting the bus clear
> to ensure that controller is in a good state.
> 
> Based upon Vikram Pandita's patch from TI Android 3.0.
> I acknowledge the contributions and suggestions of Jon and Hemant.
> 
> A couple differences from the original patch ...
> 1. Add a new function for bus clear
> 2. Ensure that the CON.I2C_EN bit is set when using the SYSTEST feature to
>    output a permanent clock. This bit needs to be set and typically it would
>    be set by the unidle function but this is not the case for all OMAP
>    generations.
> 3. Program the SYSTEST setting only the bits we care about. However, restore
>    SYSTEST registers to there original state as some OMAP generations do not
>    implement perform a soft-reset.
> 4. Clear the CON register after performing the bus clear, so when we call the
>    init function the controller is disabled and the init function will
>    re-enable later.
> 
> Original patch can be found here:
> http://git.omapzoom.org/?p=kernel/omap.git;a=commit;h=a2ab04192ba25e60f95ba1ff3af5601a2d7b5bd1
> 
> Signed-off-by: Vikram Pandita <vikram.pandita-l0cyMroinI0@public.gmane.org>
> Signed-off-by: Jon Hunter <jon-hunter-l0cyMroinI0@public.gmane.org>
> Signed-off-by: Shubhrajyoti D <shubhrajyoti-l0cyMroinI0@public.gmane.org>

This has to wait a little bit until I can spend time on the recovery
framework (which is still in the queue, sadly :( ). There might be some
consolidation.

-- 
Pengutronix e.K.                           | Wolfram Sang                |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: w.sang@pengutronix.de (Wolfram Sang)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv11 6/6] i2c: omap: Recover from Bus Busy condition
Date: Thu, 12 Jul 2012 14:22:08 +0200	[thread overview]
Message-ID: <20120712122208.GF2194@pengutronix.de> (raw)
In-Reply-To: <1340896292-12112-7-git-send-email-shubhrajyoti@ti.com>

On Thu, Jun 28, 2012 at 08:41:32PM +0530, Shubhrajyoti D wrote:
> From: Vikram Pandita <vikram.pandita@ti.com>
> 
> In case a peripheral is driving SDA bus low (ie. a start condition), provide
> a constant clock output using the test mode of the OMAP I2C controller to
> try and clear the bus. Soft reset I2C controller after attempting the bus clear
> to ensure that controller is in a good state.
> 
> Based upon Vikram Pandita's patch from TI Android 3.0.
> I acknowledge the contributions and suggestions of Jon and Hemant.
> 
> A couple differences from the original patch ...
> 1. Add a new function for bus clear
> 2. Ensure that the CON.I2C_EN bit is set when using the SYSTEST feature to
>    output a permanent clock. This bit needs to be set and typically it would
>    be set by the unidle function but this is not the case for all OMAP
>    generations.
> 3. Program the SYSTEST setting only the bits we care about. However, restore
>    SYSTEST registers to there original state as some OMAP generations do not
>    implement perform a soft-reset.
> 4. Clear the CON register after performing the bus clear, so when we call the
>    init function the controller is disabled and the init function will
>    re-enable later.
> 
> Original patch can be found here:
> http://git.omapzoom.org/?p=kernel/omap.git;a=commit;h=a2ab04192ba25e60f95ba1ff3af5601a2d7b5bd1
> 
> Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
> Signed-off-by: Jon Hunter <jon-hunter@ti.com>
> Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>

This has to wait a little bit until I can spend time on the recovery
framework (which is still in the queue, sadly :( ). There might be some
consolidation.

-- 
Pengutronix e.K.                           | Wolfram Sang                |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120712/ce96a453/attachment-0001.sig>

  parent reply	other threads:[~2012-07-12 12:22 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-28 15:11 [PATCHv11 0/6] I2C cleanups Shubhrajyoti D
2012-06-28 15:11 ` Shubhrajyoti D
2012-06-28 15:11 ` [PATCHv11 1/6] i2c: omap: Optimise the remove code Shubhrajyoti D
2012-06-28 15:11   ` Shubhrajyoti D
     [not found]   ` <1340896292-12112-2-git-send-email-shubhrajyoti-l0cyMroinI0@public.gmane.org>
2012-07-12 12:18     ` Wolfram Sang
2012-07-12 12:18       ` Wolfram Sang
2012-07-13 11:21       ` Shubhrajyoti
2012-07-13 11:21         ` Shubhrajyoti
2012-06-28 15:11 ` [PATCHv11 2/6] i2c: omap: Use SET_RUNTIME_PM_OPS Shubhrajyoti D
2012-06-28 15:11   ` Shubhrajyoti D
2012-07-12 12:19   ` Wolfram Sang
2012-07-12 12:19     ` Wolfram Sang
2012-06-28 15:11 ` [PATCHv11 3/6] i2c: omap: Do not initialise the completion everytime Shubhrajyoti D
2012-06-28 15:11   ` Shubhrajyoti D
     [not found]   ` <1340896292-12112-4-git-send-email-shubhrajyoti-l0cyMroinI0@public.gmane.org>
2012-06-28 16:03     ` ABRAHAM, KISHON VIJAY
2012-06-28 16:03       ` ABRAHAM, KISHON VIJAY
     [not found]       ` <CAAe_U6Jtoj3mixvp+vqNmkr-RC28AfNqZ0syEE5voEr+Odv3zg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-06-29  1:34         ` Zhang, Shijie
2012-06-29  1:34           ` Zhang, Shijie
2012-07-12 12:19     ` Wolfram Sang
2012-07-12 12:19       ` Wolfram Sang
     [not found]       ` <20120712121928.GC2194-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2012-07-13 11:05         ` Shubhrajyoti
2012-07-13 11:05           ` Shubhrajyoti
2012-06-28 15:11 ` [PATCHv11 5/6] i2c: omap: Correct I2C revision for OMAP3 Shubhrajyoti D
2012-06-28 15:11   ` Shubhrajyoti D
     [not found]   ` <1340896292-12112-6-git-send-email-shubhrajyoti-l0cyMroinI0@public.gmane.org>
2012-07-12 12:21     ` Wolfram Sang
2012-07-12 12:21       ` Wolfram Sang
2012-07-13 11:04       ` Shubhrajyoti
2012-07-13 11:04         ` Shubhrajyoti
     [not found] ` <1340896292-12112-1-git-send-email-shubhrajyoti-l0cyMroinI0@public.gmane.org>
2012-06-28 15:11   ` [PATCHv11 4/6] i2c: omap: Remove the definition of SYSS_RESETDONE_MASK Shubhrajyoti D
2012-06-28 15:11     ` Shubhrajyoti D
     [not found]     ` <1340896292-12112-5-git-send-email-shubhrajyoti-l0cyMroinI0@public.gmane.org>
2012-07-12 12:20       ` Wolfram Sang
2012-07-12 12:20         ` Wolfram Sang
     [not found]         ` <20120712122053.GD2194-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2012-07-13 11:05           ` Shubhrajyoti
2012-07-13 11:05             ` Shubhrajyoti
2012-06-28 15:11   ` [PATCHv11 6/6] i2c: omap: Recover from Bus Busy condition Shubhrajyoti D
2012-06-28 15:11     ` Shubhrajyoti D
     [not found]     ` <1340896292-12112-7-git-send-email-shubhrajyoti-l0cyMroinI0@public.gmane.org>
2012-07-12 12:22       ` Wolfram Sang [this message]
2012-07-12 12:22         ` Wolfram Sang
     [not found]         ` <20120712122208.GF2194-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2012-07-13 11:04           ` Shubhrajyoti
2012-07-13 11:04             ` Shubhrajyoti
2012-07-09 11:47 ` [PATCHv11 0/6] I2C cleanups Shubhrajyoti Datta
2012-07-09 11:47   ` Shubhrajyoti Datta
2012-07-12 12:52   ` Wolfram Sang
2012-07-12 12:52     ` Wolfram Sang
     [not found]     ` <20120712125229.GG2194-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2012-07-13 11:25       ` Shubhrajyoti
2012-07-13 11:25         ` Shubhrajyoti

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=20120712122208.GF2194@pengutronix.de \
    --to=w.sang-bicnvbalz9megne8c9+irq@public.gmane.org \
    --cc=ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org \
    --cc=jon-hunter-l0cyMroinI0@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=shubhrajyoti-l0cyMroinI0@public.gmane.org \
    --cc=tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org \
    --cc=vikram.pandita-l0cyMroinI0@public.gmane.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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.