1. 02 Jul, 2024 1 commit
    • Jakub Kicinski's avatar
      Merge tag 'linux-can-next-for-6.11-20240629' of... · 1eea11e9
      Jakub Kicinski authored
      Merge tag 'linux-can-next-for-6.11-20240629' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next
      
      Marc Kleine-Budde says:
      
      ====================
      pull-request: can-next 2024-06-29
      
      Geert Uytterhoeven contributes 3 patches with small improvements and
      cleanups for the rcar_canfd driver.
      
      A patch by Christophe JAILLET constifies the struct m_can_ops in the
      m_can driver to reduce the code size.
      
      The last 9 patches are by me an work around erratum DS80000789E 6 of
      mcp2518fd.
      
      * tag 'linux-can-next-for-6.11-20240629' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next:
        can: mcp251xfd: tef: update workaround for erratum DS80000789E 6 of mcp2518fd
        can: mcp251xfd: tef: prepare to workaround broken TEF FIFO tail index erratum
        can: mcp251xfd: rx: add workaround for erratum DS80000789E 6 of mcp2518fd
        can: mcp251xfd: rx: prepare to workaround broken RX FIFO head index erratum
        can: mcp251xfd: mcp251xfd_handle_rxif_ring_uinc(): factor out in separate function
        can: mcp251xfd: clarify the meaning of timestamp
        can: mcp251xfd: move mcp251xfd_timestamp_start()/stop() into mcp251xfd_chip_start/stop()
        can: mcp251xfd: update errata references
        can: mcp251xfd: properly indent labels
        can: gs_usb: add VID/PID for Xylanta SAINT3 product family
        can: m_can: Constify struct m_can_ops
        can: rcar_canfd: Remove superfluous parentheses in address calculations
        can: rcar_canfd: Improve printing of global operational state
        can: rcar_canfd: Simplify clock handling
      ====================
      
      Link: https://patch.msgid.link/20240629114017.1080160-1-mkl@pengutronix.deSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      1eea11e9
  2. 01 Jul, 2024 20 commits
  3. 29 Jun, 2024 18 commits
  4. 28 Jun, 2024 1 commit
    • Marc Kleine-Budde's avatar
      Merge patch series "can: mcp251xfd: workaround for erratum DS80000789E 6 of mcp2518fd" · ae44fa99
      Marc Kleine-Budde authored
      Marc Kleine-Budde <mkl@pengutronix.de> says:
      
      This patch series tries to work around erratum DS80000789E 6 of the
      mcp2518fd, found by Stefan Althöfer, the other variants of the chip
      family (mcp2517fd and mcp251863) are probably also affected.
      
      Erratum DS80000789E 6 says "reading of the FIFOCI bits in the FIFOSTA
      register for an RX FIFO may be corrupted". However observation shows
      that this problem is not limited to RX FIFOs but also effects the TEF
      FIFO.
      
      In the bad case, the driver reads a too large head index. In the
      original code, the driver always trusted the read value.
      
      For the RX FIDO this caused old, already processed CAN frames or new,
      incompletely written CAN frames to be (re-)processed.
      
      To work around this issue, keep a per FIFO timestamp of the last valid
      received CAN frame and compare against the timestamp of every received
      CAN frame.
      
      Further tests showed that this workaround can recognize old CAN
      frames, but a small time window remains in which partially written CAN
      frames are not recognized but then processed. These CAN frames have
      the correct data and time stamps, but the DLC has not yet been
      updated.
      
      For the TEF FIFO the original driver already detects the error, update
      the error handling with the knowledge that it is causes by this erratum.
      
      Link: https://lore.kernel.org/all/20240628-mcp251xfd-workaround-erratum-6-v4-0-53586f168524@pengutronix.deSigned-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
      ae44fa99