lkml.org 
[lkml]   [2020]   [Jan]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.14 326/371] net: qca_spi: Move reset_count to struct qcaspi
    Date
    From: Stefan Wahren <stefan.wahren@in-tech.com>

    [ Upstream commit bc19c32904e36548335b35fdce6ce734e20afc0a ]

    The reset counter is specific for every QCA700x chip. So move this
    into the private driver struct. Otherwise we get unpredictable reset
    behavior in setups with multiple QCA700x chips.

    Fixes: 291ab06ecf67 (net: qualcomm: new Ethernet over SPI driver for QCA7000)
    Signed-off-by: Stefan Wahren <stefan.wahren@in-tech.com>
    Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/qualcomm/qca_spi.c | 9 ++++-----
    drivers/net/ethernet/qualcomm/qca_spi.h | 1 +
    2 files changed, 5 insertions(+), 5 deletions(-)

    diff --git a/drivers/net/ethernet/qualcomm/qca_spi.c b/drivers/net/ethernet/qualcomm/qca_spi.c
    index 275fc6f154a7..1c87178fc485 100644
    --- a/drivers/net/ethernet/qualcomm/qca_spi.c
    +++ b/drivers/net/ethernet/qualcomm/qca_spi.c
    @@ -475,7 +475,6 @@ qcaspi_qca7k_sync(struct qcaspi *qca, int event)
    u16 signature = 0;
    u16 spi_config;
    u16 wrbuf_space = 0;
    - static u16 reset_count;

    if (event == QCASPI_EVENT_CPUON) {
    /* Read signature twice, if not valid
    @@ -528,13 +527,13 @@ qcaspi_qca7k_sync(struct qcaspi *qca, int event)

    qca->sync = QCASPI_SYNC_RESET;
    qca->stats.trig_reset++;
    - reset_count = 0;
    + qca->reset_count = 0;
    break;
    case QCASPI_SYNC_RESET:
    - reset_count++;
    + qca->reset_count++;
    netdev_dbg(qca->net_dev, "sync: waiting for CPU on, count %u.\n",
    - reset_count);
    - if (reset_count >= QCASPI_RESET_TIMEOUT) {
    + qca->reset_count);
    + if (qca->reset_count >= QCASPI_RESET_TIMEOUT) {
    /* reset did not seem to take place, try again */
    qca->sync = QCASPI_SYNC_UNKNOWN;
    qca->stats.reset_timeout++;
    diff --git a/drivers/net/ethernet/qualcomm/qca_spi.h b/drivers/net/ethernet/qualcomm/qca_spi.h
    index fc0e98726b36..719c41227f22 100644
    --- a/drivers/net/ethernet/qualcomm/qca_spi.h
    +++ b/drivers/net/ethernet/qualcomm/qca_spi.h
    @@ -92,6 +92,7 @@ struct qcaspi {

    unsigned int intr_req;
    unsigned int intr_svc;
    + u16 reset_count;

    #ifdef CONFIG_DEBUG_FS
    struct dentry *device_root;
    --
    2.20.1
    \
     
     \ /
      Last update: 2020-01-16 18:31    [W:2.038 / U:0.152 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site