Skip to content
  • Roy Franz's avatar
    Fix lan9118 buffer length handling · c444dfab
    Roy Franz authored
    
    
    The 9118 ethernet controller supports transmission of multi-buffer packets
    with arbitrary byte alignment of the start and end bytes.  All writes to
    the packet fifo are 32 bits, so the controller discards bytes at the beginning
    and end of each buffer based on the 'Data start offset' and 'Buffer size'
    of the TX command 'A' format.
    
    This patch uses the provided buffer length to limit the bytes transmitted.
    Previously all the bytes of the last 32-bit word written to the TX fifo
    were added to the internal transmit buffer structure resulting in more bytes
    being transmitted than were submitted to the hardware in the command.  This
    resulted in extra bytes being inserted into the middle of multi-buffer
    packets when the non-final buffers had non-32bit aligned ending addresses.
    
    Signed-off-by: default avatarRoy Franz <roy.franz@linaro.org>
    Reviewed-by: default avatarPeter Crosthwaite <peter.crosthwaite@xilinx.com>
    Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    c444dfab