#include <linux/seq_file.h>
#include <linux/device.h>
#include <linux/delay.h>
#include "cxlmem.h"
#include "core.h"
DECLARE_RWSEM(…) …;
static int add_hdm_decoder(struct cxl_port *port, struct cxl_decoder *cxld,
int *target_map)
{ … }
int devm_cxl_add_passthrough_decoder(struct cxl_port *port)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
static void parse_hdm_decoder_caps(struct cxl_hdm *cxlhdm)
{ … }
static bool should_emulate_decoders(struct cxl_endpoint_dvsec_info *info)
{ … }
struct cxl_hdm *devm_cxl_setup_hdm(struct cxl_port *port,
struct cxl_endpoint_dvsec_info *info)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
static void __cxl_dpa_debug(struct seq_file *file, struct resource *r, int depth)
{ … }
void cxl_dpa_debug(struct seq_file *file, struct cxl_dev_state *cxlds)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
static void __cxl_dpa_release(struct cxl_endpoint_decoder *cxled)
{ … }
static void cxl_dpa_release(void *cxled)
{ … }
static void devm_cxl_dpa_release(struct cxl_endpoint_decoder *cxled)
{ … }
static int __cxl_dpa_reserve(struct cxl_endpoint_decoder *cxled,
resource_size_t base, resource_size_t len,
resource_size_t skipped)
{ … }
int devm_cxl_dpa_reserve(struct cxl_endpoint_decoder *cxled,
resource_size_t base, resource_size_t len,
resource_size_t skipped)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
resource_size_t cxl_dpa_size(struct cxl_endpoint_decoder *cxled)
{ … }
resource_size_t cxl_dpa_resource_start(struct cxl_endpoint_decoder *cxled)
{ … }
int cxl_dpa_free(struct cxl_endpoint_decoder *cxled)
{ … }
int cxl_dpa_set_mode(struct cxl_endpoint_decoder *cxled,
enum cxl_decoder_mode mode)
{ … }
int cxl_dpa_alloc(struct cxl_endpoint_decoder *cxled, unsigned long long size)
{ … }
static void cxld_set_interleave(struct cxl_decoder *cxld, u32 *ctrl)
{ … }
static void cxld_set_type(struct cxl_decoder *cxld, u32 *ctrl)
{ … }
static void cxlsd_set_targets(struct cxl_switch_decoder *cxlsd, u64 *tgt)
{ … }
#define COMMIT_TIMEOUT_MS …
static int cxld_await_commit(void __iomem *hdm, int id)
{ … }
static int cxl_decoder_commit(struct cxl_decoder *cxld)
{ … }
static int commit_reap(struct device *dev, const void *data)
{ … }
void cxl_port_commit_reap(struct cxl_decoder *cxld)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
static void cxl_decoder_reset(struct cxl_decoder *cxld)
{ … }
static int cxl_setup_hdm_decoder_from_dvsec(
struct cxl_port *port, struct cxl_decoder *cxld, u64 *dpa_base,
int which, struct cxl_endpoint_dvsec_info *info)
{ … }
static int init_hdm_decoder(struct cxl_port *port, struct cxl_decoder *cxld,
int *target_map, void __iomem *hdm, int which,
u64 *dpa_base, struct cxl_endpoint_dvsec_info *info)
{ … }
static void cxl_settle_decoders(struct cxl_hdm *cxlhdm)
{ … }
int devm_cxl_enumerate_decoders(struct cxl_hdm *cxlhdm,
struct cxl_endpoint_dvsec_info *info)
{ … }
EXPORT_SYMBOL_NS_GPL(…);