mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-03-02 23:44:30 +07:00
bna: HW Interface Init Update
Change details: - Split the hw interface into common and asic specific to support new asic in the future. - Fix bfa_ioc_ct_isr_mode_set() to also include the case that we are already in the desired msix mode. Signed-off-by: Rasesh Mody <rmody@brocade.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8d7e7ff735
commit
6a1ccaef4e
@ -50,26 +50,32 @@ static enum bfa_status bfa_ioc_ct_pll_init(void __iomem *rb, bool fcmode);
|
||||
|
||||
static struct bfa_ioc_hwif nw_hwif_ct;
|
||||
|
||||
static void
|
||||
bfa_ioc_set_ctx_hwif(struct bfa_ioc *ioc, struct bfa_ioc_hwif *hwif)
|
||||
{
|
||||
hwif->ioc_firmware_lock = bfa_ioc_ct_firmware_lock;
|
||||
hwif->ioc_firmware_unlock = bfa_ioc_ct_firmware_unlock;
|
||||
hwif->ioc_notify_fail = bfa_ioc_ct_notify_fail;
|
||||
hwif->ioc_ownership_reset = bfa_ioc_ct_ownership_reset;
|
||||
hwif->ioc_sync_start = bfa_ioc_ct_sync_start;
|
||||
hwif->ioc_sync_join = bfa_ioc_ct_sync_join;
|
||||
hwif->ioc_sync_leave = bfa_ioc_ct_sync_leave;
|
||||
hwif->ioc_sync_ack = bfa_ioc_ct_sync_ack;
|
||||
hwif->ioc_sync_complete = bfa_ioc_ct_sync_complete;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called from bfa_ioc_attach() to map asic specific calls.
|
||||
*/
|
||||
void
|
||||
bfa_nw_ioc_set_ct_hwif(struct bfa_ioc *ioc)
|
||||
{
|
||||
bfa_ioc_set_ctx_hwif(ioc, &nw_hwif_ct);
|
||||
|
||||
nw_hwif_ct.ioc_pll_init = bfa_ioc_ct_pll_init;
|
||||
nw_hwif_ct.ioc_firmware_lock = bfa_ioc_ct_firmware_lock;
|
||||
nw_hwif_ct.ioc_firmware_unlock = bfa_ioc_ct_firmware_unlock;
|
||||
nw_hwif_ct.ioc_reg_init = bfa_ioc_ct_reg_init;
|
||||
nw_hwif_ct.ioc_map_port = bfa_ioc_ct_map_port;
|
||||
nw_hwif_ct.ioc_isr_mode_set = bfa_ioc_ct_isr_mode_set;
|
||||
nw_hwif_ct.ioc_notify_fail = bfa_ioc_ct_notify_fail;
|
||||
nw_hwif_ct.ioc_ownership_reset = bfa_ioc_ct_ownership_reset;
|
||||
nw_hwif_ct.ioc_sync_start = bfa_ioc_ct_sync_start;
|
||||
nw_hwif_ct.ioc_sync_join = bfa_ioc_ct_sync_join;
|
||||
nw_hwif_ct.ioc_sync_leave = bfa_ioc_ct_sync_leave;
|
||||
nw_hwif_ct.ioc_sync_ack = bfa_ioc_ct_sync_ack;
|
||||
nw_hwif_ct.ioc_sync_complete = bfa_ioc_ct_sync_complete;
|
||||
|
||||
ioc->ioc_hwif = &nw_hwif_ct;
|
||||
}
|
||||
|
||||
@ -297,7 +303,7 @@ bfa_ioc_ct_isr_mode_set(struct bfa_ioc *ioc, bool msix)
|
||||
/**
|
||||
* If already in desired mode, do not change anything
|
||||
*/
|
||||
if (!msix && mode)
|
||||
if ((!msix && mode) || (msix && !mode))
|
||||
return;
|
||||
|
||||
if (msix)
|
||||
|
Loading…
Reference in New Issue
Block a user