linux/drivers/cxl/core/cdat.c

// SPDX-License-Identifier: GPL-2.0-only
/* Copyright(c) 2023 Intel Corporation. All rights reserved. */
#include <linux/acpi.h>
#include <linux/xarray.h>
#include <linux/fw_table.h>
#include <linux/node.h>
#include <linux/overflow.h>
#include "cxlpci.h"
#include "cxlmem.h"
#include "core.h"
#include "cxl.h"
#include "core.h"

struct dsmas_entry {};

static u32 cdat_normalize(u16 entry, u64 base, u8 type)
{}

static int cdat_dsmas_handler(union acpi_subtable_headers *header, void *arg,
			      const unsigned long end)
{}

static void __cxl_access_coordinate_set(struct access_coordinate *coord,
					int access, unsigned int val)
{}

static void cxl_access_coordinate_set(struct access_coordinate *coord,
				      int access, unsigned int val)
{}

static int cdat_dslbis_handler(union acpi_subtable_headers *header, void *arg,
			       const unsigned long end)
{}

static int cdat_table_parse_output(int rc)
{}

static int cxl_cdat_endpoint_process(struct cxl_port *port,
				     struct xarray *dsmas_xa)
{}

static int cxl_port_perf_data_calculate(struct cxl_port *port,
					struct xarray *dsmas_xa)
{}

static void update_perf_entry(struct device *dev, struct dsmas_entry *dent,
			      struct cxl_dpa_perf *dpa_perf)
{}

static void cxl_memdev_set_qos_class(struct cxl_dev_state *cxlds,
				     struct xarray *dsmas_xa)
{}

static int match_cxlrd_qos_class(struct device *dev, void *data)
{}

static void reset_dpa_perf(struct cxl_dpa_perf *dpa_perf)
{}

static bool cxl_qos_match(struct cxl_port *root_port,
			  struct cxl_dpa_perf *dpa_perf)
{}

static int match_cxlrd_hb(struct device *dev, void *data)
{}

static int cxl_qos_class_verify(struct cxl_memdev *cxlmd)
{}

static void discard_dsmas(struct xarray *xa)
{}
DEFINE_FREE()

void cxl_endpoint_parse_cdat(struct cxl_port *port)
{}
EXPORT_SYMBOL_NS_GPL();

static int cdat_sslbis_handler(union acpi_subtable_headers *header, void *arg,
			       const unsigned long end)
{}

void cxl_switch_parse_cdat(struct cxl_port *port)
{}
EXPORT_SYMBOL_NS_GPL();

static void __cxl_coordinates_combine(struct access_coordinate *out,
				      struct access_coordinate *c1,
				      struct access_coordinate *c2)
{}

/**
 * cxl_coordinates_combine - Combine the two input coordinates
 *
 * @out: Output coordinate of c1 and c2 combined
 * @c1: input coordinates
 * @c2: input coordinates
 */
void cxl_coordinates_combine(struct access_coordinate *out,
			     struct access_coordinate *c1,
			     struct access_coordinate *c2)
{}

MODULE_IMPORT_NS();

void cxl_region_perf_data_calculate(struct cxl_region *cxlr,
				    struct cxl_endpoint_decoder *cxled)
{}

int cxl_update_hmat_access_coordinates(int nid, struct cxl_region *cxlr,
				       enum access_coordinate_class access)
{}

bool cxl_need_node_perf_attrs_update(int nid)
{}