31 May, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 3029 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

02 Jul, 2018

2 commits


14 Jul, 2016

3 commits

  • The Mellanox CX4 in cxl mode uses a hybrid interrupt model, where
    interrupts are routed from the networking hardware to the XSL using the
    MSIX table, and from there will be transformed back into an MSIX
    interrupt using the cxl style interrupts (i.e. using IVTE entries and
    ranges to map a PE and AFU interrupt number to an MSIX address).

    We want to hide the implementation details of cxl interrupts as much as
    possible. To this end, we use a special version of the MSI setup &
    teardown routines in the PHB while in cxl mode to allocate the cxl
    interrupts and configure the IVTE entries in the process element.

    This function does not configure the MSIX table - the CX4 card uses a
    custom format in that table and it would not be appropriate to fill that
    out in generic code. The rest of the functionality is similar to the
    "Full MSI-X mode" described in the CAIA, and this could be easily
    extended to support other adapters that use that mode in the future.

    The interrupts will be associated with the default context. If the
    maximum number of interrupts per context has been limited (e.g. by the
    mlx5 driver), it will automatically allocate additional kernel contexts
    to associate extra interrupts as required. These contexts will be
    started using the same WED that was used to start the default context.

    Signed-off-by: Ian Munsie
    Reviewed-by: Andrew Donnellan
    Signed-off-by: Michael Ellerman

    Ian Munsie
     
  • The cxl kernel API has a concept of a default context associated with
    each PCI device under the virtual PHB. The Mellanox CX4 will also use
    the cxl kernel API, but it does not use a virtual PHB - rather, the AFU
    appears as a physical function as a peer to the networking functions.

    In order to allow the kernel API to work with those networking
    functions, we will need to associate a default context with them as
    well. To this end, refactor the corresponding code to do this in vphb.c
    and export it so that it can be called from the PHB code.

    Signed-off-by: Ian Munsie
    Reviewed-by: Frederic Barrat
    Reviewed-by: Andrew Donnellan
    Signed-off-by: Michael Ellerman

    Ian Munsie
     
  • The Mellanox CX4 uses a model where the AFU is one physical function of
    the device, and is used by other peer physical functions of the same
    device. This will require those other devices to grab a reference on the
    AFU when they are initialised to make sure that it does not go away
    during their lifetime.

    Move the AFU refcount functions to base.c so they can be called from
    the PHB code.

    Signed-off-by: Ian Munsie
    Reviewed-by: Andrew Donnellan
    Reviewed-by: Frederic Barrat
    Signed-off-by: Michael Ellerman

    Ian Munsie
     

03 Jun, 2015

1 commit

  • This moves the current include file from cxl.h -> cxl-base.h. This current
    include file is used only to pass information between the base driver that
    needs to be built into the kernel and the cxl module.

    This is to make way for a new include/misc/cxl.h which will
    contain just the kernel API for other driver to use

    Signed-off-by: Michael Neuling
    Acked-by: Ian Munsie
    Signed-off-by: Michael Ellerman

    Michael Neuling