aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDerek Chickles <derek.chickles@cavium.com>2017-07-05 14:59:27 -0400
committerDavid S. Miller <davem@davemloft.net>2017-07-06 05:36:03 -0400
commit05a6b4cae8c0cc1680c9dd33a97a49a13c0f01bc (patch)
tree9f2f3ebff120b56a25965478cf7b1fadc7cfacfb
parent9b51f04424e17051a89ab32d892ca66b2a104825 (diff)
liquidio: fix bug in soft reset failure detection
The code that detects a failed soft reset of Octeon is comparing the wrong value against the reset value of the Octeon SLI_SCRATCH_1 register, resulting in an inability to detect a soft reset failure. Fix it by using the correct value in the comparison, which is any non-zero value. Fixes: f21fb3ed364b ("Add support of Cavium Liquidio ethernet adapters") Fixes: c0eab5b3580a ("liquidio: CN23XX firmware download") Signed-off-by: Derek Chickles <derek.chickles@cavium.com> Signed-off-by: Satanand Burla <satananda.burla@cavium.com> Signed-off-by: Raghu Vatsavayi <raghu.vatsavayi@cavium.com> Signed-off-by: Felix Manlunas <felix.manlunas@cavium.com> Reviewed-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c2
-rw-r--r--drivers/net/ethernet/cavium/liquidio/cn66xx_device.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c b/drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c
index 6081c3132135..4b0ca9fb2cb4 100644
--- a/drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c
+++ b/drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c
@@ -221,7 +221,7 @@ static int cn23xx_pf_soft_reset(struct octeon_device *oct)
221 /* Wait for 100ms as Octeon resets. */ 221 /* Wait for 100ms as Octeon resets. */
222 mdelay(100); 222 mdelay(100);
223 223
224 if (octeon_read_csr64(oct, CN23XX_SLI_SCRATCH1) == 0x1234ULL) { 224 if (octeon_read_csr64(oct, CN23XX_SLI_SCRATCH1)) {
225 dev_err(&oct->pci_dev->dev, "OCTEON[%d]: Soft reset failed\n", 225 dev_err(&oct->pci_dev->dev, "OCTEON[%d]: Soft reset failed\n",
226 oct->octeon_id); 226 oct->octeon_id);
227 return 1; 227 return 1;
diff --git a/drivers/net/ethernet/cavium/liquidio/cn66xx_device.c b/drivers/net/ethernet/cavium/liquidio/cn66xx_device.c
index b28253c96d97..2df7440f58df 100644
--- a/drivers/net/ethernet/cavium/liquidio/cn66xx_device.c
+++ b/drivers/net/ethernet/cavium/liquidio/cn66xx_device.c
@@ -44,7 +44,7 @@ int lio_cn6xxx_soft_reset(struct octeon_device *oct)
44 /* Wait for 10ms as Octeon resets. */ 44 /* Wait for 10ms as Octeon resets. */
45 mdelay(100); 45 mdelay(100);
46 46
47 if (octeon_read_csr64(oct, CN6XXX_SLI_SCRATCH1) == 0x1234ULL) { 47 if (octeon_read_csr64(oct, CN6XXX_SLI_SCRATCH1)) {
48 dev_err(&oct->pci_dev->dev, "Soft reset failed\n"); 48 dev_err(&oct->pci_dev->dev, "Soft reset failed\n");
49 return 1; 49 return 1;
50 } 50 }