• Wojciech Drewek's avatar
    ice: Refactor status flow for DDP load · 247dd97d
    Wojciech Drewek authored
    Before this change, final state of the DDP pkg load process was
    dependent on many variables such as: ice_status, pkg version,
    ice_aq_err. The last one had be stored in hw->pkg_dwnld_status.
    It was impossible to conclude this state just from ice_status, that's
    why logging process of DDP pkg load in the caller was a little bit
    complicated.
    
    With this patch new status enum is introduced - ice_ddp_state.
    It covers all the possible final states of the loading process.
    What's tricky for ice_ddp_state is that not only
    ICE_DDP_PKG_SUCCESS(=0) means that load was successful. Actually
    three states mean that:
     - ICE_DDP_PKG_SUCCESS
     - ICE_DDP_PKG_SAME_VERSION_ALREADY_LOADED
     - ICE_DDP_PKG_COMPATIBLE_ALREADY_LOADED
    ice_is_init_pkg_successful can tell that information.
    
    One ddp_state should not be used outside of ice_init_pkg which is
    ICE_DDP_PKG_ALREADY_LOADED. It is more generic, it is used in
    ice_dwnld_cfg_bufs to see if pkg is already loaded. At this point
    we can't use one of the specific one (SAME_VERSION, COMPATIBLE,
    NOT_SUPPORTED) because we don't have information on the package
    currently loaded in HW (we are before calling ice_get_pkg_info).
    
    We can get rid of hw->pkg_dwnld_status because we are immediately
    mapping aq errors to ice_ddp_state in ice_dwnld_cfg_bufs.
    
    Other errors like ICE_ERR_NO_MEMORY, ICE_ERR_PARAM are mapped the
    generic ICE_DDP_PKG_ERR.
    Suggested-by: default avatarJacob Keller <jacob.e.keller@intel.com>
    Signed-off-by: default avatarWojciech Drewek <wojciech.drewek@intel.com>
    Tested-by: default avatarTony Brelinski <tony.brelinski@intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    247dd97d
ice_flex_pipe.h 3.9 KB