• Ramkrishna Vepa's avatar
    Neterion: New driver: Hardware init & configuration · 40a3a915
    Ramkrishna Vepa authored
    This patch takes care of Initialization and configuration steps of
    Neterion Inc's X3100 Series 10GbE PCIe I/O Virtualized Server Adapter.
    - Device Initialization.
    - Verification and setting of device config parameters.
    - Allocation of Tx FIFO and Rx Ring descriptors (DTR).
    - APIs to get various type of hw stats
    - APIs to configure RTS (Receive Traffic Steering)
    
    - Changes in this submission -
            - Include vmalloc header without which a compilation error occured
              on sparc64, ppc64 and IA64 plaforms.
    	- Fixed compilation warning in register_poll, write32_upper,
              write32_lower and the special write64 functions on ppc64.
            - General cleanup - removed redundant includes and defines.
    
    - Changes in previous submissions -
            - Add readq/writeq implementation for the driver for 32 bit systems -
              reported by Dave Miller.
    - Incorporated following comments from Ben Hutchings
            - Start a comment with "/**" to make it a kernel-doc comment.
            - Use prefix, "__vxge" in front of hw functions to make them globally
              unique.
            - Fixed unnecessary clearing members of *channel just before freeing
            - Use backslashes only for macro definitions and not in multi-line
              statements.
            - Used pci_find_capability instead of redefining it.
            - Used device and revision ids that are already in pdev - no need to
              read them again.
            - Used pci_save_state() and pci_restore_state() around resets.
            - Used udelay and mdelay directly instead of wrapper.
            - In __vxge_hw_device_register_poll() reset i to 0 after the
              microsecond delay loop to commence the millisecond delay loop.
            - Corrected spelling "sapper" - should be "swapper"
            - Remove too much vertical whitespace.
            - Replaced magic numbers with appropriate macros
    - Incorporated following comments from Andi Kleen [andi@firstfloor.org]
            - Reduced the arguments in functions or refactored them into smaller
            functions.
            - Allocate page sized memories used in slow path with vmalloc.
            - Use asserts where necessary.
            - Use macros instead of magic numbers.
            - Use the pci layer code instead of defining own functions
            - Remove driver wrappers such as xge_hw_device_private_set().
            - Fixed sparse warnings.
    Signed-off-by: default avatarSivakumar Subramani <sivakumar.subramani@neterion.com>
    Signed-off-by: default avatarRastapur Santosh <santosh.rastapur@neterion.com>
    Signed-off-by: default avatarRamkrishna Vepa <ram.vepa@neterion.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    40a3a915
vxge-config.c 137 KB