1*fd325cd6SLong Li /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ 2*fd325cd6SLong Li /* Copyright (c) 2021, Microsoft Corporation. */ 3*fd325cd6SLong Li 4*fd325cd6SLong Li #ifndef _SHM_CHANNEL_H 5*fd325cd6SLong Li #define _SHM_CHANNEL_H 6*fd325cd6SLong Li 7*fd325cd6SLong Li struct shm_channel { 8*fd325cd6SLong Li struct device *dev; 9*fd325cd6SLong Li void __iomem *base; 10*fd325cd6SLong Li }; 11*fd325cd6SLong Li 12*fd325cd6SLong Li void mana_smc_init(struct shm_channel *sc, struct device *dev, 13*fd325cd6SLong Li void __iomem *base); 14*fd325cd6SLong Li 15*fd325cd6SLong Li int mana_smc_setup_hwc(struct shm_channel *sc, bool reset_vf, u64 eq_addr, 16*fd325cd6SLong Li u64 cq_addr, u64 rq_addr, u64 sq_addr, 17*fd325cd6SLong Li u32 eq_msix_index); 18*fd325cd6SLong Li 19*fd325cd6SLong Li int mana_smc_teardown_hwc(struct shm_channel *sc, bool reset_vf); 20*fd325cd6SLong Li 21*fd325cd6SLong Li #endif /* _SHM_CHANNEL_H */ 22