* [PATCH 0/4] i2c octeon & thunderx bug fixes
@ 2016-12-09 9:31 Jan Glauber
2016-12-09 9:31 ` [PATCH 1/4] i2c: octeon: thunderx: TWSI software reset in recovery Jan Glauber
` (3 more replies)
0 siblings, 4 replies; 16+ messages in thread
From: Jan Glauber @ 2016-12-09 9:31 UTC (permalink / raw)
To: Wolfram Sang
Cc: Paul Burton, Steven J . Hill, linux-i2c, linux-mips, David Daney,
Jan Glauber
Hi Wolfram,
Patches #1 & #2 contain the fixes that didn't make 4.9.
We've double-checked that they are working on Octeon MIPS cn71xx,
so I hope there are no surprises this time.
Patch #3 is my original attempt on limiting the number of
retries for the i2c device register access. As I found out we
need to keep this simple, because these functions are called
very early in the i2c driver and also from all types of context.
Patch #4 addresses a bug report I got. I haven't seen this myself,
but apparently depending on probing method and/or hardware type
ipmi_ssif can fail to detect the IPMI device. Setting the class
in the adapter solves the problem and seems harmless.
Tested on MIPS Octeon CN71xx and ARM64 ThunderX on 4.9-rc8.
thanks,
Jan
-----------------------
Jan Glauber (4):
i2c: octeon: thunderx: TWSI software reset in recovery
i2c: octeon: thunderx: Remove double-check after interrupt
i2c: octeon: thunderx: Limit register access retries
i2c: octeon: thunderx: Add I2C_CLASS_HWMON
drivers/i2c/busses/i2c-octeon-core.c | 50 +++++---------------------------
drivers/i2c/busses/i2c-octeon-core.h | 21 ++++++++++----
drivers/i2c/busses/i2c-octeon-platdrv.c | 1 +
drivers/i2c/busses/i2c-thunderx-pcidrv.c | 1 +
4 files changed, 26 insertions(+), 47 deletions(-)
--
2.9.0.rc0.21.g7777322
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 1/4] i2c: octeon: thunderx: TWSI software reset in recovery
2016-12-09 9:31 [PATCH 0/4] i2c octeon & thunderx bug fixes Jan Glauber
@ 2016-12-09 9:31 ` Jan Glauber
2016-12-11 22:01 ` Wolfram Sang
2016-12-09 9:31 ` [PATCH 2/4] i2c: octeon: thunderx: Remove double-check after interrupt Jan Glauber
` (2 subsequent siblings)
3 siblings, 1 reply; 16+ messages in thread
From: Jan Glauber @ 2016-12-09 9:31 UTC (permalink / raw)
To: Wolfram Sang
Cc: Paul Burton, Steven J . Hill, linux-i2c, linux-mips, David Daney,
Jan Glauber
I've seen i2c recovery reporting long loops of:
[ 1035.887818] i2c i2c-4: SCL is stuck low, exit recovery
[ 1037.999748] i2c i2c-4: SCL is stuck low, exit recovery
[ 1040.111694] i2c i2c-4: SCL is stuck low, exit recovery
...
Add a TWSI software reset which clears the status and
STA,STP,IFLG in SW_TWSI_EOP_TWSI_CTL.
With this the recovery works fine and above message is not seen.
Signed-off-by: Jan Glauber <jglauber@cavium.com>
---
drivers/i2c/busses/i2c-octeon-core.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/i2c/busses/i2c-octeon-core.c b/drivers/i2c/busses/i2c-octeon-core.c
index 5e63b17..2b8a7bf 100644
--- a/drivers/i2c/busses/i2c-octeon-core.c
+++ b/drivers/i2c/busses/i2c-octeon-core.c
@@ -789,6 +789,9 @@ static void octeon_i2c_prepare_recovery(struct i2c_adapter *adap)
struct octeon_i2c *i2c = i2c_get_adapdata(adap);
octeon_i2c_hlc_disable(i2c);
+ octeon_i2c_reg_write(i2c, SW_TWSI_EOP_TWSI_RST, 0);
+ /* wait for software reset to settle */
+ udelay(5);
/*
* Bring control register to a good state regardless
--
2.9.0.rc0.21.g7777322
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 2/4] i2c: octeon: thunderx: Remove double-check after interrupt
2016-12-09 9:31 [PATCH 0/4] i2c octeon & thunderx bug fixes Jan Glauber
2016-12-09 9:31 ` [PATCH 1/4] i2c: octeon: thunderx: TWSI software reset in recovery Jan Glauber
@ 2016-12-09 9:31 ` Jan Glauber
2016-12-11 22:01 ` Wolfram Sang
2016-12-09 9:31 ` [PATCH 3/4] i2c: octeon: thunderx: Limit register access retries Jan Glauber
2016-12-09 9:31 ` [PATCH 4/4] i2c: octeon: thunderx: Add I2C_CLASS_HWMON Jan Glauber
3 siblings, 1 reply; 16+ messages in thread
From: Jan Glauber @ 2016-12-09 9:31 UTC (permalink / raw)
To: Wolfram Sang
Cc: Paul Burton, Steven J . Hill, linux-i2c, linux-mips, David Daney,
Jan Glauber
Commit 1bb1ff3e7c74 ("i2c: octeon: Improve performance if interrupt is
early") added a double-check around the wait_event_timeout() condition.
The performance problem that this commit tried to work-around
could not be reproduced. It also makes the wait condition more
complicated then it should be. Therefore remove the double-check.
Signed-off-by: Jan Glauber <jglauber@cavium.com>
---
drivers/i2c/busses/i2c-octeon-core.c | 43 ++----------------------------------
1 file changed, 2 insertions(+), 41 deletions(-)
diff --git a/drivers/i2c/busses/i2c-octeon-core.c b/drivers/i2c/busses/i2c-octeon-core.c
index 2b8a7bf..3d10f1a 100644
--- a/drivers/i2c/busses/i2c-octeon-core.c
+++ b/drivers/i2c/busses/i2c-octeon-core.c
@@ -36,24 +36,6 @@ static bool octeon_i2c_test_iflg(struct octeon_i2c *i2c)
return (octeon_i2c_ctl_read(i2c) & TWSI_CTL_IFLG);
}
-static bool octeon_i2c_test_ready(struct octeon_i2c *i2c, bool *first)
-{
- if (octeon_i2c_test_iflg(i2c))
- return true;
-
- if (*first) {
- *first = false;
- return false;
- }
-
- /*
- * IRQ has signaled an event but IFLG hasn't changed.
- * Sleep and retry once.
- */
- usleep_range(I2C_OCTEON_EVENT_WAIT, 2 * I2C_OCTEON_EVENT_WAIT);
- return octeon_i2c_test_iflg(i2c);
-}
-
/**
* octeon_i2c_wait - wait for the IFLG to be set
* @i2c: The struct octeon_i2c
@@ -63,7 +45,6 @@ static bool octeon_i2c_test_ready(struct octeon_i2c *i2c, bool *first)
static int octeon_i2c_wait(struct octeon_i2c *i2c)
{
long time_left;
- bool first = true;
/*
* Some chip revisions don't assert the irq in the interrupt
@@ -80,7 +61,7 @@ static int octeon_i2c_wait(struct octeon_i2c *i2c)
}
i2c->int_enable(i2c);
- time_left = wait_event_timeout(i2c->queue, octeon_i2c_test_ready(i2c, &first),
+ time_left = wait_event_timeout(i2c->queue, octeon_i2c_test_iflg(i2c),
i2c->adap.timeout);
i2c->int_disable(i2c);
@@ -102,25 +83,6 @@ static bool octeon_i2c_hlc_test_valid(struct octeon_i2c *i2c)
return (__raw_readq(i2c->twsi_base + SW_TWSI(i2c)) & SW_TWSI_V) == 0;
}
-static bool octeon_i2c_hlc_test_ready(struct octeon_i2c *i2c, bool *first)
-{
- /* check if valid bit is cleared */
- if (octeon_i2c_hlc_test_valid(i2c))
- return true;
-
- if (*first) {
- *first = false;
- return false;
- }
-
- /*
- * IRQ has signaled an event but valid bit isn't cleared.
- * Sleep and retry once.
- */
- usleep_range(I2C_OCTEON_EVENT_WAIT, 2 * I2C_OCTEON_EVENT_WAIT);
- return octeon_i2c_hlc_test_valid(i2c);
-}
-
static void octeon_i2c_hlc_int_clear(struct octeon_i2c *i2c)
{
/* clear ST/TS events, listen for neither */
@@ -176,7 +138,6 @@ static void octeon_i2c_hlc_disable(struct octeon_i2c *i2c)
*/
static int octeon_i2c_hlc_wait(struct octeon_i2c *i2c)
{
- bool first = true;
int time_left;
/*
@@ -195,7 +156,7 @@ static int octeon_i2c_hlc_wait(struct octeon_i2c *i2c)
i2c->hlc_int_enable(i2c);
time_left = wait_event_timeout(i2c->queue,
- octeon_i2c_hlc_test_ready(i2c, &first),
+ octeon_i2c_hlc_test_valid(i2c),
i2c->adap.timeout);
i2c->hlc_int_disable(i2c);
if (!time_left)
--
2.9.0.rc0.21.g7777322
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 3/4] i2c: octeon: thunderx: Limit register access retries
2016-12-09 9:31 [PATCH 0/4] i2c octeon & thunderx bug fixes Jan Glauber
2016-12-09 9:31 ` [PATCH 1/4] i2c: octeon: thunderx: TWSI software reset in recovery Jan Glauber
2016-12-09 9:31 ` [PATCH 2/4] i2c: octeon: thunderx: Remove double-check after interrupt Jan Glauber
@ 2016-12-09 9:31 ` Jan Glauber
2016-12-11 22:01 ` Wolfram Sang
2016-12-17 18:29 ` Wolfram Sang
2016-12-09 9:31 ` [PATCH 4/4] i2c: octeon: thunderx: Add I2C_CLASS_HWMON Jan Glauber
3 siblings, 2 replies; 16+ messages in thread
From: Jan Glauber @ 2016-12-09 9:31 UTC (permalink / raw)
To: Wolfram Sang
Cc: Paul Burton, Steven J . Hill, linux-i2c, linux-mips, David Daney,
Jan Glauber
Do not infinitely retry register readq and writeq operations
in order to not lock up the CPU in case the TWSI gets stuck.
Return -EIO in case of a failed data read. For all other
cases just return so subsequent operations will fail
and trigger the recovery.
Signed-off-by: Jan Glauber <jglauber@cavium.com>
---
drivers/i2c/busses/i2c-octeon-core.c | 4 +++-
drivers/i2c/busses/i2c-octeon-core.h | 21 ++++++++++++++++-----
2 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/drivers/i2c/busses/i2c-octeon-core.c b/drivers/i2c/busses/i2c-octeon-core.c
index 3d10f1a..1d8775799 100644
--- a/drivers/i2c/busses/i2c-octeon-core.c
+++ b/drivers/i2c/busses/i2c-octeon-core.c
@@ -342,7 +342,9 @@ static int octeon_i2c_read(struct octeon_i2c *i2c, int target,
if (result)
return result;
- data[i] = octeon_i2c_data_read(i2c);
+ data[i] = octeon_i2c_data_read(i2c, &result);
+ if (result)
+ return result;
if (recv_len && i == 0) {
if (data[i] > I2C_SMBUS_BLOCK_MAX + 1)
return -EPROTO;
diff --git a/drivers/i2c/busses/i2c-octeon-core.h b/drivers/i2c/busses/i2c-octeon-core.h
index 87151ea..e160f83 100644
--- a/drivers/i2c/busses/i2c-octeon-core.h
+++ b/drivers/i2c/busses/i2c-octeon-core.h
@@ -141,11 +141,14 @@ static inline void octeon_i2c_writeq_flush(u64 val, void __iomem *addr)
*/
static inline void octeon_i2c_reg_write(struct octeon_i2c *i2c, u64 eop_reg, u8 data)
{
+ int tries = 1000;
u64 tmp;
__raw_writeq(SW_TWSI_V | eop_reg | data, i2c->twsi_base + SW_TWSI(i2c));
do {
tmp = __raw_readq(i2c->twsi_base + SW_TWSI(i2c));
+ if (--tries < 0)
+ return;
} while ((tmp & SW_TWSI_V) != 0);
}
@@ -163,24 +166,32 @@ static inline void octeon_i2c_reg_write(struct octeon_i2c *i2c, u64 eop_reg, u8
*
* The I2C core registers are accessed indirectly via the SW_TWSI CSR.
*/
-static inline u8 octeon_i2c_reg_read(struct octeon_i2c *i2c, u64 eop_reg)
+static inline int octeon_i2c_reg_read(struct octeon_i2c *i2c, u64 eop_reg,
+ int *error)
{
+ int tries = 1000;
u64 tmp;
__raw_writeq(SW_TWSI_V | eop_reg | SW_TWSI_R, i2c->twsi_base + SW_TWSI(i2c));
do {
tmp = __raw_readq(i2c->twsi_base + SW_TWSI(i2c));
+ if (--tries < 0) {
+ /* signal that the returned data is invalid */
+ if (error)
+ *error = -EIO;
+ return 0;
+ }
} while ((tmp & SW_TWSI_V) != 0);
return tmp & 0xFF;
}
#define octeon_i2c_ctl_read(i2c) \
- octeon_i2c_reg_read(i2c, SW_TWSI_EOP_TWSI_CTL)
-#define octeon_i2c_data_read(i2c) \
- octeon_i2c_reg_read(i2c, SW_TWSI_EOP_TWSI_DATA)
+ octeon_i2c_reg_read(i2c, SW_TWSI_EOP_TWSI_CTL, NULL)
+#define octeon_i2c_data_read(i2c, error) \
+ octeon_i2c_reg_read(i2c, SW_TWSI_EOP_TWSI_DATA, error)
#define octeon_i2c_stat_read(i2c) \
- octeon_i2c_reg_read(i2c, SW_TWSI_EOP_TWSI_STAT)
+ octeon_i2c_reg_read(i2c, SW_TWSI_EOP_TWSI_STAT, NULL)
/**
* octeon_i2c_read_int - read the TWSI_INT register
--
2.9.0.rc0.21.g7777322
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 4/4] i2c: octeon: thunderx: Add I2C_CLASS_HWMON
2016-12-09 9:31 [PATCH 0/4] i2c octeon & thunderx bug fixes Jan Glauber
` (2 preceding siblings ...)
2016-12-09 9:31 ` [PATCH 3/4] i2c: octeon: thunderx: Limit register access retries Jan Glauber
@ 2016-12-09 9:31 ` Jan Glauber
2016-12-11 22:04 ` Wolfram Sang
3 siblings, 1 reply; 16+ messages in thread
From: Jan Glauber @ 2016-12-09 9:31 UTC (permalink / raw)
To: Wolfram Sang
Cc: Paul Burton, Steven J . Hill, linux-i2c, linux-mips, David Daney,
Jan Glauber
It was reported that ipmi_ssif fails to create the
ipmi device on some systems if the adapter class is not containing
I2C_CLASS_HWMON. Fix it by setting the class.
Reported-by: Vadim Lomovtsev <Vadim.Lomovtsev@caviumnetworks.com>
Signed-off-by: Jan Glauber <jglauber@cavium.com>
---
drivers/i2c/busses/i2c-octeon-platdrv.c | 1 +
drivers/i2c/busses/i2c-thunderx-pcidrv.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/drivers/i2c/busses/i2c-octeon-platdrv.c b/drivers/i2c/busses/i2c-octeon-platdrv.c
index 917524c..809b868 100644
--- a/drivers/i2c/busses/i2c-octeon-platdrv.c
+++ b/drivers/i2c/busses/i2c-octeon-platdrv.c
@@ -239,6 +239,7 @@ static int octeon_i2c_probe(struct platform_device *pdev)
i2c->adap = octeon_i2c_ops;
i2c->adap.timeout = msecs_to_jiffies(2);
i2c->adap.retries = 5;
+ i2c->adap.class = I2C_CLASS_HWMON;
i2c->adap.bus_recovery_info = &octeon_i2c_recovery_info;
i2c->adap.dev.parent = &pdev->dev;
i2c->adap.dev.of_node = node;
diff --git a/drivers/i2c/busses/i2c-thunderx-pcidrv.c b/drivers/i2c/busses/i2c-thunderx-pcidrv.c
index bba5b42..9e3365f 100644
--- a/drivers/i2c/busses/i2c-thunderx-pcidrv.c
+++ b/drivers/i2c/busses/i2c-thunderx-pcidrv.c
@@ -205,6 +205,7 @@ static int thunder_i2c_probe_pci(struct pci_dev *pdev,
i2c->adap = thunderx_i2c_ops;
i2c->adap.retries = 5;
+ i2c->adap.class = I2C_CLASS_HWMON;
i2c->adap.bus_recovery_info = &octeon_i2c_recovery_info;
i2c->adap.dev.parent = dev;
i2c->adap.dev.of_node = pdev->dev.of_node;
--
2.9.0.rc0.21.g7777322
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 1/4] i2c: octeon: thunderx: TWSI software reset in recovery
2016-12-09 9:31 ` [PATCH 1/4] i2c: octeon: thunderx: TWSI software reset in recovery Jan Glauber
@ 2016-12-11 22:01 ` Wolfram Sang
0 siblings, 0 replies; 16+ messages in thread
From: Wolfram Sang @ 2016-12-11 22:01 UTC (permalink / raw)
To: Jan Glauber
Cc: Wolfram Sang, Paul Burton, Steven J . Hill, linux-i2c,
linux-mips, David Daney
[-- Attachment #1: Type: text/plain, Size: 571 bytes --]
On Fri, Dec 09, 2016 at 10:31:55AM +0100, Jan Glauber wrote:
> I've seen i2c recovery reporting long loops of:
>
> [ 1035.887818] i2c i2c-4: SCL is stuck low, exit recovery
> [ 1037.999748] i2c i2c-4: SCL is stuck low, exit recovery
> [ 1040.111694] i2c i2c-4: SCL is stuck low, exit recovery
> ...
>
> Add a TWSI software reset which clears the status and
> STA,STP,IFLG in SW_TWSI_EOP_TWSI_CTL.
>
> With this the recovery works fine and above message is not seen.
>
> Signed-off-by: Jan Glauber <jglauber@cavium.com>
Applied to for-next, thanks!
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 2/4] i2c: octeon: thunderx: Remove double-check after interrupt
2016-12-09 9:31 ` [PATCH 2/4] i2c: octeon: thunderx: Remove double-check after interrupt Jan Glauber
@ 2016-12-11 22:01 ` Wolfram Sang
0 siblings, 0 replies; 16+ messages in thread
From: Wolfram Sang @ 2016-12-11 22:01 UTC (permalink / raw)
To: Jan Glauber
Cc: Wolfram Sang, Paul Burton, Steven J . Hill, linux-i2c,
linux-mips, David Daney
[-- Attachment #1: Type: text/plain, Size: 501 bytes --]
On Fri, Dec 09, 2016 at 10:31:56AM +0100, Jan Glauber wrote:
> Commit 1bb1ff3e7c74 ("i2c: octeon: Improve performance if interrupt is
> early") added a double-check around the wait_event_timeout() condition.
> The performance problem that this commit tried to work-around
> could not be reproduced. It also makes the wait condition more
> complicated then it should be. Therefore remove the double-check.
>
> Signed-off-by: Jan Glauber <jglauber@cavium.com>
Applied to for-next, thanks!
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 3/4] i2c: octeon: thunderx: Limit register access retries
2016-12-09 9:31 ` [PATCH 3/4] i2c: octeon: thunderx: Limit register access retries Jan Glauber
@ 2016-12-11 22:01 ` Wolfram Sang
2016-12-12 16:07 ` Jan Glauber
2016-12-17 18:29 ` Wolfram Sang
1 sibling, 1 reply; 16+ messages in thread
From: Wolfram Sang @ 2016-12-11 22:01 UTC (permalink / raw)
To: Jan Glauber
Cc: Wolfram Sang, Paul Burton, Steven J . Hill, linux-i2c,
linux-mips, David Daney
[-- Attachment #1: Type: text/plain, Size: 424 bytes --]
On Fri, Dec 09, 2016 at 10:31:57AM +0100, Jan Glauber wrote:
> Do not infinitely retry register readq and writeq operations
> in order to not lock up the CPU in case the TWSI gets stuck.
>
> Return -EIO in case of a failed data read. For all other
> cases just return so subsequent operations will fail
> and trigger the recovery.
>
> Signed-off-by: Jan Glauber <jglauber@cavium.com>
I can't apply this one?
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 4/4] i2c: octeon: thunderx: Add I2C_CLASS_HWMON
2016-12-09 9:31 ` [PATCH 4/4] i2c: octeon: thunderx: Add I2C_CLASS_HWMON Jan Glauber
@ 2016-12-11 22:04 ` Wolfram Sang
2017-01-25 20:49 ` Wolfram Sang
0 siblings, 1 reply; 16+ messages in thread
From: Wolfram Sang @ 2016-12-11 22:04 UTC (permalink / raw)
To: Jan Glauber
Cc: Wolfram Sang, Paul Burton, Steven J . Hill, linux-i2c,
linux-mips, David Daney
[-- Attachment #1: Type: text/plain, Size: 593 bytes --]
On Fri, Dec 09, 2016 at 10:31:58AM +0100, Jan Glauber wrote:
> It was reported that ipmi_ssif fails to create the
> ipmi device on some systems if the adapter class is not containing
> I2C_CLASS_HWMON. Fix it by setting the class.
>
> Reported-by: Vadim Lomovtsev <Vadim.Lomovtsev@caviumnetworks.com>
> Signed-off-by: Jan Glauber <jglauber@cavium.com>
The intention of adapter classes is to *limit* probing to a certain
class of devices. If a class is needed to *enable* probing, then
something there looks wrong. From the details given, this must be solved
elsewhere I'd say.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 3/4] i2c: octeon: thunderx: Limit register access retries
2016-12-11 22:01 ` Wolfram Sang
@ 2016-12-12 16:07 ` Jan Glauber
2016-12-12 16:07 ` Jan Glauber
2016-12-13 20:32 ` Wolfram Sang
0 siblings, 2 replies; 16+ messages in thread
From: Jan Glauber @ 2016-12-12 16:07 UTC (permalink / raw)
To: Wolfram Sang
Cc: Wolfram Sang, Paul Burton, Steven J . Hill, linux-i2c,
linux-mips, David Daney
On Sun, Dec 11, 2016 at 11:01:48PM +0100, Wolfram Sang wrote:
> On Fri, Dec 09, 2016 at 10:31:57AM +0100, Jan Glauber wrote:
> > Do not infinitely retry register readq and writeq operations
> > in order to not lock up the CPU in case the TWSI gets stuck.
> >
> > Return -EIO in case of a failed data read. For all other
> > cases just return so subsequent operations will fail
> > and trigger the recovery.
> >
> > Signed-off-by: Jan Glauber <jglauber@cavium.com>
>
> I can't apply this one?
>
Strange. Applies for me on top of 4.9 and also next-20161212.
I can also apply if back from the mail. Is the mail messed up on your
side?
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 3/4] i2c: octeon: thunderx: Limit register access retries
2016-12-12 16:07 ` Jan Glauber
@ 2016-12-12 16:07 ` Jan Glauber
2016-12-13 20:32 ` Wolfram Sang
1 sibling, 0 replies; 16+ messages in thread
From: Jan Glauber @ 2016-12-12 16:07 UTC (permalink / raw)
To: Wolfram Sang
Cc: Wolfram Sang, Paul Burton, Steven J . Hill, linux-i2c,
linux-mips, David Daney
On Sun, Dec 11, 2016 at 11:01:48PM +0100, Wolfram Sang wrote:
> On Fri, Dec 09, 2016 at 10:31:57AM +0100, Jan Glauber wrote:
> > Do not infinitely retry register readq and writeq operations
> > in order to not lock up the CPU in case the TWSI gets stuck.
> >
> > Return -EIO in case of a failed data read. For all other
> > cases just return so subsequent operations will fail
> > and trigger the recovery.
> >
> > Signed-off-by: Jan Glauber <jglauber@cavium.com>
>
> I can't apply this one?
>
Strange. Applies for me on top of 4.9 and also next-20161212.
I can also apply if back from the mail. Is the mail messed up on your
side?
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 3/4] i2c: octeon: thunderx: Limit register access retries
2016-12-12 16:07 ` Jan Glauber
2016-12-12 16:07 ` Jan Glauber
@ 2016-12-13 20:32 ` Wolfram Sang
1 sibling, 0 replies; 16+ messages in thread
From: Wolfram Sang @ 2016-12-13 20:32 UTC (permalink / raw)
To: Jan Glauber
Cc: Wolfram Sang, Paul Burton, Steven J . Hill, linux-i2c,
linux-mips, David Daney
[-- Attachment #1: Type: text/plain, Size: 347 bytes --]
> >
> > I can't apply this one?
> >
>
> Strange. Applies for me on top of 4.9 and also next-20161212.
> I can also apply if back from the mail. Is the mail messed up on your
> side?
My fault, sorry for the noise. My branch missed the latest revert for
4.9. I'll apply this patch for a second pull request during the merge
window.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 3/4] i2c: octeon: thunderx: Limit register access retries
2016-12-09 9:31 ` [PATCH 3/4] i2c: octeon: thunderx: Limit register access retries Jan Glauber
2016-12-11 22:01 ` Wolfram Sang
@ 2016-12-17 18:29 ` Wolfram Sang
1 sibling, 0 replies; 16+ messages in thread
From: Wolfram Sang @ 2016-12-17 18:29 UTC (permalink / raw)
To: Jan Glauber
Cc: Wolfram Sang, Paul Burton, Steven J . Hill, linux-i2c,
linux-mips, David Daney
[-- Attachment #1: Type: text/plain, Size: 432 bytes --]
On Fri, Dec 09, 2016 at 10:31:57AM +0100, Jan Glauber wrote:
> Do not infinitely retry register readq and writeq operations
> in order to not lock up the CPU in case the TWSI gets stuck.
>
> Return -EIO in case of a failed data read. For all other
> cases just return so subsequent operations will fail
> and trigger the recovery.
>
> Signed-off-by: Jan Glauber <jglauber@cavium.com>
Applied to for-current, thanks!
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 4/4] i2c: octeon: thunderx: Add I2C_CLASS_HWMON
2016-12-11 22:04 ` Wolfram Sang
@ 2017-01-25 20:49 ` Wolfram Sang
2017-01-26 6:10 ` Jan Glauber
0 siblings, 1 reply; 16+ messages in thread
From: Wolfram Sang @ 2017-01-25 20:49 UTC (permalink / raw)
To: Jan Glauber
Cc: Wolfram Sang, Paul Burton, Steven J . Hill, linux-i2c,
linux-mips, David Daney
[-- Attachment #1: Type: text/plain, Size: 696 bytes --]
On Sun, Dec 11, 2016 at 11:04:35PM +0100, Wolfram Sang wrote:
> On Fri, Dec 09, 2016 at 10:31:58AM +0100, Jan Glauber wrote:
> > It was reported that ipmi_ssif fails to create the
> > ipmi device on some systems if the adapter class is not containing
> > I2C_CLASS_HWMON. Fix it by setting the class.
> >
> > Reported-by: Vadim Lomovtsev <Vadim.Lomovtsev@caviumnetworks.com>
> > Signed-off-by: Jan Glauber <jglauber@cavium.com>
>
> The intention of adapter classes is to *limit* probing to a certain
> class of devices. If a class is needed to *enable* probing, then
> something there looks wrong. From the details given, this must be solved
> elsewhere I'd say.
Makes sense?
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 4/4] i2c: octeon: thunderx: Add I2C_CLASS_HWMON
2017-01-25 20:49 ` Wolfram Sang
@ 2017-01-26 6:10 ` Jan Glauber
2017-01-26 6:10 ` Jan Glauber
0 siblings, 1 reply; 16+ messages in thread
From: Jan Glauber @ 2017-01-26 6:10 UTC (permalink / raw)
To: Wolfram Sang
Cc: Wolfram Sang, Paul Burton, Steven J . Hill, linux-i2c,
linux-mips, David Daney
On Wed, Jan 25, 2017 at 09:49:23PM +0100, Wolfram Sang wrote:
> On Sun, Dec 11, 2016 at 11:04:35PM +0100, Wolfram Sang wrote:
> > On Fri, Dec 09, 2016 at 10:31:58AM +0100, Jan Glauber wrote:
> > > It was reported that ipmi_ssif fails to create the
> > > ipmi device on some systems if the adapter class is not containing
> > > I2C_CLASS_HWMON. Fix it by setting the class.
> > >
> > > Reported-by: Vadim Lomovtsev <Vadim.Lomovtsev@caviumnetworks.com>
> > > Signed-off-by: Jan Glauber <jglauber@cavium.com>
> >
> > The intention of adapter classes is to *limit* probing to a certain
> > class of devices. If a class is needed to *enable* probing, then
> > something there looks wrong. From the details given, this must be solved
> > elsewhere I'd say.
>
> Makes sense?
>
Yes, perfectly, the patch can be dropped.
thanks,
Jan
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 4/4] i2c: octeon: thunderx: Add I2C_CLASS_HWMON
2017-01-26 6:10 ` Jan Glauber
@ 2017-01-26 6:10 ` Jan Glauber
0 siblings, 0 replies; 16+ messages in thread
From: Jan Glauber @ 2017-01-26 6:10 UTC (permalink / raw)
To: Wolfram Sang
Cc: Wolfram Sang, Paul Burton, Steven J . Hill, linux-i2c,
linux-mips, David Daney
On Wed, Jan 25, 2017 at 09:49:23PM +0100, Wolfram Sang wrote:
> On Sun, Dec 11, 2016 at 11:04:35PM +0100, Wolfram Sang wrote:
> > On Fri, Dec 09, 2016 at 10:31:58AM +0100, Jan Glauber wrote:
> > > It was reported that ipmi_ssif fails to create the
> > > ipmi device on some systems if the adapter class is not containing
> > > I2C_CLASS_HWMON. Fix it by setting the class.
> > >
> > > Reported-by: Vadim Lomovtsev <Vadim.Lomovtsev@caviumnetworks.com>
> > > Signed-off-by: Jan Glauber <jglauber@cavium.com>
> >
> > The intention of adapter classes is to *limit* probing to a certain
> > class of devices. If a class is needed to *enable* probing, then
> > something there looks wrong. From the details given, this must be solved
> > elsewhere I'd say.
>
> Makes sense?
>
Yes, perfectly, the patch can be dropped.
thanks,
Jan
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2017-01-26 6:11 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-09 9:31 [PATCH 0/4] i2c octeon & thunderx bug fixes Jan Glauber
2016-12-09 9:31 ` [PATCH 1/4] i2c: octeon: thunderx: TWSI software reset in recovery Jan Glauber
2016-12-11 22:01 ` Wolfram Sang
2016-12-09 9:31 ` [PATCH 2/4] i2c: octeon: thunderx: Remove double-check after interrupt Jan Glauber
2016-12-11 22:01 ` Wolfram Sang
2016-12-09 9:31 ` [PATCH 3/4] i2c: octeon: thunderx: Limit register access retries Jan Glauber
2016-12-11 22:01 ` Wolfram Sang
2016-12-12 16:07 ` Jan Glauber
2016-12-12 16:07 ` Jan Glauber
2016-12-13 20:32 ` Wolfram Sang
2016-12-17 18:29 ` Wolfram Sang
2016-12-09 9:31 ` [PATCH 4/4] i2c: octeon: thunderx: Add I2C_CLASS_HWMON Jan Glauber
2016-12-11 22:04 ` Wolfram Sang
2017-01-25 20:49 ` Wolfram Sang
2017-01-26 6:10 ` Jan Glauber
2017-01-26 6:10 ` Jan Glauber
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).