xref: /linux/drivers/net/ethernet/sfc/efx_cxl.h (revision 91ec2035134982b98fab0609a9fd8480e8217dc1)
1a3fc56b1SAlejandro Lucero /* SPDX-License-Identifier: GPL-2.0-only */
2a3fc56b1SAlejandro Lucero /****************************************************************************
3a3fc56b1SAlejandro Lucero  * Driver for AMD network controllers and boards
4a3fc56b1SAlejandro Lucero  * Copyright (C) 2025, Advanced Micro Devices, Inc.
5a3fc56b1SAlejandro Lucero  *
6a3fc56b1SAlejandro Lucero  * This program is free software; you can redistribute it and/or modify it
7a3fc56b1SAlejandro Lucero  * under the terms of the GNU General Public License version 2 as published
8a3fc56b1SAlejandro Lucero  * by the Free Software Foundation, incorporated herein by reference.
9a3fc56b1SAlejandro Lucero  */
10a3fc56b1SAlejandro Lucero 
11a3fc56b1SAlejandro Lucero #ifndef EFX_CXL_H
12a3fc56b1SAlejandro Lucero #define EFX_CXL_H
13a3fc56b1SAlejandro Lucero 
14a3fc56b1SAlejandro Lucero #ifdef CONFIG_SFC_CXL
15a3fc56b1SAlejandro Lucero 
16a3fc56b1SAlejandro Lucero #include <cxl/cxl.h>
17a3fc56b1SAlejandro Lucero 
18a3fc56b1SAlejandro Lucero struct efx_probe_data;
19a3fc56b1SAlejandro Lucero 
20a3fc56b1SAlejandro Lucero struct efx_cxl {
21a3fc56b1SAlejandro Lucero 	struct cxl_dev_state cxlds;
22a3fc56b1SAlejandro Lucero 	struct cxl_memdev *cxlmd;
23*0418860eSAlejandro Lucero 	void __iomem *ctpio_cxl;
24a3fc56b1SAlejandro Lucero };
25a3fc56b1SAlejandro Lucero 
26a3fc56b1SAlejandro Lucero int efx_cxl_init(struct efx_probe_data *probe_data);
27*0418860eSAlejandro Lucero void efx_cxl_exit(struct efx_probe_data *probe_data);
28a3fc56b1SAlejandro Lucero #else
efx_cxl_init(struct efx_probe_data * probe_data)29a3fc56b1SAlejandro Lucero static inline int efx_cxl_init(struct efx_probe_data *probe_data) { return 0; }
efx_cxl_exit(struct efx_probe_data * probe_data)30*0418860eSAlejandro Lucero static inline void efx_cxl_exit(struct efx_probe_data *probe_data) {}
31a3fc56b1SAlejandro Lucero #endif
32a3fc56b1SAlejandro Lucero #endif
33