• Andrey Yurovsky's avatar
    libertas: remove internal buffers from GSPI driver · 86c34fe8
    Andrey Yurovsky authored
    This patch removes the internal command and data buffers that the GSPI driver
    maintained and instead relies on the Libertas core to synchronize access
    to the command and data ports as with the other interface drivers.  This
    cleanup reduces the GSPI driver's memory footprint and should improve
    performance by removing the need to copy to these internal buffers.
    This also simplifies the bottom half of the interrupt handler.
    
    This is an incremental cleanup: after removing the redundant buffers, we
    can further improve the driver to use a threaded IRQ handler instead of
    maintaining its own thread.  However I would like a few folks to test
    the buffer removal first and make sure that I'm not introducing
    regressions.
    
    Tested on Blackfin BF527 with DMA disabled due to an issue with the SPI
    host controller driver in the current bleeding-edge Blackfin kernel.  I
    would appreciate it if someone with working DMA could test this patch
    and provide feedback.
    Signed-off-by: default avatarAndrey Yurovsky <andrey@cozybit.com>
    Tested-by: default avatarGeorge Shore <george.shore@imgtec.com>
    Acked-by: default avatarDan Williams <dcbw@redhat.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    86c34fe8
if_spi.c 27.6 KB