12 Oct, 2019

1 commit

  • When wrapping around the FIFO, the remote expects the tail pointer to
    be reset to 0 on the edge case where the tail equals the FIFO length.

    Fixes: caf989c350e8 ("rpmsg: glink: Introduce glink smem based transport")
    Cc: stable@vger.kernel.org
    Signed-off-by: Chris Lew
    Signed-off-by: Bjorn Andersson

    Chris Lew
     

18 Sep, 2019

1 commit

  • Naming the glink edge device on the parent of_node short name causes
    collisions when multiple remoteproc instances with only different unit
    address are described on the platform_bus in DeviceTree.

    Base the edge's name on the parent remoteproc's name instead, to ensure
    that it's unique.

    Reviewed-by: Niklas Cassel
    Signed-off-by: Bjorn Andersson

    Bjorn Andersson
     

04 Oct, 2018

1 commit


28 Aug, 2018

1 commit


04 Jun, 2018

1 commit


18 Mar, 2018

1 commit


19 Dec, 2017

1 commit


07 Dec, 2017

1 commit


30 Aug, 2017

4 commits

  • To fully read the received rx data from FIFO both the command and data
    has to be read. Currently we read command, data separately and process
    them. By adding an offset parameter to RX FIFO peak accessor, command
    and data can be read together, simplifying things. So introduce this.

    Acked-by: Arun Kumar Neelakantam
    Signed-off-by: Sricharan R
    Signed-off-by: Bjorn Andersson

    Bjorn Andersson
     
  • Intents are nothing but pre-allocated buffers of appropriate size that
    are allocated on the local side and communicated to the remote side and
    the remote stores the list of intent ids that it is informed.

    Later when remote side is intenting to send data, it picks up a right
    intent (based on the size) and sends the data buffer and the intent id.
    Local side receives the data and copies it to the local intent buffer.

    The whole idea is to avoid stalls on the transport for allocating
    memory, used for copy based transports.

    When the remote request to allocate buffers using CMD_RX_INTENT_REQ, we
    allocate buffers of requested size, store the buffer id locally and also
    communicate the intent id to the remote.

    Acked-by: Arun Kumar Neelakantam
    Signed-off-by: Sricharan R
    Signed-off-by: Bjorn Andersson

    Sricharan R
     
  • G-link supports a version number and feature flags for each transport.
    A combination of the version number and feature flags enable/disable:

    (*) G-Link software updates for each edge
    (*) Individual features for each edge

    Endpoints negotiate both the version and the supported flags when
    the transport is opened and they cannot be changed after negotiation has
    been completed.

    Each full implementation of G-Link must support a minimum of the current
    version, the previous version, and the base negotiation version called v0.

    Acked-by: Arun Kumar Neelakantam
    Signed-off-by: Sricharan R
    Signed-off-by: Bjorn Andersson

    Sricharan R
     
  • The glink protocol supports different types of transports (shared
    memory). With the core protocol remaining the same, the way the
    transport's memory is probed and accessed is different. So add support
    for glink's smem based transports.

    Adding a new smem transport register function and the fifo accessors for
    the same.

    Acked-by: Arun Kumar Neelakantam
    Signed-off-by: Sricharan R
    Signed-off-by: Bjorn Andersson

    Bjorn Andersson