From: vaibhav.hiremath@linaro.org (Vaibhav Hiremath)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 03/12] i2c: pxa: Add reset operation when i2c bus busy
Date: Sat, 30 May 2015 01:50:12 +0530 [thread overview]
Message-ID: <5568C9FC.7040906@linaro.org> (raw)
In-Reply-To: <878uc7yxzx.fsf@belgarion.home>
On Saturday 30 May 2015 01:09 AM, Robert Jarzmik wrote:
> Vaibhav Hiremath <vaibhav.hiremath@linaro.org> writes:
>
>> From: "Jett.Zhou" <jtzhou@marvell.com>
>>
>> According to some test in emei_dkb, we found some i2c slave device
>> (eg. camera sensor ov2659 power up) introduce noise on sda, so detect
>> i2c controller busy, and assert reset to i2c controller to recover as
>> early as possible to avoid more latency on the entire i2c transaction.
>>
>> Signed-off-by: Jett.Zhou <jtzhou@marvell.com>
>> [vaibhav.hiremath at linaro.org: Removed reduction in timeout value, as I
>> do not have goot explanation for it. Logically it is not required.
>> And also Updated changelog]
>> Signed-off-by: Vaibhav Hiremath <vaibhav.hiremath@linaro.org>
>>
>> Signed-off-by: Vaibhav Hiremath <vaibhav.hiremath@linaro.org>
>> ---
>> drivers/i2c/busses/i2c-pxa.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c
>> index d4c798a..a76c901 100644
>> --- a/drivers/i2c/busses/i2c-pxa.c
>> +++ b/drivers/i2c/busses/i2c-pxa.c
>> @@ -314,6 +314,10 @@ static int i2c_pxa_wait_bus_not_busy(struct pxa_i2c *i2c)
>> {
>> int timeout = DEF_TIMEOUT;
>>
>> + if (readl(_ISR(i2c)) & (ISR_IBB | ISR_UB))
>> + i2c_pxa_reset(i2c);
>
> The pxa27x manual states in the Developer Manual, chapter 9.4.13 "Reset
> Conditions" :
> Software must ensure that (1) the I 2 C unit is not busy before it
> asserts a reset
>
> Given that, I don't agree with this patch.
Hmmm,
Just saw pxa27x manual, and you are right.
In that case I am not sure how to address the issue mentioned in the
changelog.
On the other side,
Check for ISR_IBB, should be ok, as, as per spec it says,
"Set when the TWSI bus is busy but the SoC TWSI is not
involved in the transaction."
Also,
I believe we should be ok, as the first thing we do in i2c_pxa_reset()
is abort the current transaction and then assert reset. Isn't it?
> Moreover, reseting unconditionaly the
> i2c bus on each busy state on a write transaction for one single corner case is
> not something that has my agreement. A quirk might overcome my reluctance.
>
Any condition check you can possibly think of for asserting reset???
Having said that,
Somewhere I do agree with you that we need to further debug on noise
issue in HW rather hacking software. :)
I am ok to drop this patch, do further testing and revisit again if
issue persist.
Thanks,
Vaibhav
next prev parent reply other threads:[~2015-05-29 20:20 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-28 13:03 [PATCH 00/12] i2c: pxa: Fixes, cleanup and support for pxa910 family Vaibhav Hiremath
2015-05-28 13:03 ` [PATCH 01/12] i2c: pxa: keep i2c irq ON in suspend Vaibhav Hiremath
2015-05-28 13:03 ` [PATCH 02/12] i2c: pxa: No need to set slave addr for i2c master mode reset Vaibhav Hiremath
2015-05-29 19:21 ` Robert Jarzmik
2015-05-29 19:25 ` Vaibhav Hiremath
2015-05-28 13:03 ` [PATCH 03/12] i2c: pxa: Add reset operation when i2c bus busy Vaibhav Hiremath
2015-05-29 19:39 ` Robert Jarzmik
2015-05-29 20:20 ` Vaibhav Hiremath [this message]
2015-05-28 13:03 ` [PATCH 04/12] i2c: pxa: Add support for pxa910/988 & new configuration features Vaibhav Hiremath
2015-05-29 20:22 ` Robert Jarzmik
2015-05-29 20:33 ` Vaibhav Hiremath
2015-06-04 2:31 ` Yi Zhang
2015-06-04 5:46 ` Vaibhav Hiremath
2015-06-01 0:13 ` Wolfram Sang
2015-06-02 5:01 ` Vaibhav Hiremath
2015-05-28 13:03 ` [PATCH 05/12] i2c: pxa: Add bus reset functionality Vaibhav Hiremath
2015-05-29 13:59 ` Rob Herring
2015-05-29 15:40 ` Vaibhav Hiremath
2015-05-29 20:31 ` Robert Jarzmik
2015-06-02 13:12 ` Linus Walleij
2015-06-02 16:40 ` Vaibhav Hiremath
2015-06-03 19:16 ` Vaibhav Hiremath
2015-06-02 17:33 ` Wolfram Sang
2015-06-02 17:40 ` Vaibhav Hiremath
2015-06-02 17:48 ` Wolfram Sang
2015-06-02 17:57 ` Vaibhav Hiremath
2015-06-02 18:02 ` Wolfram Sang
2015-06-02 18:06 ` Vaibhav Hiremath
2015-06-02 18:24 ` Wolfram Sang
2015-06-02 18:46 ` Vaibhav Hiremath
2015-05-28 13:03 ` [PATCH 06/12] i2c: pxa: Return I2C_RETRY when timeout in pio mode Vaibhav Hiremath
2015-05-29 20:46 ` Robert Jarzmik
2015-05-29 21:23 ` Vaibhav Hiremath
2015-05-28 13:03 ` [PATCH 07/12] i2c: pxa: Reset i2c controller on timeout in interrupt and " Vaibhav Hiremath
2015-05-29 21:13 ` Robert Jarzmik
2015-05-29 21:19 ` Vaibhav Hiremath
2015-05-28 13:03 ` [PATCH 08/12] i2c: pxa: enable/disable irq across message xfer Vaibhav Hiremath
2015-05-28 13:17 ` Russell King - ARM Linux
2015-05-28 13:29 ` Vaibhav Hiremath
2015-05-28 13:03 ` [PATCH 09/12] i2c: pxa: Remove compile warnning in 64bit mode Vaibhav Hiremath
2015-05-29 21:28 ` Robert Jarzmik
2015-05-28 13:03 ` [PATCH 10/12] i2c: pxa: Update debug function to dump more info on error Vaibhav Hiremath
2015-05-29 21:42 ` Robert Jarzmik
2015-05-29 21:45 ` Vaibhav Hiremath
2015-05-28 13:03 ` [PATCH 11/12] i2c:pxa: Use devm_ variants in probe function Vaibhav Hiremath
2015-05-30 15:53 ` Robert Jarzmik
2015-05-31 7:36 ` Vaibhav Hiremath
2015-05-28 13:03 ` [PATCH 12/12] i2c: pxa: enable/disable i2c module across msg xfer Vaibhav Hiremath
2015-05-28 13:23 ` Russell King - ARM Linux
2015-06-02 16:52 ` Vaibhav Hiremath
2015-06-02 16:59 ` Vaibhav Hiremath
2015-06-03 10:56 ` Yi Zhang
2015-06-03 18:49 ` Vaibhav Hiremath
2015-06-04 6:29 ` Yi Zhang
2015-06-04 7:19 ` Vaibhav Hiremath
2015-06-04 7:58 ` Yi Zhang
2015-06-01 0:07 ` [PATCH 00/12] i2c: pxa: Fixes, cleanup and support for pxa910 family Wolfram Sang
2015-06-02 4:58 ` Vaibhav Hiremath
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=5568C9FC.7040906@linaro.org \
--to=vaibhav.hiremath@linaro.org \
--cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).