* [PATCH 0/5] i2c: sirf: a bundle of fixes for stability
@ 2013-08-13 9:11 Barry Song
[not found] ` <1376385091-30597-1-git-send-email-Baohua.Song-kQvG35nSl+M@public.gmane.org>
0 siblings, 1 reply; 12+ messages in thread
From: Barry Song @ 2013-08-13 9:11 UTC (permalink / raw)
To: wsa-z923LK4zBo2bacvFa/9K2g, linux-i2c-u79uwXL29TY76Z2rM5mHXA
Cc: workgroup.linux-kQvG35nSl+M, Barry Song
here it is a bundle of fixes to sirfsoc i2c driver to make the driver stable
in random hardware and connect random i2c clients.
Zhiwu Song (5):
i2c: sirf: reset i2c controller early after we get a noack
i2c: sirf: reset i2c controller after resuming
i2c: sirf: fix the typo for setting bitrate to less than 100k
i2c: sirfsoc: support reverse direction of address
i2c: sirf: retry 3 times as sometimes we get random noack and timeout
drivers/i2c/busses/i2c-sirf.c | 36 ++++++++++++++++++++++++++----------
1 file changed, 26 insertions(+), 10 deletions(-)
--
1.8.2.3
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/5] i2c: sirf: reset i2c controller early after we get a noack
[not found] ` <1376385091-30597-1-git-send-email-Baohua.Song-kQvG35nSl+M@public.gmane.org>
@ 2013-08-13 9:11 ` Barry Song
[not found] ` <1376385091-30597-2-git-send-email-Baohua.Song-kQvG35nSl+M@public.gmane.org>
2013-08-13 9:11 ` [PATCH 2/5] i2c: sirf: we need to wait I2C_RESET status in resume Barry Song
` (3 subsequent siblings)
4 siblings, 1 reply; 12+ messages in thread
From: Barry Song @ 2013-08-13 9:11 UTC (permalink / raw)
To: wsa-z923LK4zBo2bacvFa/9K2g, linux-i2c-u79uwXL29TY76Z2rM5mHXA
Cc: workgroup.linux-kQvG35nSl+M, Zhiwu Song, Barry Song
From: Zhiwu Song <Zhiwu.Song-kQvG35nSl+M@public.gmane.org>
Due to hardware ANOMALY, we need to reset I2C earlier after
we get NOACK while accessing non-existing clients, otherwise
we will get errors even we access existing clients later
Signed-off-by: Zhiwu Song <Zhiwu.Song-kQvG35nSl+M@public.gmane.org>
Signed-off-by: Barry Song <Baohua.Song-kQvG35nSl+M@public.gmane.org>
---
drivers/i2c/busses/i2c-sirf.c | 27 ++++++++++++++++++---------
1 file changed, 18 insertions(+), 9 deletions(-)
diff --git a/drivers/i2c/busses/i2c-sirf.c b/drivers/i2c/busses/i2c-sirf.c
index a63c7d5..055210e 100644
--- a/drivers/i2c/busses/i2c-sirf.c
+++ b/drivers/i2c/busses/i2c-sirf.c
@@ -65,6 +65,8 @@
#define SIRFSOC_I2C_START BIT(7)
#define SIRFSOC_I2C_DEFAULT_SPEED 100000
+#define SIRFSOC_I2C_ERR_NOACK 1
+#define SIRFSOC_I2C_ERR_TIMEOUT 2
struct sirfsoc_i2c {
void __iomem *base;
@@ -143,14 +145,24 @@ static irqreturn_t i2c_sirfsoc_irq(int irq, void *dev_id)
if (i2c_stat & SIRFSOC_I2C_STAT_ERR) {
/* Error conditions */
- siic->err_status = 1;
+ siic->err_status = SIRFSOC_I2C_ERR_NOACK;
writel(SIRFSOC_I2C_STAT_ERR, siic->base + SIRFSOC_I2C_STATUS);
if (i2c_stat & SIRFSOC_I2C_STAT_NACK)
- dev_err(&siic->adapter.dev, "ACK not received\n");
+ dev_dbg(&siic->adapter.dev, "ACK not received\n");
else
dev_err(&siic->adapter.dev, "I2C error\n");
+ /*
+ * Due to hardware ANOMALY, we need to reset I2C earlier after
+ * we get NOACK while accessing non-existing clients, otherwise
+ * we will get errors even we access existing clients later
+ */
+ writel(readl(siic->base + SIRFSOC_I2C_CTRL) | SIRFSOC_I2C_RESET,
+ siic->base + SIRFSOC_I2C_CTRL);
+ while (readl(siic->base + SIRFSOC_I2C_CTRL) & SIRFSOC_I2C_RESET)
+ cpu_relax();
+
complete(&siic->done);
} else if (i2c_stat & SIRFSOC_I2C_STAT_CMD_DONE) {
/* CMD buffer execution complete */
@@ -191,7 +203,6 @@ static int i2c_sirfsoc_xfer_msg(struct sirfsoc_i2c *siic, struct i2c_msg *msg)
u32 regval = readl(siic->base + SIRFSOC_I2C_CTRL);
/* timeout waiting for the xfer to finish or fail */
int timeout = msecs_to_jiffies((msg->len + 1) * 50);
- int ret = 0;
i2c_sirfsoc_set_address(siic, msg);
@@ -200,7 +211,7 @@ static int i2c_sirfsoc_xfer_msg(struct sirfsoc_i2c *siic, struct i2c_msg *msg)
i2c_sirfsoc_queue_cmd(siic);
if (wait_for_completion_timeout(&siic->done, timeout) == 0) {
- siic->err_status = 1;
+ siic->err_status = SIRFSOC_I2C_ERR_TIMEOUT;
dev_err(&siic->adapter.dev, "Transfer timeout\n");
}
@@ -208,16 +219,14 @@ static int i2c_sirfsoc_xfer_msg(struct sirfsoc_i2c *siic, struct i2c_msg *msg)
siic->base + SIRFSOC_I2C_CTRL);
writel(0, siic->base + SIRFSOC_I2C_CMD_START);
- if (siic->err_status) {
+ /* i2c control doesn't response, reset it */
+ if (siic->err_status == SIRFSOC_I2C_ERR_TIMEOUT) {
writel(readl(siic->base + SIRFSOC_I2C_CTRL) | SIRFSOC_I2C_RESET,
siic->base + SIRFSOC_I2C_CTRL);
while (readl(siic->base + SIRFSOC_I2C_CTRL) & SIRFSOC_I2C_RESET)
cpu_relax();
-
- ret = -EIO;
}
-
- return ret;
+ return siic->err_status ? -EIO : 0;
}
static u32 i2c_sirfsoc_func(struct i2c_adapter *adap)
--
1.8.2.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/5] i2c: sirf: we need to wait I2C_RESET status in resume
[not found] ` <1376385091-30597-1-git-send-email-Baohua.Song-kQvG35nSl+M@public.gmane.org>
2013-08-13 9:11 ` [PATCH 1/5] i2c: sirf: reset i2c controller early after we get a noack Barry Song
@ 2013-08-13 9:11 ` Barry Song
2013-08-13 9:11 ` [PATCH 3/5] i2c: sirf: fix the typo for setting bitrate to less than 100k Barry Song
` (2 subsequent siblings)
4 siblings, 0 replies; 12+ messages in thread
From: Barry Song @ 2013-08-13 9:11 UTC (permalink / raw)
To: wsa-z923LK4zBo2bacvFa/9K2g, linux-i2c-u79uwXL29TY76Z2rM5mHXA
Cc: workgroup.linux-kQvG35nSl+M, Zhiwu Song, Barry Song
From: Zhiwu Song <Zhiwu.Song-kQvG35nSl+M@public.gmane.org>
this fixes the issue that we lost to wait the i2c reset finished.
Signed-off-by: Zhiwu Song <Zhiwu.Song-kQvG35nSl+M@public.gmane.org>
Signed-off-by: Barry Song <Baohua.Song-kQvG35nSl+M@public.gmane.org>
---
drivers/i2c/busses/i2c-sirf.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/i2c/busses/i2c-sirf.c b/drivers/i2c/busses/i2c-sirf.c
index 055210e..45a8881 100644
--- a/drivers/i2c/busses/i2c-sirf.c
+++ b/drivers/i2c/busses/i2c-sirf.c
@@ -425,6 +425,8 @@ static int i2c_sirfsoc_resume(struct device *dev)
clk_enable(siic->clk);
writel(SIRFSOC_I2C_RESET, siic->base + SIRFSOC_I2C_CTRL);
+ while (readl(siic->base + SIRFSOC_I2C_CTRL) & SIRFSOC_I2C_RESET)
+ cpu_relax();
writel(SIRFSOC_I2C_CORE_EN | SIRFSOC_I2C_MASTER_MODE,
siic->base + SIRFSOC_I2C_CTRL);
writel(siic->clk_div, siic->base + SIRFSOC_I2C_CLK_CTRL);
--
1.8.2.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 3/5] i2c: sirf: fix the typo for setting bitrate to less than 100k
[not found] ` <1376385091-30597-1-git-send-email-Baohua.Song-kQvG35nSl+M@public.gmane.org>
2013-08-13 9:11 ` [PATCH 1/5] i2c: sirf: reset i2c controller early after we get a noack Barry Song
2013-08-13 9:11 ` [PATCH 2/5] i2c: sirf: we need to wait I2C_RESET status in resume Barry Song
@ 2013-08-13 9:11 ` Barry Song
2013-08-13 9:11 ` [PATCH 4/5] i2c: sirfsoc: support reverse direction of address Barry Song
2013-08-13 9:11 ` [PATCH 5/5] i2c: sirf: retry 3 times as sometimes we get random noack and timeout Barry Song
4 siblings, 0 replies; 12+ messages in thread
From: Barry Song @ 2013-08-13 9:11 UTC (permalink / raw)
To: wsa-z923LK4zBo2bacvFa/9K2g, linux-i2c-u79uwXL29TY76Z2rM5mHXA
Cc: workgroup.linux-kQvG35nSl+M, Zhiwu Song, Barry Song
From: Zhiwu Song <Zhiwu.Song-kQvG35nSl+M@public.gmane.org>
there is a typo before, it makes the final bitrate wrong, this patch fixes
it.
Signed-off-by: Zhiwu Song <Zhiwu.Song-kQvG35nSl+M@public.gmane.org>
Signed-off-by: Barry Song <Baohua.Song-kQvG35nSl+M@public.gmane.org>
---
drivers/i2c/busses/i2c-sirf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/i2c/busses/i2c-sirf.c b/drivers/i2c/busses/i2c-sirf.c
index 45a8881..746388f 100644
--- a/drivers/i2c/busses/i2c-sirf.c
+++ b/drivers/i2c/busses/i2c-sirf.c
@@ -357,7 +357,7 @@ static int i2c_sirfsoc_probe(struct platform_device *pdev)
if (bitrate < 100000)
regval =
- (2 * ctrl_speed) / (2 * bitrate * 11);
+ (2 * ctrl_speed) / (bitrate * 11);
else
regval = ctrl_speed / (bitrate * 5);
--
1.8.2.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 4/5] i2c: sirfsoc: support reverse direction of address
[not found] ` <1376385091-30597-1-git-send-email-Baohua.Song-kQvG35nSl+M@public.gmane.org>
` (2 preceding siblings ...)
2013-08-13 9:11 ` [PATCH 3/5] i2c: sirf: fix the typo for setting bitrate to less than 100k Barry Song
@ 2013-08-13 9:11 ` Barry Song
[not found] ` <1376385091-30597-5-git-send-email-Baohua.Song-kQvG35nSl+M@public.gmane.org>
2013-08-13 9:11 ` [PATCH 5/5] i2c: sirf: retry 3 times as sometimes we get random noack and timeout Barry Song
4 siblings, 1 reply; 12+ messages in thread
From: Barry Song @ 2013-08-13 9:11 UTC (permalink / raw)
To: wsa-z923LK4zBo2bacvFa/9K2g, linux-i2c-u79uwXL29TY76Z2rM5mHXA
Cc: workgroup.linux-kQvG35nSl+M, Zhiwu Song, Rongjun Ying, Barry Song
From: Zhiwu Song <Zhiwu.Song-kQvG35nSl+M@public.gmane.org>
if users set I2C_M_REV_DIR_ADDR, revert the direction of address.
Signed-off-by: Zhiwu Song <Zhiwu.Song-kQvG35nSl+M@public.gmane.org>
Signed-off-by: Rongjun Ying <rongjun.ying-kQvG35nSl+M@public.gmane.org>
Signed-off-by: Barry Song <Baohua.Song-kQvG35nSl+M@public.gmane.org>
---
drivers/i2c/busses/i2c-sirf.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/i2c/busses/i2c-sirf.c b/drivers/i2c/busses/i2c-sirf.c
index 746388f..d2b7913 100644
--- a/drivers/i2c/busses/i2c-sirf.c
+++ b/drivers/i2c/busses/i2c-sirf.c
@@ -195,6 +195,10 @@ static void i2c_sirfsoc_set_address(struct sirfsoc_i2c *siic,
if (msg->flags & I2C_M_RD)
addr |= 1;
+ /* Reverse direction bit */
+ if (msg->flags & I2C_M_REV_DIR_ADDR)
+ addr ^= 1;
+
writel(addr, siic->base + SIRFSOC_I2C_CMD(siic->cmd_ptr++));
}
--
1.8.2.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 5/5] i2c: sirf: retry 3 times as sometimes we get random noack and timeout
[not found] ` <1376385091-30597-1-git-send-email-Baohua.Song-kQvG35nSl+M@public.gmane.org>
` (3 preceding siblings ...)
2013-08-13 9:11 ` [PATCH 4/5] i2c: sirfsoc: support reverse direction of address Barry Song
@ 2013-08-13 9:11 ` Barry Song
4 siblings, 0 replies; 12+ messages in thread
From: Barry Song @ 2013-08-13 9:11 UTC (permalink / raw)
To: wsa-z923LK4zBo2bacvFa/9K2g, linux-i2c-u79uwXL29TY76Z2rM5mHXA
Cc: workgroup.linux-kQvG35nSl+M, Zhiwu Song, Barry Song
From: Zhiwu Song <Zhiwu.Song-kQvG35nSl+M@public.gmane.org>
let i2c core retry 3 times as sometimes we get random noack and timeout
even when we access an existing i2c client.
Signed-off-by: Zhiwu Song <Zhiwu.Song-kQvG35nSl+M@public.gmane.org>
Signed-off-by: Barry Song <Baohua.Song-kQvG35nSl+M@public.gmane.org>
---
drivers/i2c/busses/i2c-sirf.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/i2c/busses/i2c-sirf.c b/drivers/i2c/busses/i2c-sirf.c
index d2b7913..90adc2d 100644
--- a/drivers/i2c/busses/i2c-sirf.c
+++ b/drivers/i2c/busses/i2c-sirf.c
@@ -230,7 +230,7 @@ static int i2c_sirfsoc_xfer_msg(struct sirfsoc_i2c *siic, struct i2c_msg *msg)
while (readl(siic->base + SIRFSOC_I2C_CTRL) & SIRFSOC_I2C_RESET)
cpu_relax();
}
- return siic->err_status ? -EIO : 0;
+ return siic->err_status ? -EAGAIN : 0;
}
static u32 i2c_sirfsoc_func(struct i2c_adapter *adap)
@@ -334,6 +334,7 @@ static int i2c_sirfsoc_probe(struct platform_device *pdev)
adap->algo = &i2c_sirfsoc_algo;
adap->algo_data = siic;
+ adap->retries = 3;
adap->dev.of_node = pdev->dev.of_node;
adap->dev.parent = &pdev->dev;
--
1.8.2.3
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 1/5] i2c: sirf: reset i2c controller early after we get a noack
[not found] ` <1376385091-30597-2-git-send-email-Baohua.Song-kQvG35nSl+M@public.gmane.org>
@ 2013-08-19 18:05 ` Wolfram Sang
2013-08-19 22:49 ` Barry Song
0 siblings, 1 reply; 12+ messages in thread
From: Wolfram Sang @ 2013-08-19 18:05 UTC (permalink / raw)
To: Barry Song
Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA, workgroup.linux-kQvG35nSl+M,
Zhiwu Song, Barry Song
[-- Attachment #1: Type: text/plain, Size: 151 bytes --]
> + while (readl(siic->base + SIRFSOC_I2C_CTRL) & SIRFSOC_I2C_RESET)
> + cpu_relax();
Are you sure you want no timeout here? Same for patch 2/5.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 4/5] i2c: sirfsoc: support reverse direction of address
[not found] ` <1376385091-30597-5-git-send-email-Baohua.Song-kQvG35nSl+M@public.gmane.org>
@ 2013-08-19 18:06 ` Wolfram Sang
2013-08-20 2:30 ` Barry Song
0 siblings, 1 reply; 12+ messages in thread
From: Wolfram Sang @ 2013-08-19 18:06 UTC (permalink / raw)
To: Barry Song
Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA, workgroup.linux-kQvG35nSl+M,
Zhiwu Song, Rongjun Ying, Barry Song
[-- Attachment #1: Type: text/plain, Size: 571 bytes --]
On Tue, Aug 13, 2013 at 05:11:30PM +0800, Barry Song wrote:
> From: Zhiwu Song <Zhiwu.Song-kQvG35nSl+M@public.gmane.org>
>
> if users set I2C_M_REV_DIR_ADDR, revert the direction of address.
>
> Signed-off-by: Zhiwu Song <Zhiwu.Song-kQvG35nSl+M@public.gmane.org>
> Signed-off-by: Rongjun Ying <rongjun.ying-kQvG35nSl+M@public.gmane.org>
> Signed-off-by: Barry Song <Baohua.Song-kQvG35nSl+M@public.gmane.org>
Hmm, you are not advertising I2C_FUNC_PROTOCOL_MANGLING so users should
not use it. Does the master allow to implement the rest of mangling,
too?
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/5] i2c: sirf: reset i2c controller early after we get a noack
2013-08-19 18:05 ` Wolfram Sang
@ 2013-08-19 22:49 ` Barry Song
0 siblings, 0 replies; 12+ messages in thread
From: Barry Song @ 2013-08-19 22:49 UTC (permalink / raw)
To: Wolfram Sang
Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA, DL-SHA-WorkGroupLinux,
Zhiwu Song, Barry Song
2013/8/20 Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org>:
>
>> + while (readl(siic->base + SIRFSOC_I2C_CTRL) & SIRFSOC_I2C_RESET)
>> + cpu_relax();
>
> Are you sure you want no timeout here? Same for patch 2/5.
the real situation is that timeout never happen for resetting the i2c
controller, in pressure test, this loop will always break.
>
-barry
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 4/5] i2c: sirfsoc: support reverse direction of address
2013-08-19 18:06 ` Wolfram Sang
@ 2013-08-20 2:30 ` Barry Song
[not found] ` <CAGsJ_4xoPCJyWZ=_nN6wZBAy2qMER=cKOqY_t8K_jAX8fZWGmA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
0 siblings, 1 reply; 12+ messages in thread
From: Barry Song @ 2013-08-20 2:30 UTC (permalink / raw)
To: Wolfram Sang
Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA, DL-SHA-WorkGroupLinux,
Zhiwu Song, Rongjun Ying, Barry Song
2013/8/20 Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org>:
> On Tue, Aug 13, 2013 at 05:11:30PM +0800, Barry Song wrote:
>> From: Zhiwu Song <Zhiwu.Song-kQvG35nSl+M@public.gmane.org>
>>
>> if users set I2C_M_REV_DIR_ADDR, revert the direction of address.
>>
>> Signed-off-by: Zhiwu Song <Zhiwu.Song-kQvG35nSl+M@public.gmane.org>
>> Signed-off-by: Rongjun Ying <rongjun.ying-kQvG35nSl+M@public.gmane.org>
>> Signed-off-by: Barry Song <Baohua.Song-kQvG35nSl+M@public.gmane.org>
>
> Hmm, you are not advertising I2C_FUNC_PROTOCOL_MANGLING so users should
> not use it.
Wolfram, good comments. the old codes did miss
I2C_FUNC_PROTOCOL_MANGLING which i will fix in v2.
> Does the master allow to implement the rest of mangling,
> too?
>
i think only I2C_M_REV_DIR_ADDR. i didn't hear I2C_M_NOSTART,
I2C_M_IGNORE_NAK from hardware guys.
-barry
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 4/5] i2c: sirfsoc: support reverse direction of address
[not found] ` <CAGsJ_4xoPCJyWZ=_nN6wZBAy2qMER=cKOqY_t8K_jAX8fZWGmA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2013-08-28 9:41 ` Wolfram Sang
2013-08-28 12:00 ` Barry Song
0 siblings, 1 reply; 12+ messages in thread
From: Wolfram Sang @ 2013-08-28 9:41 UTC (permalink / raw)
To: Barry Song
Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA, DL-SHA-WorkGroupLinux,
Zhiwu Song, Rongjun Ying, Barry Song
[-- Attachment #1: Type: text/plain, Size: 596 bytes --]
> > Hmm, you are not advertising I2C_FUNC_PROTOCOL_MANGLING so users should
> > not use it.
>
> Wolfram, good comments. the old codes did miss
> I2C_FUNC_PROTOCOL_MANGLING which i will fix in v2.
>
> > Does the master allow to implement the rest of mangling,
> > too?
> >
>
> i think only I2C_M_REV_DIR_ADDR. i didn't hear I2C_M_NOSTART,
> I2C_M_IGNORE_NAK from hardware guys.
Hmm, since the driver can't support all of MANGLING, it might be wise to
not advertise it. I am undecided how to handle this generally. Until
then, I'll accept this patch (and the series) as is.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 4/5] i2c: sirfsoc: support reverse direction of address
2013-08-28 9:41 ` Wolfram Sang
@ 2013-08-28 12:00 ` Barry Song
0 siblings, 0 replies; 12+ messages in thread
From: Barry Song @ 2013-08-28 12:00 UTC (permalink / raw)
To: Wolfram Sang
Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA, DL-SHA-WorkGroupLinux,
Zhiwu Song, Rongjun Ying, Barry Song
2013/8/28 Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org>:
>
>> > Hmm, you are not advertising I2C_FUNC_PROTOCOL_MANGLING so users should
>> > not use it.
>>
>> Wolfram, good comments. the old codes did miss
>> I2C_FUNC_PROTOCOL_MANGLING which i will fix in v2.
>>
>> > Does the master allow to implement the rest of mangling,
>> > too?
>> >
>>
>> i think only I2C_M_REV_DIR_ADDR. i didn't hear I2C_M_NOSTART,
>> I2C_M_IGNORE_NAK from hardware guys.
>
> Hmm, since the driver can't support all of MANGLING, it might be wise to
> not advertise it. I am undecided how to handle this generally. Until
> then, I'll accept this patch (and the series) as is.
ok, thanks Wolfram. then i will not have v2.
>
-barry
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2013-08-28 12:00 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-13 9:11 [PATCH 0/5] i2c: sirf: a bundle of fixes for stability Barry Song
[not found] ` <1376385091-30597-1-git-send-email-Baohua.Song-kQvG35nSl+M@public.gmane.org>
2013-08-13 9:11 ` [PATCH 1/5] i2c: sirf: reset i2c controller early after we get a noack Barry Song
[not found] ` <1376385091-30597-2-git-send-email-Baohua.Song-kQvG35nSl+M@public.gmane.org>
2013-08-19 18:05 ` Wolfram Sang
2013-08-19 22:49 ` Barry Song
2013-08-13 9:11 ` [PATCH 2/5] i2c: sirf: we need to wait I2C_RESET status in resume Barry Song
2013-08-13 9:11 ` [PATCH 3/5] i2c: sirf: fix the typo for setting bitrate to less than 100k Barry Song
2013-08-13 9:11 ` [PATCH 4/5] i2c: sirfsoc: support reverse direction of address Barry Song
[not found] ` <1376385091-30597-5-git-send-email-Baohua.Song-kQvG35nSl+M@public.gmane.org>
2013-08-19 18:06 ` Wolfram Sang
2013-08-20 2:30 ` Barry Song
[not found] ` <CAGsJ_4xoPCJyWZ=_nN6wZBAy2qMER=cKOqY_t8K_jAX8fZWGmA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-08-28 9:41 ` Wolfram Sang
2013-08-28 12:00 ` Barry Song
2013-08-13 9:11 ` [PATCH 5/5] i2c: sirf: retry 3 times as sometimes we get random noack and timeout Barry Song
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.