lkml.org 
[lkml]   [2014]   [Oct]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.13 123/163] can: flexcan: put TX mailbox into TX_INACTIVE mode after tx-complete
    Date
    3.13.11.9 -stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Marc Kleine-Budde <mkl@pengutronix.de>

    commit de5944883ebbedbf5adc8497659772f5da7b7d72 upstream.

    After sending a RTR frame the TX mailbox becomes a RX_EMPTY mailbox. To avoid
    side effects when the RX-FIFO is full, this patch puts the TX mailbox into
    TX_INACTIVE mode in the transmission complete interrupt handler. This, of
    course, leaves a race window between the actual completion of the transmission
    and the handling of tx-complete interrupt. However this is the best we can do
    without busy polling the tx complete interrupt.

    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Kamal Mostafa <kamal@canonical.com>
    ---
    drivers/net/can/flexcan.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
    index 3a1859b..deea3a9 100644
    --- a/drivers/net/can/flexcan.c
    +++ b/drivers/net/can/flexcan.c
    @@ -702,6 +702,9 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
    stats->tx_bytes += can_get_echo_skb(dev, 0);
    stats->tx_packets++;
    can_led_event(dev, CAN_LED_EVENT_TX);
    + /* after sending a RTR frame mailbox is in RX mode */
    + flexcan_write(FLEXCAN_MB_CODE_TX_INACTIVE,
    + &regs->cantxfg[FLEXCAN_TX_BUF_ID].can_ctrl);
    flexcan_write((1 << FLEXCAN_TX_BUF_ID), &regs->iflag1);
    netif_wake_queue(dev);
    }
    --
    1.9.1


    \
     
     \ /
      Last update: 2014-10-10 00:02    [W:4.061 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site