• D
    cxl: Refactor AFU init/teardown · d76427b0
    Daniel Axtens 提交于
    As with an adapter, some aspects of initialisation are done only once
    in the lifetime of an AFU: for example, allocating memory, or setting
    up sysfs/debugfs files.
    
    However, we may want to be able to do some parts of the initialisation
    multiple times: for example, in error recovery we want to be able to
    tear down and then re-map IO memory and IRQs.
    
    Therefore, refactor AFU init/teardown as follows.
    
     - Create two new functions: 'cxl_configure_afu', and its pair
       'cxl_deconfigure_afu'. As with the adapter functions,
       these (de)configure resources that do not need to last the entire
       lifetime of the AFU.
    
     - Allocating and releasing memory remain the task of 'cxl_alloc_afu'
       and 'cxl_release_afu'.
    
     - Once-only functions that do not involve allocating/releasing memory
       stay in the overarching 'cxl_init_afu'/'cxl_remove_afu' pair.
       However, the task of picking an AFU mode and activating it has been
       broken out.
    Signed-off-by: NDaniel Axtens <dja@axtens.net>
    Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
    d76427b0
pci.c 33.6 KB