• François Romieu's avatar
    [PATCH] via-velocity: Rx buffers allocation rework · 0accc7c5
    François Romieu authored
    Rework of the Rx buffers allocation:
    - Rx irq handler (velocity_rx_srv): defer the Rx buffer allocation until
      the packet processing loop is done;
    - a separate index related to the Rx descriptor ("rd_dirty") is introduced
      to distinguish the first Rx descriptor whose buffer has to be refilled.
      This way the driver does not need to confuse this descriptor with the
      most recently netif()ed one. Rationale: batch + rx_copybreak;
    - dirty/empty Rx descriptors are identified through the whole driver
      via an adequate NULL pointer in the velocity_rd_info[] array (see
      velocity_rx_refill() and velocity_receive_frame());
    - Rx descriptors need to be grouped by a multiple of 4 before they can
      be handed back to the asic (hardware constraint). This task is moved
      from the Rx processing loop to the Rx refill function;
    - factorization of code in velocity_init_rd_ring().
    0accc7c5
via-velocity.c 87.4 KB